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> |
||
|---|---|---|
| .. | ||
| MqttListenCommand.php | ||