Skip to content

[Bug]: F454 – Thermostat states and target temperatures not initialized after startup #866

Closed

Description

@xduss

Bug Description (in English)

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

  1. Restart Home Assistant and capture the startup communication using Bus Monitor.
  2. 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.

📎 Bus Trace / Diagnostics JSON / Debug Log / Screenshot Attachment

myhome_trace_F454_all_2026-11-04T19-00-04.json

Bus Monitor Diagnostic Payload / Bus Trace

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).

Activity

  1. added
    bugSomething isn't working
    on Nov 4, 2026
  2. xduss commented on Nov 4, 2026

    @xduss
    Author

    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

  3. stefanvitz commented on Nov 5, 2026

    @stefanvitz

    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.

  4. GreenGrassBlueOcean commented on Nov 5, 2026

    @GreenGrassBlueOcean
    Contributor

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

    2. How PR #867 resolves this

    • 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:

    DIR=""
    for D in /homeassistant/custom_components/myhome /config/custom_components/myhome /root/config/custom_components/myhome; do
      [ -f "$D/manifest.json" ] && DIR="$D" && break
    done
    [ -z "$DIR" ] && echo "ERROR: custom_components/myhome not found!" || (
      SHA=cf0163297e64d8b0c2b2b1b09e0ad4ad16766819
      TMP=$(mktemp -d) &&
      curl -fsSL "https://github.com/OpenWebNet-HA/MyHOME/archive/$SHA.tar.gz" | tar -xz -C "$TMP" &&
      [ -f "$TMP/MyHOME-$SHA/custom_components/myhome/manifest.json" ] &&
      rm -rf "${DIR}.bak" &&
      cp -r "$DIR" "${DIR}.bak" &&
      rm -rf "$DIR" &&
      cp -r "$TMP/MyHOME-$SHA/custom_components/myhome" "$DIR" &&
      rm -rf "$TMP" &&
      echo "OK: Installed PR #867 ($SHA) into $DIR (backup saved to ${DIR}.bak) — now restart Home Assistant!"
    )

    After the command prints OK: Installed PR #867...:

    1. Restart Home Assistant (Developer Tools → YAML → Restart).
    2. 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=""
    for D in /homeassistant/custom_components/myhome /config/custom_components/myhome /root/config/custom_components/myhome; do
      [ -f "$D/manifest.json" ] || [ -d "${D}.bak" ] && DIR="$D" && break
    done
    if [ -d "${DIR}.bak" ]; then
      rm -rf "$DIR" &&
      mv "${DIR}.bak" "$DIR" &&
      echo "OK: Restored previous version from backup — please restart Home Assistant!"
    else
      echo "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).

  5. GreenGrassBlueOcean commented on Nov 8, 2026

    @GreenGrassBlueOcean
    Contributor

    @stefanvitz did you already have time to test this?

  6. added 2 commits that reference this issue on Nov 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions