feat: home dashboard — Node-RED Funktionen als Control-Center-Integration #1

Merged
nick merged 1 commit from feature/nodered-integration into main 2026-09-21 23:57:01 +02:00
Owner

Bringt die Node-RED-Dashboard-Funktionalität als native Services in das Control Center:

  • Heizung: Sollwert/Modus pro Thermostat (MQTT via zwave-js-ui), globale Abschaltung, Cron-Schedules (4_defaults)
  • Lichter: Shelly-Steckdosen (Diele, Küche 1/2) mit State-Polling
  • Waschmaschine: Shelly-Leistungspolling + Start/Erkennungs-State-Machine
  • Wetter: Open-Meteo Tageszusammenfassung (Cron)
  • NOAH: Host-Ping (ICMP mit Raw-Fallback) + Growatt-Leistungsbegrenzung
  • Tür/Wächter: Tür-offen-Dauer-Check + Klingel-Debounce → Pushover + Event-Log
  • WOL: Wake-on-LAN-Endpoint
  • Frontend: neue deutsche Startseite (optimistic updates, 15s-Polling), Geräte-Liste unter /devices

Alle mutating Endpunkte admin-only. Secrets (Pushover/Growatt/Influx) als Dockhand-Stack-Secrets — Features deaktivieren sich elegant ohne sie.

Bringt die Node-RED-Dashboard-Funktionalität als native Services in das Control Center: - **Heizung**: Sollwert/Modus pro Thermostat (MQTT via zwave-js-ui), globale Abschaltung, Cron-Schedules (4_defaults) - **Lichter**: Shelly-Steckdosen (Diele, Küche 1/2) mit State-Polling - **Waschmaschine**: Shelly-Leistungspolling + Start/Erkennungs-State-Machine - **Wetter**: Open-Meteo Tageszusammenfassung (Cron) - **NOAH**: Host-Ping (ICMP mit Raw-Fallback) + Growatt-Leistungsbegrenzung - **Tür/Wächter**: Tür-offen-Dauer-Check + Klingel-Debounce → Pushover + Event-Log - **WOL**: Wake-on-LAN-Endpoint - **Frontend**: neue deutsche Startseite (optimistic updates, 15s-Polling), Geräte-Liste unter /devices Alle mutating Endpunkte admin-only. Secrets (Pushover/Growatt/Influx) als Dockhand-Stack-Secrets — Features deaktivieren sich elegant ohne sie.
feat: home dashboard — heating, lights, washer, weather, NOAH, door alerts
All checks were successful
CI/CD / Go vet, lint & test (pull_request) Successful in 1m5s
CI/CD / Frontend lint, typecheck & build (pull_request) Successful in 15s
CI/CD / Build & push control-center image (pull_request) Has been skipped
CI/CD / Deploy to Dockhand (pull_request) Has been skipped
fc142c62b4
Integrates the Node-RED dashboard functionality as first-class services:

Backend (Go/PocketBase):
- zwave_refs: ref-keyed value store (setpoint/mode/alarm/power) learned from
  MQTT topic refs; thermostats listed by ref, commands published to
  zwave/<ref>/<topic>/set
- Heating: per-ref setpoint/mode, global off (ECO), cron schedules
  (robfig/cron) with 4 seeded defaults
- Lights: Shelly EM/Relay proxies (diele, kueche 1/2) with state polling
- Washer: Shelly power polling + start/detect state machine (persisted)
- Weather: Open-Meteo daily summary cron (lat/lon configurable)
- NOAH: host ping (ICMP DGRAM with raw-socket fallback) + Growatt inverter
  power-limit enforcement (online/offline watts)
- DoorWatch: door-open duration check (30s ticker, configurable threshold)
  and doorbell debounce -> Pushover notifier + home_events log
- WOL: broadcast magic packet endpoint
- HTTP: /api/lights, /api/heating, /api/schedules, /api/washer,
  /api/weather, /api/noah, /api/wol, /api/events; all mutating endpoints
  admin-only (403 for user role)

Frontend (React):
- New German home dashboard (Start): door, weather, heating (setpoint
  steppers + mode switches + schedules), lights, washer, NOAH, WOL, events
  with optimistic updates and 15s polling
- Old device list moved to /devices (Geräte)

Docker:
- compose env for Pushover/Growatt/InfluxDB/NOAH/washer/office/weather/door
  config; cap_add NET_RAW for the ICMP raw fallback

All new backend packages have unit tests; live-verified against the real
zwave-js-ui broker, Shelly plugs and heating devices.
nick merged commit f3e565b736 into main 2026-09-21 23:57:01 +02:00
nick deleted branch feature/nodered-integration 2026-09-21 23:57:01 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
home/control-center!1
No description provided.