-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[New device support]: Bosch Radiator Thermostat II #14926
Comments
This seems to be a duplicate of #14005 - though more people with this device should hopefully speed things up :) |
You might want to add a If you have the Z2M GUI enabled, you can see what clusters are supported by the endpoints, in the device clusters tab. You can also see what the device reports back using the device dev tab and reading from the various clusters. |
Try adding |
@danieledwardgeorgehitchcock Via Endpoint 1, Cluster hvacThermostat I can read the following attributes: I can also set the last one if I write instead of reading it. How would I now add these commands to converter file @niklasarnitz started above? |
So, I personally would look at getting the read attributes in and working first - This is what Here is something that should get you some of the way to a functional product: const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const e = exposes.presets;
const ea = exposes.access;
const definition = {
zigbeeModel: ['RBSH-TRV0-ZB-EU'],
model: 'Radiator thermostat II',
vendor: 'Bosch',
description: 'Radiator thermostat',
fromZigbee: [fz.thermostat, fz.hvac_user_interface],
toZigbee: [tz.thermostat_occupied_heating_setpoint],
exposes: [
exposes.climate()
.withSetpoint('occupied_heating_setpoint', 5, 30, 0.5, ea.STATE_SET)
.withLocalTemperature()
],
};
module.exports = definition; |
I'll be trying this tomorrow. |
When using @itkama 's config, I get a few different errors: When I try and refresh the temperature:
And it seems that the binding process of genPowerCfg fails:
Setting the temperature works. |
Refresh now works for me. Also the Local Temp works. But here is another error:
|
Add |
@danieledwardgeorgehitchcock I'm getting this error now: |
replace |
New error now popping up (it's still working though): Failed to configure 'Manuel Thermostat', attempt 1
(Error: ConfigureReporting 0x18fc26000002fc33/1 hvacThermostat([{"attribute":"localTemperatureCalibration","minimumReportInterval":0,"maximumReportInterval":3600,"reportableChange":0}],
{"sendWhen":"active","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
failed (Status 'UNREPORTABLE_ATTRIBUTE')
at Endpoint.checkStatus (/app/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:317:28)
at Endpoint.configureReporting (/app/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:694:22)
at Object.thermostatTemperatureCalibration (/app/node_modules/zigbee-herdsman-converters/lib/reporting.js:151:9)
at Object.configure (/app/dist/util/externally-loaded.js:27:9)
at Configure.configure (/app/lib/extension/configure.ts:115:13)) |
It's telling you what the issue is. |
You're reading an attribute there, not asking it to report it given a threshold or interval. Try doing the same thing manually in the reporting tab and you'll likely get the same error... |
Is there any progress so that the new device info can be added and published in a near future? |
I have a working device config now. I’ll create a PR shortly. |
Added by @niklasarnitz (in Koenkk/zigbee-herdsman-converters#4983) Changes will be available in the dev branch in a few hours from now. (https://www.zigbee2mqtt.io/advanced/more/switch-to-dev-branch.html) |
@Koenkk do you have an idea when a new stable release will be published? |
Stable releases are at the beginning of each month |
|
@BBJake I have updated the integration according your code, but because my Conbee II currently does not support "Installation Codes", could you test the upgrade? |
I had another case where the thermostat went crazy overnight, switching between It started with failing to set the heating to 17:
Then a couple hours later setting the temperature twice:
Logs with MQTT publish removed: https://pastebin.com/NDPsA3ny The log contains several thermostat restarts that did not help. Restarting Z2M then the thermostat helped. |
I've extracted the OTA file from a Zigbee packet capture and successfully used it to update one of my thermostats via z2m: |
Are you able to capture the network traffic of checking for update?
Or which api endpoint the controller calls when checking for updates?
Maybe this way we could get access to future updates.
|
I haven't done any captures from SHC <-> Internet since everything is probably encrypted anyways. Also since I only borrowed the SHC from a relative I don't want to play around with it too much... |
Could you capture the traffic? URLs aren’t encoded so getting the endpoints would be great too. And maybe if there is a button for ‘Check for controller firmware upgrade’ that capture would be great too. With those two things, I could start fuzzing the Bosch API |
It was already confirmed in this thread that the SHC uses HTTPS to communicate with the Bosch backend. You can't get URLs from that. |
Ah. Sorry. My bad. Could you have a look ad DNS queries made by the controller? |
I also just bought a smart home controller, so maybe I can dissect the firmware soon :) |
shc_dns.zip |
Initial support for using a remote temperature sensor: Koenkk/zigbee-herdsman-converters#5297 Getting this to work properly would most likely require buying a Raumthermostat II and taking a look at the traffic... |
Okay, I have good and bad news on the SHC Hacking front: The good news: I have received my SHC 1 The bad news: Multiple Attack surfaces I have tried until now have failed.
I'm currently thinking about more possibilities, f.e. desoldering the EMMC flash and dumping the firmware that way, but currently I do not have access to BGA soldering equipment. Does anybody else have an Idea I could try? |
How exactly are you trying to use a mitmproxy? As long as Bosch doesn't validate the certificate the proxy should work? Or am I just understanding you wrong, that Bosch is exactly doing that? (Which would be good, in a sense that Bosch is doing something right, bad for trying to hack it :D) |
I tried using it as a transparent proxy and I also tried using a simple DNS spoof. Also, the only open port on their API server that handles the updates is |
Do you have the Smarthome Controller 1 or 2? Model Variant 2 uses another CPU and maybe there is a serial shell available on that ones PCB. |
I also have the SHC 1 |
@niklasarnitz I would assume he has the SHC1 - the SHC2 seems not to be available for purchase yet. Says "In Kürze" on Boschs website and I also can't find it anywhere else to buy. Got a steep price point of 100€ too... |
Hm. thats unfortunate. @BBJake could you probe your board for a possible UART? |
@niklasarnitz |
@compujuckel According to Bosch there should soon be another update for the thermostat (end of january/start of february). |
If someone could tell me how to perform the packet capture, I can do that too. |
@niklasarnitz that would be great, I currently don't have access to an SHC anymore. I can post my program to reassemble the OTA file from a packet capture if you or anyone else needs it. |
@compujuckel Did you post your script anywhere? Testing something similar with one Aqara device where the hub seems to modify the image a bit. |
It's released here now: https://github.com/compujuckel/ZigbeeOtaExtractor |
Maybe of interest: zigpy/zigpy-cli#29 (Reconstruct OTA images from PCAP files) |
Link
https://www.bosch-smarthome.com/at/de/produkte/geraete/heizkoerper-thermostat/
Database entry
{"id":22,"type":"EndDevice","ieeeAddr":"0x18fc26000002a2d7","nwkAddr":39513,"manufId":4617,"manufName":"BOSCH","powerSource":"Battery","modelId":"RBSH-TRV0-ZB-EU","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":769,"inClusterList":[0,1,3,4,32,513,516,2821],"outClusterList":[10,25],"clusters":{"genBasic":{"attributes":{"modelId":"RBSH-TRV0-ZB-EU","manufacturerName":"BOSCH","powerSource":3,"zclVersion":8,"appVersion":1,"stackVersion":5,"hwVersion":1,"dateCode":"20220627","swBuildId":"3.02.05"}},"genPollCtrl":{"attributes":{"checkinInterval":6480}},"hvacThermostat":{"attributes":{"20496":0}}},"binds":[{"cluster":32,"type":"endpoint","deviceIeeeAddress":"0x00124b0024c20f21","endpointID":1}],"configuredReportings":[],"meta":{}}},"appVersion":1,"stackVersion":5,"hwVersion":1,"dateCode":"20220627","swBuildId":"3.02.05","zclVersion":8,"interviewCompleted":true,"meta":{},"lastSeen":1668172257367,"defaultSendRequestWhen":"active"}
Comments
Here are some things I found out and got working already:
Here is my first draft of a config:
Comment: The setpoint range and interval should be correct.
External converter
No response
Supported color modes
No response
Color temperature range
No response
The text was updated successfully, but these errors were encountered: