A TV-friendly dashboard that shows local time, weather, nearby aircraft, and Homebridge status/accessories.
- Full-screen dark dashboard layout designed for readability from a distance.
- Current date/time (updates every second).
- Weather for ZIP 76012 via National Weather Service (updates every 10 minutes).
- Aircraft near 32.735, -97.122 within 50 miles via adsb.lol (updates every 30 seconds).
- Homebridge status + accessories via backend proxy (updates every 60 seconds).
- Homebridge credentials stay server-side in
.envand are never exposed in frontend JavaScript.
server.js- Express server + API proxy endpoints.public/index.html- Dashboard markup.public/styles.css- Dark TV-friendly styling.public/app.js- Frontend data fetching/rendering logic..env.example- Environment variable template.
- Install dependencies:
npm install
- Create your env file:
cp .env.example .env
- Edit
.envand fill in Homebridge credentials.
PORT=3000
DASHBOARD_LAT=32.735
DASHBOARD_LON=-97.122
AIRCRAFT_RADIUS_MI=50
HOMEBRIDGE_URL=http://192.168.1.88:8581
HOMEBRIDGE_USERNAME=
HOMEBRIDGE_PASSWORD=- Production:
npm start
- Development (auto-reload):
npm run dev
Open http://localhost:3000.
GET /api/weatherGET /api/aircraftGET /api/homebridge/statusGET /api/homebridge/accessories
If Homebridge authentication or connectivity fails, backend endpoints return graceful JSON errors and the UI shows Homebridge unavailable.