Home Assistant + NATS
HATSStream Home Assistant events into NATS in real time. React with subscriber services — no polling, no direct HA dependency.
Architecture
Home Assistant ──ws──▶ HATS ──pub──▶ NATS
└──▶ HTTP API (cached state, timers, schedules, commands)
Features
Real-time Streaming
State Changes
Entity state changes stream instantly to NATS subjects — no polling required.
Cached State
Fast Reads
Entity state cached in JetStream KV — subscriber reads never hit Home Assistant.
Event-driven
Timers & Commands
Countdown timers, cron schedules, and HTTP-to-NATS command bridge.
NATS Topics
| Subject | Fires when |
| homeassistant.states.{domain}.{entity}.{state} | Entity state changes |
| homeassistant.attributes.{domain}.{entity}.{state} | Attributes change, state unchanged |
| homeassistant.zha.{device_ieee} | ZHA device event |
| homeassistant.zwave-scene.{device_id} | Z-Wave JS scene |
| homeassistant.nfc.{tag_id} | NFC tag scanned |
| homeassistant.timers.{name}.finished | Timer expired |
| schedules.{name} | Cron schedule fired |
| command.{name} | HTTP command received |
Alpha software · Breaking changes may occur