Skip to content

Community Call for Real-World Gateway Traces: Help Us Eliminate Hardware Blind Spots! 📡 #466

Open

Description

@GreenGrassBlueOcean

Hello everyone! 👋

First and foremost, a huge thank you to everyone across the OpenWebNet community who has tested the V2 releases, diagnosed edge cases, reported bugs, and contributed real-world bus captures. Your feedback has made the integration faster, cleaner, and rock-solid with 100% test coverage.

However, to ensure this integration remains maintainable and reliable across all installations, we need to address an honest reality: we cannot guarantee code for hardware we cannot test against.

The Problem: We Are Flying Blind on Several Gateways

In our CI pipeline, we use frozen, authentic on-wire bus frames captured from production plants (tests/test_trace_replay.py). When a real trace is in our test corpus, it guarantees that bugs can never regress.

To track our coverage transparently, we maintain a Hardware Trace Availability Matrix in our README:

Gateway Model WHO 0
Scenario
WHO 1
Lights
WHO 2
Autom.
WHO 3
Load
WHO 4
Climate
WHO 5
Alarm
WHO 9
Power
WHO 13
Gateway
WHO 14
Lock
WHO 15
CEN
WHO 16
Audio
WHO 17
Scenario
WHO 18
Energy
WHO 22
Audio Diff.
WHO 25
Diag
WHO 1001
Diag
WHO 1013
Diag
WHO 1022
Diag
F453AV ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
F454 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
F455 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
F461 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
H4684 / H/L4684 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
H4890 / AM4890 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
MH200 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
MH200N ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
MH201 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
MH202 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
MyHomeServer1 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅

(Checkmarks ✅ denote that at least one captured trace in our test corpus contains frames for that subsystem from that gateway model).


🚨 Critical Blind Spots: What We Are Still Missing

  1. Gateways with ZERO Traces (Completely Unverified in CI):

  2. Subsystem Gaps on Partially Covered Gateways:

  3. Subsystems Missing Across ALL Models:


🎯 Direct Call-Outs: Can You Help Us With Your Hardware?

From past discussions, we know several community members have these exact devices. If you have a few minutes, capturing a trace from your system would permanently cement official CI verification for your hardware:


🛠️ How to Capture and Submit a Trace (Under 2 Minutes!)

Contributing traces is fast, easy, and privacy-safe:

🏷️ Method 1: Via Home Assistant UI (Fastest & Easiest)

  1. Sweep the Bus: Go to Developer Tools → Actions (Services) and call myhome.sweep_bus (this queries lights, covers, climate, and gateway diagnostics in ~3 seconds).
  2. Interact (Optional): If testing buttons, covers, or dimmers, press a physical switch, adjust a dimmer, or arm/disarm your alarm.
  3. Export
    • Either: On your Lovelace dashboard with <myhome-bus-card>, click "Export Trace" (or "Copy Trace").
    • Or: Go to Settings → Devices & Services → MyHOME → click the three dots (⋮) on your gateway → Download diagnostics.
  4. Post it here: Drag and drop the downloaded .json file into a reply on this issue!

💻 Method 2: Standalone Python Script (For Test Benches & Integrators)

If you are testing an isolated gateway on a test bench without Home Assistant running:

python scripts/record_gateway_trace.py --host 192.168.1.35 --password 12345 --model MH202 --listen 10.0

This script sweeps the gateway, listens for 10 seconds of ambient traffic, and generates a sanitized fixture.

🔒 Privacy & Security Guarantee

  • Home Assistant's diagnostic export and our trace sanitization pipeline (scripts/anonymize_plant_fixture.py) automatically redact all sensitive data.
  • Passwords, PINs, tokens, LAN IP addresses, and private MAC addresses are completely stripped or replaced with synthetic test identifiers.
  • OpenWebNet frames contain only standard numeric protocol codes (WHO, WHAT, WHERE).

Thank you again for helping us make this integration the most dependable, well-tested Home Assistant component possible. Let's fill every checkmark across that matrix! 🚀

