You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: F454 – Thermostat states and target temperatures not initialized after startup #866
After starting Home Assistant, my thermostats only display the current temperature. Their operating states and target temperatures are not initialized correctly.
While investigating the issue, I found a note in the integration documentation stating that the F454 gateway is excluded from full thermoregulation status queries (*#4*<WHERE>##) because this command is considered unsupported. Instead, the integration only retrieves the measured temperature during startup.
However, I tested this command manually on my F454 (firmware 2.0) and confirmed that it works correctly.
When I manually send *#4*<WHERE>## for any thermostat, the gateway returns the complete status information, and the corresponding thermostat entity in Home Assistant immediately updates correctly, including its operating state and target temperature.
It seems that the F454 gateway should not be excluded from full thermoregulation status queries during startup.
I've attached a gateway trace showing the successful queries and responses.
Gateway Model
F454 (Audio/Video Web Server)
Gateway Firmware Version
2.0
Connection Type
Ethernet / IP (TCP port 20000, HMAC-SHA2 / SHA1 / OPEN password)
Home Assistant Version
2026.10.4
MyHOME Integration Version
2.0.0b17
Steps to Reproduce
Restart Home Assistant and capture the startup communication using Bus Monitor.
Manually send the shutters does not work in homekit #4## commands for individual thermostats through Bus Monitor and observe the responses and correct state updates in Home Assistant.
Log Snippets / Python Tracebacks / Why a Trace Is Unavailable
🛑 Before Submitting — Did You Check?
I have written this issue in English.
I have specified my MyHOME version (e.g. 2.0.0b16), Home Assistant version, Gateway model, and Gateway firmware version (or 'unknown / unavailable').
I have attached or pasted a MyHOME Bus Monitor trace, Diagnostics JSON, or relevant debug log / Python traceback / screenshot (or explained why a bus trace cannot be collected).
I found another gateway, MH202, that also supports the *#4*<WHERE>## command, even though it is currently marked as unsupported in the integration documentation. myhome_trace_MH202_all_2026-11-04T20-39-35.json
We observed a similar issue after migrating from the legacy integration to MyHOME v2. Before migration, all 10 climate entities worked normally. They correspond to 10 rooms.
After the migration and YAML reloads (without a full Home Assistant Core restart at that point), measured temperatures were available, but target temperatures and heating state/action were missing or shown as unknown across the heating entities.
Our gateway is a MyHomeServer1. It had initially been configured as an F454 in Home Assistant; we changed the configured model to MyHomeServer1 after HA reported a gateway identity mismatch.
Sending a global 22 °C setpoint command to all 10 heating entities from Home Assistant caused them to show usable values again. After that, our existing automation could update them.
We have not yet tested whether an explicit *#4*<WHERE>## status query produces the same recovery. Could the global setpoint command be triggering a state refresh, or does this point to the startup status query being skipped for MyHomeServer1 as well? I noticed that PR #867 covers F454 and MH202; MyHomeServer1 may be another gateway model worth checking.
When migrating, your gateway was initially configured as an F454. In v2.0.0b17, the F454 profile conservatively restricted startup polling to temperature only (*#4*Z*0##) and skipped full zone status requests (*#4*Z##). Because of this:
Measured temperatures were displayed, but target temperatures and heating modes remained unknown / None.
Performing a "YAML reload" in Home Assistant only reloads YAML domains (scripts/automations); it does not reload config entry integrations or re-run entity setup.
Since climate entities are event-driven (should_poll = False), they never sent another poll while waiting for bus traffic.
Sending the global 22 °C setpoint command transmitted a write frame onto the bus, which caused the gateway to broadcast updated state frames and hydrate the entities.
PR fix(climate): poll *#4*Z## on F454 & MH202 and harvest partial NACK responses (#866) #867 fully enables *#4*Z## zone status polling on F454 and MH202. Even if a plant starts up configured as an F454 (e.g. before in-band identity detection completes or during initial setup), it will now query *#4*Z## and fully hydrate all zone target temperatures and operating modes at cold start.
MyHomeServer1 itself is already fully enabled:MyHomeServer1 already has supports_zone_status = True and is not restricted to temperature-only polling. Ground-truth traces from live MyHomeServer1 gateways (e.g. PR fix(climate): keep AUTO zones on season frames, write generic setpoint mode #649, FW 3.87.13) confirm that *#4*<WHERE>## immediately returns all 5 frames (Dim 0 temp, Dim 12 effective setpoint & probe status, *4*1*Z## mode, Dim 14 base setpoint, Dim 13 offset) directly from its internal cache.
3. Test the PR #867 build directly in Home Assistant
If you'd like to test the current PR build on your system right away, open the Home Assistant Terminal & SSH add-on (or container shell), paste the following command block, and press Enter:
After the command prints OK: Installed PR #867...:
Restart Home Assistant (Developer Tools → YAML → Restart).
With your gateway set to MyHomeServer1 (or even F454), observe that on startup all 10 climate entities now query *#4*<WHERE>## and immediately populate both target temperatures and heating modes automatically.
4. How to revert back to your previous version
The install script creates a backup at ${DIR}.bak. To revert back at any time, run:
DIR=""forDin /homeassistant/custom_components/myhome /config/custom_components/myhome /root/config/custom_components/myhome;do
[ -f"$D/manifest.json" ] || [ -d"${D}.bak" ] && DIR="$D"&&breakdoneif [ -d"${DIR}.bak" ];then
rm -rf "$DIR"&&
mv "${DIR}.bak""$DIR"&&echo"OK: Restored previous version from backup — please restart Home Assistant!"elseecho"ERROR: Backup directory ${DIR}.bak not found! You can reinstall the release via HACS."fi
(Alternatively, you can re-download/reinstall the release directly from HACS).
Activity
xduss commentedon Nov 4, 2026
I found another gateway, MH202, that also supports the
*#4*<WHERE>##command, even though it is currently marked as unsupported in the integration documentation.myhome_trace_MH202_all_2026-11-04T20-39-35.json
feat(climate): enable point-to-point zone status queries on MH202 (Op…
test(climate): commit live MH202 FW 1.0 zone status trace and replay …
Merge pull request #869 from GreenGrassBlueOcean/trace/issue-866-mh20…
test(climate): calibrate MH202 catalogue codes in SCS alias zone stat…
stefanvitz commentedon Nov 5, 2026
Additional datapoint: MyHomeServer1, 10 heating entities
We observed a similar issue after migrating from the legacy integration to MyHOME v2. Before migration, all 10 climate entities worked normally. They correspond to 10 rooms.
After the migration and YAML reloads (without a full Home Assistant Core restart at that point), measured temperatures were available, but target temperatures and heating state/action were missing or shown as unknown across the heating entities.
Our gateway is a MyHomeServer1. It had initially been configured as an F454 in Home Assistant; we changed the configured model to MyHomeServer1 after HA reported a gateway identity mismatch.
Sending a global 22 °C setpoint command to all 10 heating entities from Home Assistant caused them to show usable values again. After that, our existing automation could update them.
We have not yet tested whether an explicit
*#4*<WHERE>##status query produces the same recovery. Could the global setpoint command be triggering a state refresh, or does this point to the startup status query being skipped for MyHomeServer1 as well? I noticed that PR #867 covers F454 and MH202; MyHomeServer1 may be another gateway model worth checking.GreenGrassBlueOcean commentedon Nov 5, 2026
Hi @stefanvitz, thank you for the detailed feedback!
We have already solved this issue in PR #867.
1. What caused the issue on your system
When migrating, your gateway was initially configured as an F454. In v2.0.0b17, the
F454profile conservatively restricted startup polling to temperature only (*#4*Z*0##) and skipped full zone status requests (*#4*Z##). Because of this:unknown/None.should_poll = False), they never sent another poll while waiting for bus traffic.2. How PR #867 resolves this
*#4*Z##zone status polling on F454 and MH202. Even if a plant starts up configured as an F454 (e.g. before in-band identity detection completes or during initial setup), it will now query*#4*Z##and fully hydrate all zone target temperatures and operating modes at cold start.MyHomeServer1already hassupports_zone_status = Trueand is not restricted to temperature-only polling. Ground-truth traces from live MyHomeServer1 gateways (e.g. PR fix(climate): keep AUTO zones on season frames, write generic setpoint mode #649, FW 3.87.13) confirm that*#4*<WHERE>##immediately returns all 5 frames (Dim 0 temp, Dim 12 effective setpoint & probe status,*4*1*Z##mode, Dim 14 base setpoint, Dim 13 offset) directly from its internal cache.3. Test the PR #867 build directly in Home Assistant
If you'd like to test the current PR build on your system right away, open the Home Assistant Terminal & SSH add-on (or container shell), paste the following command block, and press Enter:
After the command prints
OK: Installed PR #867...:MyHomeServer1(or evenF454), observe that on startup all 10 climate entities now query*#4*<WHERE>##and immediately populate both target temperatures and heating modes automatically.4. How to revert back to your previous version
The install script creates a backup at
${DIR}.bak. To revert back at any time, run:(Alternatively, you can re-download/reinstall the release directly from HACS).
GreenGrassBlueOcean commentedon Nov 8, 2026
@stefanvitz did you already have time to test this?
fix(climate): poll *#4*Z## on F454 and harvest partial NACK responses (…
Merge pull request #867 from GreenGrassBlueOcean/fix/issue-866-f454-z…