Toon posts:

Pin header type voor ducobox uitlezing

Pagina: 1 ... 4 5 6 Laatste
Acties:

  • Kaspers
  • Registratie: Juni 2004
  • Laatst online: 18:27
Ik werk ook met de API van de communcation print.
Zie eerdere posts in dit topic, bijvoorbeeld: Kaspers in "Pin header type voor ducobox uitlezing"

Integreert, middels node-red, prima in home-assistant.

[Voor 14% gewijzigd door Kaspers op 16-01-2023 13:43]


  • scorpion303
  • Registratie: Juni 2002
  • Niet online
Ik gebruik de communicatieprint al enkele jaren in Home Assistant via de volgende REST commands en templates. Ik heb deze ooit eens hier op tweakers gevonden en ze doen het nog prima. Om de paar dagen is de lokale API even overbelast. Ik heb echter een stuk meer sensoren (2 luchtvochtigheid, 7CO2) dan de 'normale' gebruiker.

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
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
  # ducobox rest commands
  duco_auto:
    url: http://[lokaal-ip-adres]/nodesetoperstate?node=1&value=AUTO
  duco_man1:
    url: http://[lokaal-ip-adres]/nodesetoperstate?node=1&value=MAN1
  duco_man2:
    url: http://[lokaal-ip-adres]/nodesetoperstate?node=1&value=MAN2
  duco_man3:
    url: http://[lokaal-ip-adres]/nodesetoperstate?node=1&value=MAN3
  duco_cnt1:
    url: http://[lokaal-ip-adres]/nodesetoperstate?node=1&value=CNT1
  duco_cnt2:
    url: http://[lokaal-ip-adres]/nodesetoperstate?node=1&value=CNT2
  duco_cnt3:
    url: http://[lokaal-ip-adres]/nodesetoperstate?node=1&value=CNT3
    
    
  #====================================================
  #=== REST (duco ventilation monitoring via rest-api)
  #====================================================
- platform: rest
  name: ducobox_box_info
  json_attributes:
    - Performance
  resource: http://[lokaal-ip-adres]/boxinfoget
  value_template: 'OK'
  scan_interval: 115
- platform: rest
  name: ducobox_node_box_info
  json_attributes:
    - trgt
    - actl
    - mode
    - state
  resource: http://[lokaal-ip-adres]/nodeinfoget?node=1
  value_template: 'OK'
  scan_interval: 60
- platform: rest
  name: ducobox_node_badkamer_info
  json_attributes:
    - temp
    - rh
  resource: http://[lokaal-ip-adres]/nodeinfoget?node=2
  value_template: 'OK'
  scan_interval: 116
