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
Non riesco a comandare da home assistant un attuatore f430/2 con collegati 2 scalda salviette senza la gestione della temperatura ma semplicemente con un on/off dall'home touch di bticino i due comandi funzionano perfettamente. In HA li vedo come due zone "climate zone 7" e "climate zone 8" ma non riesco a comandarli a qualcuno è già capitato? per il resto la domotica è perfettamente integrata e funzionante. Il mio è un MYHOMESERVER1 programmato in precedenza con home project senza centrale di termoregolazione in quanto è presente l'home touch. home assistant è aggiornato alla versione 2.0.0b15
Thanks for reporting this! First, a quick note: please write in English when opening or replying to issues so everyone in the community can follow along.
We would really like to take a look at this and support your setup properly. The whole reason behind the v2 Phase 1 rewrite (currently in beta) is to base every feature on real bus traces from actual hardware so that it works reliably rather than guessing protocol behavior.
Why this is happening
The F430/2 is a WHO=4 (thermoregulation) actuator rather than a standard WHO=1 switch. When its relays report their state on the bus for Zones 7 and 8 (e.g. via WHO=4 Dimension 19/20 status frames), Home Assistant discovers them as climate.climate_zone_7 and climate.climate_zone_8.
However, standard WHO=4 climate entities in Home Assistant turn a zone on by sending a target temperature setpoint (*#4*Z*#14*TTTT*M##) to a zone thermostat probe or central unit. Because your two towel warmers (scaldasalviette) are wired to the F430/2 without a temperature probe, there is no probe or setpoint in Zones 7 and 8. To support controlling them from Home Assistant, we need to see the exact OpenWebNet frames that your BTicino Home Touch (and gateway) sends on the bus when toggling them ON and OFF.
What we need from you
Could you please reply (in English) with the following information:
System & Gateway details:
MyHOME integration version (whether you are on 1.x or which 2.0.0b... beta of the v2 Phase 1 rewrite — please test on the latest 2.0.0b16 if you aren't already) and Home Assistant version
Gateway model and firmware version (e.g. MyHOMEServer1, F454, MH202, etc.)
Whether your plant also has a physical temperature central unit (3550 or 4695)
A bus trace while toggling the towel warmers from the Home Touch:
Option A — Built-in MyHOME Bus Monitor (easiest, fully anonymized):
Open the MyHOME Bus Monitor panel/card in Home Assistant and click Start Trace (or Clear).
On your BTicino Home Touch, turn Zone 7 ON, wait ~5 seconds, and turn Zone 7 OFF (and do the same for Zone 8).
Try turning Zone 7 ON/OFF once from Home Assistant as well so both appear in the same capture.
Click 💾 Export Trace (or 📋 Copy Trace) and attach/paste it here.
Option B — Home Assistant Debug Log:
Go to Settings → Devices & Services → MyHOME and click Enable debug logging.
Toggle Zone 7 and Zone 8 ON and OFF from the BTicino Home Touch (and once from Home Assistant).
Click Disable debug logging and attach the downloaded log file here.
🔒 Privacy note: Both the MyHOME Bus Monitor trace export (💾 Export Trace / 📋 Copy Trace) and the Download diagnostics JSON produce anonymous traces that automatically strip all private/household fields (passwords, PINs, tokens, IP addresses, full MAC addresses, SSDP UDNs, and local file paths) — only your gateway model, firmware version, and raw OpenWebNet bus frames are included.
Once we have the trace showing what the Home Touch sends on the bus, we can see exactly how it drives the F430/2 and how to handle it cleanly!
I reported a very similar issue in September with MyHomeServer1 and an F430/4, using towel warmers as simple ON/OFF loads rather than temperature-controlled zones.
In my case, the affected zones were 9 and 10. They worked from both Home Touch and Home + Control, but we could not control them through OpenWebNet.
I captured the bus traffic while operating them from Home Touch, and the frames were identical to those observed when using Home + Control:
We tried sending the same captured frames back through OpenWebNet to control the towel warmers, but without success. We therefore did not establish a working command sequence.
This looks like the same category of issue, although the actuator model differs (F430/4 versus F430/2). The new trace could still help, but capturing from Home Touch was already part of our earlier investigation.
Thanks @xtimmy86x — those captured frames (*#4*9#1*20*1##, *#4*9#1*20*0##, and *4*4002*9##) are the exact clue we needed!
Why sending *#4*9#1*20*1## back did not switch the towel warmer
In OpenWebNet, *#4*9#1*20*1## (with 20, without a # prefix) is a status report emitted by the F430/4 (or F430/2) actuator after its relay switches. When you send *#4*9#1*20*1## or *#4*9#1*20*0## into a command session without #, MyHomeServer1 treats it as a read/status query (*#4*9#1*20##) and ignores the trailing *1 / *0.
We verified how MyHomeServer1 (firmware 028206) translates actuator commands onto the SCS bus:
To write Dimension 20, MyHomeServer1 requires #20 (with the # write prefix).
Alternatively, MyHomeServer1 also translates *4*4001*...## (ON) and *4*4002*...## (OFF) onto the SCS bus (which matches the *4*4002*9## frame you saw when switching off).
Could you test these 3 command pairs?
@xtimmy86x (using Zone 9) and @Daniele89edspc (using Zone 7, replacing 9 with 7 below), could you test which of the following command pairs physically switches your F430/4 / F430/2 towel warmer ON and OFF?
You can send them directly from Home Assistant via Developer Tools → Actions → myhome.send_message (pass the frame in the message field):
ON: *4*4001*9## (and if that does not switch it, try *4*4001*9#1##)
OFF: *4*4002*9## (or *4*4002*9#1##)
As soon as we know which command pair physically toggles the F430 relay on your systems, we can wire up native ON/OFF support for probe-less WHO=4 towel warmer zones in the integration!
Hello everyone apologies for my first message being in Italian; this is my first time posting here. This morning, I ran some tests by entering the three pairs of commands you suggested directly into the bus monitor. The result for the first pair is: I transmit TX:*#4*7#1*#20*1##, followed by RX:*#4*7#1*#20*1## and immediately after, RX:*#4*7#1*20*0. The same applies to the second pair, though I can hear the actuator in the electrical panel changing state. As for the third pair, it produces no response whatsoever.
I don't understand why the actuator immediately changes its state to "automatic" once a command is sent. I have checked the firmware version of my MyHome Server 1; it is currently 2.87.13, but I see that version 3.87.13 is already available.
I don't understand why the actuator immediately changes its state to "automatic" once a command is sent. I have checked the firmware version of my MyHome Server 1; it is currently 2.87.13, but I see that version 3.87.13 is already available.
I’m seeing the same behavior on my installation with MyHomeServer1 firmware 2.87.13 and an F430/4.
When I send:
*#4*9#1*#20*1##
the actuator briefly switches ON, then immediately switches OFF again instead of remaining on.
Thank you both @Daniele89edspc and @xtimmy86x — running those tests on both plants (F430/2 on Zones 7/8 and F430/4 on Zones 9/10) and seeing the exact same behavior (relay physically clicks ON on *#4*<Z>#1*#20*1##, then immediately clicks back OFF with *#4*<Z>#1*20*0##) gave us the exact answer!
Why MyHomeServer1 immediately switches the actuator back OFF
(@Daniele89edspc: upgrading MyHomeServer1 from 2.87.13 to 3.87.13 will not change this — it is intentional behavior in MyHomeServer1's internal thermoregulation daemon.)
We traced and ran MyHomeServer1's Home + Project stack (openserver + bt_termo + bt_luci + bt_thermo_manager + bt_smart_home_manager + scheduling_manager) in closed-loop QEMU firmware emulation against an F430 actuator and reproduced the exact behavior frame-for-frame:
Towel warmers (BNTR) are managed separately from thermostat zones (BNTH):
When an F430/2 or F430/4 channel is configured in Home + Project as a probe-less Towel Warmer (Scaldasalviette), MyHomeServer1's bt_thermo_manager registers it in a dedicated internal towels table rather than as a standard thermostat zone, and keeps an internal authoritative desired state (0 = OFF, 1 = ON).
Home Touch and Home + Control bypass OpenWebNet port 20000 for commands:
When you toggle the towel warmer from Home Touch or Home + Control, they do not send an OpenWebNet command on port 20000. Instead, they call an internal JSON-RPC method (towel.setSync) inside MyHomeServer1, which updates bt_thermo_manager's internal desired state first and then sends *#4*<Z>#1*#20*1## / *0## onto the SCS bus.
Why OpenWebNet #20 clicks ON and immediately reverts OFF (and vice versa):
When Home Assistant sends *#4*7#1*#20*1## (or *#4*7*#20*1##), bt_termo puts it onto the SCS bus and the F430 relay physically switches ON (*#4*7#1*20*1##). bt_thermo_manager sees that the relay's Dimension 20 state (1) does not match its internal desired state (0), logs <thm> Force towel <uuid> to off, and immediately sends *#4*7#1*#20*0## to force the relay back OFF.
Conversely, when the towel warmer is turned ON via towel.setSync and Home Assistant sends *#4*7#1*#20*0##, bt_thermo_manager logs <thm> Force towel <uuid> to on and immediately sends *#4*7#1*#20*1## to force it back ON. (Meanwhile, *4*4001*...## and *4*4002*...## are circulation-pump demand/release notifications rather than zone relay commands, which is why they produced no response.)
(Note: on classic gateways without bt_thermo_manager such as F454 or MH200N, *#4*<Z>#1*#20*1## / *0## switches a probe-less F430 directly without being reverted.)
Verified local OpenWebNet control paths on MyHomeServer1
In our closed-loop MyHomeServer1 emulation, we also tested how to trigger towel.setSync100% locally over OpenWebNet port 20000 via MyHomeServer1's native Scenario / Automation engine (bt_smart_home_manager + scheduling_manager):
Important finding (WHO=25 CEN+ vs WHO=15 CEN): bt_smart_home_manager's ButtonManager triggers Home + Project Scenarios on WHO=25 CEN+ (*25*21#<btn>*<WHERE>## — broadcast on SCS, ACKed *#*1## with zero physical CEN+ hardware required!), whereas legacy WHO=15 CEN (*15*...) is ignored by ButtonManager.
Both WHO=25 CEN+ Scenarios (*25*21#1*21## → scene.setStatus → towel.setSync(1) → *#4*7#1*20*1##) and WHO=1 Spare Channel Automations (*1*1*<WHERE>## → light.onSync → towel.setSync(1) → *#4*7#1*20*1##) switched the F430 relay ON and OFF permanently with zero revert, while keeping Home Touch and Home + Control completely synchronized!
Optional real-hardware confirmation while we open the PR
We are putting together a PR now (building on #792) to support probe-less WHO=4 thermo actuator / towel-warmer switches natively in the UI and YAML (suppressing broken probe-less climate zones, using direct #20 writes on standalone gateways, and supporting CEN+ / custom OpenWebNet triggers for MyHomeServer1 towel warmers).
If either of you gets a chance to verify on your physical plant too, here are the quick tests:
1. Quick 10-second inverse-lock confirmation (no configuration changes needed)
Turn the towel warmer ON from Home Touch or Home + Control and wait ~5 seconds.
From Home Assistant (Developer Tools → Actions → myhome.send_message), send *#4*7#1*#20*0## (@Daniele89edspc) or *#4*9#1*#20*0## (@xtimmy86x).
Confirm that the relay briefly clicks OFF and MyHomeServer1 immediately forces it back ON (*#4*<Z>#1*20*1##).
2. Local OpenWebNet control test via MyHomeServer1 Scenario / Automation
Option A — Virtual CEN+ (WHO=25) scenario trigger(if you have Home + Project access or an existing unused CEN+ object — note: must be CEN+ WHO=25, not legacy CEN WHO=15):
Configure a virtual CEN+ scenario object (for example object 1 → OpenWebNet WHERE = 21, buttons 1 and 2).
Bind two Scenarios (Towel ON on Button 1, Towel OFF on Button 2) that switch the towel warmer ON and OFF.
From Home Assistant (myhome.send_message), send:
ON: *25*21#1*21##
OFF: *25*21#2*21##
Verify in the MyHOME Bus Monitor that the towel warmer switches ON and stays ON (*#4*<Z>#1*20*1##), and switches OFF (*#4*<Z>#1*20*0##), staying in sync with Home Touch and Home + Control!
Option B — Spare WHO=1 relay channel trigger in Home + Control(no Home + Project installer access needed if you have any unwired/spare light or relay output):
In Home + Control, create two Automations triggered by that spare WHO=1 channel turning ON → Towel Warmer ON, and turning OFF → Towel Warmer OFF.
Toggle that spare light / switch entity from Home Assistant and verify that the towel warmer switches ON and OFF cleanly without reverting.
Reverse interlock test: I turn on the towel warmer via Home + Control and see the following on the bus monitor: #47#1*#201##. When I send #47#1#200##, the contact deactivates but immediately turns back on. I also tried creating a scenario in Home Project with a light turning on as the trigger, but I keep seeing the same message: #47#1#20*0##. Perhaps I am making a mistake when creating the scenario; I tried the same thing in Home Control and, again, I see the same code appear.
Thank you @Daniele89edspc — that test actually proves two really important things, and we now have #817 ready for both you and @xtimmy86x to test directly on your setups!
1. Why your Scenario sent *#4*7#1*#20*0## (and why that's great news!)
Your Scenario → bt_thermo_manager pipeline IS working:
Seeing *#4*7#1*#20*0## appear on the Bus Monitor as soon as the trigger light turned on means MyHomeServer1 (scheduling_manager → BntrActionRunner) did call towel.setSync inside bt_thermo_manager — which updates its internal lock state so it will not revert!
Why it sent *0## instead of *1##:
We checked BntrActionRunner and towel.setSync in the MyHomeServer1 firmware: when you add a Towel Warmer to a Scenario's Actions list in Home + Project or Home + Control, selecting the device adds it in its default OFF state (status: 0).
Quick 5-second proof right now: Turn the towel warmer ON in Home + Control, then turn on your trigger light — your existing scenario (*#4*7#1*#20*0##) should turn the towel warmer OFF and keep it OFF without reverting!
To get *#4*7#1*#20*1## (Turn ON): Edit (or create a second) Scenario, and after adding the Towel Warmer to the Actions list, tap the Towel Warmer card/icon inside the scenario's Actions list to change its target state from OFF to ON (or select a Boost duration) before saving.
Once both scenarios work (*#4*<Z>#1*#20*1## for ON and *#4*<Z>#1*#20*0## for OFF), you can bind their triggers to two virtual CEN+ (WHO=25) buttons in Home + Project (no extra hardware needed — e.g. Object 1 → OpenWebNet WHERE = 21, Button 1*25*21#1*21## for ON and Button 2*25*21#2*21## for OFF) or to a spare WHO=1 channel, instead of a room light.
(Bonus: your Bus Monitor log showing *#4*7#1*#20*1## with #20 also caught a real-hardware detail — we updated #817 so the switch entity tracks #20 write frames on the event session in real time as well as 20 status replies!)
2. Test PR #817 directly from the Home Assistant shell
@Daniele89edspc and @xtimmy86x, if you'd like to test #817 right away, run this from the Home Assistant Terminal & SSH add-on (or container shell) and then restart Home Assistant (Developer Tools → YAML → Restart):
Turn ON command(optional on standalone gateways; required on MyHomeServer1BNTR towel warmers): your ON scenario trigger frame, e.g. *25*21#1*21## (or *1*1*<spare_where>##)
Turn OFF command: your OFF scenario trigger frame, e.g. *25*21#2*21## (or *1*0*<spare_where>##)
Verify that:
Any broken temperature-less climate.climate_zone_7 / 8 / 9 / 10 ghost entity on those zones is automatically cleaned up,
Toggling the towel warmer in Home + Control / Home Touch immediately updates the new switch entity in Home Assistant in real time (*#4*<Z>#1*#20*1/0##), and
Toggling the switch entity in Home Assistant switches the towel warmer ON and OFF without reverting (and if you leave the trigger commands blank on MyHomeServer1, HA detects the ~0.16 s revert and logs a clear warning explaining why).
I cannot find this procedure: Click ⋮ → Add thermo actuator / towel-warmer switch (WHO 4) on your MyHomeServer1 entry for each towel warmer:
WHERE: 7#1 / 8#1 (@Daniele89edspc) or 9#1 / 10#1 (@xtimmy86x)
Turn ON command (optional on standalone gateways; required on MyHomeServer1 BNTR towel warmers): your ON scenario trigger frame, e.g. 2521#121## (or 11<spare_where>##)
Turn OFF command: your OFF scenario trigger frame, e.g. 2521#221## (or 10<spare_where>##).
In HA, within MYHOME, I still see 'climatezone 7' and 'climatezone 8'—is this correct?
If your Home Assistant is still running 2.0.0b15 or 2.0.0b16 from HACS, that menu option isn't in your installed files yet.
2. Why you still see 'Climate Zone 7' and 'Climate Zone 8' — is this correct?
Yes, before adding 7#1 and 8#1 as towel-warmer switches, that is completely normal!
Because Climate Zone 7 and Climate Zone 8 were already saved in Home Assistant's Entity Registry from 2.0.0b15, Home Assistant keeps them until it knows Zones 7 and 8 are probe-less towel warmers (so it never deletes a real thermostat whose temperature probe hasn't reported yet).
Check that the terminal printed OK: Installed MyHOME v2-phase1 ....
Restart Home Assistant (Developer Tools → YAML → Restart / Strumenti per sviluppatori → YAML → Riavvia).
Hard-refresh your browser (Ctrl + F5 on Windows / Cmd + Shift + R on Mac) so Home Assistant loads the new menu labels.
Go to Settings → Devices & Services → MyHOME (Impostazioni → Dispositivi e servizi → MyHOME — click the MyHOME integration card to open the hub page).
You will now see + Aggiungi attuatore termo / scaldasalviette (WHO 4)(or + Add thermo actuator / towel-warmer switch (WHO 4) in English) both as a + button at the top right of the page and inside the ⋮ menu next to your MyHomeServer1 hub!
Add 7#1 and 8#1 (with your paired ON/OFF scenario trigger frames) — Climate Zone 7 and Climate Zone 8 will disappear automatically and your two new switch entities will appear.
Fantastic, everything works perfectly! The switch on the dashboard activates the towel warmer, and the status updates in the Home+Control app—and it works the other way around, too. My final question is: if I’m at a client’s home (or, in this case, my own) and I don’t have two trigger buttons available to launch the scenario—which is the only way to create a CEN+ scenario—how can I still get the whole mechanism to work?
Thank you so much for testing on your live plant and confirming everything works in both directions, @Daniele89edspc! 🎉
We are merging #825 now so the complete fix (including the Italian UI flow and ghost-entity prevention) will ship out of the box in 2.0.0b17 on HACS.
How to set this up when no two visible wall buttons are free
Great question from an installer's perspective! In MyHomeServer1, Home + Project only assigns an OpenWebNet Scene_Address (*25*21#<btn>*2<N>##) when a scenario is linked to a button slot — an "app-only" scenario does not get an OpenWebNet bus address, so *25*... on port 20000 has nothing to trigger.
When you are at a client's home where every visible wall button is already controlling a room load, you have three clean ways to trigger the two Towel Warmer scenarios locally without giving up any wall switch:
1. Unpopulated button slots on existing SCS modules (WHO = 25 CEN+, zero wall keys lost)
Even when every wall plate is in use, most plants already have unused logical button slots on the bus that Home + Project lets you bind to CEN+ scenarios without changing any physical keycap:
2-module controls with a 1-button (single-rocker) keycap (H4652/2, L4652/2, K4652M2, LN4652, KW8010 / KW8011 / KW8013): if a control only drives 1 light with a single wide keycap, its unused slot(s) still appear in Home + Project (LN4652 exposes up to 6 scenario slots; KW801x exposes 3–4 slots). You can assign the ON and OFF CEN+ scenarios (*25*21#1*2<N>## / *25*21#2*2<N>##) to those unpopulated slots — nobody can press them accidentally on the wall, and OpenWebNet triggers them cleanly.
Flush 2-channel actuator-controls behind blind covers or in junction boxes (H4672M2, LN4672M2, K4672M2L): when used as hidden relays in a box, their two local pushbutton inputs remain unused in Home + Project and can hold the two CEN+ scenarios with zero physical pushbuttons attached.
2. A single unwired relay terminal (WHO = 1 — only 1 spare output needed, not 2)
Almost every electrical panel with multi-channel actuators (F411/4, F411/2, F430/4, K8002L, etc.) has at least one unwired output terminal:
In Home + Project, configure that one unwired channel as a light or socket (for example WHERE = 09, placed in a Technical / Utility room).
Create your two Scenarios/Automations in Home + Project or Home + Control:
Towel Warmer ON: Trigger = Channel 09 turns ON (*1*1*09##) → Action = Towel Warmer ON
Towel Warmer OFF: Trigger = Channel 09 turns OFF (*1*0*09##) → Action = Towel Warmer OFF
In Home Assistant, set Turn ON command = *1*1*09## and Turn OFF command = *1*0*09##.
3. Zero-SCS-slot fallback (Philips Hue trigger via Home Assistant emulated_hue)
In the rare case where every button slot and every relay terminal on the SCS bus is 100% occupied:
MyHomeServer1 natively supports pairing a local LAN Philips Hue bridge in Home + Project and using a Hue light turning ON/OFF as a Scenario trigger (BN3L).
Enabling Home Assistant's built-in emulated_hue integration exposes a virtual light on your local network that Home + Project can pair with and use to trigger the Towel Warmer ON/OFF scenarios — using zero SCS bus addresses or terminals.
Activity
GreenGrassBlueOcean commentedon Oct 24, 2026
Hi @Daniele89edspc,
Thanks for reporting this! First, a quick note: please write in English when opening or replying to issues so everyone in the community can follow along.
We would really like to take a look at this and support your setup properly. The whole reason behind the v2 Phase 1 rewrite (currently in beta) is to base every feature on real bus traces from actual hardware so that it works reliably rather than guessing protocol behavior.
Why this is happening
The F430/2 is a
WHO=4(thermoregulation) actuator rather than a standardWHO=1switch. When its relays report their state on the bus for Zones 7 and 8 (e.g. viaWHO=4Dimension 19/20 status frames), Home Assistant discovers them asclimate.climate_zone_7andclimate.climate_zone_8.However, standard
WHO=4climate entities in Home Assistant turn a zone on by sending a target temperature setpoint (*#4*Z*#14*TTTT*M##) to a zone thermostat probe or central unit. Because your two towel warmers (scaldasalviette) are wired to the F430/2 without a temperature probe, there is no probe or setpoint in Zones 7 and 8. To support controlling them from Home Assistant, we need to see the exact OpenWebNet frames that your BTicino Home Touch (and gateway) sends on the bus when toggling them ON and OFF.What we need from you
Could you please reply (in English) with the following information:
System & Gateway details:
1.xor which2.0.0b...beta of the v2 Phase 1 rewrite — please test on the latest2.0.0b16if you aren't already) and Home Assistant versionMyHOMEServer1,F454,MH202, etc.)3550or4695)⋮→ Download diagnostics)A bus trace while toggling the towel warmers from the Home Touch:
Once we have the trace showing what the Home Touch sends on the bus, we can see exactly how it drives the F430/2 and how to handle it cleanly!
xtimmy86x commentedon Oct 24, 2026
@GreenGrassBlueOcean
I reported a very similar issue in September with MyHomeServer1 and an F430/4, using towel warmers as simple ON/OFF loads rather than temperature-controlled zones.
In my case, the affected zones were 9 and 10. They worked from both Home Touch and Home + Control, but we could not control them through OpenWebNet.
I captured the bus traffic while operating them from Home Touch, and the frames were identical to those observed when using Home + Control:
After switching off, we also observed:
We tried sending the same captured frames back through OpenWebNet to control the towel warmers, but without success. We therefore did not establish a working command sequence.
This looks like the same category of issue, although the actuator model differs (F430/4 versus F430/2). The new trace could still help, but capturing from Home Touch was already part of our earlier investigation.
xtimmy86x commentedon Oct 24, 2026
For reference #429:
GreenGrassBlueOcean commentedon Oct 24, 2026
Thanks @xtimmy86x — those captured frames (
*#4*9#1*20*1##,*#4*9#1*20*0##, and*4*4002*9##) are the exact clue we needed!Why sending
*#4*9#1*20*1##back did not switch the towel warmerIn OpenWebNet,
*#4*9#1*20*1##(with20, without a#prefix) is a status report emitted by theF430/4(orF430/2) actuator after its relay switches. When you send*#4*9#1*20*1##or*#4*9#1*20*0##into a command session without#,MyHomeServer1treats it as a read/status query (*#4*9#1*20##) and ignores the trailing*1/*0.We verified how
MyHomeServer1(firmware028206) translates actuator commands onto the SCS bus:MyHomeServer1requires#20(with the#write prefix).MyHomeServer1also translates*4*4001*...##(ON) and*4*4002*...##(OFF) onto the SCS bus (which matches the*4*4002*9##frame you saw when switching off).Could you test these 3 command pairs?
@xtimmy86x (using Zone
9) and @Daniele89edspc (using Zone7, replacing9with7below), could you test which of the following command pairs physically switches yourF430/4/F430/2towel warmer ON and OFF?You can send them directly from Home Assistant via Developer Tools → Actions →
myhome.send_message(pass the frame in themessagefield):Actuator-addressed Dimension
#20write (9#1+#20):*#4*9#1*#20*1##*#4*9#1*#20*0##Zone-addressed Dimension
#20write (9+#20):*#4*9*#20*1##*#4*9*#20*0##WHAT
4001/4002commands:*4*4001*9##(and if that does not switch it, try*4*4001*9#1##)*4*4002*9##(or*4*4002*9#1##)As soon as we know which command pair physically toggles the
F430relay on your systems, we can wire up native ON/OFF support for probe-less WHO=4 towel warmer zones in the integration!Daniele89edspc commentedon Oct 25, 2026
Hello everyone apologies for my first message being in Italian; this is my first time posting here. This morning, I ran some tests by entering the three pairs of commands you suggested directly into the bus monitor. The result for the first pair is: I transmit
TX:*#4*7#1*#20*1##, followed byRX:*#4*7#1*#20*1##and immediately after,RX:*#4*7#1*20*0. The same applies to the second pair, though I can hear the actuator in the electrical panel changing state. As for the third pair, it produces no response whatsoever.Daniele89edspc commentedon Oct 25, 2026
I don't understand why the actuator immediately changes its state to "automatic" once a command is sent. I have checked the firmware version of my MyHome Server 1; it is currently 2.87.13, but I see that version 3.87.13 is already available.
xtimmy86x commentedon Oct 25, 2026
I’m seeing the same behavior on my installation with MyHomeServer1 firmware 2.87.13 and an F430/4.
When I send:
the actuator briefly switches ON, then immediately switches OFF again instead of remaining on.
GreenGrassBlueOcean commentedon Oct 25, 2026
Thank you both @Daniele89edspc and @xtimmy86x — running those tests on both plants (
F430/2on Zones 7/8 andF430/4on Zones 9/10) and seeing the exact same behavior (relay physically clicks ON on*#4*<Z>#1*#20*1##, then immediately clicks back OFF with*#4*<Z>#1*20*0##) gave us the exact answer!Why
MyHomeServer1immediately switches the actuator back OFFWe traced and ran
MyHomeServer1's Home + Project stack (openserver+bt_termo+bt_luci+bt_thermo_manager+bt_smart_home_manager+scheduling_manager) in closed-loop QEMU firmware emulation against anF430actuator and reproduced the exact behavior frame-for-frame:BNTR) are managed separately from thermostat zones (BNTH):When an
F430/2orF430/4channel is configured in Home + Project as a probe-less Towel Warmer (Scaldasalviette),MyHomeServer1'sbt_thermo_managerregisters it in a dedicated internaltowelstable rather than as a standard thermostat zone, and keeps an internal authoritative desired state (0= OFF,1= ON).20000for commands:When you toggle the towel warmer from Home Touch or Home + Control, they do not send an OpenWebNet command on port
20000. Instead, they call an internal JSON-RPC method (towel.setSync) insideMyHomeServer1, which updatesbt_thermo_manager's internal desired state first and then sends*#4*<Z>#1*#20*1##/*0##onto the SCS bus.#20clicks ON and immediately reverts OFF (and vice versa):*#4*7#1*#20*1##(or*#4*7*#20*1##),bt_termoputs it onto the SCS bus and theF430relay physically switches ON (*#4*7#1*20*1##).bt_thermo_managersees that the relay'sDimension 20state (1) does not match its internal desired state (0), logs<thm> Force towel <uuid> to off, and immediately sends*#4*7#1*#20*0##to force the relay back OFF.towel.setSyncand Home Assistant sends*#4*7#1*#20*0##,bt_thermo_managerlogs<thm> Force towel <uuid> to onand immediately sends*#4*7#1*#20*1##to force it back ON.(Meanwhile,
*4*4001*...##and*4*4002*...##are circulation-pump demand/release notifications rather than zone relay commands, which is why they produced no response.)(Note: on classic gateways without
bt_thermo_managersuch asF454orMH200N,*#4*<Z>#1*#20*1##/*0##switches a probe-lessF430directly without being reverted.)Verified local OpenWebNet control paths on
MyHomeServer1In our closed-loop
MyHomeServer1emulation, we also tested how to triggertowel.setSync100% locally over OpenWebNet port20000viaMyHomeServer1's native Scenario / Automation engine (bt_smart_home_manager+scheduling_manager):WHO=25CEN+ vsWHO=15CEN):bt_smart_home_manager'sButtonManagertriggers Home + Project Scenarios onWHO=25CEN+ (*25*21#<btn>*<WHERE>##— broadcast on SCS, ACKed*#*1##with zero physical CEN+ hardware required!), whereas legacyWHO=15CEN (*15*...) is ignored byButtonManager.WHO=25CEN+ Scenarios (*25*21#1*21##→scene.setStatus→towel.setSync(1)→*#4*7#1*20*1##) andWHO=1Spare Channel Automations (*1*1*<WHERE>##→light.onSync→towel.setSync(1)→*#4*7#1*20*1##) switched theF430relay ON and OFF permanently with zero revert, while keeping Home Touch and Home + Control completely synchronized!Optional real-hardware confirmation while we open the PR
We are putting together a PR now (building on #792) to support probe-less
WHO=4thermo actuator / towel-warmer switches natively in the UI and YAML (suppressing broken probe-lessclimatezones, using direct#20writes on standalone gateways, and supporting CEN+ / custom OpenWebNet triggers forMyHomeServer1towel warmers).If either of you gets a chance to verify on your physical plant too, here are the quick tests:
1. Quick 10-second inverse-lock confirmation (no configuration changes needed)
myhome.send_message), send*#4*7#1*#20*0##(@Daniele89edspc) or*#4*9#1*#20*0##(@xtimmy86x).MyHomeServer1immediately forces it back ON (*#4*<Z>#1*20*1##).2. Local OpenWebNet control test via
MyHomeServer1Scenario / AutomationWHO=25) scenario trigger (if you have Home + Project access or an existing unused CEN+ object — note: must be CEN+WHO=25, not legacy CENWHO=15):1→ OpenWebNetWHERE = 21, buttons1and2).myhome.send_message), send:*25*21#1*21##*25*21#2*21##*#4*<Z>#1*20*1##), and switches OFF (*#4*<Z>#1*20*0##), staying in sync with Home Touch and Home + Control!WHO=1relay channel trigger in Home + Control (no Home + Project installer access needed if you have any unwired/spare light or relay output):WHO=1channel turning ON → Towel Warmer ON, and turning OFF → Towel Warmer OFF.light/switchentity from Home Assistant and verify that the towel warmer switches ON and OFF cleanly without reverting.feat(switch,climate): support WHO=4 probe-less thermo actuator switch…
Daniele89edspc commentedon Oct 25, 2026
Reverse interlock test: I turn on the towel warmer via Home + Control and see the following on the bus monitor: #47#1*#201##. When I send #47#1#200##, the contact deactivates but immediately turns back on. I also tried creating a scenario in Home Project with a light turning on as the trigger, but I keep seeing the same message: #47#1#20*0##. Perhaps I am making a mistake when creating the scenario; I tried the same thing in Home Control and, again, I see the same code appear.
feat(switch,climate): support WHO=4 probe-less thermo actuator switch…
feat(switch,climate): support WHO=4 probe-less thermo actuator switch…
fix(switch): track WHO=4 #20 write echoes on event session (#785)
GreenGrassBlueOcean commentedon Oct 26, 2026
Thank you @Daniele89edspc — that test actually proves two really important things, and we now have #817 ready for both you and @xtimmy86x to test directly on your setups!
1. Why your Scenario sent
*#4*7#1*#20*0##(and why that's great news!)bt_thermo_managerpipeline IS working:Seeing
*#4*7#1*#20*0##appear on the Bus Monitor as soon as the trigger light turned on meansMyHomeServer1(scheduling_manager→BntrActionRunner) did calltowel.setSyncinsidebt_thermo_manager— which updates its internal lock state so it will not revert!*0##instead of*1##:We checked
BntrActionRunnerandtowel.setSyncin theMyHomeServer1firmware: when you add a Towel Warmer to a Scenario's Actions list in Home + Project or Home + Control, selecting the device adds it in its defaultOFFstate (status: 0).*#4*7#1*#20*0##) should turn the towel warmer OFF and keep it OFF without reverting!*#4*7#1*#20*1##(Turn ON): Edit (or create a second) Scenario, and after adding the Towel Warmer to the Actions list, tap the Towel Warmer card/icon inside the scenario's Actions list to change its target state from OFF to ON (or select a Boost duration) before saving.Once both scenarios work (
*#4*<Z>#1*#20*1##for ON and*#4*<Z>#1*#20*0##for OFF), you can bind their triggers to two virtual CEN+ (WHO=25) buttons in Home + Project (no extra hardware needed — e.g. Object1→ OpenWebNetWHERE = 21, Button1*25*21#1*21##for ON and Button2*25*21#2*21##for OFF) or to a spareWHO=1channel, instead of a room light.(Bonus: your Bus Monitor log showing
*#4*7#1*#20*1##with#20also caught a real-hardware detail — we updated #817 so the switch entity tracks#20write frames on the event session in real time as well as20status replies!)2. Test PR #817 directly from the Home Assistant shell
@Daniele89edspc and @xtimmy86x, if you'd like to test #817 right away, run this from the Home Assistant Terminal & SSH add-on (or container shell) and then restart Home Assistant (Developer Tools → YAML → Restart):
3. Configure & verify after restart
⋮→ Add thermo actuator / towel-warmer switch (WHO 4) on yourMyHomeServer1entry for each towel warmer:7#1/8#1(@Daniele89edspc) or9#1/10#1(@xtimmy86x)MyHomeServer1BNTRtowel warmers): your ON scenario trigger frame, e.g.*25*21#1*21##(or*1*1*<spare_where>##)*25*21#2*21##(or*1*0*<spare_where>##)climate.climate_zone_7/8/9/10ghost entity on those zones is automatically cleaned up,switchentity in Home Assistant in real time (*#4*<Z>#1*#20*1/0##), andswitchentity in Home Assistant switches the towel warmer ON and OFF without reverting (and if you leave the trigger commands blank onMyHomeServer1, HA detects the ~0.16 s revert and logs a clear warning explaining why).Merge pull request #817 from OpenWebNet-HA/feat/issue-785-thermo-actu…
Daniele89edspc commentedon Oct 26, 2026
I cannot find this procedure: Click ⋮ → Add thermo actuator / towel-warmer switch (WHO 4) on your MyHomeServer1 entry for each towel warmer:
WHERE: 7#1 / 8#1 (@Daniele89edspc) or 9#1 / 10#1 (@xtimmy86x)
Turn ON command (optional on standalone gateways; required on MyHomeServer1 BNTR towel warmers): your ON scenario trigger frame, e.g. 2521#121## (or 11<spare_where>##)
Turn OFF command: your OFF scenario trigger frame, e.g. 2521#221## (or 10<spare_where>##).
In HA, within MYHOME, I still see 'climatezone 7' and 'climatezone 8'—is this correct?
GreenGrassBlueOcean commentedon Oct 27, 2026
Hi @Daniele89edspc,
Great questions — here is why both happened and how to test the complete fix right away:
1. Why you couldn't find the
Add thermo actuator / towel-warmer switch (WHO 4)menu yet2.0.0b16was published, so it is not yet in2.0.0b15or2.0.0b16on HACS (it will be included in the upcoming2.0.0b17beta release).2.0.0b15or2.0.0b16from HACS, that menu option isn't in your installed files yet.2. Why you still see
'Climate Zone 7'and'Climate Zone 8'— is this correct?7#1and8#1as towel-warmer switches, that is completely normal!Climate Zone 7andClimate Zone 8were already saved in Home Assistant's Entity Registry from2.0.0b15, Home Assistant keeps them until it knows Zones7and8are probe-less towel warmers (so it never deletes a real thermostat whose temperature probe hasn't reported yet).7#1and8#1, the integration automatically reloads and deletes both ghostClimate Zone 7andClimate Zone 8entities (even after restarts when their restored state became"off", and fix(climate,i18n): prevent WHAT 4001/4002 ghost re-spawn on Z#N thermo switches and localize subentries (#785) #825 also ensures*4*4002*7##/*4*4002*8##pump-release frames never re-create them).3. Copy & paste these lines to install the latest v2 Phase 1 build (includes #817 + #825)
Open the Home Assistant Terminal & SSH add-on (or your HA container/host shell), paste this block, and press Enter:
4. After running the command:
OK: Installed MyHOME v2-phase1 ....Ctrl + F5on Windows /Cmd + Shift + Ron Mac) so Home Assistant loads the new menu labels.+ Aggiungi attuatore termo / scaldasalviette (WHO 4)(or+ Add thermo actuator / towel-warmer switch (WHO 4)in English) both as a+button at the top right of the page and inside the⋮menu next to yourMyHomeServer1hub!7#1and8#1(with your paired ON/OFF scenario trigger frames) —Climate Zone 7andClimate Zone 8will disappear automatically and your two newswitchentities will appear.fix(climate,i18n): prune restored-off ghosts on Z#N reload and defer …
Daniele89edspc commentedon Oct 27, 2026
Fantastic, everything works perfectly! The switch on the dashboard activates the towel warmer, and the status updates in the Home+Control app—and it works the other way around, too. My final question is: if I’m at a client’s home (or, in this case, my own) and I don’t have two trigger buttons available to launch the scenario—which is the only way to create a CEN+ scenario—how can I still get the whole mechanism to work?
fix(climate,ci): support HA 2026.11+ registry-indexed RestoreStateData (
GreenGrassBlueOcean commentedon Oct 27, 2026
Thank you so much for testing on your live plant and confirming everything works in both directions, @Daniele89edspc! 🎉
We are merging #825 now so the complete fix (including the Italian UI flow and ghost-entity prevention) will ship out of the box in
2.0.0b17on HACS.How to set this up when no two visible wall buttons are free
Great question from an installer's perspective! In
MyHomeServer1, Home + Project only assigns an OpenWebNetScene_Address(*25*21#<btn>*2<N>##) when a scenario is linked to a button slot — an "app-only" scenario does not get an OpenWebNet bus address, so*25*...on port20000has nothing to trigger.When you are at a client's home where every visible wall button is already controlling a room load, you have three clean ways to trigger the two Towel Warmer scenarios locally without giving up any wall switch:
1. Unpopulated button slots on existing SCS modules (
WHO = 25CEN+, zero wall keys lost)Even when every wall plate is in use, most plants already have unused logical button slots on the bus that Home + Project lets you bind to CEN+ scenarios without changing any physical keycap:
H4652/2,L4652/2,K4652M2,LN4652,KW8010 / KW8011 / KW8013): if a control only drives 1 light with a single wide keycap, its unused slot(s) still appear in Home + Project (LN4652exposes up to 6 scenario slots;KW801xexposes 3–4 slots). You can assign the ON and OFF CEN+ scenarios (*25*21#1*2<N>##/*25*21#2*2<N>##) to those unpopulated slots — nobody can press them accidentally on the wall, and OpenWebNet triggers them cleanly.H4672M2,LN4672M2,K4672M2L): when used as hidden relays in a box, their two local pushbutton inputs remain unused in Home + Project and can hold the two CEN+ scenarios with zero physical pushbuttons attached.2. A single unwired relay terminal (
WHO = 1— only 1 spare output needed, not 2)Almost every electrical panel with multi-channel actuators (
F411/4,F411/2,F430/4,K8002L, etc.) has at least one unwired output terminal:WHERE = 09, placed in a Technical / Utility room).09turns ON (*1*1*09##) → Action = Towel Warmer ON09turns OFF (*1*0*09##) → Action = Towel Warmer OFF*1*1*09##and Turn OFF command =*1*0*09##.3. Zero-SCS-slot fallback (
Philips Huetrigger via Home Assistantemulated_hue)In the rare case where every button slot and every relay terminal on the SCS bus is 100% occupied:
MyHomeServer1natively supports pairing a local LAN Philips Hue bridge in Home + Project and using a Hue light turning ON/OFF as a Scenario trigger (BN3L).emulated_hueintegration exposes a virtual light on your local network that Home + Project can pair with and use to trigger the Towel Warmer ON/OFF scenarios — using zero SCS bus addresses or terminals.We also added these three installer options directly to the Switches & Relays (
WHO = 4) documentation so they're documented for future installations!docs(switches): document Home + Project trigger options without spare…
Merge pull request #825 from OpenWebNet-HA/fix/issue-785-pump-ghost-a…