Activity

  1. caiosweet commented on Sep 25, 2026

    @caiosweet
    Contributor

    Here is the MH200N trace requested.

    I started a trace on the MH200N and then ran myhome.sweep_bus.

    After the sweep, I also performed two climate-related actions:

    • set the temperature to 18 °C;
    • manually turned the probe adjustment wheel through its local offset range (-3 / +3 °C).

    I have attached the resulting trace file.

    If you need a more specific or targeted capture (for example only climate, only a specific zone/probe, startup polling, covers, or another subsystem), just let me know what sequence you want me to perform and I can capture it.

    config_entry-myhome-80a1577fb7ae6f68f05e0cc5a1ead27d.json
    myhome_sweep_MH200N_all_2026-09-25T14-40-10.json

    I also added a second trace with a few CEN commands and some scenarios.

    myhome_trace_MH200N_all_2026-09-25T18-12-34.json

    WHO 14 - Special Commands

    myhome_trace_MH200N_all_2026-09-25T18-53-55.json

    myhome_trace_MH201_all_2026-09-25T19-05-42.json

  2. added 2 commits that reference this issue on Sep 25, 2026
  3. anotherjulien commented on Sep 25, 2026

    @anotherjulien
    Member

    @GreenGrassBlueOcean, are you sure about the F455 being dual bus? The documentation I can find just identifies it as a "Basic Gateway", and it certainly seems to only have one SCS connector.

  4. GreenGrassBlueOcean commented on Sep 25, 2026

    @GreenGrassBlueOcean
    ContributorAuthor

    @GreenGrassBlueOcean, are you sure about the F455 being dual bus? The documentation I can find just identifies it as a "Basic Gateway", and it certainly seems to only have one SCS connector.

    no not sure at all actually... let's go with the docs here

  5. GreenGrassBlueOcean commented on Sep 25, 2026

    @GreenGrassBlueOcean
    ContributorAuthor

    Good catch @anotherjulien! You are completely right — the BTicino F455 is the entry-level "Basic Gateway" with a single SCS bus connector (managing lights, automation, temperature, and energy), not a dual-bus gateway or multi-bus router. We've corrected the description here and across the documentation / roadmap.

  6. GreenGrassBlueOcean commented on Sep 25, 2026

    @GreenGrassBlueOcean
    ContributorAuthor

    The documentation and roadmap across the repository have now been updated to reflect that the BTicino F455 is a single-bus Basic Gateway (updating README.md, ROADMAP.md, docs/openwebnet-who-specifications.md, docs-v0.9/, and the bug report template).

  7. GreenGrassBlueOcean commented on Sep 25, 2026

    @GreenGrassBlueOcean
    ContributorAuthor

    Opened PR #471 with the documentation, roadmap, and template updates.

  8. added 2 commits that reference this issue on Sep 25, 2026
  9. caiosweet commented on Sep 25, 2026

    @caiosweet
    Contributor

    I updated my previous comment with a few additional MH200N traces.

    Here is a separate trace from the MH201 gateway as well.

    myhome_sweep_MH201_all_2026-09-25T19-11-35.json

  10. anotherjulien commented on Sep 25, 2026

    @anotherjulien
    Member

    I'll try to capture lock on MH202 and F454 over the week-end, and re-install one of my disused F520 for energy data.
    I think there was also some WHO25 CEN+ button presses in here.
    I'll try to capture dry-contact traffic at the same time, is there any other CEN+ traffic you'd want?

  11. GreenGrassBlueOcean commented on Sep 25, 2026

    @GreenGrassBlueOcean
    ContributorAuthor

    Thanks @anotherjulien! That will be super helpful—lock (WHO 14), energy (WHO 18 / F520), and CEN+ dry contacts will fill some of our biggest remaining gaps!

    On that note, I'm planning to release a new beta tonight (hopefully later this evening) that includes an improved bus sweep (in the service and the Bus Monitor card). Alarm (WHO 5) and sound/audio (WHO 16) were previously missing from the sweep routines, so the new version will capture those subsystems much better.

    Thanks again for all the help testing and gathering traces!

  12. 143 remaining items

  13. added a commit that references this issue on Oct 28, 2026
  14. GreenGrassBlueOcean commented on Oct 28, 2026

    @GreenGrassBlueOcean
    ContributorAuthor

    Hi @emil-d,

    Huge thank you for capturing and sharing both F414 (WHERE = 42) traces! We have added both exports to our permanent CI regression suite in #827 — they also confirmed that with all 27 lighting endpoints online on your bus, *#2*0## answers cleanly without hitting the 10 s command-session timeout from the earlier partial sweep.

    Even better, comparing your two captures side-by-side uncovered a real brightness-mapping bug in MyHOMELight, which we just fixed in PR #828 (targeted for the upcoming 2.0.0b17 beta release):

    • What your traces revealed:
      • When dimming WHERE = 42 from the physical wall pushbutton on MH201, the bus only emits coarse WHO = 1 preset frames (*1*7*42## → *1*6*42## → *1*5*42## → *1*4*42##) with no spontaneous Dimension 1 percentage frame.
      • In your second trace, switching 42 ON from Home Assistant returned *1*7*42## followed 192 ms later by *#1*42*1*148*5## — proving that coarse step WHAT = 7 on your F414 is physically 48% (~50%), not 70%.
    • What PR fix(light,expose): map coarse WHAT 2..10 presets via BTicino dimmerLevelTo100 curve (#466) #828 fixes:
      • Previously, MyHOMELight mapped coarse WHAT 2..10 frames linearly as WHAT × 10 (20%..100%), whereas BTicino's F414 / F418U2 hardware and libqtdevices firmware follow the non-linear dimmerLevelTo100 curve (1%, 10%, 20%, 30%, 40%, 50%, 60%, 75%, 100%).
      • Wall-button dimming on MH201 will now report 50% → 40% → 30% → 20% (and 1% at minimum WHAT = 2) instead of reading +20% too high (70% → 60% → 50% → 40%).
      • Turning 42 ON in Home Assistant will no longer bounce the UI slider up to 70% before snapping down to 48% (50% → 48% instead), and light.turn_on software transitions started after wall dimming will no longer surge +20% brighter at the start of a fade.
      • (Bonus: this build also includes the MH201 sweep update skipping *#4*0##, avoiding the extra timeout/backoff window on WHO 4.)

    If you have a few minutes, would you mind testing PR #828 on your MH201 + F414 (WHERE = 42)?


    1. Copy & paste these lines to install PR #828 right away

    Open the Home Assistant Terminal & SSH add-on (or your HA container/host shell), paste this 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=7b82985a1ac99a6deaf1c211cea4e9492e2b6321
      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" &&
      cp -r "$TMP/MyHOME-$SHA/custom_components/myhome" "$DIR" &&
      rm -rf "$TMP" &&
      echo "OK: Installed MyHOME PR #828 ($SHA) into $DIR — now restart Home Assistant!"
    )

    2. After running the command:

    1. Check that the terminal printed OK: Installed MyHOME PR #828 ....
    2. Restart Home Assistant (Developer Tools → YAML → Restart).
    3. Open your WHERE 42 light entity in Home Assistant and check:
      • Wall pushbutton dimming: Switch 42 ON at the wall button and hold to dim down and up — verify that Home Assistant now displays 50% → 40% → 30% → 20% (down to 1% at minimum dim) in sync with the actual lamp brightness rather than +20% higher.
      • Home Assistant toggle & slider: Toggle 42 OFF and back ON from Home Assistant — verify that the brightness slider settles cleanly (50% → 48%) without jumping to 70% first, and that adjusting brightness / transitions from Home Assistant after wall dimming starts smoothly from the current level.

    Let us know how PR #828 works on your installation — and no rush at all on the F422 OUT-side WHO 16 test whenever you get the chance!

  15. andrea-mag commented on Oct 28, 2026

    @andrea-mag

    Hi @GreenGrassBlueOcean,

    • yes, it is a F521, the old one. It is a very noisy device over the bus, i'm thinking to shutting it down. It controls some F412NC. but is not needed anymore.
    • regarding central unit: yes, is the 99-zones, the 3550, with Zone Actuators F430/4 connected to Fancoils. The most of the zones just have 1 fancoil, others up to 3 (actually one zone right now is having some troubles: it seems an actuator is missing, but it is a random thing that happens sometimes. i'm looking to solve them)
    • regarding the plus, i'll try to do what you asked for as soon as possible.

    Thanks,
    Andrea

  16. GreenGrassBlueOcean commented on Oct 28, 2026

    @GreenGrassBlueOcean
    ContributorAuthor

    Thank you @andrea-mag — that hardware breakdown is hugely helpful! Two immediate pieces of good news for you, plus one quick 60-second read-only experiment we would love to capture before you power off the F521:

    1. Your trace already caught which fan-coil actuator is missing!

    You mentioned one zone with up to 3 fan coils has an actuator that randomly goes missing. Looking at the Dimension 20 telemetry in the diagnostics file you uploaded, we can pinpoint the exact unit:

    • 1-fancoil zones reporting normally every 10 s: 11#1, 22#1, 44#1, 55#1, 88#1
    • 2-fancoil zones reporting normally every 10 s: 33#1 + 33#2 (PTE - Soggiorno) and 77#1 + 77#2 (PS1 - Biliardo)
    • 3-fancoil zone missing an actuator: Zone 66 (PS1 - Camino)! Actuators 66#2 and 66#3 report *#4*66#2*20*5## and *#4*66#3*20*5## every 10 seconds, while 66#1 (ZA=6, ZB=6, N=1) never answered once during the capture — and Zone 66 is also the only zone where your 3550 central unit kept re-sending *4*303*66## every 20 seconds trying to sync it.
    • Checking the physical F430/4 configured with ZA=6, ZB=6, N=1 for PS1 - Camino (oxidized N=1 configurator pins or a loose SCS 2-wire terminal) should take you straight to the culprit!

    (Also: knowing that all 8 zones (11..88) use F430/4 actuators wired to fan coils is a major insight for us — it proves *#4*Z#N*20*5## is 100% genuine fan-coil telemetry across your whole plant rather than a valve quirk.)

    2. About the F521 bus chatter & what we meant by "plus"

    • Bus noise: Your F521 sends one *3*1*#P## frame every ~25.8 seconds (~2.3 frames/minute, <0.1% SCS bus load), so it won't harm bus reliability — though powering it down if unused makes complete sense.
    • "The plus": Sorry for the confusion! Earlier in this thread "Scenario PLUS" referred to WHO=25 (CEN+, which H/L4684 doesn't use), and in my last message I just meant two optional "bonus" diagnostic queries.

    3. Quick 60-second read-only experiment (before turning off the F521!)

    We have never had a live F521 (WHO=3) measurement trace in the project, and BTicino's official OpenWebNet WHO=3 specification actually omits the unit/scaling for Dimension 4 (Energy)! At the same time, testing 3 read-only WHO=4 queries on your F430/4 zones will let us make sure all 8 of your fan-coil zones auto-discover cleanly on H/L4684 FW 6.0.11.

    All frames below are strictly read-only (nothing switches or sheds any F412NC load):

    1. Go to Settings → Automations & Scenes → Scripts → Add Script → Create new script, click the ⋮ menu → Edit in YAML, paste this temporary script, Save, and click Run:
      alias: MyHOME Issue 466 Read-Only Probe
      sequence:
        - action: myhome.send_message
          data:
            message: "*#3*10*0##"
        - delay: "00:00:05"
        - action: myhome.send_message
          data:
            message: "*#3*10*1##"
        - delay: "00:00:02"
        - action: myhome.send_message
          data:
            message: "*#3*10*2##"
        - delay: "00:00:02"
        - action: myhome.send_message
          data:
            message: "*#3*10*3##"
        - delay: "00:00:02"
        - action: myhome.send_message
          data:
            message: "*#3*10*4##"
        - delay: "00:00:03"
        - action: myhome.send_message
          data:
            message: "*#3*#1##"
        - delay: "00:00:03"
        - action: myhome.send_message
          data:
            message: "*#3##"
        - delay: "00:00:05"
        - action: myhome.send_message
          data:
            message: "*#4*11*19##"
        - delay: "00:00:02"
        - action: myhome.send_message
          data:
            message: "*#4*33*19##"
        - delay: "00:00:02"
        - action: myhome.send_message
          data:
            message: "*#4*33*11##"
        - delay: "00:00:02"
        - action: myhome.send_message
          data:
            message: "*#4*66#1*20##"
        - delay: "00:00:02"
        - action: myhome.send_message
          data:
            message: "*#1013*0*1##"
    2. Wait ~35 seconds for the script to finish, then go to Settings → Devices & Services → MyHOME → ⋮ → Download diagnostics and attach the .json file here (you can delete the temporary script right after).
    3. (Bonus if convenient): If your H/L4684 touch screen (Gestione Carichi / Load Control page) or meter shows any readings at that moment (Voltage V, Current A, Power W / kW, or Energy Wh / kWh), let us know roughly what it reads so we can match the exact wire scaling factor!
  17. emil-d commented on Oct 28, 2026

    @emil-d

    Hi @GreenGrassBlueOcean,

    I installed PR #828 on my Home Assistant and tested the MH201 + F414 scenario switching the light on and off and dimming it, both from the wall pushbutton and through the MyHome integration in Home Assistant.

    Wall pushbutton: I confirm the brightness range is 1% / 10% / 20% / 30% / 40% / 50% / 60% / 75% / 100%, and Home Assistant shows each value as the actual lamp brightness changes.

    Home Assistant toggle and slider: from Home Assistant I can set brightness values with much finer precision than the wall button steps. When I switch the light on, it comes back at the intensity it had when it was last switched off.

    I’m attaching the trace of my tests in case it is useful.

    myhome_trace_MH201_all_2026-10-28T19-16-51.json

    Thanks again,

  18. emil-d commented on Oct 29, 2026

    @emil-d

    Hi @GreenGrassBlueOcean, following up on the F422 test you suggested.

    I moved the MH201 off the automation bus: I disconnected it from the E46ADCN side and connected it to the audio bus, in parallel with the OUT terminals of the F422 (the bus fed by the 346000 and the F441M), keeping Ethernet connected. One oddity: the F422 front LED looks off (it may be a faulty LED, but I can’t confirm).

    Result: The MH201 came back online, and the session works: #1315## answers *#1315200##. But:
    #1605##, #16615## and #16335## get no reply (NACK after the OWNd retries).
    A single ON command, 163
    61## is not accepted.
    I listened to the event session for 180 s while pressing the physical audio controls (ON/OFF, volume, source, on different zones), this results in no events at all.

    Hence, with the MH201 sitting directly on the audio bus, it still does not relay or handle WHO 16. This matches what you said about the firmware (3.6.43) filtering it.

    Any suggestion on how to handle the audio?

    I’m considering two options:

    1. Adding a second gateway dedicated to sound on the audio bus (OUT side of the F422), next to the MH201 on the automation bus. Based on your trace matrix, the MH200N looks like the best candidate (WHO 16 and WHO 22 traces).

    2. Adding a small ESP32-based SCS bridge on the audio bus, writing the code with Claude help. Do you know if there is any reliable documentation on the SCS frames used by the sound system (ON/OFF, volume, source)?

    Some questions with respect to option 1:

    • Is an MH200N a good choice for an F441M-based system, and should it be connected to the OUT (audio) side of the F422 or to IN?
    • Is there any issue in having an automation-type gateway on the sound bus?
    • Does MyHome handle the two gateways (MH201 for lights and covers, MH200N for audio) or I should substitute MH201 with the MH200N?
    • Any idea about the power budget of an MH200N on the 346000 bus?

    Thanks again for all the help so far.

  19. added a commit that references this issue on Oct 29, 2026
  20. GreenGrassBlueOcean commented on Oct 29, 2026

    @GreenGrassBlueOcean
    ContributorAuthor

    Hi @emil-d,

    First, thank you for testing PR #828 on your MH201 + F414 (WHERE = 42) and sharing the verification trace! PR #828 (along with your myhome_trace_MH201_all_2026-10-28T19-16-51.json capture) is now merged on master and will ship in v2.0.0b17.

    And huge thanks for running the MH201-on-F422 OUT isolation test — that gives us 100% hardware proof that MH201 firmware 3.6.43 drops WHO = 16 in both directions (both command-session queries/writes and bus-to-IP event translation), even when wired directly onto the 346000 + F441M sound bus. We will remove the false-positive tx-only WHO 16 checkmark for MH201 in the trace matrix and mark WHO 16 unsupported on MH201 3.6.43 in OWNd.


    🔍 Quick Note on the F422 Front LED Being Off

    Per BTicino's F422 technical sheet (MQ00280-f-EN, p. 1), the F422 draws 25 mA from IN and 5 mA from OUT (18–27 Vdc), and its front LED indicates:

    • Steady ON = bus supply and configuration OK
    • OFF = bus supply absent
    • Flashing = configuration missing or incorrect

    Two things worth checking:

    1. If you noticed the LED was off during the test right after disconnecting at the E46ADCN junction, you may have temporarily opened the 27 Vdc feed going to F422 IN (its 25 mA logic supply side).
    2. If the LED is still off with normal wiring restored, measure directly across the F422's IN and OUT screw terminals with a multimeter (both should read ~27 Vdc). If either side is missing 27 Vdc (or the F422 itself has failed rather than just its LED), IN and OUT are currently isolated from each other — which makes wiring a dedicated audio gateway to OUT even cleaner because it bypasses the F422 completely.

    ⚖️ Option 1 (Second Gateway) vs. Option 2 (ESP32 SCS Bridge)

    Option 1 (MH200N or F454) is strongly recommended over building an ESP32 transceiver for the audio bus, for two practical reasons:

    1. Modulated analog stereo audio on the 346000 + F441M bus (OUT): Unlike a pure automation SCS bus (IN), the F441M multichannel sound bus carries high-frequency modulated analog stereo audio superimposed on top of the 27 Vdc + baseband SCS data pair (that analog carrier is why BTicino puts an F422 galvanic separator between automation and sound). Standard DIY Arduino/ESP32 SCS circuits are designed for baseband lighting buses and lack BTicino's high-impedance audio band-stop coupling — attaching an unfiltered DIY circuit directly to OUT risks attenuating the audio carrier or coupling ESP32 Wi-Fi / buck-converter switching noise (audible hum/whine) into your room amplifiers.

    2. SCS wire-frame documentation for sound: BTicino only publishes the ASCII OpenWebNet protocol (WHO 16 / WHO 22), never the lower-layer SCS wire telegrams. If you are curious about what goes on the wire, two public repositories in our org document what has been recovered:

      • OpenWebNet-HA/own-firmware-oracle (results/MH200N/010108/oracle/full/sound-who16-source.tsv, sound-who22.tsv, trace-corpus.tsv): records the exact PIC/SCS hex frames emitted by real gateway firmwares for each OpenWebNet command (e.g., *#16*0*5## → $04B500808F\r, zone ON *16*3*21## → $0490018F23\r + $0490018223\r, tuner frequency/RDS $06D1...).
      • OpenWebNet-HA/OpenWebNet-Encyclopedia: documents F441M matrix routing (*16*3*1ES##) and WHO 16 ↔ WHO 22 dual-dialect behavior from live MH200 and MH200N captures.

      Even with those tables, building an audio-safe analog front-end + CSMA/CA collision handling + stateful WHO 16/22 translation is a major hardware project compared to a second-hand MH200N or F454 that works out of the box with MyHOME (including zone discovery, F441M source selection, F500 RDS station text, and Music Assistant DecoderPool routing if you ever plug a streamer into S2/S3).


    📋 Answers to Your Option 1 Questions

    1. Is an MH200N a good choice for an F441M-based system, and should it go on OUT or IN?

    • Yes — MH200N (or F454) is ideal for F441M + F500. MyHOME controls F441M amplifier zones, volume, and matrix source routing (*16*3*10S## + *16*3*1ES##) via WHO 16, and also listens to WHO 22 for F500 tuner frequency and RDS metadata. Both MH200N (FW 1.1.8) and F454 (FW 2.0.51, or older F453AV) support both WHO 16 and WHO 22 (MH200N + F441M + F500 is actually one of the reference plants in our Encyclopedia). Plain MH200 also supports WHO 16 (zones, volume, matrix source routing), just without WHO 22 RDS text.
    • ⚠️ Gateways to avoid for F441M (WHO 16): Do not buy MH202, MyHomeServer1, F460, or F461 for this (correcting my passing mention in an earlier comment!) — our QEMU Firmware Oracle confirms all four NACK (*#*0##) and drop WHO 16, supporting only newer WHO 22 multimedia systems.
    • OUT vs. IN placement: Connect its SCS bus terminal to OUT (the audio side). That puts the gateway directly on the 346000 + F441M + F500 bus with zero dependency on F422 forwarding (especially helpful while the F422 LED is off). (If you choose an F454, wire the audio bus to its SCS AV terminal.)

    2. Is there any issue in having an automation-type gateway on the sound bus?

    • No electrical or protocol issue. BTicino catalogues MH200N (003565) for both Automation and Multimedia risers (TiMH200N includes native Sound System actions/conditions), and its official transceiver is properly isolated for the 2-wire sound bus.
    • Two quick tips:
      1. Leave its scenario memory empty, and keep its clock in default Slave mode in TiMH200N / web UI so two gateways don't compete over time broadcasts if F422 bridges frames.
      2. Note that MH200N firmware always answers WHO 5 queries with 8 virtual alarm partitions even with no alarm hardware installed — delegating MH200N solely to audio in MyHOME (below) suppresses those automatically.

    3. Does MyHOME handle two gateways (MH201 for lights + MH200N for audio), or should I replace MH201?

    • Keep both (MH201 + MH200N)! MyHOME v2 has built-in multi-gateway and per-WHO subsystem delegation specifically for split/multi-gateway plants:
      • Keeping MH201 preserves all 27 existing light entities (and any scenarios inside MH201), keeps MH201's faster 100 ms command pacing (Tier 2 vs MH200N's 150 ms Tier 3), and works even if your F422 is completely unpowered/isolated.
      • When you add the MH200N in Settings → Devices & Services → MyHOME, Home Assistant will show the "Is this gateway on the same bus as another gateway?" step:
        • Bus topology: Shared SCS bus (same bus as another gateway)
        • Primary gateway: your existing MH201
        • Role of this gateway: Secondary (discovers only its delegated subsystems)
        • Delegated subsystems: select 16 - Sound diffusion and 22 - Sound diffusion (audio matrix)
      • That tells MyHOME to keep all lighting/automation on MH201, skip non-audio discovery sweeps (including MH200N's phantom WHO 5 alarm zones) on MH200N, and route all media_player discovery and commands exclusively through MH200N.

    4. Power budget of an MH200N on the 346000 bus — important wiring catch!

    • Watch out for this difference vs. MH201: Your MH201 (1 DIN module, 30 mA) powers itself directly from the 2-wire SCS bus. By contrast, MH200N (6 DIN modules, sheet MQ00319-b-UK pp. 1–3) cannot run off its SCS terminal alone — it has two separate power connections:
      1. SCS bus clamp (18–27 Vdc): bus transceiver signaling only (~5–10 mA, negligible load on your 346000 audio bus).
      2. Auxiliary 27 Vdc supply input (1–2 terminals): 200 mA max (powers the CPU and Ethernet PHY; BTicino lists dedicated 27 Vdc / 600 mA 2-DIN supply 346020 as its companion accessory). (For comparison, F454 is also 6 DIN wide and draws 125 mA max on its 1–2 supply input.)
    • How to feed 1–2 in your cabinet:
      • Check whether your E46ADCN or 346000 (1.2 A rated supplies) has an unused 1–2 (27 Vdc auxiliary, non-SCS) output terminal and 200 mA of spare budget after your F441M + F500 + room amplifiers.
      • Never connect an SCS data bus terminal into MH200N's 1–2 auxiliary power input (that would short out the data/audio modulation). If neither E46ADCN nor 346000 has a free 1–2 auxiliary output or spare current headroom, add a small 27 Vdc auxiliary DIN supply such as BTicino 346020 (2 DIN, 600 mA) to feed MH200N 1–2 while connecting MH200N SCS to F422 OUT.
  21. gimprota76 commented on Oct 29, 2026

    @gimprota76

    Hi,

    I would like to report a possible regression with the alarm system and Apple HomeKit in the latest beta releases.

    The alarm itself works correctly in Home Assistant.

    When I arm the alarm in "Away" mode, Home Assistant correctly shows:

    "Armed Away"

    However, the same alarm exposed to Apple HomeKit through Home Assistant is displayed in the Apple Home app as:

    "Off" / "Not Active"

    So HomeKit does not seem to receive or display the current armed state correctly.

    I have two separate integrations of the same BTicino alarm system in Apple Home, which makes the issue easy to compare:

    1. Homebridge integration by Simone Tisa

      • The alarm state is correctly displayed in Apple Home.
      • When the alarm is armed away, Apple Home correctly shows "Away".
    2. OpenWebNet-HA / MyHOME through Home Assistant

      • Home Assistant correctly detects the alarm as "Armed Away".
      • Apple Home incorrectly shows the alarm as "Off / Not Active".

    The attached screenshots show the issue clearly.

    In Home Assistant:

    • "Allarme Casa HA" is shown as armed away ("Attivo fuori casa").

    In Apple Home:

    • the Home Assistant alarm "Allarme Casa HA" is shown as "Non attivo".
    • the Homebridge alarm "Allarme", connected to the same alarm system, correctly shows "Fuori casa".

    Additional information visible in Apple Home for the Home Assistant accessory:

    • Manufacturer: BTicino
    • Model: 3486
    • Firmware: 2026.10.4
    • Entity / Serial Number: alarm_control_panel.alarm_0

    For comparison, the working Homebridge accessory reports:

    • Manufacturer: Simone Tisa
    • Model: Alarm 3486
    • Firmware: 1.0

    This behaviour appeared with the latest beta releases. Previously, the alarm state was correctly reflected in Apple Home.

    It looks like the alarm state inside Home Assistant is correct, but the state exposed to HomeKit is no longer being updated or mapped correctly.

    I have attached screenshots showing Home Assistant and both HomeKit accessories for comparison.

    Thank you for your work on this integration.
    Please let me know if gateway traces, OpenWebNet frames, Home Assistant diagnostics or additional logs would be useful.

    Image Image Image Image Image
  22. GreenGrassBlueOcean commented on Oct 31, 2026

    @GreenGrassBlueOcean
    ContributorAuthor

    Hi @gimprota76,

    Thank you for the detailed report and comparison screenshots — and yes, a gateway trace and diagnostics export from your F454 + 3486 setup would be hugely helpful! While you shared a text log back in #311, we still don't have a native .json trace export of a live F454 + 3486 alarm system in our CI corpus.

    1. How to capture the trace (takes ~2 minutes)

    We can see <myhome-bus-card> is already on your dashboard right above Allarme Casa HA:

    1. On the MyHOME Bus Monitor card, make sure the filter is set to All (no filter) and click Start Trace.
    2. Click Sweep Bus (or run myhome.sweep_bus in Developer Tools → Actions) and wait ~10 seconds for it to finish.
    3. Arm the alarm in Away mode and then Disarm it:
      • once using your usual method (transponder / AUX command), and
      • if your Simone Tisa Homebridge Allarme tile in Apple Home can also arm/disarm the 3486, once from that Homebridge tile as well (seeing what frames Homebridge puts on the SCS bus will be very informative!).
    4. Click Export Trace on <myhome-bus-card> to download the .json trace file.
    5. Also grab Settings → Devices & Services → MyHOME → ⋮ → Download diagnostics (.json), and check Settings → System → Logs (search for homekit or pyhap right after arming) if any warning/error lines appear.
    6. Attach the .json files (and any homekit/pyhap log lines) here — all passwords, IPs, and MACs are sanitized automatically.

    2. Why Apple Home shows "Non attivo" (and immediate workaround)

    We also traced why this started in the recent betas:

    • Starting in 2.0.0b15, alarm_control_panel.alarm_0 became read-only (supported_features = 0) because 3486 central units reject direct WHO = 5 arm/disarm commands over the bus and instead arm/disarm via installer-programmed WHO = 9 AUX frames (*9*1*1## / *9*0*1## on your plant in Need help configuring Alarm feature (F454) #311).
    • Home Assistant's built-in HomeKit Bridge uses supported_features to build the allowed HomeKit ValidValues list for both SecuritySystemTargetState and SecuritySystemCurrentState. Because ARM_AWAY is not set on the read-only entity, HomeKit restricts CurrentState to [Disarmed, Triggered] and pyhap drops updates to Away (1), leaving Apple Home stuck on Non attivo.

    Immediate workaround (also enables arm/disarm in Apple Home):
    If you create the Template Alarm Control Panel reading its state from alarm_control_panel.alarm_0 and calling myhome.send_message with your AUX frames (*9*1*1## / *9*0*1##), and expose that template alarm entity to HomeKit Bridge instead of alarm_control_panel.alarm_0, Apple Home will receive ARM_AWAY in ValidValues and display Fuori casa properly. We will also look into keeping Away valid in HomeKit when exposing alarm_control_panel.alarm_0 directly as read-only!

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

    help wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions