Duco energy comfort 325 icm Home Assistant

Pagina: 1
Acties:

  • fudgee
  • Registratie: Augustus 2024
  • Laatst online: 09-11-2025
@Dirk Diggler met de hulp van de post van @marnie heb ik de waarde die beschikbaar zijn via de Connectivity Board Api in Home Assistant weten te krijgen (zie afbeelding hieronder). Het enige wat ik nog niet kan in HA is het aanpassen van de ventilatiestand van AUTO naar bijv. MAN1. Ik vermoed dat ik hiervoor een bepaalde API endpoint nodig heb. Ik heb alleen geen idee hoe ik erachter kom welke. De API documentatie (https://connectivity.duco.eu/) zit achter een inlogscherm waar je alleen in kan als officiele installateur.

@marnie: Weet je toevallig of en hoe ik de ventilatiestand kan aanpassen via de Rest API van de Connectivity Board?

Edit: Ik denk dat ik de API endpoint heb gevonden om de ventilatiestand (VentilationState) aan te passen:
code:
1
https://<my_ip>/action/nodes/1


Ik heb alleen nog te weinig kennis van Rest API's om te weten hoe ik de functie `SetVentilationState` kan aanpassen

Afbeeldingslocatie: https://tweakers.net/i/AS0vMkx4Ds7Spxk06xth46CM9hc=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/IJe2h6kxSrzeu6G8CGvCSRAo.png?f=user_large

[ Voor 13% gewijzigd door fudgee op 06-08-2024 13:56 ]


  • marnie
  • Registratie: November 2016
  • Nu online
De button cart, die bovenstaande code genereerd.
Afbeeldingslocatie: https://tweakers.net/i/c9oNKG9_68ueDxObLivZaLZlP88=/800x/filters:strip_exif()/f/image/1wGKSp2mI0Fm7QmeqBxw8RiN.png?f=fotoalbum_large
Dit is nog ruw uitgewerkt, maar werkt.

[ Voor 4% gewijzigd door marnie op 06-08-2024 21:29 ]

2/1-kap 1988 | Extra vloer en muurisolatie | HR++ glas | WTW: Duco Energie Comfort 325 2-zones | WP: Adlar II 6kW | CV wonen: Jaga Strada Hybrid DBH, slapen: traditionele radiatoren | Solar: Enphase oost/west/zuid 4.2kVA | Homeassistant


  • fudgee
  • Registratie: Augustus 2024
  • Laatst online: 09-11-2025
Ik heb de code van @marnie aangepast voor mijn setup. Het grootste verschil met @marnie is dat ik één zone heb ipv twee. Deze aanpassing ging vrij snel totdat ik iets vrij specifieks wilde in de front-end. Ik wilde graag dat de kleur van een button direct oplicht bij het indrukken en de countdown timer meteen gaat lopen. Hier ben ik vervolgens een week mee bezig geweest 8)7 maar het is gelukt 8)

Afbeeldingslocatie: https://tweakers.net/i/1a0Ey6z7C3u-2sLNXVd0fQO2is8=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/N7JHKZmLHOi0i6xQ0jS8BU0f.png?f=user_large

Ik heb een script gemaakt zodat na het aanpassen van de ventilatiestand ook de nieuwe status wordt geupdate. Daarnaast maak ik in het script een countdown timer zodat ik in geval van de stand MAN1/2/3 kan zien hoe lang het duurt voordat die terug naar AUTO gaat. Ik heb eerst heel lang gekloot zonder countdown timer en de data uitgelezen via de entity "ducobox_node1_TimeStateRemain". Deze wordt alleen periodiek geupdate (1x per minuut, zie duco_rest.yaml) en uiteindelijk leek het mij wat overdreven om iedere seconde een API call te doen om deze uit te lezen. Toen heb ik geprobeerd een countdown timer te maken door gebruik te maken van deze data. Dat werkte wel maar na het aanpassen van de ventilatiestand duurt het 10 seconden voordat deze timer gaat lopen. Dus bij deze oplossing zag ik de eerste 10 seconden geen timer lopen. Uiteindelijk gewoon hard opgegeven dat de timer altijd 15 min en 10 seconden loopt.

Het mooi zichtbaar krijgen van een countdown timer in de UI was het volgende drama. Met name doordat ik geen ervaring heb in front-end programmeren, nog nooit javascript had gebruikt. De Button Card by @RomRider is fantastisch maar heeft zoveel mogelijkheden dat het lastig is de juiste te kiezen. Het is uiteindelijk gelukt door een embedded button te maken met de timer.

Op zich ben ik erg tevreden over hoe de Duco API werkt. Toch blijft het erg jammer dat ik veel informatie niet kan uitlezen (co2 ppm, luchtvochtigheid %, temperaturen van inkomende en uitgaande lucht, bypass open of dicht).

Dit is mijn eerste wat grotere projectje in home assistant waar ik mij goed op heb kunnen uitleven. Omdat andermans code mij veel geholpen heeft post ik hieronder ook mijn code, hopelijk heeft iemand er iets aan. Ook als er iemand tips heeft om mijn code te verbeteren zijn deze altijd welkom.

Mijn code bestaat uit de volgende onderdelen:
  • configuration.yaml: enkel verwijzing naar de rest.yaml, rest_command.yaml en het aanmaken van een timer
  • duco_rest.yaml: hier worden de sensoren gemaakt die uitgelezen worden via de duco api
  • rest_command.yaml: hier is de actie gemaakt om de ventilatiestand aan te passen
  • script.yaml: script waarin het aanpassen van de ventilatiestand wordt gekoppeld aan het updaten van de status van de ducobox en een timer wordt gemaakt als de stand op MAN1, MAN2 of MAN3 wordt gezet
  • <front_end>.yaml: hierin zijn de buttons gedefinieerd.
configuration.yaml
code:
1
2
3
4
5
6
rest: !include duco_rest.yaml
rest_command: !include rest_command.yaml

timer:
  duco_rest_man:
    duration: "01:00:00"



duco_rest.yaml
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
- resource: <duco_ip>/info
  scan_interval: 86400 #daily
  verify_ssl: false
  sensor:
    # general box
    - unique_id: ducobox_timefilterremain
      name: Ducobox Filter resttijd
      value_template: "{{ value_json['HeatRecovery']['General']['TimeFilterRemain']['Val'] }}"
      device_class: duration
      unit_of_measurement: "d"
      state_class: measurement

- resource: <duco_ip>/info/nodes
  scan_interval: 60
  verify_ssl: false
  sensor:
    #node 1 the ducobox
    - unique_id: ducobox_node1_state
      name: Ducobox - Status
      value_template: "{{ value_json['Nodes'][0]['Ventilation']['State']['Val'] }}"
    - unique_id: ducobox_node1_mode
      name: Ducobox - Mode
      value_template: "{{ value_json['Nodes'][0]['Ventilation']['Mode']['Val'] }}"
    - unique_id: ducobox_node1_FlowLvlTgt
      name: Ducobox - Flow Level Target
      value_template: "{{ value_json['Nodes'][0]['Ventilation']['FlowLvlTgt']['Val'] }}"
      unit_of_measurement: "%"
      state_class: measurement
    - unique_id: ducobox_node1_TimeStateRemain
      name: Ducobox - tijd status resterend
      value_template: "{{ value_json['Nodes'][0]['Ventilation']['TimeStateRemain']['Val'] }}"
    - unique_id: ducobox_node1_TimeStateEnd
      name: Ducobox - tijd status eind
      value_template: "{{ value_json['Nodes'][0]['Ventilation']['TimeStateEnd']['Val'] }}"

    #node 2 CO2 sensor wonen
    - unique_id: ducobox_node2_iaqCO2
      name: Ducobox wonen Co2 air quality
      value_template: "{{ value_json['Nodes'][1]['Sensor']['IaqCo2']['Val'] }}"
      unit_of_measurement: "%"
      state_class: measurement

    #node 58 HR sensor
    - unique_id: ducobox_node58_iaqRh
      name: Ducobox - RH air quality
      value_template: "{{ value_json['Nodes'][2]['Sensor']['IaqRh']['Val'] }}"
      unit_of_measurement: "%"
      state_class: measurement

#      https://github.com/miezie/ducoboxopenapi-spec/blob/86616b5130ffa469bfa4519c2eafda86f25f9345/Public%20DUCO%20API%202.0%20-%20api-definition.yaml
#      https://gathering.tweakers.net/forum/list_messages/2236296
#      https://community.home-assistant.io/t/anyone-using-duco-ventilation-communication-print-ethernet-module/226528/75?page=3


rest_command.yaml
code:
1
2
3
4
5
6
7
8
ducobox_state_change:
  url: <duco_ip>/action/nodes/1
  method: POST
  headers:
    accept: "application/json"
    content_type: "application/json"
  payload: '{"Action":"SetVentilationState","Val":"{{ state }}"}'
  verify_ssl: false


scripts.yaml
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
duco_state_change:
  alias: duco_state_change
  fields:
    duco_mode:
      description: the mode of the Duco ventilation
      default: AUTO
      example: MAN1
  sequence:
  - action: rest_command.ducobox_state_change
    data:
      state: '{{ duco_mode }}'
  - action: homeassistant.update_entity
    target:
      entity_id:
      - sensor.ducobox_status
    data: {}
  - if:
    - condition: template
      value_template: '{{ ''MAN'' in states(''sensor.ducobox_status'') }}'
    then:
    - action: timer.start
      target:
        entity_id: timer.duco_rest_man
      data:
        duration:
          seconds: 910
    else:
    - action: timer.finish
      target:
        entity_id: timer.duco_rest_man
  description: Change the state of Duco, options are AUTO, MAN1, MAN2, MAN3, CNT1,
    CNT2, CNT3, EMPT


