Dru fireplace

Dear all,

Ik like to control my Dru fireplace using Home Assistant. My Dru fireplace uses a Honeywell BRDG-03EM01 gateway. Using this gateway I am able to control the fireplace using the Dru app.

Some people got it working using OpenHab

The protocol is bases on modbus. Home Assistant supports modbus:

Does anyone managed the get the Dru fireplace control working in Home Assistant ?

Theo

I have this working with 2021.5

In configuration.yaml

modbus:
  - name: haard
    type: tcp
    host: <ip>
    port: 502
    timeout: 10

- platform: modbus
    scan_interval: 30
    registers:

      # All registers for the Dru Ecowave over the Honewell controller
      # Gateway = slave 207
      # Haard = 2 (auto assigned upon reg)
      # See "20190607 - Dru - Info_07_EN_26319_Remote_Access_DFGT-2.pdf"
      #
      # Haard (called DFGT, slave address 2 auto assigned) holding registers:
      - name: Huiskamer haard last seen seconds
        hub: haard
        slave: 2
        register: 40100
        register_type: holding
      - name: Huiskamer haard comm status
        hub: haard
        slave: 2
        register: 40101
        register_type: holding
      # - name: Huiskamer haard action
      #   hub: haard
      #   slave: 2
      #   register: 40200
      #   register_type: holding  # writable
      # - name: Huiskamer haard flame heigth
      #   hub: haard
      #   slave: 2
      #   register: 40201
      #   register_type: holding  # writable
      - name: Huiskamer haard status raw
        hub: haard
        slave: 2
        register: 40203
        register_type: holding
      - name: Huiskamer haard fault
        hub: haard
        register: 40204
        slave: 2
        register_type: holding
      - name: Huiskamer haard RSSI gateway
        hub: haard
        register: 40205
        slave: 2
        register_type: holding
        scale: -0.5
        precision: 1
        unit_of_measurement: dBm
        device_class: signal_strength
      - name: Huiskamer haard RSSI DFGT
        hub: haard
        register: 40206
        slave: 2
        register_type: holding
        scale: -0.5
        precision: 1
        unit_of_measurement: dBm
        device_class: signal_strength
      - name: Huiskamer haard room temp
        hub: haard
        register: 40207
        slave: 2
        register_type: holding
        scale: 0.1
        precision: 1
        unit_of_measurement: °C
        device_class: temperature

And here is the config for 2021.8:

# https://www.home-assistant.io/integrations/modbus/
modbus:
  - name: haard
    type: tcp
    host: <ip>
    port: 502
    timeout: 10
    delay: 1

    sensors:
      # All registers for the Dru Ecowave over the Honewell controller
      # Gateway = slave 207
      # Haard = 2 (auto assigned upon reg)
      # See "20190607 - Dru - Info_07_EN_26319_Remote_Access_DFGT-2.pdf"
      #
      # Haard (called DFGT, slave address 2 auto assigned) holding registers:
      - name: Huiskamer haard last seen seconds
        slave: 2
        address: 40100
      - name: Huiskamer haard comm status
        slave: 2
        address: 40101
      # - name: Huiskamer haard action
      #   slave: 2
      #   address: 40200
      # - name: Huiskamer haard flame heigth
      #   slave: 2
      #   address: 40201
      - name: Huiskamer haard status raw
        slave: 2
        address: 40203
      - name: Huiskamer haard fault
        address: 40204
        slave: 2
      - name: Huiskamer haard RSSI gateway
        address: 40205
        slave: 2
        scale: -0.5
        precision: 1
        unit_of_measurement: dBm
        device_class: signal_strength
      - name: Huiskamer haard RSSI DFGT
        address: 40206
        slave: 2
        scale: -0.5
        precision: 1
        unit_of_measurement: dBm
        device_class: signal_strength
      - name: Huiskamer haard room temp
        address: 40207
        slave: 2
        scale: 0.1
        precision: 1
        unit_of_measurement: °C
        device_class: temperature
1 Like

Nice @DennisF, thanks for sharing

For thos who are wondering, i’ve setup some switches allowing me to turn the fireplace on and/or activate second burner, (eco) wave:

- platform: template
  switches:
    fireplace_status_wave:
      friendly_name: "Fireplace wave"
      value_template: "{{ states('sensor.fireplace_status_raw')|int|bitwise_and(512) > 0 }}"
      turn_on:
        service: modbus.write_register
        data:
          address: 40200
          unit: 2
          value: 105
          hub: fireplace
      turn_off:
        service: modbus.write_register
        data:
          address: 40200
          unit: 2
          value: 7
          hub: fireplace
    fireplace_status_main_burner:
      friendly_name: "Fireplace Main burner"
      value_template: "{{ states('sensor.fireplace_status_raw')|int|bitwise_and(4) > 0 }}"
      turn_on:
        service: modbus.write_register
        data:
          address: 40200
          unit: 2
          value: 101
          hub: fireplace
      turn_off:
        service: modbus.write_register
        data:
          address: 40200
          unit: 2
          value: 3
          hub: fireplace
    fireplace_status_second_burner:
      friendly_name: "Fireplace second burner"
      value_template: "{{ states('sensor.fireplace_status_raw')|int|bitwise_and(8) > 0 }}"
      turn_on:
        service: modbus.write_register
        data:
          address: 40200
          unit: 2
          value: 102
          hub: fireplace
      turn_off:
        service: modbus.write_register
        data:
          address: 40200
          unit: 2
          value: 4
          hub: fireplace

Note 1; the Hub value is the name you define in your modbus configuration
Note 2; Either the second burner of main burner turns on the fireplace

also some other states I read via:

- platform: template
  sensors:
    fireplace_status_fault:
      friendly_name: "Fireplace fault"
      value_template: "{{ states('sensor.fireplace_haard_status_raw')|int|bitwise_and(1) > 0 }}"
    fireplace_status_pillot_flame:
      friendly_name: "Fireplace pilot flame"
      value_template: "{{ states('sensor.fireplace_haard_status_raw')|int|bitwise_and(2) > 0 }}"
1 Like

Ah totally forgot to post how to do things, here are my different scripts which steer the fireplace

# See "20190607 - Dru - Info_07_EN_26319_Remote_Access_DFGT-2.pdf"

# Notes:
# - 100 (Turn Pilot ON) does nothing
# - 101 (Turn Main Burner ON) also turns on second burner
# - 102 (Turn Second Burner ON) also turns on main burner

huiskamer_haard_zacht_enkel:
  sequence:
    - service: modbus.write_register
      data:
        hub: haard
        unit: 2  # slave
        address: 40200  # register
        value: 101  # Main burner on

    - delay: 10  # seconds
    - service: modbus.write_register
      data:
        hub: haard
        unit: 2  # slave
        address: 40200  # register
        value: 4  # Second burner off

    - delay: 10  # seconds
    - service: modbus.write_register
      data:
        hub: haard
        unit: 2  # slave
        address: 40201  # register
        value: 5  # %


huiskamer_haard_medium_dubbel:
  sequence:
    - service: modbus.write_register
      data:
        hub: haard
        unit: 2  # slave
        address: 40200  # register
        value: 101  # Main burner on

    - delay: 10  # seconds
    - service: modbus.write_register
      data:
        hub: haard
        unit: 2  # slave
        address: 40201  # register
        value: 25  # %


huiskamer_haard_wave:
  sequence:
    - service: modbus.write_register
      data:
        hub: haard
        unit: 2  # slave
        address: 40200  # register
        value: 102  # Turn Second Burner ON

    - delay: 10  # seconds
    - service: modbus.write_register
      data:
        hub: haard
        unit: 2  # slave
        address: 40201  # register
        value: 30  # %

    - delay: 10  # seconds
    - service: modbus.write_register
      data:
        hub: haard
        unit: 2  # slave
        address: 40200  # register
        value: 105  # Wave on


huiskamer_haard_uit:
  sequence:
    - service: modbus.write_register
      data:
        hub: haard
        unit: 2  # slave
        address: 40200  # register
        value: 1  # Turn fireplace off

And the binary sensors (which derive from the registers):

  # https://www.home-assistant.io/integrations/binary_sensor.template/
  - platform: template
    sensors:

      # Huiskamer haard
      # register 40203
      # See "20190607 - Dru - Info_07_EN_26319_Remote_Access_DFGT-2.pdf"
      huiskamer_haard_main_burner_on:
        friendly_name: "Huiskamer haard main burner on"
        value_template: "{{ states('sensor.huiskamer_haard_status_raw')|int|bitwise_and(2**2) > 0 }}"
      huiskamer_haard_second_burner_on:
        friendly_name: "Huiskamer haard second burner on"
        value_template: "{{ states('sensor.huiskamer_haard_status_raw')|int|bitwise_and(2**3) > 0 }}"
      huiskamer_haard_low_battery:
        friendly_name: "Huiskamer haard low battery"
        value_template: "{{ states('sensor.huiskamer_haard_status_raw')|int|bitwise_and(2**4) > 0 }}"
      huiskamer_haard_230v_phase_fault:
        friendly_name: "Huiskamer haard 230v phase fault"
        value_template: "{{ states('sensor.huiskamer_haard_status_raw')|int|bitwise_and(2**5) > 0 }}"
      huiskamer_haard_reset_possible:
        friendly_name: "Huiskamer haard reset possible"
        value_template: "{{ states('sensor.huiskamer_haard_status_raw')|int|bitwise_and(2**6) > 0 }}"
      huiskamer_haard_wave_active:
        friendly_name: "Huiskamer haard wave active"
        value_template: "{{ states('sensor.huiskamer_haard_status_raw')|int|bitwise_and(2**9) > 0 }}"
      huiskamer_haard_flame_height_locked:
        friendly_name: "Huiskamer haard flame height locked"
        value_template: "{{ states('sensor.huiskamer_haard_status_raw')|int|bitwise_and(2**10) > 0 }}"
      huiskamer_haard_remote_control_bound:
        friendly_name: "Huiskamer haard flame remote control bound"
        value_template: "{{ states('sensor.huiskamer_haard_status_raw')|int|bitwise_and(2**11) > 0 }}"
      huiskamer_haard_ignition_not_allowed:
        friendly_name: "Huiskamer haard ignition allowed"
        value_template: "{{ states('sensor.huiskamer_haard_status_raw')|int|bitwise_and(2**15) == 0 }}"

