Hey Miguel,
Ducobox Energy is for now unsupported, I don’t have one where I can test on Maybe in the future support will be added!
Hey Miguel,
Ducobox Energy is for now unsupported, I don’t have one where I can test on Maybe in the future support will be added!
Hi!
Soon I will receive the DucoBox in my new house.
Do you meanwhile have a solution for connecting your Energy Comfort with Home Assistant?
I could buy the communication print, but if it’s not needed, the better.
@Flamingo-tech : If you want to test on my Ducobox Energy Comfort device, you’re invited!
Hey @koelkast,
Lets continue this converstation via E-mail ^^ would be cool if we can do a collab!
Kind regards
The Flamingo
Hi, I dont have the energy comfort installed yet, but here next to me in the box with the communication print. Maybe I could also help with testing en joining you guys?
Hi, did you receive the photos per email? Just checking
Yes I did! I send you a response today ^^
Thanks you so much for your effort! This will deff get us started
Hello,
@Flamingo-tech @koelkast I would like to buy also the Ducobox Energy Comfort. Did you had any success to connect this model too?
That would be great
Hi @albertjSmit Nice solution you have configured in HA! Unfortunately, this link doesn’t work anymore… Could you perhaps post the full yaml code of the duco integration in this topic? Thanks in advance!
It’s not completely the same but I started out with his information and modernised it to the new templates. I have the DucoBox Energy Comfort 325 with the CO2 and RH sensors in multiple rooms and a RH sensor in the box itself.
Make sure to change the IP’s to your IP’s and check which nodes are in your system for which rooms. You can see and set them through the website available on the root of the IP-address of your PCB.
inside configuration.yaml (you can choose to split it into separate .yaml files and include it per type):
input_select:
ducobox_mode:
name: DucoBox stand
icon: mdi:target
options:
- "AUTO"
- "CNT1"
- "CNT2"
- "CNT3"
- "MAN1"
- "MAN2"
- "MAN3"
rest:
- resource: http://192.168.16.8/nodeinfoget?node=1
scan_interval: 15
sensor:
- name: DucoBox
unique_id: ducobox
value_template: "{{ value_json.state }}"
icon: mdi:fan
json_attributes:
- devtype
- location
- state
- mode
- ovrl
- swversion
- serialnb
- name: DucoBox temperature
unique_id: ducobox_temperature
value_template: "{{ value_json.temp }}"
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
- name: DucoBox humidity
unique_id: ducobox_humidity
value_template: "{{ value_json.rh }}"
device_class: humidity
state_class: measurement
unit_of_measurement: "%"
- name: DucoBox target
unique_id: ducobox_target
value_template: "{{ value_json.trgt }}"
state_class: measurement
unit_of_measurement: "%"
- resource: http://192.168.16.8/nodeinfoget?node=2
scan_interval: 15
sensor:
- name: Woonkamer temperature
unique_id: woonkamer_temperature
value_template: "{{ value_json.temp }}"
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
- name: Woonkamer carbon_dioxide
unique_id: woonkamer_carbon_dioxide
value_template: "{{ value_json.co2 }}"
device_class: carbon_dioxide
state_class: measurement
unit_of_measurement: "ppm"
- resource: http://192.168.16.8/nodeinfoget?node=3
scan_interval: 15
sensor:
- name: Slaapkamer temperature
unique_id: slaapkamer_temperature
value_template: "{{ value_json.temp }}"
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
- name: Slaapkamer carbon_dioxide
unique_id: slaapkamer_carbon_dioxide
value_template: "{{ value_json.co2 }}"
device_class: carbon_dioxide
state_class: measurement
unit_of_measurement: "ppm"
- resource: http://192.168.16.8/nodeinfoget?node=4
scan_interval: 15
sensor:
- name: Sauna temperature
unique_id: sauna_temperature
value_template: "{{ value_json.temp }}"
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
- name: Sauna carbon_dioxide
unique_id: sauna_carbon_dioxide
value_template: "{{ value_json.co2 }}"
device_class: carbon_dioxide
state_class: measurement
unit_of_measurement: "ppm"
- resource: http://192.168.16.8/nodeinfoget?node=5
scan_interval: 15
sensor:
- name: Kantoor Deni temperature
unique_id: kantoor_deni_temperature
value_template: "{{ value_json.temp }}"
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
- name: Kantoor Deni carbon_dioxide
unique_id: kantoor_deni_carbon_dioxide
value_template: "{{ value_json.co2 }}"
device_class: carbon_dioxide
state_class: measurement
unit_of_measurement: "ppm"
- resource: http://192.168.16.8/nodeinfoget?node=6
scan_interval: 15
sensor:
- name: Kantoor Alex temperature
unique_id: kantoor_alex_temperature
value_template: "{{ value_json.temp }}"
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
- name: Kantoor Alex carbon_dioxide
unique_id: kantoor_alex_carbon_dioxide
value_template: "{{ value_json.co2 }}"
device_class: carbon_dioxide
state_class: measurement
unit_of_measurement: "ppm"
- resource: http://192.168.16.8/nodeinfoget?node=7
scan_interval: 15
sensor:
- name: Badkamer temperature
unique_id: badkamer_temperature
value_template: "{{ value_json.temp }}"
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
- name: Badkamer humidity
unique_id: badkamer_humidity
value_template: "{{ value_json.rh }}"
device_class: humidity
state_class: measurement
unit_of_measurement: "%"
rest_command:
ducobox_mode_auto:
url: "http://192.168.16.8/nodesetoperstate?node=1&value=AUTO"
ducobox_mode_cnt1:
url: "http://192.168.16.8/nodesetoperstate?node=1&value=CNT1"
ducobox_mode_cnt2:
url: "http://192.168.16.8/nodesetoperstate?node=1&value=CNT2"
ducobox_mode_cnt3:
url: "http://192.168.16.8/nodesetoperstate?node=1&value=CNT3"
ducobox_mode_man1:
url: "http://192.168.16.8/nodesetoperstate?node=1&value=MAN1"
ducobox_mode_man2:
url: "http://192.168.16.8/nodesetoperstate?node=1&value=MAN2"
ducobox_mode_man3:
url: "http://192.168.16.8/nodesetoperstate?node=1&value=MAN3"
And you need to create an Automation to use the ‘input_select’:
alias: DucoBox standen
description: ""
trigger:
- platform: state
entity_id:
- input_select.ducobox_mode
condition: []
action:
- choose:
- conditions:
- condition: state
entity_id: input_select.ducobox_mode
state: AUTO
sequence:
- service: rest_command.ducobox_mode_auto
data: {}
- conditions:
- condition: state
entity_id: input_select.ducobox_mode
state: MAN1
sequence:
- service: rest_command.ducobox_mode_man1
data: {}
- conditions:
- condition: state
entity_id: input_select.ducobox_mode
state: MAN2
sequence:
- service: rest_command.ducobox_mode_man2
data: {}
- conditions:
- condition: state
entity_id: input_select.ducobox_mode
state: MAN3
sequence:
- service: rest_command.ducobox_mode_man3
data: {}
- conditions:
- condition: state
entity_id: input_select.ducobox_mode
state: CNT1
sequence:
- service: rest_command.ducobox_mode_cnt1
data: {}
- conditions:
- condition: state
entity_id: input_select.ducobox_mode
state: CNT2
sequence:
- service: rest_command.ducobox_mode_cnt2
data: {}
- conditions:
- condition: state
entity_id: input_select.ducobox_mode
state: CNT3
sequence:
- service: rest_command.ducobox_mode_cnt3
data: {}
mode: single
I tried following your instructions but somehow I can only see the entity Ducobox and not the sensors. Is this correct or is something going wrong here?
If you go to the interface of the unit, which is directly on the IP of the PCB, which nodes do you see?
My active nodes have the numbers 1-7, 1 is the DucoBox itself, 2-6 are CO2 sensors, 7 is a RH button/sensor in the Bathroom. 58 is the RH sensor in the box, which is shown as state in 1 so you don’t include this node. Not sure what 67 is, but it has no values, so I didn’t include it. The location I filled in myself in the Node Config menu.
Yeah I saw them and here is my box:
Then in your code it’s:
#DucoBox integrations
input_select:
ducobox_mode:
name: DucoBox stand
icon: mdi:target
options:
- "AUTO"
- "CNT1"
- "CNT2"
- "CNT3"
- "MAN1"
- "MAN2"
- "MAN3"
rest:
- resource: http://192.168.20.217/nodeinfoget?node=1
scan_interval: 15
sensor:
- name: DucoBox
unique_id: ducobox
value_template: "{{ value_json.state }}"
icon: mdi:fan
json_attributes:
- devtype
- location
- state
- mode
- ovrl
- swversion
- serialnb
- name: DucoBox temperature
unique_id: ducobox_temperature
value_template: "{{ value_json.temp }}"
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
- name: DucoBox humidity
unique_id: ducobox_humidity
value_template: "{{ value_json.rh }}"
device_class: humidity
state_class: measurement
unit_of_measurement: "%"
- name: DucoBox target
unique_id: ducobox_target
value_template: "{{ value_json.trgt }}"
state_class: measurement
unit_of_measurement: "%"
- resource: http://192.168.20.217/nodeinfoget?node=4
scan_interval: 15
sensor:
- name: Woonkamer temperature
unique_id: woonkamer_temperature
value_template: "{{ value_json.temp }}"
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
- name: Woonkamer carbon_dioxide
unique_id: woonkamer_carbon_dioxide
value_template: "{{ value_json.co2 }}"
device_class: carbon_dioxide
state_class: measurement
unit_of_measurement: "ppm"
- resource: http://192.168.20.217/nodeinfoget?node=3
scan_interval: 15
sensor:
- name: Slaapkamer temperature
unique_id: slaapkamer_temperature
value_template: "{{ value_json.temp }}"
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
- name: Slaapkamer carbon_dioxide
unique_id: slaapkamer_carbon_dioxide
value_template: "{{ value_json.co2 }}"
device_class: carbon_dioxide
state_class: measurement
unit_of_measurement: "ppm"
rest_command:
ducobox_mode_auto:
url: "http://192.168.20.217/nodesetoperstate?node=1&value=AUTO"
ducobox_mode_cnt1:
url: "http://192.168.20.217/nodesetoperstate?node=1&value=CNT1"
ducobox_mode_cnt2:
url: "http://192.168.20.217/nodesetoperstate?node=1&value=CNT2"
ducobox_mode_cnt3:
url: "http://192.168.20.217/nodesetoperstate?node=1&value=CNT3"
ducobox_mode_man1:
url: "http://192.168.20.217/nodesetoperstate?node=1&value=MAN1"
ducobox_mode_man2:
url: "http://192.168.20.217/nodesetoperstate?node=1&value=MAN2"
ducobox_mode_man3:
url: "http://192.168.20.217/nodesetoperstate?node=1&value=MAN3"
But I only see 1 entity now which is the input_select.
Edit:
Found that it works now! Issue was that the entity wasn’t prepopulating on my HA list. So I had to manually add my entities in a card in my dashboard. Found by adding logging on the restful integration that communication was working properly. Now making the dashboard and then moving on to allow setting states on my box and my valves.
I was checking if there were any typos, but yeah the REST implementation doesn’t make the cards automatically. But you can use them to create your own cards with the sensor data.
I don’t have extra valves in my setup, but I guess you might need extra ‘ducobox_mode’ per valve so you can set the valves individually.
Hello everyone
So happy to have found this as I have Duco Energy as well as the Communication Print. Got my Home Assistant running and tried the above.
What I did
added in configuration.yaml
## Duco Ventilation Box
input_select:
ducobox_mode:
name: DucoBox stand
icon: mdi:target
options:
- "AUTO"
- "CNT1"
- "CNT2"
- "CNT3"
- "MAN1"
- "MAN2"
- "MAN3"
rest_command:
ducobox_mode_auto:
url: "http://10.77.99.145/nodesetoperstate?node=1&value=AUTO"
ducobox_mode_cnt1:
url: "http://10.77.99.145/nodesetoperstate?node=1&value=CNT1"
ducobox_mode_cnt2:
url: "http://10.77.99.145/nodesetoperstate?node=1&value=CNT2"
ducobox_mode_cnt3:
url: "http://10.77.99.145/nodesetoperstate?node=1&value=CNT3"
ducobox_mode_man1:
url: "http://10.77.99.145/nodesetoperstate?node=1&value=MAN1"
ducobox_mode_man2:
url: "http://10.77.99.145/nodesetoperstate?node=1&value=MAN2"
ducobox_mode_man3:
url: "http://10.77.99.145/nodesetoperstate?node=1&value=MAN3"
rest:
- resource: http://10.77.99.145/nodeinfoget?node=1
scan_interval: 15
sensor:
- name: DucoBox
unique_id: ducobox
value_template: "{{ value_json.state }}"
icon: mdi:fan
json_attributes:
- devtype
- location
- state
- mode
- ovrl
- swversion
- serialnb
- name: DucoBox Temperatuur
unique_id: ducobox_temperature
value_template: "{{ value_json.temp }}"
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
- name: DucoBox Relatieve Vochtigheid
unique_id: ducobox_humidity
value_template: "{{ value_json.rh }}"
device_class: humidity
state_class: measurement
unit_of_measurement: "%"
- name: DucoBox Ventilatie
unique_id: ducobox_target
value_template: "{{ value_json.trgt }}"
state_class: measurement
unit_of_measurement: "%"
- resource: http://10.77.99.145/nodeinfoget?node=2
scan_interval: 15
sensor:
- name: Leefruimte Temperatuur
unique_id: leefruimte_temperature
value_template: "{{ value_json.temp }}"
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
- name: Leefruimte CO2
unique_id: leefruimte_co2
value_template: "{{ value_json.co2 }}"
device_class: carbon_dioxide
state_class: measurement
unit_of_measurement: "ppm"
- resource: http://10.77.99.145/nodeinfoget?node=3
scan_interval: 15
sensor:
- name: Slaapkamer Temperatuur
unique_id: slaapkamer_temperature
value_template: "{{ value_json.temp }}"
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
- name: Slaapkamer CO2
unique_id: slaapkamer_co2
value_template: "{{ value_json.co2 }}"
device_class: carbon_dioxide
state_class: measurement
unit_of_measurement: "ppm"
added in automation.yaml
- alias: DucoBox stand
description: ''
trigger:
- platform: state
entity_id:
- input_select.ducobox_mode
condition: []
action:
- choose:
- conditions:
- condition: state
entity_id: input_select.ducobox_mode
state: AUTO
sequence:
- service: rest_command.ducobox_mode_auto
data: {}
- conditions:
- condition: state
entity_id: input_select.ducobox_mode
state: MAN1
sequence:
- service: rest_command.ducobox_mode_man1
data: {}
- conditions:
- condition: state
entity_id: input_select.ducobox_mode
state: MAN2
sequence:
- service: rest_command.ducobox_mode_man2
data: {}
- conditions:
- condition: state
entity_id: input_select.ducobox_mode
state: MAN3
sequence:
- service: rest_command.ducobox_mode_man3
data: {}
- conditions:
- condition: state
entity_id: input_select.ducobox_mode
state: CNT1
sequence:
- service: rest_command.ducobox_mode_cnt1
data: {}
- conditions:
- condition: state
entity_id: input_select.ducobox_mode
state: CNT2
sequence:
- service: rest_command.ducobox_mode_cnt2
data: {}
- conditions:
- condition: state
entity_id: input_select.ducobox_mode
state: CNT3
sequence:
- service: rest_command.ducobox_mode_cnt3
data: {}
mode: single
made a UI-lovelace.yaml and added this
type: entities
entities:
- entity: input_select.ducobox_mode
- entity: sensor.ducobox_target
name: Ventilatie %
- entity: sensor.ducobox_humidity
name: Vochtigheid
- entity: sensor.leefruimte_co2
name: CO2 Leefruimte
- entity: sensor.slaapkamer_co2
name: CO2 Slaapkamer
Then I created a card myself as it does not auto load the sensors etc. But sensors don’t show and drop down menu to select mode does not do anything. I can select any mode, but no change in Ducobox.
What did I miss?
thanks!
Have you rebooted HA after adding these in .conf files?
It is my first week with Home Assistant and I was told to reload the yaml files…
Now I rebooted and all work but 1 - thanks!
not sure what is missing there to get the fan %
also how do you people get the power consumption?
thanks again, I am learning fast haha
If you browse to this address do you see a value with the trgt value?
Yes
{“node”:1,“devtype”:“BOX”,“subtype”:26,“netw”:“VIRT”,“addr”:1,“sub”:1,“prnt”:0,“asso”:0,“location”:“”,“state”:“AUTO”,“cntdwn”:0,“endtime”:0,“mode”:“AUTO”,“trgt”:52,“actl”:0,“ovrl”:255,“snsr”:0,“cerr”:0,“swversion”:“19156.3.3.0”,“serialnb”:“PS2150002227”,“temp”:22.1,“co2”:0,“rh”:54.61,“error”:“W.00.00.00”,“show”:0,“link”:0}
same with http://10.77.99.145/boxinfoget?
but can’t pull filter remaining time or bypass status from there either