De front end cart met de Hacks: Button Card by @RomRider

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
- type: vertical-stack
        cards:
          - type: custom:button-card
            entity: sensor.ducobox_status
            color_type: card
            color: rgb(40, 150, 214)
            name: >-
              [[[ return "Auto " +
              states["sensor.ducobox_flow_level_target"].state + "%";]]]
            show_icon: false
            styles:
              card:
                - height: 50px
            state:
              - value: AUTO
                color: rgb(225, 317, 55)
            tap_action:
              action: call-service
              service: script.duco_state_change
              service_data:
                duco_mode: AUTO
          - type: horizontal-stack
            cards:
              - type: custom:button-card
                entity: sensor.ducobox_status
                color_type: card
                color: rgb(40, 150, 214)
                name: Manual
                show_icon: false
                styles:
                  card:
                    - height: 50px
                state:
                  - value: MAN1
                    color: rgb(225, 317, 55)
                    styles:
                      grid:
                        - grid-template-areas: '"n n" "timer timer"'
                        - grid-template-columns: 1fr
                        - grid-template-rows: min-content min-content
                      custom-fields:
                        timer:
                          - padding-bottom: 2px
                          - align-self: middle
                          - justify-self: start
                    custom_fields:
                      timer:
                        card:
                          type: custom:button-card
                          styles:
                            card:
                              - box-shadow: none
                              - font-size: 13px
                              - background-color: rgb(225, 317, 55)
                              - border-width: 0px
                          entity: timer.duco_rest_man
                          show_state: true
                          show_name: false
                          show_icon: false
                  - value: MAN2
                    color: rgb(225, 317, 55)
                    styles:
                      grid:
                        - grid-template-areas: '"n n" "timer timer"'
                        - grid-template-columns: 1fr
                        - grid-template-rows: min-content min-content
                      custom-fields:
                        timer:
                          - padding-bottom: 2px
                          - align-self: middle
                          - justify-self: start
                    custom_fields:
                      timer:
                        card:
                          type: custom:button-card
                          styles:
                            card:
                              - box-shadow: none
                              - font-size: 13px
                              - background-color: rgb(225, 317, 55)
                              - border-width: 0px
                          entity: timer.duco_rest_man
                          show_state: true
                          show_name: false
                          show_icon: false
                  - value: MAN3
                    color: rgb(225, 317, 55)
                    styles:
                      grid:
                        - grid-template-areas: '"n n" "timer timer"'
                        - grid-template-columns: 1fr
                        - grid-template-rows: min-content min-content
                      custom-fields:
                        timer:
                          - padding-bottom: 2px
                          - align-self: middle
                          - justify-self: start
                    custom_fields:
                      timer:
                        card:
                          type: custom:button-card
                          styles:
                            card:
                              - box-shadow: none
                              - font-size: 13px
                              - background-color: rgb(225, 317, 55)
                              - border-width: 0px
                          entity: timer.duco_rest_man
                          show_state: true
                          show_name: false
                          show_icon: false
              - type: custom:button-card
                entity: sensor.ducobox_status
                tap_action:
                  action: call-service
                  service: script.duco_state_change
                  service_data:
                    duco_mode: MAN1
                color_type: card
                color: rgb(40, 150, 214)
                icon: mdi:fan-speed-1
                name: ' '
                styles:
                  card:
                    - height: 50px
                state:
                  - value: MAN1
                    color: rgb(225, 317, 55)
              - type: custom:button-card
                entity: sensor.ducobox_status
                tap_action:
                  action: call-service
                  service: script.duco_state_change
                  service_data:
                    duco_mode: MAN2
                color_type: card
                color: rgb(40, 150, 214)
                icon: mdi:fan-speed-2
                name: ' '
                styles:
                  card:
                    - height: 50px
                state:
                  - value: MAN2
                    color: rgb(225, 317, 55)
              - type: custom:button-card
                entity: sensor.ducobox_status
                tap_action:
                  action: call-service
                  service: script.duco_state_change
                  service_data:
                    duco_mode: MAN3
                color_type: card
                color: rgb(40, 150, 214)
                icon: mdi:fan-speed-3
                name: ' '
                styles:
                  card:
                    - height: 50px
                state:
                  - value: MAN3
                    color: rgb(225, 317, 55)
          - type: horizontal-stack
            cards:
              - type: custom:button-card
                entity: sensor.ducobox_status
                color_type: card
                color: rgb(40, 150, 214)
                name: Continu
                show_icon: false
                styles:
                  card:
                    - height: 50px
                state:
                  - value: CNT1
                    color: rgb(225, 317, 55)
                  - value: CNT2
                    color: rgb(225, 317, 55)
                  - value: CNT3
                    color: rgb(225, 317, 55)
              - type: custom:button-card
                entity: sensor.ducobox_status
                tap_action:
                  action: call-service
                  service: script.duco_state_change
                  service_data:
                    duco_mode: CNT1
                color_type: card
                color: rgb(40, 150, 214)
                icon: mdi:fan-speed-1
                name: ' '
                styles:
                  card:
                    - height: 50px
                state:
                  - value: CNT1
                    color: rgb(225, 317, 55)
              - type: custom:button-card
                entity: sensor.ducobox_status
                tap_action:
                  action: call-service
                  service: script.duco_state_change
                  service_data:
                    duco_mode: CNT2
                color_type: card
                color: rgb(40, 150, 214)
                icon: mdi:fan-speed-2
                name: ' '
                styles:
                  card:
                    - height: 50px
                state:
                  - value: CNT2
                    color: rgb(225, 317, 55)
              - type: custom:button-card
                entity: sensor.ducobox_status
                tap_action:
                  action: call-service
                  service: script.duco_state_change
                  service_data:
                    duco_mode: CNT3
                color_type: card
                color: rgb(40, 150, 214)
                icon: mdi:fan-speed-3
                name: ' '
                styles:
                  card:
                    - height: 50px
                state:
                  - value: CNT3
                    color: rgb(225, 317, 55)

  • Daan1990
  • Registratie: Oktober 2024
  • Laatst online: 13-12-2024
Hi all, even mijn eerste post op Tweakers als niet-coder. Ik wil graag meer controle over mijn Duco ventilatie systeem en zou het graag beter zichtbaar hebben in Home Assistant. Omdat ik zelf geen coder ben, kijk ik met veel interesse naar jullie uitwerkingen hier. Naast de displays die al zijn gemaakt, zou het mij erg handig lijken om ook de Co2% / RH% te zien en dan indealiter zelfs met een kleur die aangeeft of het goed (groen), medium (oranje) of slecht (rood) is - dat maakt het wat intuitiever. Daarnaast dan de ventilatie capaciteit in % op geheel / zone en daarnaast de mogelijkheid om het aan te passen: Auto stand, Manueel met timer of Manueel permanent. Heeft iemand zin om hiermee aan de slag te gaan? Het gaat mijn pet wat te boven.

Ik zou vervolgens ook graag meer automatiseren om mijn systeem iets rustiger te krijgen, bijvoorbeeld, bij waardes > 60% dan mag de box nooit meer dan 50% ventilatiecapaciteit leveren. Op dit moment word ik nog wel eens weggeblazen als de Iaq percentages eigenlijk prima zijn, bijvoorbeeld >80%.Afbeeldingslocatie: https://tweakers.net/i/-W3k5PXXGvihYNKAAsXok-Vq3CA=/800x/filters:strip_exif()/f/image/R6UBiZrqrmsltaK8kODxfsnr.png?f=fotoalbum_large

  • Draakje5
  • Registratie: November 2011
  • Laatst online: 17:55
fudgee schreef op dinsdag 6 augustus 2024 @ 13:25:
@Dirk Diggler met de hulp van de post van @marnie heb ik de waarde die beschikbaar zijn via de Connectivity Board Api in Home Assistant weten te krijgen (zie afbeelding hieronder). Het enige wat ik nog niet kan in HA is het aanpassen van de ventilatiestand van AUTO naar bijv. MAN1. Ik vermoed dat ik hiervoor een bepaalde API endpoint nodig heb. Ik heb alleen geen idee hoe ik erachter kom welke. De API documentatie (https://connectivity.duco.eu/) zit achter een inlogscherm waar je alleen in kan als officiele installateur.

@marnie: Weet je toevallig of en hoe ik de ventilatiestand kan aanpassen via de Rest API van de Connectivity Board?

Edit: Ik denk dat ik de API endpoint heb gevonden om de ventilatiestand (VentilationState) aan te passen:
code:
1
https://<my_ip>/action/nodes/1


Ik heb alleen nog te weinig kennis van Rest API's om te weten hoe ik de functie `SetVentilationState` kan aanpassen

[Afbeelding]
Ik heb er te weinig kaas van gegeten, maar ben ook op zoek naar dat grafiekje voor in HA.

Ik heb in command yaml de code "rest: !include rest.yaml" toegevoegd.
En ik heb Rest.yaml aangemaakt met de eerder geposte code, daar het IP adres gewijzigd naar mijn DUCO connectivity Board.

Hoe kom je achter de 'NODE' ID's? En de Entiteiten? ddoor @marnie aangegeven?

Ik heb ook de HACS add on van @Sikerdebaard toegevoegd en heb het volgende in mijn dashboard :-)
Air quality zou je idealiter in ppm willen zien ipv percentage?
Afbeeldingslocatie: https://tweakers.net/i/45jrNcLV4gnG3kOKX5Ymle_Jak8=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/pctI4laJJLnqwmJEY5E6MHyl.png?f=user_large

[ Voor 8% gewijzigd door Draakje5 op 26-12-2024 13:10 ]


  • |sWORDs|
  • Registratie: Maart 2000
  • Laatst online: 14-04 12:48

|sWORDs|

vSphere/ESXi

Ik ben dit weekend ook even bezig geweest met mijn Duco Silent Connect met Communication Print (met de javascript code van de webserver en Google Gemini 2.5 Pro):
Duco
Afbeeldingslocatie: https://tweakers.net/i/xgOKQmA1N4SBGAJRNpn1jcMmNGw=/100x75/filters:strip_exif()/f/image/mrZjhMzwrwIORgTYbAl6OQfh.png?f=fotoalbum_smallAfbeeldingslocatie: https://tweakers.net/i/YxCag2ndFqBMyF3XhF6Kbsu6ZIo=/100x75/filters:strip_icc():strip_exif()/f/image/r2ScPW1MbARf5ehB1KuVj7GX.jpg?f=fotoalbum_smallAfbeeldingslocatie: https://tweakers.net/i/VPDaXt5Z7201pW7nGs92lLRbWfI=/100x75/filters:strip_icc():strip_exif()/f/image/W20AMeWdJFZhaQKs6vzDMh5Z.jpg?f=fotoalbum_small
Afbeeldingslocatie: https://tweakers.net/i/fci2XA1x_RUbn3_fcCPvf_B-Qso=/100x75/filters:strip_icc():strip_exif()/f/image/6YcCD8ga7HO6fIxYFsSAsmfA.jpg?f=fotoalbum_smallAfbeeldingslocatie: https://tweakers.net/i/GxbcY5SQYCfEYTBEpDFAGt99IOs=/100x75/filters:strip_icc():strip_exif()/f/image/Joc8j3SX0mpChKaBjKw1JauR.jpg?f=fotoalbum_smallAfbeeldingslocatie: https://tweakers.net/i/HEkF7S-7htDJqVUTgQA6rcpdGBk=/100x75/filters:strip_icc():strip_exif()/f/image/Le0wmjzZbnoGqzE9VTC1yyU6.jpg?f=fotoalbum_small
Afbeeldingslocatie: https://tweakers.net/i/FKRSDCB8AArJvBixcyCVW7_Ufog=/100x75/filters:strip_icc():strip_exif()/f/image/W14dDB2sWwrkrcAWbPS6Ggr2.jpg?f=fotoalbum_small


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
# configuration.yaml - Versie met Legacy Template Fan

default_config:

frontend:
  themes: !include_dir_merge_named themes

automation: !include automations.yaml
script: !include scripts.yaml # Zorg dat de shortcut-scripts hierin staan!
scene: !include scenes.yaml

# --- DucoBox Basis REST Commando's ---
rest_command:
  set_ducobox_mode:
    url: "http://192.168.1.97/nodesetoperstate?node=1&value={{ state }}&t={{ now().timestamp() | int }}"
    method: GET
    verify_ssl: false
    timeout: 10
  set_ducobox_overrule:
    url: "http://192.168.1.97/nodesetoverrule?node=1&value={{ value }}&t={{ now().timestamp() | int }}"
    method: GET
    verify_ssl: false
    timeout: 10
  set_ducobox_node_config:
    url: "http://192.168.1.97/nodeconfigset?node={{ node }}&para={{ parameter }}&value={{ value }}&t={{ now().timestamp() | int }}"
    method: GET
    verify_ssl: false
    timeout: 10
  set_ducobox_box_config:
    url: "http://192.168.1.97/{{ list | default('box') }}configset?mod={{ module }}&para={{ parameter }}&value={{ value }}&t={{ now().timestamp() | int }}"
    method: GET
    verify_ssl: false
    timeout: 10