Great i was looking for this long time. are the scripts also placed under configuration.yaml?

That depends a bit on how you’ve laid things out but without any fancy layout, yes.

Integration of your first code is working. however the last 2 scripts are giving me an error.

homeassistant.exceptions.HomeAssistantError: The system cannot restart because the configuration is not valid: Component error: huiskamer_haard_uit - Integration 'huiskamer_haard_uit' not found.
Component error: sensors - Integration 'sensors' not found.
Component error: huiskamer_haard_medium_dubbel - Integration 'huiskamer_haard_medium_dubbel' not found.
Component error: platform - Integration 'platform' not found.
Component error: huiskamer_haard_zacht_enkel - Integration 'huiskamer_haard_zacht_enkel' not found.
Component error: huiskamer_haard_wave - Integration 'huiskamer_haard_wave' not found.

@Dennis : thanks for helping me out :grinning:

@Stingtone : regarding the error. Put the following lines in your configuration.yaml

# Includes
script: !include scripts.yaml

And put DennisF code in the scripts.yaml

# See "20190607 - Dru - Info_07_EN_26319_Remote_Access_DFGT-2.pdf"

# Notes:
# - 100 (Turn Pilot ON) does nothing
# - 101 (Turn Main Burner ON) also turns on second burner
# - 102 (Turn Second Burner ON) also turns on main burner

huiskamer_haard_zacht_enkel:
  sequence:
    - service: modbus.write_register
      data:
        hub: haard
        unit: 2  # slave
        address: 40200  # register
        value: 101  # Main burner on

    - delay: 10  # seconds
    - service: modbus.write_register
      data:
        hub: haard
        unit: 2  # slave
        address: 40200  # register
        value: 4  # Second burner off

    - delay: 10  # seconds
    - service: modbus.write_register
      data:
        hub: haard
        unit: 2  # slave
        address: 40201  # register
        value: 5  # %


huiskamer_haard_medium_dubbel:
  sequence:
    - service: modbus.write_register
      data:
        hub: haard
        unit: 2  # slave
        address: 40200  # register
        value: 101  # Main burner on

    - delay: 10  # seconds
    - service: modbus.write_register
      data:
        hub: haard
        unit: 2  # slave
        address: 40201  # register
        value: 25  # %


huiskamer_haard_wave:
  sequence:
    - service: modbus.write_register
      data:
        hub: haard
        unit: 2  # slave
        address: 40200  # register
        value: 102  # Turn Second Burner ON

    - delay: 10  # seconds
    - service: modbus.write_register
      data:
        hub: haard
        unit: 2  # slave
        address: 40201  # register
        value: 30  # %

    - delay: 10  # seconds
    - service: modbus.write_register
      data:
        hub: haard
        unit: 2  # slave
        address: 40200  # register
        value: 105  # Wave on


huiskamer_haard_uit:
  sequence:
    - service: modbus.write_register
      data:
        hub: haard
        unit: 2  # slave
        address: 40200  # register
        value: 1  # Turn fireplace off

Hi,

I can’t get this to work. either I have a modbus error
“2022-01-08 14:18:13 ERROR (MainThread) [homeassistant.setup] Setup failed for modbus: Invalid config”
or the sensors are available but do not give any data/update.
Can you share the input to put in the configuration.yaml and scripts.yaml?

I’m doing something wrong, but really cannot figure out what it is that i’m doing wrong… :frowning:

Thanks!

Core: core-2021.12.8

For people looking for dru fireplace integration (with the Honeywell bridge) I have created a “simple” setup to add this to your own HA.

Still work in progress and I am hoping to get it perfect soon.
Tips are welcome.