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
Audio amplifiers appear as "on" in Home Assistant when the video intercom stream starts or stops. #669
Since version MyHome 2.0.0b15, whenever I start or stop the video stream from my video intercom, all the audio amplifiers (6 in my case) show up as "on" in Home Assistant, even though they are actually off.
I did not experience this behavior in previous versions.
Attached below is the debug trace captured while starting the video intercom stream, showing the amplifiers immediately being reported as "on" in Home Assistant.
In BTicino MyHOME installations where video door entry / intercom (WHO 6/8) and sound diffusion (WHO 16/22) coexist with an audio matrix (such as F441 / F441M) or MH200/MH202 gateway:
Stream Start (Intercom Audio Ducking):
When the video stream / intercom preview opens, the audio matrix attenuates background sound across all rooms to prevent interference with the intercom conversation. The gateway broadcasts Dimension 1 (Volume) status frames setting/reporting volume level 1 for each amplifier:
Stream Stop (Volume Restoration):
When the video stream closes (*6*9**## Camera OFF), the matrix restores the saved volume levels for the amplifiers:
*#16*41*1*6## (WHO 16 amplifier 41: restored to volume 6)
*#22*3#6#1*1*7## (WHO 22 amplifier 61: restored to volume 7)
Root Cause of the Regression in 2.0.0b15
In 2.0.0b15, PR #581 introduced physical wall button synchronization so that pressing the volume-up rocker on a physical BTicino wall control while the room is off powers on the amplifier and auto-joins the active streaming group.
However, in MyHOMEMediaPlayer.handle_event(), the wake-up check evaluated:
*16*1001*WHERE## (is_volume_up): An action command sent when pressing the physical volume rocker on the wall (which turns on and increments volume on an off amplifier).
*#16*WHERE*1*<volume>## (message.volume): A Dimension 1 status report (Volume Level). In OpenWebNet, amplifiers retain their configured volume level even when powered off.
Because message.volume > 0 was treated as an ON condition, the moment the intercom stream started and ducked the amplifiers to volume 1 (*#16*41*1*1##), MyHOME interpreted the volume report as an instruction that the amplifiers had turned ON.
The Fix
We are implementing a fix that:
Restricts the wake trigger strictly to explicit power-on frames (message.is_on, matrix routing) and physical volume-up rocker commands (*16*1001*WHERE##..*16*1015*WHERE##).
Ensures Dimension 1 volume status reports (*#16*WHERE*1*<volume>##) only update the entity's volume level and unmute status without changing the power state of an amplifier that is currently OFF.
Adds regression tests covering the authentic intercom trace frames to ensure amplifiers remain OFF throughout video intercom streaming and volume restoration.
We have prepared a fix for the amplifier power-on issue in PR #670, ensuring volume ducking and restoration frames from video intercom streams no longer turn on idle amplifiers.
Your trace was exceptionally helpful — it also provided valuable protocol insights into how the MH202 gateway handles video door entry and sound diffusion.
If you are open to helping us test further when you have a spare moment, capturing a quick 1–2 minute bus trace during any of the following actions would be immensely valuable for the OpenWebNet project:
Visitor Doorbell Call:
Start the trace in Home Assistant (Settings -> Devices & Services -> MyHOME -> Diagnostic Trace).
Ring the external door entry panel from outside.
Answer the call from an indoor unit.
Unlock the door / gate.
End the call.
Audio Zone Wall Controls:
Turn an amplifier ON from a physical wall switch.
Adjust the volume up and down once or twice.
Turn it OFF.
No worries at all if you don't have the time — your initial trace was already instrumental in fixing the bug!
We have prepared a fix for the amplifier power-on issue in PR #670, ensuring volume ducking and restoration frames from video intercom streams no longer turn on idle amplifiers.
Your trace was exceptionally helpful — it also provided valuable protocol insights into how the MH202 gateway handles video door entry and sound diffusion.
If you are open to helping us test further when you have a spare moment, capturing a quick 1–2 minute bus trace during any of the following actions would be immensely valuable for the OpenWebNet project:
Visitor Doorbell Call:
Start the trace in Home Assistant (Settings -> Devices & Services -> MyHOME -> Diagnostic Trace).
Ring the external door entry panel from outside.
Answer the call from an indoor unit.
Unlock the door / gate.
End the call.
Audio Zone Wall Controls:
Turn an amplifier ON from a physical wall switch.
Adjust the volume up and down once or twice.
Turn it OFF.
No worries at all if you don't have the time — your initial trace was already instrumental in fixing the bug!
Hi @GreenGrassBlueOcean
I am attaching the two requested BUS tracks. I hope they are useful.
Thank you so much for capturing and sharing both traces! Having one capture isolating a full visitor doorbell call + lock release and another isolating the physical wall controls in Zone 41 is gold-standard hardware evidence.
We ran both captures through our OpenWebNet protocol analyzer and added them to our automated trace replay test suite in #751 (and integrated the doorbell/lock trace into #667). Here is what your MH202 + F441M bus is doing under the hood in each capture:
As soon as the visitor presses the outdoor call button, your F441M matrix ducks all 6 amplifiers (31, 61, 51, 41, 71, 81) to volume 1 using paired WHO=16 (*#16*<EA>*1*1##) and WHO=22 (*#22*3#<E>#<A>*1*1##) Dimension 1 frames.
Door Lock Release During Conversation (10:27:25.455Z – 10:27:26.201Z):
*6*22*1## (WHAT=22, "Open lock with external unit in conversation" at unit 1) followed +26 ms later by *6*10*4000## (WHAT=10, "Open lock" at entrance panel 4000).
~717 ms later, the lock relay pulse-release frames follow: *6*24*1## (WHAT=24 at 1) and *6*23*4000## (WHAT=23 at 4000).
Call End & Volume Restoration (10:27:30.852Z – 10:27:33.268Z):
*6*9**##: Camera OFF (WHO=6, WHAT=9, WHERE=*) tears down the video stream.
*25*32#1*31##: Dry-contact sensor 31 (WHO=25) reports contact OFF (WHAT=32#1).
The matrix restores the pre-call volume levels across the amplifiers (31 -> 0, 41 -> 6, 61 -> 7, 51 -> 6; 71 and 81 remain at 1), while all 6 unpowered zones stay strictly OFF.
2. Audio Zone Wall Controls (myhome_trace_MH202_all_2026-10-18T10-34-13.json, 146 frames)
Pressing the physical wall switch in Zone 41 (Area 4, Point 1) emits WHO=22 commands (*22*0#4#4*6## All Sources OFF in Area 4, *22*1#4#4*2#3## Source 2#3 ON in Stereo Area 4, *22*21#4#4*5#2#3## / *22*2#4#4*5#2#3## General Source 5#2#3 activation, *22*1#4#4*3#4#1## Speaker 3#4#1 ON) alongside WHO=16 matrix routing *16*3*143## (Environment 4 -> Source 3), amplifier ON *16*3*41##, and source ON *16*3*103##.
The amplifier then reports its full DSP state on 3#4#1: Volume 6/31 (Dim 1), Highs 30 (Dim 2), Lows 30 (Dim 4), Balance 10 (Dim 17), Loudness ON (Dim 20), 3D OFF (Dim 18), and Equalizer Preset 3 (Dim 19).
Physical Wall Rocker Volume Up & Down (10:33:34.822Z – 10:33:50.997Z):
Each press on the wall rocker sends WHO=22 step commands *22*3#1*3#4#1## (Volume +1) and *22*4#1*3#4#1## (Volume -1), and the gateway broadcasts paired *#16*41*1*<vol>## and *#22*3#4#1*1*<vol>## updates tracking your exact ramp: 6 -> 15 -> 5 -> 12 -> 7 (on the 0..31 scale).
*22*0#4#4*3#4#1## (WHO=22 Speaker 3#4#1 OFF), *16*13*41## (WHO=16 Amplifier 41 OFF), and *#22*3#4#1*12*0*10## (WHO=22 Dimension 12 standby status) cleanly power Zone 41 back OFF while preserving its last volume (7/31).
How this validates the integration
Zero False Wake-Ups (media_player): During the visitor doorbell call, all 6 idle amplifiers remain strictly OFF through both ducking and restoration, while during the wall-switch trace Zone 41 routes to Source 3 (*16*3*143##), wakes on *16*3*41##, tracks the 6 -> 15 -> 5 -> 12 -> 7 volume trajectory, and turns OFF on *16*13*41## without creating any phantom entities for pseudo-zone 143, source 103, or WHO=22 addresses.
Activity
GreenGrassBlueOcean commentedon Oct 9, 2026
Thank you for the detailed report and trace, @nicolacavallo84!
What is happening on the bus
In BTicino MyHOME installations where video door entry / intercom (WHO 6/8) and sound diffusion (WHO 16/22) coexist with an audio matrix (such as F441 / F441M) or MH200/MH202 gateway:
When the video stream / intercom preview opens, the audio matrix attenuates background sound across all rooms to prevent interference with the intercom conversation. The gateway broadcasts Dimension 1 (Volume) status frames setting/reporting volume level 1 for each amplifier:
When the video stream closes (
*6*9**##Camera OFF), the matrix restores the saved volume levels for the amplifiers:Root Cause of the Regression in
2.0.0b15In
2.0.0b15, PR #581 introduced physical wall button synchronization so that pressing the volume-up rocker on a physical BTicino wall control while the room is off powers on the amplifier and auto-joins the active streaming group.However, in
MyHOMEMediaPlayer.handle_event(), the wake-up check evaluated:In OpenWebNet:
*16*1001*WHERE##(is_volume_up): An action command sent when pressing the physical volume rocker on the wall (which turns on and increments volume on an off amplifier).*#16*WHERE*1*<volume>##(message.volume): A Dimension 1 status report (Volume Level). In OpenWebNet, amplifiers retain their configured volume level even when powered off.Because
message.volume > 0was treated as an ON condition, the moment the intercom stream started and ducked the amplifiers to volume 1 (*#16*41*1*1##), MyHOME interpreted the volume report as an instruction that the amplifiers had turned ON.The Fix
We are implementing a fix that:
message.is_on, matrix routing) and physical volume-up rocker commands (*16*1001*WHERE##..*16*1015*WHERE##).*#16*WHERE*1*<volume>##) only update the entity's volume level and unmute status without changing the power state of an amplifier that is currentlyOFF.OFFthroughout video intercom streaming and volume restoration.GreenGrassBlueOcean commentedon Oct 9, 2026
Hi @nicolacavallo84,
We have prepared a fix for the amplifier power-on issue in PR #670, ensuring volume ducking and restoration frames from video intercom streams no longer turn on idle amplifiers.
Your trace was exceptionally helpful — it also provided valuable protocol insights into how the MH202 gateway handles video door entry and sound diffusion.
If you are open to helping us test further when you have a spare moment, capturing a quick 1–2 minute bus trace during any of the following actions would be immensely valuable for the OpenWebNet project:
Visitor Doorbell Call:
Audio Zone Wall Controls:
No worries at all if you don't have the time — your initial trace was already instrumental in fixing the bug!
test(media_player): cover interleaved WHO 22 mirror frames and docume…
fix(media_player): do not wake amplifiers on Dimension 1 volume statu…
Merge pull request #670 from GreenGrassBlueOcean/fix/issue-669-audio-…
nicolacavallo84 commentedon Oct 18, 2026
Hi @GreenGrassBlueOcean
I am attaching the two requested BUS tracks. I hope they are useful.
Visitor Doorbell Call
myhome_trace_MH202_all_2026-10-18T10-27-48.json
Audio Zone Wall Controls
myhome_trace_MH202_all_2026-10-18T10-34-13.json
test(media_player,intercom): add authentic MH202 visitor doorbell and…
test(door-entry,lock): replay Issue OpenWebNet-HA#669 MH202 visitor d…
test(media_player,intercom): replay Issue OpenWebNet-HA#669 traces th…
test(media_player,intercom): replay Issue OpenWebNet-HA#669 traces th…
Merge pull request #751 from OpenWebNet-HA/test/issue-669-mh202-doorb…
GreenGrassBlueOcean commentedon Oct 18, 2026
Hi @nicolacavallo84,
Thank you so much for capturing and sharing both traces! Having one capture isolating a full visitor doorbell call + lock release and another isolating the physical wall controls in Zone 41 is gold-standard hardware evidence.
We ran both captures through our OpenWebNet protocol analyzer and added them to our automated trace replay test suite in #751 (and integrated the doorbell/lock trace into #667). Here is what your
MH202+F441Mbus is doing under the hood in each capture:1. Visitor Doorbell Call & Lock Release (
myhome_trace_MH202_all_2026-10-18T10-27-48.json, 61 frames)10:27:00.492Z–10:27:01.368Z):F441Mmatrix ducks all 6 amplifiers (31,61,51,41,71,81) to volume1using pairedWHO=16(*#16*<EA>*1*1##) andWHO=22(*#22*3#<E>#<A>*1*1##) Dimension 1 frames.10:27:01.281Z–10:27:01.285Z):*8*1#1#4#20*11##: 4-componentWHO=8video call initiation (WHAT=1#1#4#20—Kind=1Entrance PanelPE1,MMType=4Audio+Video,Caller=20, ringing indoor stationWHERE=11).*8*9#1#4*20##(+4 ms):WHO=8Caller Address Notification (WHAT=9#1#4,WHERE=20).10:27:25.455Z–10:27:26.201Z):*6*22*1##(WHAT=22, "Open lock with external unit in conversation" at unit1) followed+26 mslater by*6*10*4000##(WHAT=10, "Open lock" at entrance panel4000).~717 mslater, the lock relay pulse-release frames follow:*6*24*1##(WHAT=24at1) and*6*23*4000##(WHAT=23at4000).10:27:30.852Z–10:27:33.268Z):*6*9**##: Camera OFF (WHO=6, WHAT=9, WHERE=*) tears down the video stream.*25*32#1*31##: Dry-contact sensor31(WHO=25) reports contact OFF (WHAT=32#1).31->0,41->6,61->7,51->6;71and81remain at1), while all 6 unpowered zones stay strictlyOFF.2. Audio Zone Wall Controls (
myhome_trace_MH202_all_2026-10-18T10-34-13.json, 146 frames)10:33:32.011Z–10:33:35.201Z):41(Area 4, Point 1) emitsWHO=22commands (*22*0#4#4*6##All Sources OFF in Area 4,*22*1#4#4*2#3##Source2#3ON in Stereo Area 4,*22*21#4#4*5#2#3##/*22*2#4#4*5#2#3##General Source5#2#3activation,*22*1#4#4*3#4#1##Speaker3#4#1ON) alongsideWHO=16matrix routing*16*3*143##(Environment4-> Source3), amplifier ON*16*3*41##, and source ON*16*3*103##.3#4#1: Volume6/31(Dim 1), Highs30(Dim 2), Lows30(Dim 4), Balance10(Dim 17), LoudnessON(Dim 20), 3DOFF(Dim 18), and Equalizer Preset3(Dim 19).10:33:34.822Z–10:33:50.997Z):WHO=22step commands*22*3#1*3#4#1##(Volume+1) and*22*4#1*3#4#1##(Volume-1), and the gateway broadcasts paired*#16*41*1*<vol>##and*#22*3#4#1*1*<vol>##updates tracking your exact ramp:6->15->5->12->7(on the0..31scale).10:33:51.905Z–10:33:52.610Z):*22*0#4#4*3#4#1##(WHO=22Speaker3#4#1OFF),*16*13*41##(WHO=16Amplifier41OFF), and*#22*3#4#1*12*0*10##(WHO=22Dimension 12 standby status) cleanly power Zone41backOFFwhile preserving its last volume (7/31).How this validates the integration
media_player): During the visitor doorbell call, all 6 idle amplifiers remain strictlyOFFthrough both ducking and restoration, while during the wall-switch trace Zone41routes to Source3(*16*3*143##), wakes on*16*3*41##, tracks the6 -> 15 -> 5 -> 12 -> 7volume trajectory, and turnsOFFon*16*13*41##without creating any phantom entities for pseudo-zone143, source103, orWHO=22addresses.*8*1#1#4#20*11##frame fires a singlemyhome_doorbell_eventfor indoor unit11(suppressing the+4 ms*8*9#1#4*20##caller-ID frame), and both*6*22*1##and*6*10*4000##cleanly trigger theWHO=6lock release flow.Both traces are now permanently part of our regression suite. Thank you again for taking the time to record them on your hardware!
test(door-entry,lock): replay Issue OpenWebNet-HA#669 MH202 visitor d…
test(door-entry,lock): replay Issue #669 MH202 visitor doorbell and l…