Skip to content

Conversation

@DerDreschner
Copy link
Contributor

@DerDreschner DerDreschner commented Oct 16, 2025

This pull request overworks the implementation for the Bosch Water Alarm (BSEN-W). The device was previously marketed as "BWA-1", which isn't the current model name anymore. Therefore, I uploaded a new picture as well (see this pull request).

Changes:

  • New: Add test mode to verify that the device is (for example) audible in the designated place
  • New: Add feature to mute and unmute alarms remotely
  • Changed: Implement changed currentZoneSensitivityLevel to avoid possible complaints.
  • Changed: Moved some functions out of the boschGeneralExtend variable to make it more clear by what device type these are being consumed exclusively (energy devices / sensor devices).

@Koenkk Koenkk force-pushed the master branch 10 times, most recently from bf7848c to da8e480 Compare October 16, 2025 18:07
@Koenkk Koenkk merged commit 835a7fa into Koenkk:master Oct 16, 2025
3 checks passed
@Koenkk
Copy link
Owner

Koenkk commented Oct 16, 2025

Thanks!

@burmistrzak
Copy link
Contributor

burmistrzak commented Nov 9, 2025

@DerDreschner You'll have to bind genPollCtrl as well. Otherwise battery-powered devices operate less efficient and/or are not reachable.

Also, have you verified that newly paired Bosch devices behave the same way as they did before applying your patches?

Edit: I'm asking because I spent quite some time fine-tuning bindings and reporting for these things. 😄

@DerDreschner
Copy link
Contributor Author

DerDreschner commented Nov 9, 2025

@burmistrzak : The binding is not necessary. It's being done automatically by zigbee-herdsman if the device support it and report it correctly (which the Bosch devices all do), see: https://github.com/Koenkk/zigbee-herdsman/blob/master/src/controller/model/device.ts#L966

And yeah, I primarily test the devices by re-pair them afterwards. It's the different update-paths I often forget. 😅

@DerDreschner DerDreschner deleted the fix/overwork-bosch-bsen-w branch November 9, 2025 07:03
@burmistrzak
Copy link
Contributor

@DerDreschner Huh, that's good to know! 🤝
IIRC, I had issues with genPollCtrl not being bound automatically by Bosch devices. But maybe that was before this feature was introduced in Z2M?

jacky202509 pushed a commit to jacky202509/zigbee-herdsman-converters that referenced this pull request Nov 13, 2025
@DerDreschner
Copy link
Contributor Author

DerDreschner commented Nov 13, 2025

No, that feature is there for at least 4 years now. My best bet is the missing response to the zclVersion read request right on the beginning of the interview on the previous implementation. That's what it looks like on Wireshark:

image

When Bosch devices don't get any response to that request, they tend to just ignore some messages on different occasions (especially during interview) which can lead to several different issues. This is being handled for the BTH-RM230Z in this line. Important: Not all Bosch devices need/do that (e.g., as we're discussing about the BSEN-W here: that device doesn't).

Another reason could be the missing/incomplete response to the time request when we're talking about the Bosch Thermostats. This is being fixed by myself in zigbee-herdsman here: Koenkk/zigbee-herdsman#1517

But my bet is the unanswered zclVersion read request.

@burmistrzak
Copy link
Contributor

@DerDreschner Great catch!
But I wouldn't rely on Bosch to use Zigbee correctly. They could have implemented all their products with standard ZCL attributes but chose to hack together some custom clusters. 🙄

@DerDreschner
Copy link
Contributor Author

DerDreschner commented Nov 13, 2025

@burmistrzak : Honestly, it's not that bad in my opinion.

They just make some assumptions you have to keep in mind (e.g., only being used in markets with daylight saving time, therefore reject time answers without DST information). Apart from that, it's pretty close to standard with minor exceptions that are not very significant if you only implement what is officially supported/used (having the sensitivity thing on the BSD-2 in mind here). The zclVersion request is up to standard, as any device must implement that. It's a flaw in zigbee-herdsman, not on the Bosch side.

Yes, even the situation on the thermostats is up to standard. The behavior is covered by the Zigbee Cluster Library as well, see the ControlSequenceOfOperation attribute in the HVAC thermostat cluster, which defines what is possible with the current configuration. You could say: they use the Zigbee standard too much. 😄

I guess @Koenkk could tell you stories about a lot worse usages of the Zigbee "standard". 😄

@burmistrzak
Copy link
Contributor

@DerDreschner Yea, newer devices are definitely not as bad as the Twinguard. That one is horrific. 🫣
My personal conspiracy theory is that manufacturers intentionally butcher these standards to force users into their closed systems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants