homeos/app
HomeOS Bootstrap da249022cd fix(shelly): round-trip light brightness/rgb; don't hijack a reused IP (R15)
Codex R15 on the local transport:
- [P2] A light command set brightness/rgb but the normalizer stored only `on`,
  so the poll dropped them and the UI/automations went stale. The light state
  now carries brightness + rgb when the device reports them.
- [P2] ShellyLocalOnboarder matched an existing row by IP BEFORE the Shelly id,
  so a DHCP-reassigned IP could let one Shelly overwrite an unrelated device.
  Now matches by stable Shelly id first and reuses an IP row only when it's the
  same (or an unidentified) device.

+3 tests (light attrs, housekeeping dropped, IP-reuse no hijack). Suite 71 green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 09:51:56 +02:00
..
Console/Commands feat(shelly): local HTTP/RPC transport — add by IP like Home Assistant 2026-07-18 09:48:35 +02:00
Events Phase 5: UniFi presence — poll, person↔client mapping 2026-07-18 00:31:32 +02:00
Http/Controllers Phase 1: bootstrap — Docker stack, Laravel 13, design system, auth 2026-07-17 21:06:20 +02:00
Jobs feat(shelly): local HTTP/RPC transport — add by IP like Home Assistant 2026-07-18 09:48:35 +02:00
Listeners feat(automations): trigger→condition→action engine with cooldown + dry-run 2026-07-18 01:11:02 +02:00
Livewire feat(shelly): local HTTP/RPC transport — add by IP like Home Assistant 2026-07-18 09:48:35 +02:00
Models fix: preserve raw input value on role/invert change; strict isOnline (R15) 2026-07-18 09:03:00 +02:00
Providers feat(automations): trigger→condition→action engine with cooldown + dry-run 2026-07-18 01:11:02 +02:00
Services fix(shelly): round-trip light brightness/rgb; don't hijack a reused IP (R15) 2026-07-18 09:51:56 +02:00
Support fix(shelly): round-trip light brightness/rgb; don't hijack a reused IP (R15) 2026-07-18 09:51:56 +02:00