Smart thermostat: live demo
healthy Pulse 59820324 · 2026-11-13T22:42:14Z · Changes things: suggests and waits for a yes (A3 demonstration)
A thermostat, its hub and a gas boiler. Every change to the heating waits for a person to press the thermostat's own button, the mock AI's suggestions too. HEART runs on the hub at the boiler, beside the control firmware. The wall unit's button is the proof that a person is in the house.
Next in its story: actuators.short-cycling in about 4 minutes.
What HEART Hub receives
Only the public Pulse and public alerts: the status and fault codes. Nothing else ever leaves the device.
| Status | healthy | public | |
| Wall unit batteries | ok | public |
What stays on the device
The owner or clinic sees these locally with a key. They are never reported.
| Room temperature | 21.19 Cel | internal | |
| Setpoint (changes at the button) | 21 Cel | internal | |
| Boiler firing | no | internal | |
| Burner starts, 10 min | 1 1 | internal | |
| Wi-Fi | up | internal | |
| Night temperature, 23:00 to 06:00 | off | private | |
| Someone home | yes | private |
Alerts in the last hour
| Fault code | Severity | Status | Raised (UTC) | What HEART says |
|---|---|---|---|---|
system.main-function-lostThe system cannot do its main job. Every HEART MUST be able to detect this. | critical | resolved 22:38:30 | 22:32:05 | The boiler does not heat when the thermostat calls for heat. Called for heat for over 2 minutes, but the burner has not fired. The house will get cold. Check the boiler's display and gas supply, or call the installer. No fix HEART can make: it never resets a boiler. |
sensors.out-of-rangeA reading is outside what is physically possible. | error | resolved 22:27:30 | 22:26:05 | The room sensor reads an impossible temperature. The room sensor reads -40.0 C. The firmware ignores it and keeps the last good reading. The sensor needs replacing. |
sensors.stuckA reading has not changed when it should have. | error | resolved 22:21:00 | 22:18:05 | The room temperature reading has stopped changing. The room reading has been exactly 20.84 C for over 90 s. The thermostat is controlling to a frozen value. Change the batteries or restart the wall unit. |
connectivity.link-lostA network link is down. | warning | resolved 22:14:30 | 22:11:05 | The thermostat has lost its Wi-Fi link. The thermostat goes on heating as set, but cannot report until the Wi-Fi is back. Check the router. |
performance.overshootA controlled value goes past its target by more than the system's stated limit, such as a room getting colder than its setpoint. | warning | resolved 22:03:30 | 22:01:05 | The room is much warmer than its target. Room 22.6 C against a target of 20 C. The heating is off, so the heat comes from elsewhere (strong sun). Close the blinds or open a window: HEART cannot cool. |
power.battery-lowThe battery needs charging soon. | warning | resolved 21:59:30 | 21:55:05 | The thermostat's batteries are low. About 28 days left (2.3 V). Replace both AA cells. |
actuators.short-cyclingIt switches on and off far too often. | warning | resolved 21:52:00 | 21:46:05 | The boiler switches on and off far too often. 4 burner starts in 10 minutes, each flame lasting under a minute. Bleed the radiators and check the pump, or call the installer. The anti-short-cycle timers are the firmware's. |
What it changed, and who decided
A replay: the Action log of its one-hour story, the same changes every hour, as the downloadable simulator records them. On this page nothing is really asked, approved or changed.
| Time | Change | Started by | Result |
|---|---|---|---|
| 22:40 | night temperature 21 → 18 °C | MOCK AI, asking again 100 s after its suggestion lapsed | awaiting-approval: waiting for a press of the thermostat's button |
| 22:24 | night temperature 21 → 18 °C | MOCK AI (plain rules, not a model), initiator ai on behalf of the owner: the living room has been empty at night | expired: nobody pressed the button within 15 minutes. Nothing changed (22:39 UTC) |
| 22:19 | setpoint 21 → 22 °C | the owner (owner key) | refused 409 guard-failed: the room sensor's reading is not good (it is stuck) |
| 22:06 | setpoint 20 → 21 °C | the owner (owner key) | succeeded: a person pressed the thermostat's button (device-button) (22:08 UTC) |
Now do it for your own device and monitor it here: https://heartcortex.ai/monitor. Start from a template, follow the HEART specifications, then register your device with its claim code.
What is inside: the code, how it works, and the specifications it follows · All demo devices
A demonstration that replays a one-hour story. Refreshes every 10 seconds.