With multiple Horizon workers, ingest jobs for one entity can finish out of order and overwrite newer state with older. The listener now stamps each message with a µs receive time (observed_at); IngestShellyMessage applies state only when the incoming message is newer (race-safe via a conditional update + unique guard), and broadcasts only when applied. Added a feature test for the ordering guard. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| Concerns | ||
| Command.php | ||
| Device.php | ||
| DeviceState.php | ||
| Entity.php | ||
| Room.php | ||
| User.php | ||