mvn23 / pyotgw

A library to interface with the OpenTherm Gateway through serial or network connection.
GNU General Public License v3.0
28 stars 16 forks source link

BS command to modify the room setpoint being sent to the boiler missing (version 6.5, PIC16F1847-only) #90

Open blb4github opened 1 week ago

blb4github commented 1 week ago

Hi,

since 6.5, PIC16F1847- only verion), a new command is added: BS=temperature Boiler setpoint. Some boilers ignore certain controls sent by the thermostat, based on the room temperature and room setpoint values. Sending a different room setpoint can help to convince these boilers to do what they are supposed to do. Set the temperature to 0 to return to passing along the value specified by the thermostat. Examples: BS=16.3, BS=0

It would be great if this one can be added (and then to the HA integration as well) as with my Honeywell Evohome Opentherm thermostat the TT and TC commands don't work.

mvn23 commented 1 week ago

Thanks for the report. I have recently obtained a few PIC16F1847 controllers and plan to implement the additional commands in the near future. I checked the documentation for the BS command and so far I don't find its explanation very clear. From what I understand it only affects the values sent to the boiler, so if the TT and TC commands don't work on your thermostat then the BS command won't change that. You can test this with otmonitor or in Home Assistant with the opentherm_gw.send_transparent_command service action.

If you're testing this anyway, I would appreciate a log of the protocol from otmonitor or a Home Assistant integration debug log with some information on the applied testing procedure if it's not too much trouble. Keep in mind that the opentherm protocol is slow and depends on the thermostat polling for values, so please give it some time (2-3 minutes should be enough, but longer could be necessary) to settle between commands when testing.

blb4github commented 1 week ago

Thanks!! I did miss the transparent_command option, that one is working now for me! The value provided with the BS command is indeed only send to the boiler, not to the Thermostat. My Opentherm Honeywell Evohome (multi-zone) thermostat is not setting the room temperature nor the required room temperature, which would be difficult indeed in a multi-zone installation. Currently I'm controlling my heatpump with chEnable, Control Setpoint and max ch water setpoint which should be fine but the behavior of my thermostat is not that smooth. I like to use the difference between my actual living room temperature and the living room setpoint in the logic and via the BS command I can sent this value to my heatpump.

my YAML:

alias: OTGW BS
description: Change RoomTempSet to current Living Room Temp
trigger:
  - platform: state
    entity_id:
      - climate.01_187689_00
    attribute: current_temperature
  - platform: state
    entity_id:
      - climate.01_187689_00
    attribute: temperature
condition: []
action:
  - action: opentherm_gw.send_transparent_command
    metadata: {}
    data:
      gateway_id: opentherm
      transp_cmd: BS
      transp_arg: >-
        {{ state_attr('climate.01_187689_00', 'current_temperature') + 20 -
        state_attr('climate.01_187689_00', 'temperature')}}
mode: single

Output otmonitor:

19:32:03.779889  BS: 21.10
19:32:03.939925  T80000200  Read-Data   Status: 00000010 00000000
19:32:04.119292  B40000200  Read-Ack    Status: 00000010 00000000
19:32:04.479195  T00050000  Read-Data   Application-specific flags: 00000000 0
19:32:04.639185  BF0050000  Unk-DataId  Application-specific flags: 00000000 0
19:32:07.139446  T10010A00  Write-Data  Control setpoint: 10.00
19:32:07.319241  BD0010A00  Write-Ack   Control setpoint: 10.00
19:32:07.699120  T90181400  Write-Data  Room temperature: 20.00
19:32:08.239387  T90181400  Write-Data  Room temperature: 20.00
19:32:08.759823  B50181400  Write-Ack   Room temperature: 20.00
19:32:08.938712  T00050000  Read-Data   Application-specific flags: 00000000 0
19:32:09.099190  BF0050000  Unk-DataId  Application-specific flags: 00000000 0
19:32:10.020406  T10010A00  Write-Data  Control setpoint: 10.00
19:32:10.178912  BD0010A00  Write-Ack   Control setpoint: 10.00
19:32:10.558738  T10101400  Write-Data  Room setpoint: 20.00
19:32:10.559730  R1010151A  Write-Data  Room setpoint: 21.10
19:32:10.718793  BD010151A  Write-Ack   Room setpoint: 21.10
19:32:10.739252  AD0101400  Write-Ack   Room setpoint: 20.00