- platform: rest
  name: ducobox_node_woonkamer_achter_info
  json_attributes:
    - temp
    - co2
  resource: http://[lokaal-ip-adres]/nodeinfoget?node=3
  value_template: 'OK'
  scan_interval: 117


    # ducobox templates
    ducobox_power_consumption:
      friendly_name: 'Ducobox stroomverbruik'
      value_template: >
        {% if state_attr('sensor.ducobox_box_info', 'Performance') != None %}
          {{ state_attr('sensor.ducobox_box_info', 'Performance')["PowerNow"] }}
        {% else %}
          {{ states('sensor.ducobox_power_consumption') }}
        {% endif %}
      device_class: power
      unit_of_measurement: "W"
    ducobox_pressure:
      friendly_name: 'Ducobox Pressure'
      value_template: >
        {% if state_attr('sensor.ducobox_box_info', 'Performance') != None %}
          {{ state_attr('sensor.ducobox_box_info', 'Performance')["PressureTotal"] }}
        {% else %}
          {{ states('sensor.ducobox_pressure') }}
        {% endif %}
      device_class: pressure
      unit_of_measurement: "Pa"
    ducobox_target:
      friendly_name: 'Ducobox Target'
      value_template: >
        {% if state_attr('sensor.ducobox_node_box_info', 'trgt') != None %}
          {{ state_attr('sensor.ducobox_node_box_info', 'trgt') }}
        {% else %}
          {{ states('sensor.ducobox_target') }}
        {% endif %}
      device_class: power_factor
      unit_of_measurement: "%"
    ducobox_actual:
      friendly_name: 'Ducobox Actual'
      value_template: >
        {% if state_attr('sensor.ducobox_node_box_info', 'actl') != None %}
          {{ state_attr('sensor.ducobox_node_box_info', 'actl') }}
        {% else %}
          {{ states('sensor.ducobox_actual') }}
        {% endif %}
      device_class: power_factor
      unit_of_measurement: "%"
    ducobox_mode:
      friendly_name: 'Ducobox Mode'
      value_template: >
        {% if state_attr('sensor.ducobox_node_box_info', 'mode') != None %}
          {{ state_attr('sensor.ducobox_node_box_info', 'mode') }}
        {% else %}
          {{ states('sensor.ducobox_mode') }}
        {% endif %}
    ducobox_state:
      friendly_name: 'Ducobox State'
      value_template: >
        {% if state_attr('sensor.ducobox_node_box_info', 'state') != None %}
          {{ state_attr('sensor.ducobox_node_box_info', 'state') }}
        {% else %}
          {{ states('sensor.ducobox_state') }}
        {% endif %}
    # op 2021-10-01 eerste test met simpelere template (thanks to TheFes @ https://gathering.tweakers.net/forum/view_message/68899472 )
    # ik kan alleen niet goed testen of deze manier ook voorkomt dat de waarde 'unavailable' wordt bij het niet beschikbaar zijn van de rest sensor.. 
    ducobox_node_badkamer_rh:
      friendly_name: 'Badkamer Humidity'
      value_template: >
        {{ state_attr('sensor.ducobox_node_badkamer_info', 'rh') | default(states('sensor.ducobox_node_badkamer_rh') | float(default=0), true) | round(1,default=0) }}
      device_class: humidity
      unit_of_measurement: "%"
    ducobox_node_badkamer_temp:
      friendly_name: 'Badkamer Temperature'
      value_template: >
        {% if state_attr('sensor.ducobox_node_badkamer_info', 'temp') != None %}
          {{ state_attr('sensor.ducobox_node_badkamer_info', 'temp') }}
        {% else %}
          {{ states('sensor.ducobox_node_badkamer_temp') }}
        {% endif %}
      device_class: temperature
      unit_of_measurement: "°C"
    ducobox_node_woonkamer_achter_temp:
      friendly_name: 'Woonkamer (achter) Temperature'
      value_template: >
        {% if state_attr('sensor.ducobox_node_woonkamer_achter_info', 'temp') != None %}
          {{ state_attr('sensor.ducobox_node_woonkamer_achter_info', 'temp') }}
        {% else %}
          {{ states('sensor.ducobox_node_woonkamer_achter_temp') }}
        {% endif %}
      device_class: temperature
      unit_of_measurement: "°C"
    ducobox_node_woonkamer_achter_co2:
      friendly_name: 'Woonkamer (achter) co2'
      value_template: >
        {% if state_attr('sensor.ducobox_node_woonkamer_achter_info', 'co2') != None %}
          {{ state_attr('sensor.ducobox_node_woonkamer_achter_info', 'co2') }}
        {% else %}
          {{ states('sensor.ducobox_node_woonkamer_achter_co2') }}
        {% endif %}
      unit_of_measurement: "ppm"

  • Wim Leers
  • Registratie: Januari 2004
  • Laatst online: 00:24
scorpion303 schreef op maandag 16 januari 2023 @ 15:56:
Om de paar dagen is de lokale API even overbelast. Ik heb echter een stuk meer sensoren (2 luchtvochtigheid, 7CO2) dan de 'normale' gebruiker.
Dat heeft waarschijnlijk meer te maken met jouw scan intervals.

Hier heb ik dat nooit; hier is er een queue van requests; de volgende update voor sensor X gaat achteraan de queue wanneer ik net een update ervoor kreeg. Resultaat: elke sensor updatet om de 4 à 5 seconden. Bij jou zou dat dan om de 10 seconden zijn want je hebt er dubbel zoveel.

Nog altijd ruim 10 keer snellere updates dan wat je nu hebt … :+

  • scorpion303
  • Registratie: Juni 2002
  • Niet online
Wim Leers schreef op dinsdag 17 januari 2023 @ 16:27:
[...]


Dat heeft waarschijnlijk meer te maken met jouw scan intervals.

Hier heb ik dat nooit; hier is er een queue van requests; de volgende update voor sensor X gaat achteraan de queue wanneer ik net een update ervoor kreeg. Resultaat: elke sensor updatet om de 4 à 5 seconden. Bij jou zou dat dan om de 10 seconden zijn want je hebt er dubbel zoveel.

Nog altijd ruim 10 keer snellere updates dan wat je nu hebt … :+
Ik heb uiteindelijk iets van 15 sensoren voor mijn Ducobox. De eerste heeft een scan interval van 115 seconden, de tweede 116 seconden, de derde 117 seconden, etc. Dit zorgt ervoor dat ze redelijk uit elkaar blijven, maar soms botsen ze toch en bevragen er 2 of 3 de API precies op hetzelfde moment. Het zou ideaal zijn om ze precies 3-4 seconden na elkaar te queuen, maar ik heb geen idee of/hoe dat kan.

  • Blihi
  • Registratie: Juni 2018
  • Laatst online: 20:04
scorpion303 schreef op woensdag 18 januari 2023 @ 21:16:
[...]

Ik heb uiteindelijk iets van 15 sensoren voor mijn Ducobox. De eerste heeft een scan interval van 115 seconden, de tweede 116 seconden, de derde 117 seconden, etc. Dit zorgt ervoor dat ze redelijk uit elkaar blijven, maar soms botsen ze toch en bevragen er 2 of 3 de API precies op hetzelfde moment. Het zou ideaal zijn om ze precies 3-4 seconden na elkaar te queuen, maar ik heb geen idee of/hoe dat kan.
Even stom gedacht hoor, maar gewoon een python scriptje maken dat ze een voor een uitleest en dat dan steeds uitvoeren? Zo lees ik de boel hier ook uit met een wachttijd van 0.2 seconde tussen de calls.

  • scorpion303
  • Registratie: Juni 2002
  • Niet online
Blihi schreef op donderdag 19 januari 2023 @ 14:14:
[...]


Even stom gedacht hoor, maar gewoon een python scriptje maken dat ze een voor een uitleest en dat dan steeds uitvoeren? Zo lees ik de boel hier ook uit met een wachttijd van 0.2 seconde tussen de calls.
Ik wil even vasthouden aan de standaard wijze waarop Home Assistant REST calls uitvoerd. Die kennen (volgens mij) alleen een afzonderlijke interval, maar geen manier waarop je ze sequencieel (met wat vertraging ertussen) kunt uitvoeren.

Ik zal nog eens verder zoeken en anders in het grote Home Assistant topic om hulp vragen.

  • Blihi
  • Registratie: Juni 2018
  • Laatst online: 20:04
scorpion303 schreef op donderdag 19 januari 2023 @ 22:29:
[...]

Ik wil even vasthouden aan de standaard wijze waarop Home Assistant REST calls uitvoerd. Die kennen (volgens mij) alleen een afzonderlijke interval, maar geen manier waarop je ze sequencieel (met wat vertraging ertussen) kunt uitvoeren.

Ik zal nog eens verder zoeken en anders in het grote Home Assistant topic om hulp vragen.
In dat geval moet je ze onderling plannen op intervallen die priemgetallen zijn. Dan heb je de minste conflicten, dus 1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 39 seconde.

  • doktervictor
  • Registratie: Maart 2007
  • Laatst online: 22:04
scorpion303 schreef op donderdag 19 januari 2023 @ 22:29:
[...]

Ik wil even vasthouden aan de standaard wijze waarop Home Assistant REST calls uitvoerd. Die kennen (volgens mij) alleen een afzonderlijke interval, maar geen manier waarop je ze sequencieel (met wat vertraging ertussen) kunt uitvoeren.

Ik zal nog eens verder zoeken en anders in het grote Home Assistant topic om hulp vragen.
Zie hier denk ik.

Ga zelf wes tegen zelfde issue aanlopen, want nog een aantal sensoren toe te voegen. Ik vind t er goed uitzien qua oplossing
Pagina: 1 ... 4 5 6 Laatste


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee