Add Yale lock and UniFi camera web dashboard#1
Draft
nfaggian wants to merge 8 commits into
Draft
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Weather (bom.gov.au)
Australian observations are pulled from Bureau of Meteorology JSON feeds — no API key required:
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=autoprefers BOM when station IDs are set; otherwise falls back to Open-Meteo coordinates.Run
Test plan
uv run python -m pytest(dashboard + BOM weather tests)/api/ambience+ camera weather panel