# --- RESTful Sensor Definities ---
rest:
  # ... (Alle REST sensor definities blijven hier ongewijzigd) ...
  # --- Node Info (Status, Vraag, Sensoren) ---
  - resource: "http://192.168.1.97/nodeinfoget?node=1"
    scan_interval: 15
    verify_ssl: false
    sensor:
      - name: "DucoBox State"
        unique_id: ducobox_node1_state
        value_template: "{{ value_json.state }}"
        icon: mdi:state-machine
        json_attributes:
          [
            node,
            devtype,
            location,
            state,
            cntdwn,
            endtime,
            mode,
            trgt,
            actl,
            ovrl,
            snsr,
            cerr,
            swversion,
            serialnb,
            error,
            show,
            link,
            temp,
            co2,
            rh,
          ]
      - name: "DucoBox Mode"
        unique_id: ducobox_node1_mode
        value_template: "{{ value_json.mode }}"
        icon: mdi:cog-outline
      - name: "DucoBox Target Demand"
        unique_id: ducobox_node1_target_demand
        value_template: "{{ value_json.trgt }}"
        unit_of_measurement: "%"
        icon: mdi:target
        state_class: measurement
      - name: "DucoBox Actual Level"
        unique_id: ducobox_node1_actual_level
        value_template: "{{ value_json.actl }}"
        unit_of_measurement: "%"
        icon: mdi:speedometer
        state_class: measurement
      - name: "DucoBox Temperature"
        unique_id: ducobox_node1_temp
        value_template: "{{ value_json.temp }}"
        device_class: temperature
        state_class: measurement
        unit_of_measurement: "°C"
      - name: "DucoBox Humidity"
        unique_id: ducobox_node1_rh
        value_template: "{{ value_json.rh }}"
        device_class: humidity
        state_class: measurement
        unit_of_measurement: "%"
      - name: "DucoBox CO2"
        unique_id: ducobox_node1_co2
        value_template: "{{ value_json.co2 }}"
        device_class: carbon_dioxide
        state_class: measurement
        unit_of_measurement: "ppm"
  - resource: "http://192.168.1.97/nodeinfoget?node=137"
    scan_interval: 60
    verify_ssl: false
    sensor:
      - name: "DucoBox Kanaal CO2 Vraag"
        unique_id: ducobox_kanaal_co2_vraag_137
        value_template: "{{ value_json.snsr }}"
        unit_of_measurement: "%"
        icon: mdi:gauge-low
        state_class: measurement
  - resource: "http://192.168.1.97/nodeinfoget?node=138"
    scan_interval: 60
    verify_ssl: false
    sensor:
      - name: "DucoBox Kanaal RH Vraag"
        unique_id: ducobox_kanaal_rh_vraag_138
        value_template: "{{ value_json.snsr }}"
        unit_of_measurement: "%"
        icon: mdi:water-percent-alert
        state_class: measurement
  - resource: "http://192.168.1.97/boxinfoget"
    scan_interval: 120
    verify_ssl: false
    sensor:
      - name: "DucoBox Power Now"
        unique_id: ducobox_boxinfo_power_now
        value_template: "{{ value_json.Performance.PowerNow }}"
        device_class: power
        state_class: measurement
        unit_of_measurement: "W"
      - name: "DucoBox Power Average"
        unique_id: ducobox_boxinfo_power_avg
        value_template: "{{ value_json.Performance.PowerAvg }}"
        device_class: power
        state_class: measurement
        unit_of_measurement: "W"
      - name: "DucoBox Total Pressure"
        unique_id: ducobox_boxinfo_total_pressure
        value_template: "{{ value_json.Performance.PressureTotal }}"
        unit_of_measurement: "Pa"
        state_class: measurement
        icon: mdi:gauge
      - name: "DucoBox Calibration State"
        unique_id: ducobox_boxinfo_calib_state
        value_template: "{{ value_json.Calibration.CalibState }}"
        icon: mdi:tune-variant
      - name: "DucoBox Installer State"
        unique_id: ducobox_boxinfo_installer_state
        value_template: "{{ value_json.General.InstallerState }}"
        icon: mdi:account-wrench
  - resource: "http://192.168.1.97/board_info"
    scan_interval: 3600
    verify_ssl: false
    sensor:
      - name: "DucoBox Board Uptime Seconds"
        unique_id: ducobox_board_uptime_seconds
        value_template: "{{ value_json.uptime }}"
        unit_of_measurement: "s"
        icon: mdi:timer-outline
        state_class: total_increasing
      - name: "DucoBox Board SW Version"
        unique_id: ducobox_board_sw_version
        value_template: "{{ value_json.swversion }}"
        icon: mdi:chip
      - name: "DucoBox Board API Version"
        unique_id: ducobox_board_api_version
        value_template: "{{ value_json.apiversion }}"
        icon: mdi:api
      - name: "DucoBox Board MAC Address"
        unique_id: ducobox_board_mac_address
        value_template: "{{ value_json.mac }}"
        icon: mdi:network-outline
  - resource: "http://192.168.1.97/nodeconfigget?node=1"
    scan_interval: 3600
    verify_ssl: false
    timeout: 10
    sensor:
      - name: "DucoBox Config Node 1 AutoMin"
        unique_id: ducobox_config_node1_automin
        value_template: "{{ value_json.AutoMin.Val }}"
        unit_of_measurement: "%"
        icon: mdi:fan-minus
      - name: "DucoBox Config Node 1 AutoMax"
        unique_id: ducobox_config_node1_automax
        value_template: "{{ value_json.AutoMax.Val }}"
        unit_of_measurement: "%"
        icon: mdi:fan-plus
      - name: "DucoBox Config Node 1 Capacity"
        unique_id: ducobox_config_node1_capacity
        value_template: "{{ value_json.Capacity.Val }}"
        unit_of_measurement: "m³/h"
        icon: mdi:wind-power-outline
      - name: "DucoBox Config Node 1 Manual1 Level"
        unique_id: ducobox_config_node1_manual1
        value_template: "{{ value_json.Manual1.Val }}"
        unit_of_measurement: "%"
        icon: mdi:numeric-1-box-outline
      - name: "DucoBox Config Node 1 Manual2 Level"
        unique_id: ducobox_config_node1_manual2
        value_template: "{{ value_json.Manual2.Val }}"
        unit_of_measurement: "%"
        icon: mdi:numeric-2-box-outline
      - name: "DucoBox Config Node 1 Manual3 Level"
        unique_id: ducobox_config_node1_manual3
        value_template: "{{ value_json.Manual3.Val }}"
        unit_of_measurement: "%"
        icon: mdi:numeric-3-box-outline
      - name: "DucoBox Config Node 1 ManualTimeout"
        unique_id: ducobox_config_node1_manualtimeout
        value_template: "{{ value_json.ManualTimeout.Val }}"
        unit_of_measurement: "min"
        icon: mdi:timer-sand
      - name: "DucoBox Config Node 1 Location"
        unique_id: ducobox_config_node1_location
        value_template: "{{ value_json.Location }}"
        icon: mdi:map-marker
  - resource: "http://192.168.1.97/nodeconfigget?node=137"
    scan_interval: 3600
    verify_ssl: false
    timeout: 10
    sensor:
      - name: "DucoBox Config Node 137 CO2Setpoint"
        unique_id: ducobox_config_node137_co2setpoint
        value_template: "{{ value_json.CO2Setpoint.Val }}"
        unit_of_measurement: "ppm"
        device_class: carbon_dioxide
      - name: "DucoBox Config Node 137 TempDependent"
        unique_id: ducobox_config_node137_tempdependent
        value_template: "{{ 'ON' if value_json.TempDependent.Val == 1 else 'OFF' }}"
        icon: mdi:thermometer-auto
      - name: "DucoBox Config Node 137 SensorVisuLevel"
        unique_id: ducobox_config_node137_sensorvisulevel
        value_template: "{{ value_json.SensorVisuLevel.Val }}"
        unit_of_measurement: "%"
        icon: mdi:lightbulb-on-outline
  - resource: "http://192.168.1.97/nodeconfigget?node=138"
    scan_interval: 3600
    verify_ssl: false
    timeout: 10
    sensor:
      - name: "DucoBox Config Node 138 RHSetpoint"
        unique_id: ducobox_config_node138_rhsetpoint
        value_template: "{{ value_json.RHSetpoint.Val }}"
        unit_of_measurement: "%"
        device_class: humidity
      - name: "DucoBox Config Node 138 RHDelta"
        unique_id: ducobox_config_node138_rhdelta
        value_template: "{{ 'ON' if value_json.RHDelta.Val == 1 else 'OFF' }}"
        icon: mdi:delta
      - name: "DucoBox Config Node 138 SensorVisuLevel"
        unique_id: ducobox_config_node138_sensorvisulevel
        value_template: "{{ value_json.SensorVisuLevel.Val }}"
        unit_of_measurement: "%"
        icon: mdi:lightbulb-on-outline
  - resource: "http://192.168.1.97/boxconfigget"
    scan_interval: 3600
    verify_ssl: false
    timeout: 10
    sensor:
      # ... (Alle Box Config sensoren blijven hier ongewijzigd) ...
      - name: "DucoBox Config TimeZone"
        unique_id: ducobox_config_box_timezone
        value_template: "{{ value_json.Time.TimeZone.Val }}"
        icon: mdi:map-clock
      - name: "DucoBox Config Auto DST"
        unique_id: ducobox_config_box_autodst
        value_template: "{{ 'ON' if value_json.Time.AutoDaylightSavingTime.Val == 1 else 'OFF' }}"
        icon: mdi:clock-check-outline
      - name: "DucoBox Config Max High Level"
        unique_id: ducobox_config_box_maxhighlevel
        value_template: "{{ value_json.Fan.MaxHighLevel.Val }}"
        unit_of_measurement: "%"
        icon: mdi:fan-speed-3
      - name: "DucoBox Config Calib On Man2"
        unique_id: ducobox_config_box_calibonman2
        value_template: "{{ 'ON' if value_json.Fan.CalibOnMan2.Val == 1 else 'OFF' }}"
        icon: mdi:tune-variant
      - name: "DucoBox Config GroundBound"
        unique_id: ducobox_config_box_groundbound
        value_template: "{{ 'ON' if value_json.Fan.GroundBound.Val == 1 else 'OFF' }}"
        icon: mdi:earth-box
      - name: "DucoBox Config HeadCount"
        unique_id: ducobox_config_box_headcount
        value_template: "{{ value_json.Fan.HeadCount.Val }}"
        unit_of_measurement: "personen"
        icon: mdi:account-group
      - name: "DucoBox Config PwmInverted"
        unique_id: ducobox_config_box_pwminverted
        value_template: "{{ 'ON' if value_json.Fan.PwmInverted.Val == 1 else 'OFF' }}"
        icon: mdi:swap-horizontal-variant
      - name: "DucoBox Config VentCool Active Mon"
        unique_id: ducobox_config_box_ventcool_mon
        value_template: "{{ 'ON' if value_json.VentCool.ActiveMonday.Val == 1 else 'OFF' }}"
        icon: mdi:calendar-week
      - name: "DucoBox Config VentCool Active Tue"
        unique_id: ducobox_config_box_ventcool_tue
        value_template: "{{ 'ON' if value_json.VentCool.ActiveTuesday.Val == 1 else 'OFF' }}"
        icon: mdi:calendar-week
      - name: "DucoBox Config VentCool Active Wed"
        unique_id: ducobox_config_box_ventcool_wed
        value_template: "{{ 'ON' if value_json.VentCool.ActiveWednesday.Val == 1 else 'OFF' }}"
        icon: mdi:calendar-week
      - name: "DucoBox Config VentCool Active Thu"
        unique_id: ducobox_config_box_ventcool_thu
        value_template: "{{ 'ON' if value_json.VentCool.ActiveThursday.Val == 1 else 'OFF' }}"
        icon: mdi:calendar-week
      - name: "DucoBox Config VentCool Active Fri"
        unique_id: ducobox_config_box_ventcool_fri
        value_template: "{{ 'ON' if value_json.VentCool.ActiveFriday.Val == 1 else 'OFF' }}"
        icon: mdi:calendar-week
      - name: "DucoBox Config VentCool Active Sat"
        unique_id: ducobox_config_box_ventcool_sat
        value_template: "{{ 'ON' if value_json.VentCool.ActiveSaturday.Val == 1 else 'OFF' }}"
        icon: mdi:calendar-week
      - name: "DucoBox Config VentCool Active Sun"
        unique_id: ducobox_config_box_ventcool_sun
        value_template: "{{ 'ON' if value_json.VentCool.ActiveSunday.Val == 1 else 'OFF' }}"
        icon: mdi:calendar-week
      - name: "DucoBox Config VentCool StartTime"
        unique_id: ducobox_config_box_ventcool_starttime
        value_template: "{{ '%02d:%02d' | format(value_json.VentCool.StartTime.Val // 60, value_json.VentCool.StartTime.Val % 60) }}"
        icon: mdi:clock-start
      - name: "DucoBox Config VentCool StopTime"
        unique_id: ducobox_config_box_ventcool_stoptime
        value_template: "{{ '%02d:%02d' | format(value_json.VentCool.StopTime.Val // 60, value_json.VentCool.StopTime.Val % 60) }}"
        icon: mdi:clock-end
      - name: "DucoBox Config NightBoost Active"
        unique_id: ducobox_config_box_nightboost_active
        value_template: "{{ 'ON' if value_json.NightBoost.Active.Val == 1 else 'OFF' }}"
        icon: mdi:weather-night
      - name: "DucoBox Config NightBoost StartTemp"
        unique_id: ducobox_config_box_nightboost_starttemp
        value_template: "{{ value_json.NightBoost.StartTemp.Val }}"
        unit_of_measurement: "°C"
        device_class: temperature
      - name: "DucoBox Config NightBoost StartMonth"
        unique_id: ducobox_config_box_nightboost_startmonth
        value_template: "{{ value_json.NightBoost.StartMonth.Val }}"
        icon: mdi:calendar-month
      - name: "DucoBox Config NightBoost StopMonth"
        unique_id: ducobox_config_box_nightboost_stopmonth
        value_template: "{{ value_json.NightBoost.StopMonth.Val }}"
        icon: mdi:calendar-month
      - name: "DucoBox Config NightBoost StartTime"
        unique_id: ducobox_config_box_nightboost_starttime
        value_template: "{{ '%02d:%02d' | format(value_json.NightBoost.StartTime.Val // 60, value_json.NightBoost.StartTime.Val % 60) }}"
        icon: mdi:clock-start
      - name: "DucoBox Config NightBoost StopTime"
        unique_id: ducobox_config_box_nightboost_stoptime
        value_template: "{{ '%02d:%02d' | format(value_json.NightBoost.StopTime.Val // 60, value_json.NightBoost.StopTime.Val % 60) }}"
        icon: mdi:clock-end

# --- Template Entities (Moderne Structuur - Alleen Sensor) ---
template:
  # --- Template Sensor ---
  - sensor:
      - name: "DucoBox Board Uptime"
        unique_id: ducobox_board_uptime_friendly
        icon: mdi:timer-sand
        state: >
          {% set uptime_sec = states('sensor.ducobox_board_uptime_seconds') | int(0) %}
          {% set days = (uptime_sec // 86400) %}
          {% set hours = (uptime_sec % 86400 // 3600) %}
          {% set minutes = (uptime_sec % 3600 // 60) %}
          {% if days > 0 %}
            {{ days }}d {{ hours }}u {{ minutes }}m
          {% elif hours > 0 %}
            {{ hours }}u {{ minutes }}m
          {% else %}
            {{ minutes }}m
          {% endif %}
  # --- De moderne fan is hier verwijderd ---

# --- Legacy Template Fan ---
fan:
  - platform: template
    fans:
      ducobox_ventilation: # Dit is de 'slug' of naam van de fan entiteit
        friendly_name: "DucoBox Ventilatie" # Weergavenaam
        unique_id: "ducobox_ventilation_control" # Voor consistentie en UI beheer
        value_template: > # Voor aan/uit status
          {{ states('sensor.ducobox_node1_state') not in ['EMPT', 'unknown'] }}

        # Acties gebruiken de '- service:' syntax die eerder werkte
        turn_on:
          - service: rest_command.set_ducobox_mode
            data: { state: "AUTO" }
        turn_off:
          - service: rest_command.set_ducobox_mode
            data: { state: "EMPT" }

        preset_modes: ["Auto", "Away", "Manual 1", "Manual 2", "Manual 3"]
        preset_mode_template: > # Voor huidige preset status
          {% set current_state = states('sensor.ducobox_node1_state') %}
          {% if current_state == "MAN1" or current_state == "CNT1" %} Manual 1
          {% elif current_state == "MAN2" or current_state == "CNT2" %} Manual 2
          {% elif current_state == "MAN3" or current_state == "CNT3" %} Manual 3
          {% elif current_state == "EMPT" %} Away
          {% elif current_state.startswith("AUT") %} Auto
          {% else %} Auto
          {% endif %}
        set_preset_mode: # Actie voor instellen preset
          - service: rest_command.set_ducobox_mode
            data:
              state: >
                {% if preset_mode == "Manual 1" %} MAN1
                {% elif preset_mode == "Manual 2" %} MAN2
                {% elif preset_mode == "Manual 3" %} MAN3
                {% elif preset_mode == "Away" %} EMPT
                {% else %} AUTO
                {% endif %}

        percentage_template: "{{ states('sensor.ducobox_node1_target_demand') | int(0) }}" # Voor huidige percentage status
        set_percentage: # Actie voor instellen percentage
          - service: rest_command.set_ducobox_overrule
            data:
              value: "{{ percentage }}"

        speed_count: 100 # Om percentage controle mogelijk te maken

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# scripts.yaml

set_ducobox_automin:
  alias: "Set DucoBox AutoMin (Node 1)"
  fields:
    value:
      description: "De AutoMin waarde (%)"
      example: "25" # Gecorrigeerd naar string
  sequence:
    - service: rest_command.set_ducobox_node_config # Correcte syntax met '-'
      data:
        node: 1
        parameter: "AutoMin"
        value: "{{ value }}"

set_ducobox_automax:
  alias: "Set DucoBox AutoMax (Node 1)"
  fields:
    value:
      description: "De AutoMax waarde (%)"
      example: "80" # Gecorrigeerd naar string
  sequence:
    - service: rest_command.set_ducobox_node_config # Correcte syntax met '-'
      data:
        node: 1
        parameter: "AutoMax"
        value: "{{ value }}"

set_ducobox_capacity:
  alias: "Set DucoBox Capacity (Node 1)"
  fields:
    value:
      description: "De capaciteit (m³/h)"
      example: "400" # Gecorrigeerd naar string
  sequence:
    - service: rest_command.set_ducobox_node_config # Correcte syntax met '-'
      data:
        node: 1
        parameter: "Capacity"
        value: "{{ value }}"

set_ducobox_manualtimeout:
  alias: "Set DucoBox ManualTimeout (Node 1)"
  fields:
    value:
      description: "De timeout voor manuele modus (min)"
      example: "120" # Gecorrigeerd naar string
  sequence:
    - service: rest_command.set_ducobox_node_config # Correcte syntax met '-'
      data:
        node: 1
        parameter: "ManualTimeout"
        value: "{{ value }}"

set_ducobox_co2setpoint:
  alias: "Set DucoBox CO2 Setpoint (Node 137)"
  fields:
    value:
      description: "Het CO2 setpoint (ppm)"
      example: "800" # Gecorrigeerd naar string
  sequence:
    - service: rest_command.set_ducobox_node_config # Correcte syntax met '-'
      data:
        node: 137
        parameter: "CO2Setpoint"
        value: "{{ value }}"

set_ducobox_tempdependent:
  alias: "Set DucoBox TempDependent (Node 137)"
  fields:
    value:
      description: "Zet TempDependent AAN of UIT ('ON'/'OFF')"
      example: "ON" # Gecorrigeerd naar string
  sequence:
    - service: rest_command.set_ducobox_node_config # Correcte syntax met '-'
      data:
        node: 137
        parameter: "TempDependent"
        value: "{{ 1 if value | upper == 'ON' else 0 }}"

set_ducobox_rhsetpoint:
  alias: "Set DucoBox RH Setpoint (Node 138)"
  fields:
    value:
      description: "Het RH setpoint (%)"
      example: "70" # Gecorrigeerd naar string
  sequence:
    - service: rest_command.set_ducobox_node_config # Correcte syntax met '-'
      data:
        node: 138
        parameter: "RHSetpoint"
        value: "{{ value }}"

set_ducobox_rhdelta:
  alias: "Set DucoBox RH Delta (Node 138)"
  fields:
    value:
      description: "Zet RH Delta AAN of UIT ('ON'/'OFF')"
      example: "OFF" # Gecorrigeerd naar string
  sequence:
    - service: rest_command.set_ducobox_node_config # Correcte syntax met '-'
      data:
        node: 138
        parameter: "RHDelta"
        value: "{{ 1 if value | upper == 'ON' else 0 }}"

set_ducobox_nightboost_active:
  alias: "Set DucoBox NightBoost Active"
  fields:
    value:
      description: "Zet NightBoost AAN of UIT ('ON'/'OFF')"
      example: "OFF" # Gecorrigeerd naar string
  sequence:
    - service: rest_command.set_ducobox_box_config # Correcte syntax met '-'
      data:
        list: "box"
        module: "NightBoost"
        parameter: "Active"
        value: "{{ 1 if value | upper == 'ON' else 0 }}"

set_ducobox_groundbound:
  alias: "Set DucoBox GroundBound"
  fields:
    value:
      description: "Zet GroundBound AAN of UIT ('ON'/'OFF')"
      example: "ON" # Gecorrigeerd naar string
  sequence:
    - service: rest_command.set_ducobox_box_config # Correcte syntax met '-'
      data:
        list: "box" # 'list' was niet gespecificeerd in origineel, 'box' aangenomen
        module: "Fan"
        parameter: "GroundBound"
        value: "{{ 1 if value | upper == 'ON' else 0 }}"

Te Koop:24 Core Intel Upgradeset


  • |sWORDs|
  • Registratie: Maart 2000
  • Laatst online: 14-04 12:48

|sWORDs|

vSphere/ESXi

Ik heb nog wat bugs te fixen en een paar functies om toe te voegen, maar dit is hoever ik met v1 gekomen ben:
v1
Afbeeldingslocatie: https://tweakers.net/i/alFTglOZyGpmkdBr_8b_rHeqewE=/100x75/filters:strip_exif()/f/image/Pic1OFKM1Lnx9WM4yJXMPfI0.png?f=fotoalbum_smallAfbeeldingslocatie: https://tweakers.net/i/jrLL67iIIude9SQRtHlxc_sGMk4=/100x75/filters:strip_exif()/f/image/b6JV182Ky0URFMSYFNNDBaZf.png?f=fotoalbum_smallAfbeeldingslocatie: https://tweakers.net/i/CfvUw70jsQiEni0fU1q923Ii6eY=/100x75/filters:strip_exif()/f/image/5IVWdEzT6OIqJG25gXsk3L91.png?f=fotoalbum_small
Afbeeldingslocatie: https://tweakers.net/i/kwtVVHxs_r6HcrZ4rb_g7UpoJv8=/100x75/filters:strip_exif()/f/image/E4k7HP1K8pGwYxd82Y4wEigV.png?f=fotoalbum_smallAfbeeldingslocatie: https://tweakers.net/i/b2Gqi2jl1Xvyw7PGqHKrYWRBQUY=/100x75/filters:strip_exif()/f/image/9WlN9ZAsnFzFuQN0i7hfwQdo.png?f=fotoalbum_smallAfbeeldingslocatie: https://tweakers.net/i/DjKIbqmyxKfLuyCBFNSHy-GOyGs=/100x75/filters:strip_exif()/f/image/5j31dLrsuJby1rrzCDVqGJMn.png?f=fotoalbum_small
Afbeeldingslocatie: https://tweakers.net/i/_mMzgj5CoURC_IxeZ5V5vA8q1R8=/100x75/filters:strip_exif()/f/image/cWhApzg9fqHJ7pFGUNxmdVgr.png?f=fotoalbum_smallAfbeeldingslocatie: https://tweakers.net/i/PVEWYokQgo5u9Wf57aXL2zL29NU=/100x75/filters:strip_exif()/f/image/k4KHHRH12UzVS3mpJ1qumc0L.png?f=fotoalbum_smallAfbeeldingslocatie: https://tweakers.net/i/QYHaT_Gshna89h1jdT8WcvbYnbM=/100x75/filters:strip_exif()/f/image/FvHKFbj2iXfgjWSlayUHAT8j.png?f=fotoalbum_small
Afbeeldingslocatie: https://tweakers.net/i/-vfF7eriwZ0-Dez-7S4cj_Jfr7E=/100x75/filters:strip_exif()/f/image/OFRXFVFZxCy9GHE5QobrTkgk.png?f=fotoalbum_smallAfbeeldingslocatie: https://tweakers.net/i/Mtus8v1WIAENfq98ShzXgH9oHKA=/100x75/filters:strip_exif()/f/image/uCVXmldkYtjqkWp9Yl15Gs8W.png?f=fotoalbum_smallAfbeeldingslocatie: https://tweakers.net/i/ASFhXcmzYxGR3jh4SK_gXs0iCN0=/100x75/filters:strip_exif()/f/image/AJa2RkbKERff5XfSRnIQrGJj.png?f=fotoalbum_small
Afbeeldingslocatie: https://tweakers.net/i/gxQxZGPy0GoyECSk_Gr2grjJbqw=/100x75/filters:strip_exif()/f/image/irnjtTXHrBb5mqo9v202WLvB.png?f=fotoalbum_small

Te Koop:24 Core Intel Upgradeset


  • kokx
  • Registratie: Augustus 2006
  • Laatst online: 29-05 15:53

kokx

WIN

Met ESPhome kun je declaratief de configuratie voor ESP-devices maken, zoals de ESP8266 en ESP32. Voor het aansturen van een Duco box zou ik een ESP32-gebaseerd devboard aanraden, bijvoorbeeld de NodeMCU-32S.

Doordat het gebaseerd is op componenten die je dus zelf kan configureren, heeft ESPhome support voor heel veel dingen. Bijvoorbeeld voor een MH-Z19 CO2-sensor, een P1-poort, of een Duco box (via het component dat ik geschreven heb).

ESPhome heeft een Home Assistant add-on, waarmee je in Home Assistant je ESPhome devices kan beheren. Ze hebben OTA (over-the-air) updates goed ingeregeld, waardoor je maar 1x een device met kabel hoeft te flashen, waarna je je device kan updaten. Hoe je er mee kan werken, kun je op de website van ESPhome vinden.

Daarmee configureer je onder andere welk bordje je hebt, je wifi-configuratie en hoe die beschikbaar gesteld wordt aan Home Assistant en eventueel of hij een webinterface moet tonen. Daarna configureer je de componenten die beschikbaar zijn voor het bordje. Voor mijn eigen Duco box gebruik ik daar de volgende configuratie voor:

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
uart:
  id: modbus_uart
  tx_pin: GPIO17
  rx_pin: GPIO16
  baud_rate: 57600

duco:
  uart_id: modbus_uart
  time:
    time_id: sntp_time

text_sensor:
  - platform: duco
    name: "DUCO Serial Number"
    update_interval: "60s"

select:
  - platform: duco
    name: "DUCO Mode"

sensor:
  - platform: duco
    co2:
      - address: 3
        name: "DUCO CO2 Bedroom"
      - address: 4
        name: "DUCO CO2 Livingroom"
    filter_remaining:
      name: "DUCO Filter Time Remaining"
    flow_level:
      name: "DUCO Flow Level"
      update_interval: "5s"
    time_remaining:
      name: "DUCO Mode Time Remaining"
      update_interval: "5s"

number:
  - platform: duco
    name: "DUCO Comfort Temperature"
    update_interval: "10s"

time:
  - platform: sntp
    id: sntp_time
    timezone: Europe/Amsterdam
    servers:
      - [...]


Zoals je ziet moet je dan voor de Duco ook een UART-component gebruiken, die regelt de communicatie tussen de Duco en de ESP32. Uiteindelijk heb je hiermee een device in Home Assistant waarmee je de mode kan wijzigen en informatie kan uitlezen:

Afbeeldingslocatie: https://tweakers.net/i/tA8KN0LrKdQXh_axwY_3yiT8Avw=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/5hRPVx4DCritJtM2WQhyQzsL.png?f=user_large

  • sebaszz1
  • Registratie: Oktober 2022
  • Laatst online: 28-05 11:00
roelofz schreef op maandag 19 mei 2025 @ 22:32:
MDNS via hosts (fail!) maar opgelost, dus update kunnen versturen.

Onwaarschijnlijk hoeveel info je nu al kan ophalen.
Alle sensoren lijken ook goede output te geven, heel erg gaaf.

De comfort temperatuur gaat alleen nog alle kanten op, van 0,0 naar 16 naar 24 (22 is ingesteld, dit lijkt echt random).

Maar verder een schat aan info, nu maar eens aankijken hoe de getallen zich ontwikkelen, comfort temp nog wel benieuwd of die nog getweaked kan dat ie wel goede getallen teruggeeft.
ik zie een vergelijkbaar gedrag met mijn CO2 meting

Afbeeldingslocatie: https://tweakers.net/i/ipSkIfEKZ__xSaVlVY3CkaCZLFk=/800x/filters:strip_icc():strip_exif()/f/image/T3neQ2dI0DIGtwQR4vRKzNi1.jpg?f=fotoalbum_large

Geen idee of er relatie is maar kwam ook onderstaand tegen in de log.

Afbeeldingslocatie: https://tweakers.net/i/V4PvrpHu1bfABTGkGyQJt4Vjh58=/800x/filters:strip_icc():strip_exif()/f/image/Yp5X3IOYEdImRI9BhXjr0mZM.jpg?f=fotoalbum_large

  • sebaszz1
  • Registratie: Oktober 2022
  • Laatst online: 28-05 11:00
filtering werkt goed hier op ppm 👍

Afbeeldingslocatie: https://tweakers.net/i/qJsBkVJxKj-nn3Ku1ww2w0qlLGM=/800x/filters:strip_icc():strip_exif()/f/image/40TKIyHKVeqLWv4jM26c7o78.jpg?f=fotoalbum_large

  • MisterMeJ
  • Registratie: Juni 2023
  • Laatst online: 21-12-2025
@kokx

Ik heb een Duco Silent Connect, waarbij ik geprobeerd heb rechtstreeks via een ESP32 op de 12pins connector een uitlezing te doen, echter brengt het me nog niet tot een succes.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
esphome:
  name: ducobox
  friendly_name: DucoBox
  min_version: 2025.5.0
  name_add_mac_suffix: false

external_components:
  - source: github://pr#7993
    components:
      - duco

esp32:
  board: esp32dev
  framework:
    type: esp-idf

ota:
  - platform: esphome

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

api:
  encryption:
    key: !secret api

logger:

uart:
  id: uart_bus
  tx_pin: GPIO17
  rx_pin: GPIO16
  baud_rate: 57600
  data_bits: 8
  parity: NONE
  stop_bits: 1

duco:
  discovery: {}
  
text_sensor:
  - platform: duco
    name: "DUCO Serial Number"
    update_interval: "60s"

select:
  - platform: duco
    name: "DUCO Mode"

sensor:
  - platform: duco
    co2:
      - address: 3
        name: "DUCO CO2 Bedroom"
      - address: 4
        name: "DUCO CO2 Livingroom"
    filter_remaining:
      name: "DUCO Filter Time Remaining"
    flow_level:
      name: "DUCO Flow Level"
      update_interval: "5s"
    time_remaining:
      name: "DUCO Mode Time Remaining"
      update_interval: "5s"

number:
  - platform: duco
    name: "DUCO Comfort Temperature"
    update_interval: "10s"

time:
  - platform: sntp
    id: sntp_time
    timezone: Europe/Amsterdam
    servers:
      - 8.8.8.8


Snapshot van de uitkomst via logging is:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[10:50:14][D][duco:152]: Duco message sent: 04  0C 3C  02 01
[10:50:15][D][duco:152]: Duco message sent: 04  0C 3D  02 01
[10:50:16][D][duco:152]: Duco message sent: 04  0C 3E  02 01
[10:50:17][D][duco:152]: Duco message sent: 04  0C 3F  02 01
[10:50:20][D][duco:152]: Duco message sent: 04  0C 40  02 01
[10:50:20][D][duco:152]: Duco message sent: 04  0C 41  02 01
[10:50:21][D][duco:152]: Duco message sent: 05  24 42  00 12 0A
[10:50:21][D][duco:152]: Duco message sent: 04  0C 43  02 01
[10:50:23][D][duco:152]: Duco message sent: 04  0C 44  02 01
[10:50:25][I][duco:206]: Discovered nodes:
[10:50:25][D][duco:152]: Duco message sent: 07  10 45  01 03 00 49 04
[10:50:25][D][duco:152]: Duco message sent: 04  0C 46  02 01
[10:50:26][D][duco:152]: Duco message sent: 04  0C 47  02 01
[10:50:26][D][duco:152]: Duco message sent: 04  0C 48  02 01
[10:50:28][D][duco:152]: Duco message sent: 07  10 49  01 01 00 1A 10
[10:50:29][D][duco:152]: Duco message sent: 04  0C 4A  02 01
[10:50:30][D][duco:152]: Duco message sent: 04  0C 4B  02 01
[10:50:31][D][duco:152]: Duco message sent: 05  24 4C  00 12 0A
[10:50:31][D][duco:152]: Duco message sent: 04  0C 4D  02 01
[10:50:32][D][duco:152]: Duco message sent: 04  0C 4E  02 01
[10:50:35][D][duco:152]: Duco message sent: 04  0C 4F  02 01
[10:50:35][D][duco:152]: Duco message sent: 04  0C 50  02 01
[10:50:36][D][duco:152]: Duco message sent: 04  0C 51  02 01


Hij stuurt wel signalen, maar lijkt niets te ontvangen.
Kan het zijn dat het mainboard dusdanig anders werkt?
Any advise of stuurrichting om hetgeen verder uit te zoeken ?
De NodeMCU krijgt externe voeding ipv via het mainboard, hij vond die voeding minder fijn en werkte er niet goed op.

Afbeeldingslocatie: https://tweakers.net/i/U0GGJNh_Rr-BVws98StmaF-l804=/x800/filters:strip_icc():strip_exif()/f/image/TunwPHrRs5OnkPBGrnmaIWX7.jpg?f=fotoalbum_large

  • Plexxodus
  • Registratie: Januari 2007
  • Laatst online: 30-05 16:51
kokx schreef op woensdag 10 september 2025 @ 09:33:
Overigens kun je de bypass goed sturen met behulp van de comforttemperatuur.
Heb jij inzichtelijk hoe dit dan zou moeten werken, want als ik naar de data van de afgelopen 12 uur kijk dan zou ik verwachten dat de bypass zeker in nacht open zou moeten gaan, maar die heeft nooit anders gestaan dan 0%.

Afbeeldingslocatie: https://tweakers.net/i/wafBkoc_J1KMyVAYP3Jbi38U_rA=/800x/filters:strip_exif()/f/image/MCu1zklB5K1qxIA14dnzcmN8.png?f=fotoalbum_large

Itho Daalderop Amber 95 WP (all-electric)


  • laurens362
  • Registratie: Juni 2013
  • Laatst online: 22-05 11:19
In HA zie ik nu de duco maar als ik hem op mijn ducobox aansluit staat alles onbekend en laat hij geen waardes zien. Ik heb tx & rx volgens de foto geplaats en gnd heb ik nummer 11 volgens de foto gekozen en 5v heb ik op mijn esp naar nummer 1 gedaan..

Dit is mijn config

iemand enig idee?


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
esphome:
  name: ducobord
  friendly_name: Ducobord

esp32:
  board: esp32dev
  framework:
    type: arduino
uart:
  id: modbus_uart
  tx_pin: GPIO17
  rx_pin: GPIO16
  baud_rate: 57600

duco:
  uart_id: modbus_uart
  time:
    time_id: sntp_time

text_sensor:
  - platform: duco
    name: "DUCO Serial Number"
    update_interval: "60s"

select:
  - platform: duco
    name: "DUCO Mode"

sensor:
  - platform: duco
    filter_remaining:
      name: "DUCO Filter Time Remaining"
    flow_level:
      name: "DUCO Flow Level"
      update_interval: "5s"
    time_remaining:
      name: "DUCO Mode Time Remaining"
      update_interval: "5s"

number:
  - platform: duco
    name: "DUCO Comfort Temperature"
    update_interval: "10s"

time:
  - platform: sntp
    id: sntp_time
    timezone: Europe/Amsterdam

wifi:
  ssid: "LaAd-Netwerk"
  password: "=-1234.asdf.e"
  

# Duco component (als de PR gemerged is)
external_components:
  - source: github://pr#7993
    components:
      - duco

api:

ota:
  platform: esphome
  password: "ietssterkshier"


Afbeeldingslocatie: https://tweakers.net/i/ootlmn9KUU3vzY8TEfyT5yCD-Rk=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/oJb0AJ0RgK1AByBgPubBDNMK.png?f=user_large


De logs laten tevens zien dat hij wel sent...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
20:55:07.897][C][sntp:062]:   Server 0: '0.pool.ntp.org'
[20:55:07.926][C][sntp:062]:   Server 1: '1.pool.ntp.org'
[20:55:07.954][C][sntp:062]:   Server 2: '2.pool.ntp.org'
[20:55:07.955][C][esphome.ota:075]: Over-The-Air updates:
[20:55:07.955][C][esphome.ota:075]:   Address: ducobord.local:3232
[20:55:07.955][C][esphome.ota:075]:   Version: 2
[20:55:07.955][C][esphome.ota:082]:   Password configured
[20:55:07.967][C][safe_mode:018]: Safe Mode:
[20:55:07.967][C][safe_mode:018]:   Successful after: 60s
[20:55:07.967][C][safe_mode:018]:   Invoke after: 10 attempts
[20:55:07.967][C][safe_mode:018]:   Duration: 300s
[20:55:07.971][C][api:207]: Server:
[20:55:07.971][C][api:207]:   Address: ducobord.local:6053
[20:55:07.972][C][api:217]:   Noise encryption: NO
[20:55:07.973][C][mdns:213]: mDNS:
[20:55:07.973][C][mdns:213]:   Hostname: ducobord
[20:55:09.008][D][duco:152]: Duco message sent: 04  0C 45  02 01
[20:55:09.121][D][duco:152]: Duco message sent: 04  0C 46  02 01
[20:55:09.577][D][duco:152]: Duco message sent: 04  0C 47  02 01
[20:55:12.111][D][duco:152]: Duco message sent: 04  0C 48  02 01
[20:55:13.975][D][duco:152]: Duco message sent: 04  0C 49  02 01

[ Voor 36% gewijzigd door laurens362 op 04-10-2025 20:56 ]


  • leime
  • Registratie: Oktober 2015
  • Laatst online: 29-05 23:47
Ook ik heb gisteravond onze (nieuwe) D350 voorzien van een esphome interface. @kokx Fijn dat je dit component hebt geschreven! Vond het ook leuk om je detective verhaal te lezen. Dit soort dingen vind ik zelf ook altijd mooi om uit te dokteren.

Omdat ik zelf de voorkeur heb voor ethernet heb ik een WT32-ETH01 gebruikt. Het was eerst even puzzelen waar ik deze het mooiste kon wegwerken/bevestigingen. Uiteindelijk bleek één van de ribben in de unit geschikt om iets te fabrieken. Ik heb een beugeltje geprint dat de WT32-ETH01 op zijn plaats houdt, met een kapje zodat het geheel "om" de rib heen zit, dit kan zo geen kant meer op. Dat was weer een leuk avondje hobbyen!
Afbeeldingslocatie: https://tweakers.net/i/k_XEooP8Fys-bgsIj1f9d4sQZVg=/232x232/filters:strip_icc():strip_exif()/f/image/jCmpdWpatBVTosSpKxQEUyxl.jpg?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/WON0kw9Ag6Xic8gkhNkc62VwemA=/232x232/filters:strip_icc():strip_exif()/f/image/Wk07e4Mi6aId0WCuFg9ceQb1.jpg?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/kpnWPLV-hMw-fAeEjObjuQLQhDE=/232x232/filters:strip_exif()/f/image/I6gBY7ZRSARCgvmgHyPkdkBb.png?f=fotoalbum_tile
De step bestanden heb ik op github gezet, samen met een werkende yaml voor de WT32-ETH01.

Dank aan iedereen die heeft bijgedragen aan dit component!

  • leime
  • Registratie: Oktober 2015
  • Laatst online: 29-05 23:47
Bedankt! Dat is een stukje 4x0,34 pur kabel* die ik aan een 2x6 female header heb gesoldeerd met daaromheen een 3d geprint kapje. Beetje overkill, maar ik vind het leuk zo wat te knutselen.

Afbeeldingslocatie: https://tweakers.net/i/kYUeWbAjsZX9WW4ZkFNP5oWVn58=/800x/filters:strip_icc():strip_exif()/f/image/iN1KbIrALax6pcuZgF9qBq9v.jpg?f=fotoalbum_large

*) Ik werk in de industriële automatisering, daar is dat redelijk gangbaar spul. We kopen die in standaard lengtes, dus er zijn wel eens stukjes over. Bijvoorbeeld zoiets. Kan ik je blij maken met een stukje?

  • Duck01
  • Registratie: November 2025
  • Laatst online: 23-11-2025
Ik had alleen nog esp-01's liggen dus moest even een nieuwe ESP bestellen (is een esp-32D geworden) maar het werkt nu. Erg makkelijk proces, helemaal als je ESPhome al een beetje kent.

Initeel miste ik alleen nog de filter time of het %. Die kan ik op mijn schermpje wel zien. Blijkbaar had het even tijd nodig, of dat ik door het menu scrolde op de unit.

Het werkt dus ook met een Duco WTW DucoBox Energy 460 2ZS.

Afbeeldingslocatie: https://tweakers.net/i/shXezZIbgn-JaV1kWLg0CeSEwfM=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/8pH1cNPJGvda2KqExGSd7982.png?f=user_large

[ Voor 5% gewijzigd door Duck01 op 02-11-2025 16:25 ]


  • sallander
  • Registratie: November 2025
  • Niet online
Hier is de duco config die ik gebruik. Misschien nuttig voor anderen.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
external_components:
  - source: github://pr#7993
    components:
      - duco

uart:
  id: duco_uart
  tx_pin: GPIO17
  rx_pin: GPIO16
  baud_rate: 57600

duco:
  uart_id: duco_uart
  discovery: {}
  time:
    time_id: sntp_time

select:
  - platform: duco
    name: "Mode"

sensor:
  - platform: duco
    co2:
      - address: 3
        name: "CO2 bedroom"
      - address: 4
        name: "CO2 livingroom"
    filter_remaining:
      name: "Filter time remaining"
    flow_level:
      name: "Flow level"
    time_remaining:
      name: "Mode time remaining"
    bypass:
      name: "Bypass"
    temperature_oda:
      name: "Fresh air from outside temperature"
    temperature_eha:
      name: "Stale air to outside temperature"
    temperature_sup:
      name: "Fresh air to inside temperature"
    temperature_eta:
      name: "Stale air from inside temperature"

number:
  - platform: duco
    name: "Comfort temperature"


Afbeeldingslocatie: https://tweakers.net/i/9q9Q-0Gwlr7wVZcCY6qr4O9XotQ=/800x/filters:strip_exif()/f/image/ywtpPPFPWfUviVjZCQXK9zfI.png?f=fotoalbum_large

Bosch CS5800/10 | UFH | Duco D325 | 16/8x450Wp ZO/NW | MT Venus E3


  • leime
  • Registratie: Oktober 2015
  • Laatst online: 29-05 23:47
blubgup schreef op vrijdag 12 december 2025 @ 06:46:
[...]
Wat ik me trouwens nog afvroeg, de box geeft op het display de temperatuur van binnenkomende en uitgaande lucht weer, zijn die waardes ook in HA te krijgen? Ze komen niet als nodes naar voren in ieder geval.
Dit zijn volgens mij geen losse nodes, maar onderdeel van de box node. Je kan ze als sensor configureren:

YAML:
1
2
3
4
5
6
7
8
9
10
sensor:
  - platform: duco 
    temperature_oda:
      name: "Temperature Outdoor Air"
    temperature_eha:
      name: "Temperature Outdoor Exhaust"
    temperature_sup:
      name: "Temperature Supply To Room"
    temperature_eta:
      name: "Temperature Indoor Exhaust"


Afbeeldingslocatie: https://tweakers.net/i/ShMH120c-m_1cTqcy6iRjB9uv0E=/800x/filters:strip_exif()/f/image/WD9QkCBgOm6vjDxAho401eGP.png?f=fotoalbum_large
mysense schreef op vrijdag 12 december 2025 @ 08:56:
[...]
Wel heb ik een error gekregen op het schermpje. Waarschijnlijk omdat de esp module een signaal probeert te geven?
(Want de error komt niet terug als ik de esp verwijder)

Iemand die iets kan met deze info?
Hier kan je een overzicht vinden van de foutcodes.

Welke ESP32 module gebruik je specifiek? Zeker weten dat je GPIO16 en GPIO17 hebt aangesloten?

[ Voor 22% gewijzigd door leime op 12-12-2025 11:20 ]


  • mysense
  • Registratie: Maart 2022
  • Laatst online: 28-05 16:15
Thanks voor de hulp aan deze noob.

Heb nogmaals gecheckt, fototje gemaakt
  • Board: ESP32 WROOM Ontwikkelboard WiFi/Bluetooth USB-C CH340
  • Volledige YAML: (met comments en github repo)
    code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    
    esphome:
      name: esphome-web-f0f214
      friendly_name: Duco_esp32
      min_version: 2025.11.0
      name_add_mac_suffix: false
    
    esp32:
      variant: esp32
      framework:
        type: esp-idf
    
    # Enable logging
    logger:
    
    # Enable Home Assistant API
    api:
    
    # Allow Over-The-Air updates
    ota:
    - platform: esphome
    
    wifi:
      ssid: !secret wifi_ssid
      password: !secret wifi_password
    
    
    # ----------------------------------------------------
    # 1. ADD THE EXTERNAL COMPONENT SOURCE (The key change!)
    # ----------------------------------------------------
    external_components:
      - source:
          type: git
          url: https://github.com/kokx/esphome.git # Developer's fork
          ref: duco-component                     # Branch containing the code
        components: [duco] # Tells ESPHome to look for the 'duco' component
    
    
    # ----------------------------------------------------
    # 2. ADD UART AND DUCO CONFIGURATION (The component setup)
    # ----------------------------------------------------
    uart:
      id: duco_uart
      tx_pin: GPIO17 # **CHANGE THIS** to your chosen TX pin
      rx_pin: GPIO16 # **CHANGE THIS** to your chosen RX pin
      baud_rate: 57600
      data_bits: 8
      parity: NONE
      stop_bits: 1
    
    duco:
      uart_id: duco_uart
      discovery: {}
      time:
        time_id: sntp_time
    
    # select:
    #   - platform: duco
    #     name: "Mode"
    
    # sensor:
    #   - platform: duco
    #     co2:
    #       - address: 3
    #         name: "CO2 bedroik om"
    #       - address: 4
    #         name: "CO2 livingroom"
    #     filter_remaining:
    #       name: "Filter time remaining"
    #     flow_level:
    #       name: "Flow level"
    #       update_interval: "5s"
    #     time_remaining:
    #       name: "DUCO Mode Time Remaining"
    #       update_interval: "5s"
    #     bypass:
    #       name: "Bypass"
    #     temperature_oda:
    #       name: "Fresh air from outside temperature"
    #     temperature_eha:
    #       name: "Stale air to outside temperature"
    #     temperature_sup:
    #       name: "Fresh air to inside temperature"
    #     temperature_eta:
    #       name: "Stale air from inside temperature"
    
    # ---------------
    # The number component allows viewing and changing the comfort temperature of the ventilation system:
    # ---------------
    # number:
    #   - platform: duco
    #     name: "DUCO Comfort Temperature"
    #     update_interval: "10s"
    
    time:
      - platform: sntp
        id: sntp_time
        timezone: Europe/Amsterdam
  • LOGS zonder discover nodes
    code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    
    12:41:34.401][C][logger:261]: Logger:
    [12:41:34.401][C][logger:261]:   Max Level: DEBUG
    [12:41:34.401][C][logger:261]:   Initial Level: DEBUG
    [12:41:34.412][C][logger:267]:   Log Baud Rate: 115200
    [12:41:34.412][C][logger:267]:   Hardware UART: UART0
    [12:41:34.418][C][logger:274]:   Task Log Buffer Size: 768
    [12:41:34.434][C][uart.idf:214]: UART Bus 1:
    [12:41:34.441][C][uart.idf:215]:   TX Pin: GPIO17
    [12:41:34.472][C][uart.idf:216]:   RX Pin: GPIO16
    [12:41:34.496][C][uart.idf:219]:   RX Buffer Size: 256
    [12:41:34.496][C][uart.idf:219]:   RX Full Threshold: 56
    [12:41:34.496][C][uart.idf:219]:   RX Timeout: 2
    [12:41:34.498][C][uart.idf:225]:   Baud Rate: 57600 baud
    [12:41:34.498][C][uart.idf:225]:   Data Bits: 8
    [12:41:34.498][C][uart.idf:225]:   Parity: NONE
    [12:41:34.498][C][uart.idf:225]:   Stop bits: 1
    [12:41:34.505][C][duco:117]: DUCO:
    [12:41:34.517][C][duco:118]:   Send Wait Time: 250 ms
    [12:41:34.520][C][duco:119]:   CRC Disabled: NO
    [12:41:34.526][C][wifi:1062]: WiFi:
    [12:41:34.526][C][wifi:1062]:   Connected: YES
    [12:41:34.527][C][wifi:827]:   Local MAC: 
    [12:41:34.529][C][wifi:834]:   IP Address: 
    [12:41:34.538][C][wifi:838]:   SSID: [redacted]
    [12:41:34.538][C][wifi:838]:   BSSID: [redacted]
    [12:41:34.538][C][wifi:838]:   Hostname: 'esphome-web-f0f214'
    [12:41:34.538][C][wifi:838]:   Signal strength: -74 dB ▂▄▆█
    [12:41:34.538][C][wifi:838]:   Channel: 5
    [12:41:34.538][C][wifi:838]:   Subnet: 255.255.255.0
    [12:41:34.538][C][wifi:838]:   Gateway: 192.168.1.1
    [12:41:34.538][C][wifi:838]:   DNS1: 192.168.1.1
    [12:41:34.538][C][wifi:838]:   DNS2: 0.0.0.0
    [12:41:34.543][C][sntp:059]: SNTP Time:
    [12:41:34.565][C][sntp:062]:   Server 0: '0.pool.ntp.org'
    [12:41:34.571][C][sntp:062]:   Server 1: '1.pool.ntp.org'
    [12:41:34.575][C][sntp:062]:   Server 2: '2.pool.ntp.org'
    [12:41:34.579][C][time:029]: Timezone: 'CET-1CEST,M3.5.0,M10.5.0/3'
    [12:41:34.584][C][esphome.ota:093]: Over-The-Air updates:
    [12:41:34.584][C][esphome.ota:093]:   Address: esphome-web-f0f214.local:3232
    [12:41:34.584][C][esphome.ota:093]:   Version: 2
    [12:41:34.606][C][safe_mode:018]: Safe Mode:
    [12:41:34.606][C][safe_mode:018]:   Successful after: 60s
    [12:41:34.606][C][safe_mode:018]:   Invoke after: 10 attempts
    [12:41:34.606][C][safe_mode:018]:   Duration: 300s
    [12:41:34.610][C][api:223]: Server:
    [12:41:34.610][C][api:223]:   Address: esphome-web-f0f214.local:6053
    [12:41:34.610][C][api:223]:   Listen backlog: 4
    [12:41:34.610][C][api:223]:   Max connections: 8
    [12:41:34.616][C][api:235]:   Noise encryption: NO
    [12:41:34.627][C][mdns:177]: mDNS:
    [12:41:34.627][C][mdns:177]:   Hostname: esphome-web-f0f214
    [12:41:39.234][I][duco:206]: Discovered nodes:
    [12:42:39.219][I][duco:206]: Discovered nodes:
    [12:43:39.225][I][duco:206]: Discovered nodes:
    [12:44:39.228][I][duco:206]: Discovered nodes:
    [12:45:39.235][I][duco:206]: Discovered nodes:
    [12:46:39.242][I][duco:206]: Discovered nodes:
    [12:47:39.235][I][duco:206]: Discovered nodes:
    [12:48:39.239][I][duco:206]: Discovered nodes:
    [12:48:40.757][D][duco:152]: Duco message sent: 0B  24 0D  05 18 01 3C 69 00 00 00 00
    [12:49:06.514][D][sntp:100]: Synchronized time: 2025-12-12 12:49:06
    [12:49:39.234][I][duco:206]: Discovered nodes:
    [12:50:39.236][I][duco:206]: Discovered nodes:
    [12:51:39.244][I][duco:206]: Discovered nodes:
    [12:52:39.250][I][duco:206]: Discovered nodes:
    [12:53:39.251][I][duco:206]: Discovered nodes:
  • Connectie fotos
    Afbeeldingslocatie: https://tweakers.net/i/lbL5MyaWxx84gIikQobo9g7SdwU=/x800/filters:strip_icc():strip_exif()/f/image/XbktdcMp968iGXwZm7Rlv3aj.jpg?f=fotoalbum_large
probleem gevonden! Het maak uit welk GND pin je gebruikt. (Dus niet die in mijn foto’s).

  • mysense
  • Registratie: Maart 2022
  • Laatst online: 28-05 16:15
Hoi,

Een van mijn CO2 sensors update veel minder vaak. Duco is hier langs geweest en geeft aan dat de CO2 sensor soms zijn signaal direct met de box verliest, maar dat hij dan alsnog via de andere CO2 sensor zijn signaal doorgeeft (als doorgeef knooppunt).

@kokx Zou het zo kunnen zijn dat de Duco nog wel waardes ontvangt (indirect) maar dat ik dit niet terug zie in de waardes die jouw code uitleest?
  • Sensor 'bedroom' update vaak. Bijna iedere 5 seconden
  • Sensor 'livingroom' update minder vaak. Soms iedere 5 seconden, maar soms ook een aantal uur niet
  • De 'flow levels' gaan omlaag zodra wij opstaan (de deur openen van de slaapklamer. (07:30)
  • Ik denk daarom dat de duco box een andere waarde leest bij de 'livingroom' dan ik zie in home assistant. Want als het daadwerkelijk nog 1000+ zou zijn zou ik verwachten dat de flow hoog blijft.
  • Sensor 'bedroom' lijkt ook erg schomellende waardes door te geven? mogelijk omdat hij ook de waardes van de 'livingroom' doorgeeft?
Is het mogelijk om meer accurate waardes te krijgen van de 'livingroom' en 'bedroom' CO2 sensor, als deze waardes worden doorgegeven via een andere CO2 sensor?

Livingroom CO2 sensor
deze sensor update dus niet altijd
Afbeeldingslocatie: https://tweakers.net/i/bsdMDKvPoeNhVS4iSvq2lOqfFxw=/800x/filters:strip_exif()/f/image/bLO0cP9yhJKYdtRgQKOUDUMb.png?f=fotoalbum_large

bedroom CO2 sensor
deze sensor update vaak. Maar met schommelende waardes
Afbeeldingslocatie: https://tweakers.net/i/Qc3z4lKikRUzK8cMXYgV9BQ842M=/800x/filters:strip_exif()/f/image/mig2LpwkAqrNecAEyYMLdqme.png?f=fotoalbum_large

Flow / comnbinatie
het glow gedrag van de box (blauwe lijn) klopt wel ongeveer met wat ik verwacht. Als we slapen staat de box aan omdat er veel CO2 op de slaapkamer zou zijn. Zodra we opstaan word de flow minder.
Afbeeldingslocatie: https://tweakers.net/i/P9OgHjx3soH6hatM6EqB58v2E6w=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/eWmh4rGFQn0OTZUphzN4ooTI.png?f=user_large


PS: voorheen kreeg ik wel eens een foutmelding dat de communicatie met de 'livingroom' CO2 sensor slecht was. Na dat Duco hier geweest is krijg ik die foutmelding niet meer. Volgens mij hebben ze aangepast dat de foutmelding niet meer toont als de waarde via het andere CO2 knooppunt word doorgegeven.

  • marnie
  • Registratie: November 2016
  • Nu online
mysense schreef op dinsdag 23 december 2025 @ 10:38:
Hoi,

Een van mijn CO2 sensors update veel minder vaak. Duco is hier langs geweest en geeft aan dat de CO2 sensor soms zijn signaal direct met de box verliest, maar dat hij dan alsnog via de andere CO2 sensor zijn signaal doorgeeft (als doorgeef knooppunt).

@kokx Zou het zo kunnen zijn dat de Duco nog wel waardes ontvangt (indirect) maar dat ik dit niet terug zie in de waardes die jouw code uitleest?
  • Sensor 'bedroom' update vaak. Bijna iedere 5 seconden
  • Sensor 'livingroom' update minder vaak. Soms iedere 5 seconden, maar soms ook een aantal uur niet
  • De 'flow levels' gaan omlaag zodra wij opstaan (de deur openen van de slaapklamer. (07:30)
  • Ik denk daarom dat de duco box een andere waarde leest bij de 'livingroom' dan ik zie in home assistant. Want als het daadwerkelijk nog 1000+ zou zijn zou ik verwachten dat de flow hoog blijft.
  • Sensor 'bedroom' lijkt ook erg schomellende waardes door te geven? mogelijk omdat hij ook de waardes van de 'livingroom' doorgeeft?
Is het mogelijk om meer accurate waardes te krijgen van de 'livingroom' en 'bedroom' CO2 sensor, als deze waardes worden doorgegeven via een andere CO2 sensor?

Livingroom CO2 sensor
deze sensor update dus niet altijd
[Afbeelding]

bedroom CO2 sensor
deze sensor update vaak. Maar met schommelende waardes
[Afbeelding]

Flow / comnbinatie
het glow gedrag van de box (blauwe lijn) klopt wel ongeveer met wat ik verwacht. Als we slapen staat de box aan omdat er veel CO2 op de slaapkamer zou zijn. Zodra we opstaan word de flow minder.
[Afbeelding]


PS: voorheen kreeg ik wel eens een foutmelding dat de communicatie met de 'livingroom' CO2 sensor slecht was. Na dat Duco hier geweest is krijg ik die foutmelding niet meer. Volgens mij hebben ze aangepast dat de foutmelding niet meer toont als de waarde via het andere CO2 knooppunt word doorgegeven.
Dat zijn wel heel vreemde grafieken, hieronder die van mij.
Afbeeldingslocatie: https://tweakers.net/i/9RGMQTQSjA_sIjWWeg9_DWhVuVg=/800x/filters:strip_exif()/f/image/3uDfVfKyIeAdQGZvj1SRyANa.png?f=fotoalbum_large
Hoe lees je de gegevens uit? Homeassistant? Kan het zijn dat de communicatie naar je 'homeserver' niet optimaal is, het lijkt er namelijk op dat de Ducobox wel goed reageert op de CO2 sensoren door op te toeren als dat gevraagd wordt.
Ik gebruik de oude Duco communicatieprint en HA met REST om de box te lezen met een scan interval van 10seconden.

2/1-kap 1988 | Extra vloer en muurisolatie | HR++ glas | WTW: Duco Energie Comfort 325 2-zones | WP: Adlar II 6kW | CV wonen: Jaga Strada Hybrid DBH, slapen: traditionele radiatoren | Solar: Enphase oost/west/zuid 4.2kVA | Homeassistant


  • mysense
  • Registratie: Maart 2022
  • Laatst online: 28-05 16:15
Met Ai debugging heel eind gekomen, maar nu moet ik het nog gaan aanpassen en testen. Dat gaat me misschien net wat te ver dus ik wacht hier nog even op assistentie (@kokx ?) voordat ik zelf begin te klooien

sensor.ccp


AI denkt...
Afbeeldingslocatie: https://tweakers.net/i/cmtzkQ2grSsgKeWNUNQDKIXJ5_0=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/JEjwICxurCwSL8dZfWXmU7Vb.png?f=user_large

Afbeeldingslocatie: https://tweakers.net/i/dAB8E1J3Y7hBJ6Hp7OoBmcIycqg=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/JnMah22OdW8iMe8Zex1Ira0u.png?f=user_large

Afbeeldingslocatie: https://tweakers.net/i/EGqm35N2c_Jw2FwOel3gIcr5d04=/x800/filters:strip_exif()/f/image/dbzD701Xn0UEXuG8KaJ2nJ1l.png?f=fotoalbum_large

[ Voor 27% gewijzigd door mysense op 23-12-2025 12:47 ]


  • mysense
  • Registratie: Maart 2022
  • Laatst online: 28-05 16:15
marnie schreef op dinsdag 23 december 2025 @ 12:50:
[...]
Het is prima dat je niets met mijn hulp doet, Misschien kan iemand hier je verder helpen: Home Assistant: Open source Python3 home automation - deel 5, daar zitten ook ESPHome experts.
haha sory. je hulp word gewaardeerd. ik dacht misschien weet jij zo de AI code te bevestigen en dan had ik het wel aangedurft.

home assistant heeft zelf ID's aangemaakt als je ze niet in de yaml configureert
Afbeeldingslocatie: https://tweakers.net/i/6acaf-UyoipZ1OrM0Y-QufrE9j0=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/aA36kgaZCHT8iwXg7KtMKuYI.png?f=user_large

  • mysense
  • Registratie: Maart 2022
  • Laatst online: 28-05 16:15
Bericht aangepast. Het aanpassen van de poll rate heeft wel iets geholpen maar niet alles opgelost.
Ik zal vandaag proberen de polling nog wat langzamer te zetten, en de 2 CO2 sensoren op andere waardes te zetten (91s / 70s)

de 'flow' en combinatie
de blauwe lijn (flow) toont nog steeds normaal gedrag. snachts staat de ventilatie aan, zodra we opstaan word het minder
Afbeeldingslocatie: https://tweakers.net/i/xQu0iLbh4ASlOawsw9qhUS7EXo4=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/WxXIFpcb9ST7FC1OTLo3kIRV.png?f=user_large

CO sensor 'bedroom'
Toont veel minder afwijkingen dan voorheen, maar nog wel een paar.
Ik denk ook dat de grafiek 'snachts' niet klopt. De aflopende lijn verwacht ik in de woonkamer, en die pieken (hoog) verwacht ik in de slaapkamer.
Afbeeldingslocatie: https://tweakers.net/i/BxOMR-R3TarpOSMna4uftNKyY-I=/800x/filters:strip_exif()/f/image/GTetmh06n1I8vciXSmhgRFdn.png?f=fotoalbum_large

CO sensor 'livingroom
Dit is mijn grootste issue, deze sensor lijkt soms helemaal weg te vallen. (al lijkt het zo dat de box het wel weet, want de 'flow' is goed. Soms is de grafiek wel goed, ik denk dat er op dat moment een goede directe verbinding is met de sensor
Afbeeldingslocatie: https://tweakers.net/i/ASx4jCIlpXN0ihLlWGU321OsZT4=/800x/filters:strip_exif()/f/image/lMkiNiCUldYqfKMTAoxOKUg2.png?f=fotoalbum_large

[ Voor 74% gewijzigd door mysense op 25-12-2025 08:33 ]


  • bassio
  • Registratie: Oktober 2000
  • Laatst online: 15:49
Ik kwam dit topic tegen in mijn zoektocht om mijn Ducobox Energy Premium (400-2ZH-L) wat beter aan te kunnen sturen dan alleen de CO2 sensor die beneden hangt. Mega bedankt iedereen voor de info in dit topic en @BiG-GuY voor het maken van de integratie _/-\o_ _/-\o_ . Gelukkig had ik al vanaf het begin het communicatie board in de Duco zitten, dus ik kon al veel uitlezen via een oude HA integratie of via de local webpage.
jorritsmit schreef op vrijdag 16 januari 2026 @ 14:34:
[...]

Ik heb geen sensoren dus de auto stand draait altijd op de minimale snelheid. Nu kun je die minimale snelheid instellen op de box (in percentages) die heb ik nu dus op 70 procent gezet en dan kan ik schakelen tussen stand 2, auto en stand 3 voor respectievelijk 50 70 en 100 procent

Het is een workaround die genoeg voor me werkt maar het is wel echt mega knudde dat er zo weinig mogelijk is (waarschijnlijk zodat je die dure sensors van ze koopt)
Ik heb bij Ikea de Alpstuga sensoren (https://www.ikea.com/nl/n...eitsensor-smart-50604187/) gehaald en die op de slaapkamers en werkkamers geplaatst. Deze vervolgens via de Home Assistant Connect ZBT-2 Zigbee/Thread (https://www.hashop.nl/Home-Assistant-Connect-ZBT-2) via Matter/Thread in Home Assistant aangesloten. Op basis van die sensoren heb ik een mooi dashboad gemaakt zodat ik het een beetje in de gaten kan houden. Nu wil ik nog een stap verder gaan en de box ook slimmer aansturen, b.v. als op 1 van de kamers de Co2 boven de 1100 komt.
Afbeeldingslocatie: https://tweakers.net/i/zXsHKbgz4_fQnydi3cfqjTz95_s=/800x/filters:strip_exif()/f/image/2c7q5Vakd7p4fgtVdXoWioUD.png?f=fotoalbum_large

In totaal zijn de kosten voor 5 Co2 sensoren en de hardware voor de Matter integratie ongeveer 250 euro. De Ikea sensoren hebben namelijk geen kabel of stroomadapter, dus die moeten er nog bij. Maar dat is ongeveer 7-10 euro (of misschien heb je die nog wel liggen)

Op basis van de HA integratie (https://github.com/danielpetrovic/ha-ducobox) heb ik kunnen vinden dat ik ook de fanspeed aan kan sturen. Ik heb nu een simpele automation gemaakt die kijkt of 1 van de sensoren boven de 1100 komt, en dan de speed met 5% verhoogt. Na 10 min checked hij of de Co2 weer onder de 900 en dan zet hij hem terug naar AUTO. Is het nog te hoog, gooit hij er 5% bij tot een max van 90%. Moet hem nog testen, maar met een beetje vibe coding kwam dit er uit.

Dit is de Yaml:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
alias: "Duco Fan: Smart Multi-Room CO2 Control with Safety"
description: Dynamic speed increase (5% steps) capped at 90%
triggers:
  - entity_id:
      - sensor.co2_1_carbon_dioxide
      - sensor.co2_2_carbon_dioxide
      - sensor.co2_3_carbon_dioxide
      - sensor.co2_4_dioxide
    above: 1100
    id: high_co2
    trigger: numeric_state
  - entity_id:
      - sensor.co2_1_carbon_dioxide
      - sensor.co2_2_carbon_dioxide
      - sensor.co2_3_carbon_dioxide
      - sensor.co2_4_dioxide
    below: 900
    for:
      minutes: 5
    id: low_co2
    trigger: numeric_state
actions:
  - choose:
      - conditions:
          - condition: trigger
            id: high_co2
        sequence:
          - repeat:
              while:
                - condition: template
                  value_template: "{{ states(trigger.entity_id) | float > 1050 }}"
                - condition: numeric_state
                  entity_id: fan.ducobox_ventilation
                  attribute: percentage
                  below: 90
              sequence:
                - action: fan.set_percentage
                  target:
                    entity_id: fan.ducobox_ventilation
                  data:
                    percentage: >
                      {% set current = state_attr('fan.ducobox_ventilation',
                      'percentage') | int(0) %} {{ [current + 5, 90] | min }}
                - delay:
                    minutes: 10
      - conditions:
          - condition: trigger
            id: low_co2
          - condition: template
            value_template: "{{ states(trigger.entity_id) | float < 900 }}"
        sequence:
          - action: fan.set_preset_mode
            target:
              entity_id: fan.ducobox_ventilation
            data:
              preset_mode: Auto
          - action: notify.mobile_app
            data:
              title: Ventilation Reset
              message: >-
                {{ state_attr(trigger.entity_id, 'friendly_name') }} cleared.
                Returning to Auto.
mode: restart
Op dit moment kan de integratie alleen de fan speed aansturen, maar ik vroeg mij af of je ook niet de zone sturing kan gebruiken. Dan kan je ook per zone de toevoer gaan sturen. In de (local) webinterface kan je de verschillende nodes aan klikken (67&68 zijn de zone kleppen) en dan daar ook waardes zetten en dus de box aan sturen.
Nodes:
Afbeeldingslocatie: https://tweakers.net/i/6awGWGaCFk82jCV5dm0IpKPtl9o=/800x/filters:strip_exif()/f/image/SUNGKvcRydKQpU85okvyn9ep.png?f=fotoalbum_large
Nodes details
Afbeeldingslocatie: https://tweakers.net/i/wfQcQVzjxIsCI02HRM_Y7SiPxN4=/800x/filters:strip_icc():strip_exif()/f/image/zf0JoTNn1cOtaKEhbwb4qLId.jpg?f=fotoalbum_large

@BiG-GuY, is dit nog iets wat toegevoegd zou kunnen worden aan de integratie denk je? Dat zou echt heel vet zijn. Ik ga nog kijken met iemand of we betere aansturing kunnen bedenken ipv met stapje van 5%. Als de zonesturing er ook is dan kan je hem helemaal slim maken.

  • mysense
  • Registratie: Maart 2022
  • Laatst online: 28-05 16:15
bedankt voor de snelle reactie big-guy. Ik gebruik zelf de esp32 integreatie van kokx maar verwacht dat daar het zelfde antwoord voor geld.

De powercalc integratie zou je in staat stellen het stroomverbruik virtueel te meten. Maar om dat goed te kunnen doen heb ik waarschijnlijk de debiet en druk waardes nodig.

Afbeeldingslocatie: https://tweakers.net/i/DTKOp6yHKA9RAMTSV9Rx4I3stRY=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/dGASnpUbWdGmL3g97PBRZuUE.png?f=user_large

Momenteel heb ik alleen de fanspeed en ik denk dus niet genoeg om het via powercalc virtueel te meten

  • Joloco
  • Registratie: Mei 2026
  • Laatst online: 30-05 17:45
Plexxodus schreef op woensdag 10 september 2025 @ 15:48:
[...]


Heb jij inzichtelijk hoe dit dan zou moeten werken, want als ik naar de data van de afgelopen 12 uur kijk dan zou ik verwachten dat de bypass zeker in nacht open zou moeten gaan, maar die heeft nooit anders gestaan dan 0%.

[Afbeelding]
Mijn excuses voor het reageren op een oud bericht van September vorige jaar, maar ik heb hetzelfde probleem als @Plexxodus met een Ducobox Energy Comfort D325: de bypass sluit terwijl deze open zou moeten zijn.

De bypass-modus staat op AUTO, de adaptieve modus is aan, de comforttemperatuur is zo laag mogelijk ingesteld (10°C) en de binnentemperatuur is rond 20°C.

Gezien deze waarden zouden we dus verwachten dat de bypass open is, toch?

Nou, als de buitentemperatuur 15°C of hoger is, werkt het apparaat zoals verwacht. De bypass-status is 100% (dus: volledig open, koel lucht komt binnen).

Maar wanneer de buitentemperatuur zakt tot 14°C of lager, sluit de bypass en wordt de status weergegeven als (OVRL) 0% (dus volledig gesloten, warmtewisselaar actief, de koele avondlucht wordt opgewarmd).

Dit wil ik natuurlijk niet - het lijkt het nut van de bypass-modus teniet te doen! :(

Ik heb overal gezocht, maar nergens legt Duco uit wat (OVRL) betekent of waarom de bypass zou sluiten in strijd met hun beschrijving van de werking.

Ik heb Duco hierover een bericht gestuurd, maar heb geen antwoord ontvangen. Heeft iemand enig idee wat er aan de hand is of hoe dit op te lossen?
Afbeeldingslocatie: https://tweakers.net/i/kNJ6TXNiI_vKA2278uMYUMVbeOU=/232x232/filters:strip_icc():strip_exif()/f/image/fe8p4eQlY4eECxK11bkWcgyr.jpg?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/AqGxhQvBzC9L2rbOaYsXEJDPIno=/232x232/filters:strip_icc():strip_exif()/f/image/tdBvAqBWlbySw9B7yGbK30Da.jpg?f=fotoalbum_tile

[ Voor 0% gewijzigd door Joloco op 21-05-2026 11:36 . Reden: Bijgewerkte temperaturen waarbij de storing optreedt ]


  • leime
  • Registratie: Oktober 2015
  • Laatst online: 29-05 23:47
Ik zie hier inderdaad hetzelfde gedrag. Aankomende nacht wil ik m eens met de hand hard open zetten, kijken wat er dan gebeurt.

Afbeeldingslocatie: https://tweakers.net/i/G0DcK85QY1jy3eajvgFVUankQjs=/800x/filters:strip_icc():strip_exif()/f/image/DqmgVTZfQMn7YXt6A3i8MvEK.jpg?f=fotoalbum_large (Screenshot uit een momenteel nog vrij brak opgezette Home Assistant grafiek)
  • Groen is de bypass stand (schaal rechts in procenten)
  • Paars is de buitentemperatuur (schaal links in graden)
  • Oranje is de temperatuur van de aanvoer lucht het huis in (schaal links in graden)
Zou dit een veiligheidsmaatregel kunnen zijn om condensvorming aan de buitenkant van de kanalen te voorkomen? Als je uitgaat van een relatief hoge RH van 60% en het is binnen dik 23 graden ligt het dauwpunt rond die 15 graden. Dan wil je niet dat je kanalen kouden worden dan dat. (Je kan ook een lagere RH pakken, dan mag het wat warmer worden. Uiteindelijk zijn er best wat realistische scenarios waarin je dauwpunt richting de 15 graden gaat.)

Wel jammer dat de boel dan niet gaat moduleren op die 15 graden. Dan heb ik de hele nacht steady koele lucht het huis in. Heb al met de gedachten gespeeld om de aansturing van de bypass zelf te gaan doen om er meer controle over de krijgen. Zelfs al om t hele ding zelf te gaan aansturen, maar die neiging heb ik al snel als engineer in de automatisering.
Pagina: 1