Closed yotuze closed 3 years ago
opentherm_gw documentation opentherm_gw source (message by IssueLinks)
Hey there @mvn23, mind taking a look at this issue as its been labeled with an integration (opentherm_gw
) you are listed as a codeowner for? Thanks!
(message by CodeOwnersMention)
Thanks for the report. We'll need some additional info to track down this issue.
otmonitor
or through serial/usb with the SW=<value>
command?
I'm not able to change the dhw setpoint with otmonitor through Configuration -> Heater -> DHW Setpoint
or by sending SW=temp. in Configuration -> Miscellaneous -> Free format command
.
Only thing that works is changing Configuration -> Heater -> Comfort setting
, when I choose Comfort Mode
boiler display is turned on but when I choose Thermostat controlled
than boiler go in the standby mode.
Bellow logs from otmonitor where you can see that value of DHW setpoint
doesn't change. Only write actions are for Write-Data Maximum relative modulation level: 100.00
and Write-Data Control setpoint: 10.00
which was not send by me.
21:44:25.782302 R80000200 Read-Data Status: 00000010 00000000
21:44:25.847332 BC0000000 Read-Ack Status: 00000000 00000000
21:44:26.815198 R80000200 Read-Data Status: 00000010 00000000
21:44:26.938955 BC0000000 Read-Ack Status: 00000000 00000000
21:44:27.848594 R80190000 Read-Data Boiler water temperature: 0.00
21:44:27.913499 B40192619 Read-Ack Boiler water temperature: 38.10
21:44:29.082324 Command: SW=42.00
21:44:29.245425 R10010A00 Write-Data Control setpoint: 10.00
21:44:29.310885 BD0010A00 Write-Ack Control setpoint: 10.00
21:44:29.359130 SW: 42.00
21:44:29.885589 Command: SW=42.00
21:44:29.929983 R80380000 Read-Data DHW setpoint: 0.00
21:44:29.980400 B40382700 Read-Ack DHW setpoint: 39.00
21:44:30.032205 SW: 42.00
21:44:30.064971 Command: SW=42.00
21:44:30.141176 SW: 42.00
21:44:31.233504 Command: SH=75.00
21:44:31.287072 R00390000 Read-Data Max CH water setpoint: 0.00
21:44:31.314833 BC0395050 Read-Ack Max CH water setpoint: 80.31
21:44:31.407187 SH: 75.00
21:44:31.971838 R80000200 Read-Data Status: 00000010 00000000
21:44:32.095640 BC0000000 Read-Ack Status: 00000000 00000000
21:44:32.274690 Command: SH=75.00
21:44:32.407484 SH: 75.00
21:44:32.462282 Command: SH=75.00
21:44:32.532515 SH: 75.00
21:44:33.003108 R00120000 Read-Data CH water pressure: 0.00
21:44:33.221965 B40120133 Read-Ack CH water pressure: 1.20
21:44:34.050547 R80000200 Read-Data Status: 00000010 00000000
21:44:34.108752 BC0000000 Read-Ack Status: 00000000 00000000
21:44:35.061844 R80190000 Read-Data Boiler water temperature: 0.00
21:44:35.191224 B40192619 Read-Ack Boiler water temperature: 38.10
21:44:36.097368 R10010A00 Write-Data Control setpoint: 10.00
21:44:36.221806 BD0010A00 Write-Ack Control setpoint: 10.00
21:44:37.125972 R80000200 Read-Data Status: 00000010 00000000
21:44:37.249669 BC0000000 Read-Ack Status: 00000000 00000000
21:44:38.160788 R00110000 Read-Data Relative modulation level: 0.00
21:44:38.221785 BC0110000 Read-Ack Relative modulation level: 0.00
21:44:38.471358 Command: HW=0
21:44:38.546861 HW: 0
21:44:39.191033 R001B0000 Read-Data Outside temperature: 0.00
21:44:39.251500 BC01B0F00 Read-Ack Outside temperature: 15.00
21:44:39.333972 Command: HW=A
21:44:39.438082 HW: A
21:44:40.164925 Command: HW=1
21:44:40.205062 R801C0000 Read-Data Return water temperature: 0.00
21:44:40.297859 HW: 1
21:44:40.357418 BC01C2633 Read-Ack Return water temperature: 38.20
21:44:41.252158 R900E6400 Write-Data Maximum relative modulation level: 100.00
21:44:41.316775 B500E6400 Write-Ack Maximum relative modulation level: 100.00
21:44:42.267010 R80000200 Read-Data Status: 00000010 00000000
21:44:42.393451 BC0000000 Read-Ack Status: 00000000 00000000
21:44:43.313467 R80000200 Read-Data Status: 00000010 00000000
21:44:43.375691 BC0000000 Read-Ack Status: 00000000 00000000
Here you have more: https://pastebin.com/9viYF09u
Through HomeAssistant I can use opentherm_gw.set_control_setpoint
to turn ON/OFF a CH mode (I use outside temperature sensor, so I don't need to set static temperature because boiler use heating curve to calculate heating temp. based on outside temp.) and I can use opentherm_gw.set_hot_water_ovrd
to turn ON/OFF a DHW mode. I'm not sure if this logs would be helpful but if you need other type of logs, let me know how can I get them:
2020-07-23 21:10:41 DEBUG (MainThread) [pyotgw.protocol] Received line 1869: R80000200
2020-07-23 21:10:41 DEBUG (MainThread) [pyotgw.protocol] Added line 1869 to message queue. Queue size: 1
2020-07-23 21:10:41 DEBUG (MainThread) [pyotgw.protocol] Processing: R 00 00 02 00
2020-07-23 21:10:41 DEBUG (MainThread) [pyotgw.protocol] Watchdog timer reset!
2020-07-23 21:10:41 DEBUG (MainThread) [pyotgw.protocol] Received line 1870: BC0000000
2020-07-23 21:10:41 DEBUG (MainThread) [pyotgw.protocol] Added line 1870 to message queue. Queue size: 1
2020-07-23 21:10:41 DEBUG (MainThread) [pyotgw.protocol] Processing: B 04 00 00 00
2020-07-23 21:10:41 DEBUG (MainThread) [pyotgw.protocol] Watchdog timer reset!
2020-07-23 21:10:42 DEBUG (MainThread) [pyotgw.protocol] Received line 1871: R80000200
2020-07-23 21:10:42 DEBUG (MainThread) [pyotgw.protocol] Added line 1871 to message queue. Queue size: 1
2020-07-23 21:10:42 DEBUG (MainThread) [pyotgw.protocol] Processing: R 00 00 02 00
2020-07-23 21:10:42 DEBUG (MainThread) [pyotgw.protocol] Watchdog timer reset!
2020-07-23 21:10:42 DEBUG (MainThread) [pyotgw.protocol] Received line 1872: BC0000000
2020-07-23 21:10:42 DEBUG (MainThread) [pyotgw.protocol] Added line 1872 to message queue. Queue size: 1
2020-07-23 21:10:42 DEBUG (MainThread) [pyotgw.protocol] Processing: B 04 00 00 00
2020-07-23 21:10:42 DEBUG (MainThread) [pyotgw.protocol] Watchdog timer reset!
2020-07-23 21:10:43 DEBUG (MainThread) [pyotgw.protocol] Received line 1873: R80190000
2020-07-23 21:10:43 DEBUG (MainThread) [pyotgw.protocol] Added line 1873 to message queue. Queue size: 1
2020-07-23 21:10:43 DEBUG (MainThread) [pyotgw.protocol] Processing: R 00 19 00 00
2020-07-23 21:10:43 DEBUG (MainThread) [pyotgw.protocol] Watchdog timer reset!
2020-07-23 21:10:43 DEBUG (MainThread) [pyotgw.protocol] Received line 1874: BC0192C66
2020-07-23 21:10:43 DEBUG (MainThread) [pyotgw.protocol] Added line 1874 to message queue. Queue size: 1
2020-07-23 21:10:43 DEBUG (MainThread) [pyotgw.protocol] Processing: B 04 19 2c 66
2020-07-23 21:10:43 DEBUG (MainThread) [pyotgw.protocol] Watchdog timer reset!
2020-07-23 21:10:44 DEBUG (MainThread) [pyotgw.protocol] Received line 1875: R10010A00
2020-07-23 21:10:44 DEBUG (MainThread) [pyotgw.protocol] Added line 1875 to message queue. Queue size: 1
2020-07-23 21:10:44 DEBUG (MainThread) [pyotgw.protocol] Processing: R 01 01 0a 00
2020-07-23 21:10:44 DEBUG (MainThread) [pyotgw.protocol] Watchdog timer reset!
2020-07-23 21:10:44 DEBUG (MainThread) [pyotgw.protocol] Received line 1876: BD0010A00
2020-07-23 21:10:44 DEBUG (MainThread) [pyotgw.protocol] Added line 1876 to message queue. Queue size: 1
2020-07-23 21:10:44 DEBUG (MainThread) [pyotgw.protocol] Processing: B 05 01 0a 00
2020-07-23 21:10:44 DEBUG (MainThread) [pyotgw.protocol] Watchdog timer reset!
2020-07-23 21:10:45 DEBUG (MainThread) [pyotgw.protocol] Received line 1877: R80380000
2020-07-23 21:10:45 DEBUG (MainThread) [pyotgw.protocol] Added line 1877 to message queue. Queue size: 1
2020-07-23 21:10:45 DEBUG (MainThread) [pyotgw.protocol] Processing: R 00 38 00 00
2020-07-23 21:10:45 DEBUG (MainThread) [pyotgw.protocol] Watchdog timer reset!
2020-07-23 21:10:45 DEBUG (MainThread) [pyotgw.protocol] Received line 1878: B40382700
2020-07-23 21:10:45 DEBUG (MainThread) [pyotgw.protocol] Added line 1878 to message queue. Queue size: 1
2020-07-23 21:10:45 DEBUG (MainThread) [pyotgw.protocol] Processing: B 04 38 27 00
2020-07-23 21:10:45 DEBUG (MainThread) [pyotgw.protocol] Watchdog timer reset!
2020-07-23 21:10:45 DEBUG (MainThread) [homeassistant.components.opentherm_gw] Received report: {'dhw_setpoint': 39.0, 'max_ch_setpoint': 80.3125, 'master_ch_enabled': 0, 'master_dhw_enabled': 1, 'master_cooling_enabled': 0, 'master_otc_enabled': 0, 'master_ch2_enabled': 0, 'slave_fault_indication': 0, 'slave_ch_active': 0, 'slave_dhw_active': 0, 'slave_flame_on': 0, 'slave_cooling_active': 0, 'slave_ch2_active': 0, 'slave_diagnostic_indication': 0, 'ch_water_pressure': 1.19921875, 'ch_water_temp': 44.3984375, 'control_setpoint': 10.0, 'relative_mod_level': 0.0, 'outside_temp': 16.0, 'otgw_about': 'OpenTherm Gateway 4.2.5', 'otgw_build': '17:59 20-10-2015', 'otgw_clockmhz': '4 MHz', 'otgw_mode': 'G', 'otgw_smart_pwr': 'Low power', 'otgw_thermostat_detect': 'D', 'otgw_dhw_ovrd': '1', 'otgw_setpoint_ovrd_mode': 'N', 'otgw_gpio_a': 0, 'otgw_gpio_b': 0, 'otgw_led_a': 'F', 'otgw_led_b': 'X', 'otgw_led_c': 'O', 'otgw_led_d': 'M', 'otgw_led_e': 'P', 'otgw_led_f': 'C', 'otgw_ignore_transitions': 1, 'otgw_ovrd_high_byte': 1, 'otgw_setback_temp': 16.0, 'otgw_vref': 3, 'remote_transfer_dhw': 1, 'remote_transfer_max_ch': 1, 'remote_rw_dhw': 1, 'remote_rw_max_ch': 1, 'slave_max_relative_modulation': 100.0, 'slave_max_capacity': 0, 'slave_min_mod_level': 0, 'room_setpoint': 0.0, 'room_temp': 0.0, 'dhw_temp': 0.0, 'return_water_temp': 43.3984375, 'slave_dhw_max_setp': 60, 'slave_dhw_min_setp': 35, 'slave_ch_max_setp': 80, 'slave_ch_min_setp': 25, 'burner_starts': 0, 'ch_pump_starts': 0, 'dhw_pump_starts': 0, 'dhw_burner_starts': 0, 'burner_hours': 0, 'ch_pump_hours': 0, 'dhw_pump_hours': 0, 'dhw_burner_hours': 0}
2020-07-23 21:10:46 DEBUG (MainThread) [pyotgw.protocol] Received line 1879: R00390000
2020-07-23 21:10:46 DEBUG (MainThread) [pyotgw.protocol] Added line 1879 to message queue. Queue size: 1
2020-07-23 21:10:46 DEBUG (MainThread) [pyotgw.protocol] Processing: R 00 39 00 00
2020-07-23 21:10:46 DEBUG (MainThread) [pyotgw.protocol] Watchdog timer reset!
2020-07-23 21:10:46 DEBUG (MainThread) [pyotgw.protocol] Received line 1880: BC0395050
2020-07-23 21:10:46 DEBUG (MainThread) [pyotgw.protocol] Added line 1880 to message queue. Queue size: 1
2020-07-23 21:10:46 DEBUG (MainThread) [pyotgw.protocol] Processing: B 04 39 50 50
2020-07-23 21:10:46 DEBUG (MainThread) [pyotgw.protocol] Watchdog timer reset!
2020-07-23 21:10:47 DEBUG (MainThread) [pyotgw.protocol] Received line 1881: R80000200
2020-07-23 21:10:47 DEBUG (MainThread) [pyotgw.protocol] Added line 1881 to message queue. Queue size: 1
2020-07-23 21:10:47 DEBUG (MainThread) [pyotgw.protocol] Processing: R 00 00 02 00
2020-07-23 21:10:47 DEBUG (MainThread) [pyotgw.protocol] Watchdog timer reset!
2020-07-23 21:10:47 DEBUG (MainThread) [pyotgw.protocol] Received line 1882: BC0000000
2020-07-23 21:10:47 DEBUG (MainThread) [pyotgw.protocol] Added line 1882 to message queue. Queue size: 1
2020-07-23 21:10:47 DEBUG (MainThread) [pyotgw.protocol] Processing: B 04 00 00 00
2020-07-23 21:10:47 DEBUG (MainThread) [pyotgw.protocol] Watchdog timer reset!
I really appreciate your work and I hope I will be able to use this OTGW thanks to your integration. Thank you
If it does not work with the SW
command then unfortunately it's not going to work from HA either (this command is exactly what HA is using to try and change the setpoint).
How is this possible? Opentherm is a standard so it should be compatible with all devices? I cant set control setpoint through otmonitor but I can do it by HA so maybe there is something I could do?
How is this possible? Opentherm is a standard so it should be compatible with all devices? I cant set control setpoint through otmonitor but I can do it by HA so maybe there is something I could do?
Ideally, you would be correct. Unfortunately not all OpenTherm "standards" are implemented equally and not all features are always supported. HA (or actually pyotgw
) is using the serial interface to control the OpenTherm Gateway, so if that does not work then unfortunately we're out of luck.
edit: Actually, I don't see any Write-Data
packets associated with the hot water temperature after the command has been sent. I will check my setup soon and report back.
edit2: A quick check shows that I do indeed get Write-Data
messages on the serial interface after issuing the SW
command.
In your log files, I noticed the following:
21:44:25.782302 R80000200 Read-Data Status: 00000010 00000000
21:44:25.847332 BC0000000 Read-Ack Status: 00000000 00000000
This is your boiler not following the specification, which states:
The status exchange is a special form of conversation which should be initiated by the master by sending a READ-DATA (id=0,MasterStatus,00) message. The slave must respond with READ-ACK (id=0,MasterStatus, SlaveStatus) to send back the Slave Status information in the same single conversation.
So the fact that the second message does not have the identical Status: 00000010
part is not according the protocol specification.
Incidentally, this bit is related to the dhw configuration. It should be present in the second series of flags as well (mine responds with 00000011 00000011
). This is likely the reason why your gateway is not attempting to write the dhw setpoint value to the boiler: it gets information from the boiler that dhw is not supported.
Maybe it's something you need to enable at DeDietrich's side - either boiler or current thermostat connected to it?
Maybe it's something you need to enable at DeDietrich's side - either boiler or current thermostat connected to it?
I don't use thermostat. I'm not sure what could I be changing. Boiler have position in menu OpenTherm but I can only change between 0,1,2 and 0 = Plug&Play. I've tried all 3 options but nothing changes.
It's very weird that I can change other things but not this DHW temp even though older boilers of this manufacturer can.
There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.
The problem
When I use
opentherm_gw.set_hot_water_setpoint
service to set a dhw temperature the state ofsensor.dhw_setpoint
change back after couple of seconds to previous value.Let's say I have 39 °C DHW temperature set at my boiler, I use service to change to 40 °C, value on a
sensor.dhw_setpoint
change to 40 °C and after 5 seconds change back to 39 °C. This temporary change is only 'visible' on asensor.dhw_setpoint
, at the boiler display nothing change, during this 5 seconds a boiler display show 39 °C all the time.I have De Dietrich boiler, OTGW from nodo-shop connected by WiFi and I don't use room thermostat.
Environment