Skip to content

Add Yale lock and UniFi camera web dashboard#1

Draft
nfaggian wants to merge 8 commits into
mainfrom
cursor/yale-lock-web-app-8d8d
Draft

Add Yale lock and UniFi camera web dashboard#1
nfaggian wants to merge 8 commits into
mainfrom
cursor/yale-lock-web-app-8d8d

Conversation

@nfaggian

@nfaggian nfaggian commented Jul 2, 2026

Copy link
Copy Markdown
Owner

Summary

  • Yale lock + UniFi camera web dashboard with live status, controls, SSE updates, and weather-aware ambient background
  • Modern Fuselab-inspired UI with light/dark/system themes
  • 1Password CLI workflow to run without plaintext credentials
  • uv for Python environment and dependency management
  • BOM weather panel alongside the UniFi camera feed

Weather (bom.gov.au)

Australian observations are pulled from Bureau of Meteorology JSON feeds — no API key required:

WEATHER_PROVIDER=bom
BOM_PRODUCT_ID=IDN60801
BOM_STATION_ID=94768
WEATHER_LOCATION_NAME=Sydney

The camera tile now shows live snapshot + weather stats (temperature, feels like, wind, humidity, rain since 9am, pressure) with a link to the BOM data source.

WEATHER_PROVIDER=auto prefers BOM when station IDs are set; otherwise falls back to Open-Meteo coordinates.

Run

make install
cp .env.example .env
make dashboard

Test plan

  • uv run python -m pytest (dashboard + BOM weather tests)
  • Manual: configure BOM station IDs and verify /api/ambience + camera weather panel
Open in Web Open in Cursor 

cursoragent and others added 8 commits July 2, 2026 00:58
Build a FastAPI home dashboard that monitors Yale lock open/close and
lock/unlock status, controls the lock remotely, and displays live UniFi
Protect camera snapshots. Dependencies are managed with uv.

Co-authored-by: Nathan Faggian <nathan.faggian@gmail.com>
Redesign the web interface with glass-style cards, improved typography,
status icons, and a persistent theme switcher supporting light, dark,
and system preferences.

Co-authored-by: Nathan Faggian <nathan.faggian@gmail.com>
Fetch local weather from Open-Meteo and drive an animated sky backdrop
with drifting clouds, sun/moon, rain, snow, and fog effects. Falls back
to browser local time when coordinates are not configured.

Co-authored-by: Nathan Faggian <nathan.faggian@gmail.com>
Adopt Liter typography, ultramarine/blue palette, KPI accent cards,
gradient actions, mesh grid background, and enterprise dashboard
hierarchy inspired by Fuselab Creative case studies.

Co-authored-by: Nathan Faggian <nathan.faggian@gmail.com>
Redesign with airy glass tiles, bento layout, Liter typography, neon
accent CTAs, circular lock status ring, timeline activity feed, SVG
weather icons, and soft animated gradient ambient background.

Co-authored-by: Nathan Faggian <nathan.faggian@gmail.com>
- Add .env.1password.example with op:// secret references for credentials
- Add scripts/run-dashboard-1password.sh using op run --env-file
- Add make dashboard-1password target and README setup instructions
- Ignore local .env.1password; add tests for example env and script

Co-authored-by: Nathan Faggian <nathan.faggian@gmail.com>
- Pin Python 3.13 via .python-version and commit uv.lock for reproducible syncs
- Add [tool.uv] default-groups so dev dependencies install with uv sync
- Update Makefile install target and scripts to use uv sync/run instead of .venv checks
- Document uv workflow in README; add project configuration tests

Co-authored-by: Nathan Faggian <nathan.faggian@gmail.com>
- Fetch Australian observations from bom.gov.au JSON feeds (no API key)
- Support WEATHER_PROVIDER auto/bom/open_meteo with BOM station config
- Show temperature, wind, humidity, rain, and pressure beside camera live view
- Extend ambience API model and document BOM setup in README/.env examples

Co-authored-by: Nathan Faggian <nathan.faggian@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants