homeos/app/Models
HomeOS Bootstrap b85d2f60fe Phase 5: UniFi presence — poll, person↔client mapping
- UnifiClient service (art-of-wifi/unifi-api-client) talks to the local UDM with a
  read-only account (self-signed cert, verify_ssl off). Verified live: logged in
  and read 32 active clients.
- presence:poll command (scheduled every minute, withoutOverlapping): "home"
  immediately on association, "away" only after an 8-min debounce so iPhone WLAN
  sleep can't cause false-aways. Broadcasts PresenceChanged on the presence channel.
- Persons page: "Person hinzufügen" modal picks the representing device straight
  from the live UniFi client list (falls back to manual MAC entry if UniFi is down);
  the sweep then tracks that person's presence. mac + last_seen_home_at on persons.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 00:31:32 +02:00
..
Concerns Home dashboard + Host tab: device state & warnings, server status split out 2026-07-17 21:20:38 +02:00
Automation.php All sidebar tabs are real pages (zero console errors) 2026-07-18 00:16:16 +02:00
Command.php Phase 3: MQTT ingest — Mosquitto bus, Shelly driver, live device state 2026-07-17 22:51:14 +02:00
Device.php Fix R15: per-device MQTT ACLs, monotonic presence, real-device online semantics 2026-07-17 23:08:29 +02:00
DeviceState.php Fix R15: reject out-of-order MQTT state updates (concurrency) 2026-07-17 23:01:32 +02:00
DiscoveryFinding.php All sidebar tabs are real pages (zero console errors) 2026-07-18 00:16:16 +02:00
Entity.php Home dashboard + Host tab: device state & warnings, server status split out 2026-07-17 21:20:38 +02:00
Person.php Phase 5: UniFi presence — poll, person↔client mapping 2026-07-18 00:31:32 +02:00
Room.php Home dashboard + Host tab: device state & warnings, server status split out 2026-07-17 21:20:38 +02:00
User.php Phase 1: bootstrap — Docker stack, Laravel 13, design system, auth 2026-07-17 21:06:20 +02:00