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.

2 Likes

Hello Firewizz,
just installed your integration. Works great, I am very happy with it.
Thank you very much,
Simon

Hello,

I also installed this inegration and it seems to work fine.
However, when I do so, the apps on my phone/tablet stop working with error message: ‘Gateway error’.
Any idea why?

Thanks,
Harmen

Sorry for the late reply,
Who is giving the error, the home assistant app? Or is it in the logs? Is this only on mobile devices or also when logged in to home assistant using browser?

Hi Nemrah and Firewiz
Did you get this fixed? I really appriciate the integration, Firewizz - but I have the same problem. The app stops working.

My apologies for the late response.

I haven’t made any changes yet. Didn’t get a response to my questions.
At the moment I am super busy but maybe next week I can check if I can find a solution.

Super and thank you. What I’m experiencing is that the DRU app on the phone comes with the error “Gateway error”. Not sure how to investigate more. But let me know if there is anything I can provide to help.

Hi, do you mean the original app stop working? Not the HA app?
You can solve this by increasing the timeout. As a default since I do not use the original app and only the HA app I put this on the max. So it could be that the gateway stops accepting connections/updates.

I’ve got a couple of settings you can play with (in /packages/dru_fireplace.yaml) :

Please let me know if one of these helped!

Hello
I have now tried timeout from 1 to 50 and delay from 1 to 20, but same result. The Dru app does not work.
I’m considering using Home Assistant instead. Can you also control the level (the size of the fire from 1-15) in any way?