• pentode
  • Registratie: Maart 2008
  • Laatst online: 31-01 13:17
Seafarer schreef op dinsdag 4 oktober 2022 @ 13:04:
[...]

Ik vind hem goed verzonnen. :)

Alleen die schuivende beweging langs het schroefdraad van die schroeven is niet zo mooi.

Hoe breed zijn jouw roosters?
~ 60 a 65 cm. En je zou nog een glijbusje, ringetje er tussen kunnen zetten. Of siliconevet.
Nylon boutjes zou ook nog kunnen. Iets 3d printen...

[Voor 2% gewijzigd door pentode op 04-10-2022 13:09. Reden: aanvulling]

Bij een rij nullen staat één vooraan.


  • Seafarer
  • Registratie: November 2012
  • Laatst online: 17:48
pentode schreef op dinsdag 4 oktober 2022 @ 13:08:
[...]

~ 60 a 65 cm. En je zou nog een glijbusje, ringetje er tussen kunnen zetten. Of siliconevet.
Nylon boutjes zou ook nog kunnen. Iets 3d printen...
Schroeven waar op het eerste stuk geen draad zit.

Ik heb 80 breed. Ook maar eens proberen.

Een CV-Ketel is een vlamkoeler en een radiator is een waterkoeler.


  • pentode
  • Registratie: Maart 2008
  • Laatst online: 31-01 13:17
ESP(8266) 4 channel relais gebruiken voor het aansturen van de mechanische ventilatie

In een ander topic was ik @misterdaan aan het helpen met de verlichting van de garage. En deze te automatiseren met bijvoorbeeld een Shelly.

Daar gaf ik onder andere aan om een ESP relais te gebruiken als mogelijke oplossing. Misschien wat (te) ver gezocht, out of the box.
@septillion vroeg van, met behuizing en 230V, helaas dat (nog) niet.
En heb ik daar uitleg gegeven en het topic een beetje gekaapt. Wat niet netjes is. Maar dacht later ik kan het beter uitwerken en in het Home Assistant - Show je setup sub forum zetten. Dus bij deze is het hier te lezen ;-P

Bij ons in huis is een warmtepomp gecombineerd met een mechanische afzuig ventilatie geïnstalleerd. Een 'dom' ding. Geschakeld met de drie standenschakelaar in de keuken. Eventueel kan een radiografische tip toets bediening in de badkamer gehangen worden. Het draait al tien jaar probleemloos met wat kleine storingen. Een defecte ntc.

Maar ik dacht kan dat niet anders? Een paar hacktobers geleden begonnen om dit te automatiseren. Met bijvoorbeeld Home Assistant.
Hoe automatiseer je, non invasief(zonder te slopen), een driestanden schakelaar? Mechanisch bedienen, de schakelaar met een actuator hefboom. Nee. De schakelaar eruit en op die plaats een Shelly of iets dergelijks. Maar ja drie standen. Nee ook niet.

Toch maar die radiografische schakelaar. Het radiografisch verkeer met een SDR onderscheppen en zelf zo'n signaal gaan uitzenden. Er bestaan modules die dat doen. Nee.

Die grote stekker eruit trekken. En een soort van tussen snoer maken met een lasdoosje met een contra waar de originele stekker weer in gaat.

Nou, daar ben ik serieus mee bezig geweest. Ik had al een opbouw perilex (bookmark this website ;-P wandcontactdoos gekocht. Een botervlootje. Dat is een lasdoos waar op de deksel een stopcontact(wandcontactdoos) geplaatst kan worden. Een meter vijf aderig snoer. Soepel draad.
En een ESP 4 channel relais gekocht. Draadjes strippen. Adereindhulzen op de draden knijpen. In het TW forum komt deze vraag ook met regelmaat langs. Bedoel over MV perilex. Niet de kookplaat aansluiten.
Maar door omstandigheden het hele idee on hold gezet.

Een hacktober later toch de draad weer opgepakt. En mijmerde, ik heb alleen een gebruikers handleiding. Is het niet handig om de installatie of installateurs handleiding van het internet te plukken. Gedaan en doorgelezen.

En wat schetste mijn verbazing na het doorlezen van het elektrisch schema. De MV was OOK aan te sturen met 24 volt zwakstroom. HA, HA, Eureka.
Had ik al die tijd moeilijk lopen doen. RTFM ja ja daar was ik weer mooi ingestonken.

Dus een ESP 4 channel relais was alles wat ik nodig had. Met ESPHome erop geflashed. En een stukkie vier aderig zwakstroomdraad.
En een printplaatje om een micro usb stekker in te prikken. Om vervolgens de 5 volt beschikbaar te krijgen op twee contact pennetjes. Om het ESP relaisboard te voeden.

Zwakstroomdraad op de klemmenstrook in de warmtepomp aangesloten. Naar buiten het apparaat geleid voor betere ontvangst. Tis allemaal geaard metaal. Zo'n ESP heeft een kleine printplaat antenne. Dus hoe minder interferentie de beter.

Wel moet je met de instelknopjes, via het LCD instelmenu de mechanische ventilatie standenschakelaar overrulen. Allemaal gedaan.

En nu was ik 'vrij' om de MV aan te sturen met allerlei triggers, condities, helpers, timers... Smart maken. Wel moet je er voor zorgen dat je met de relais niet bijvoorbeeld stand 1 en 3 gelijktijdig inschakelt. En stand 1 is beter dan helemaal uit. Want vanaf nul/uit kost het weer aanjaagstroom. En altijd ventileren is gewoon beter. Imho.
Heel verhaal geworden, maar je kan het ook skippen. Maar het geeft wel aan dat je soms een pas op de plaats moet maken en eerst de basis, de handleiding moet doorlezen. Scheelt een hoop tijd. En zo ook hier in het forum te rade gaan. Doen.

De MV wordt nu handmatig bij wireless via HA aangestuurd door Landon display's voor koken en douchen. Via BME680, relatieve luchtvochtigheid in de badruimte. Maar zou ook bijvoorbeeld aangestuurd kunnen worden middels IAQ.
Dat nog niet gedaan. Misschien voor een volgende hacktober. Nou, meestal begint het in september al te kriebelen...

Opmerking: optisch en galvanische scheiding (aanbrengen) tussen netstroom(230V~) en de te sturen zwakstroom in is een must !!!
Let daar op bij het aanschaffen van relais of het bouwen van schakelingen. Een RIP Tweaker daar zit niemand op te wachten.

Werk veilig, ja ja.

In de video, bedoel 5 volt en de min. Niet min 5 volt.



De plaatjes:


Op het plaatje staat 12V maar ze zijn er in allerlei voltages. Ook met meer of minder relais. Misschien zelfs al met Zigbee?





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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# Relais control
# https://community.home-assistant.io/t/using-an-esp8266-dual-relay-combo-board-with-home-assistant/218757/4

sensor:
  - platform: homeassistant
    name: "Douche Natte Zooi"
    entity_id: sensor.douche_luchtvochtigheid_2

uart:
  id: relay4xuart
  baud_rate: 115200
  tx_pin: GPIO1
  rx_pin: GPIO3

switch:
  - platform: template
    name: mvrelay0
    id: mvrelay0
    icon: mdi:fan
    internal: true
    turn_on_action:
      - uart.write: [0xA0, 0x01, 0x01, 0xA2]
    turn_off_action:
      - uart.write: [0xA0, 0x01, 0x00, 0xA1]
      
  - platform: template
    name: mvrelay1
    id: mvrelay1
    icon: mdi:fan
    internal: true
    turn_on_action:
      - uart.write: [0xA0, 0x02, 0x01, 0xA3]
    turn_off_action:
      - uart.write: [0xA0, 0x02, 0x00, 0xA2]
      
  - platform: template
    name: mvrelay2
    id: mvrelay2
    icon: mdi:fan
    internal: true
    turn_on_action:
      - uart.write: [0xA0, 0x03, 0x01, 0xA4]
    turn_off_action:
      - uart.write: [0xA0, 0x03, 0x00, 0xA3]
      
  - platform: template
    name: mvrelay3
    id: mvrelay3
    icon: mdi:fan
    internal: true
    turn_on_action:
      - uart.write: [0xA0, 0x04, 0x01, 0xA5]
    turn_off_action:
      - uart.write: [0xA0, 0x04, 0x00, 0xA4]
      
# Relay 0 on relay 1,2,3 off     
  - platform: template
    name: mvpos0
    id: mvpos0
    icon: mdi:fan
    optimistic: true
    restore_state: true
    turn_on_action:
      - then:
        - switch.turn_off: mvrelay3
        - delay: 250ms
        - switch.turn_off: mvrelay2
        - delay: 250ms
        - switch.turn_off: mvrelay1
        - delay: 250ms
        - switch.turn_on: mvrelay0
        - switch.template.publish:
            id: mvpos0
            state: ON
        - switch.template.publish:
            id: mvpos1
            state: OFF
        - switch.template.publish:
            id: mvpos2
            state: OFF
        - switch.template.publish:
            id: mvpos2
            state: OFF
      
# Relay 1 on  relay 0,2,3 off      
  - platform: template
    name: mvpos1
    id: mvpos1
    icon: mdi:fan
    optimistic: true
    restore_state: true
    turn_on_action:
      - then:
        - switch.turn_off: mvrelay3
        - delay: 250ms
        - switch.turn_off: mvrelay2
        - delay: 250ms
        - switch.turn_off: mvrelay0
        - delay: 250ms
        - switch.turn_on: mvrelay1
        - switch.template.publish:
            id: mvpos1
            state: ON
        - switch.template.publish:
            id: mvpos0
            state: OFF
        - switch.template.publish:
            id: mvpos2
            state: OFF
        - switch.template.publish:
            id: mvpos3
            state: OFF
      
# Relay 2 on  relay 0,1,3 off
  - platform: template
    name: mvpos2
    id: mvpos2
    icon: mdi:fan
    optimistic: true
    restore_state: true
    turn_on_action:
      - then:
        - switch.turn_off: mvrelay3
        - delay: 250ms
        - switch.turn_off: mvrelay1
        - delay: 250ms
        - switch.turn_off: mvrelay0
        - delay: 250ms
        - switch.turn_on: mvrelay2
        - switch.template.publish:
            id: mvpos2
            state: ON
        - switch.template.publish:
            id: mvpos0
            state: OFF
        - switch.template.publish:
            id: mvpos1
            state: OFF
        - switch.template.publish:
            id: mvpos3
            state: OFF
      
# Relay 3 on  relay 0,1,2 off   
  - platform: template
    name: mvpos3
    id: mvpos3
    icon: mdi:fan
    optimistic: true
    restore_state: true
    turn_on_action:
      - then:
        - switch.turn_off: mvrelay0
        - delay: 250ms
        - switch.turn_off: mvrelay1
        - delay: 250ms
        - switch.turn_off: mvrelay2
        - delay: 250ms
        - switch.turn_on: mvrelay3
        - switch.template.publish:
            id: mvpos3
            state: ON
        - switch.template.publish:
            id: mvpos0
            state: OFF
        - switch.template.publish:
            id: mvpos1
            state: OFF
        - switch.template.publish:
            id: mvpos2
            state: OFF

[Voor 105% gewijzigd door pentode op 08-10-2022 12:11. Reden: andere warmtepomp url]

Bij een rij nullen staat één vooraan.


  • superduper1969
  • Registratie: December 2005
  • Laatst online: 31-01 18:22
Ik ben met wat informatie van dit topic aan de gang gegaan en gecombineerd.
Ik gebruik de data van de Nordpool integratie in Home Assistant om de huidige energieprijs van energieleveranciers als Next-Energy, Frank Energy en ANWB Energy te plotten in een grafiek (net zoals bij de apps) en dit om te zetten naar een indicator lamp.
Ik heb gekozen voor de volgende kleuren:
Rood = Duurder dan gemiddeld
Geel = Gemiddeld
Groen = Goedkoper dan gemiddeld
Wit = Gratis (0 Cent)
Paars = Geld toe, dit kan voorkomen op piekmomenten met veel aanbod zoals 12:00 in de zomer.

Ik heb voor mijn situatie een 3D geprinte voet gemaakt met een simpel ledstripje met Wled maar het effect kan natuurlijk met alle lampen die je een kleurtje kan geven. https://kno.wled.ge/

Ik gebruik de data van de Nordpool integratie, Nordpool is de site waarbij alle actuele variabele energietarieven worden getoond. NL staat in de laatste kolom. https://www.nordpoolgroup.com/en/Market-data1/#/nordic/table

De Nordpool integratie staat in HACS > Integrations
Zoals gebruikelijk in HACS moet je herstarten en daarna staat Nordpool gereed om toe te voegen als nieuwe integratie.


Dan gebruik ik de apexcharts-card integratie om dit mooi in in een grafiekje weer te geven in home assistant.
De apexcharts integratie staat in HACS > Frontend
Na een herstart kun je bij je dashboards een nieuw apexcharts-card toevoegen.



YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
type: custom:apexcharts-card
graph_span: 24h
header:
  title: Stroomprijzen Vandaag
  show: true
span:
  start: day
now:
  show: true
  label: Huidig
series:
  - entity: sensor.nordpool_kwh_nl_eur_3_10_021
    type: column
    data_generator: |
      return entity.attributes.raw_today.map((start, index) => {
        return [new Date(start["start"]).getTime(), entity.attributes.raw_today[index]["value"]];
      });


En voor de volgende dag:
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
type: custom:apexcharts-card
graph_span: 1d
header:
  title: Stroomprijs Morgen
  show: true
span:
  start: day
  offset: +1d
series:
  - entity: sensor.nordpool_kwh_nl_eur_3_10_021
    type: column
    data_generator: |
      return entity.attributes.raw_tomorrow.map((start, index) => {
        return [new Date(start["start"]).getTime(), entity.attributes.raw_tomorrow[index]["value"]];
      });


Het resultaat ziet er dan zo uit:


De data van Nordpool is ook op deze manier zichtbaar:


Dit weer gecombineerd met Template om een sensor te maken die simpel berekend welke waarde de huidige prijs moet krijgen.
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#### Energieprijs ####
- platform: template
  sensors:
    energie_prijs:
      friendly_name: Energie Prijs
      value_template: "{% if states ('sensor.nordpool_kwh_nl_eur_3_10_021') | float < '0'|float %}
      Terugleveren
      {% elif states ('sensor.nordpool_kwh_nl_eur_3_10_021') | float == '0'|float %}
      Gratis
      {% elif states ('sensor.nordpool_kwh_nl_eur_3_10_021') | float < state_attr('sensor.nordpool_kwh_nl_eur_3_10_021','average') %}
      Goedkoop
      {% elif states ('sensor.nordpool_kwh_nl_eur_3_10_021') | float == state_attr('sensor.nordpool_kwh_nl_eur_3_10_021','average') %}
      Gemiddeld
      {% else %}
      Duur
      {% endif %}"


Alle aanpassingen in de Yaml files doe ik tegenwoordig met: https://community.home-as...visual-studio-code/107863


Wat Scenes om aan te geven hoe fel en in welke kleur de lamp moet branden.


En wat automations om de Scenes te triggeren.


Misschien niet de de kortste route maar het werkt voor mij!

Graag code tags gebruiken. En prima voorbeeld voor in Home Assistant - Show je setup => verplaatst

[Voor 33% gewijzigd door septillion op 26-10-2022 20:02]


  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 17:08


Ik had nog een IKEA Tradfri remote over, maar ik kan er natuurlijk ook twee shortcut knoppen van maken :*)

Dat mag je best showen :) => verplaatst

[Voor 5% gewijzigd door septillion op 26-10-2022 18:15]

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


  • alesandro_46
  • Registratie: Januari 2012
  • Laatst online: 19:21
Hiervoor hebben we topic reports :)

[Voor 93% gewijzigd door septillion op 28-10-2022 11:47]

Deze ruimte is bewust leeg gelaten


  • barrymossel
  • Registratie: Juni 2003
  • Laatst online: 18:39
TheFes schreef op maandag 2 mei 2022 @ 15:10:
Ben de afgelopen dagen bezig geweest een Mobile Dashboard te maken met Mushroom card.

Startscherm:
[Afbeelding]
  • Bovenin een beetje algemene data. De menuknop opent de sidebar, weer linkt naar een weer-view, energie verbruik naar het energy dashboard
  • Daaronder de locatie van mijzelf en mijn vriendin, en wat snelkoppelingen (versturen TTS, en cameras kinderkamer), de huis-modus en het aantal pending updates
  • Dan een welkomsgroet en eventuele mededelingen
  • Daaronder per kamer een aparte groepstegel, met wat quick toggles.
Klikken op de room-tile opent een view met de kamer, met de relevante entities:
[Afbeelding]

Voor andere knoppen, bijvoorbeeld de TTS knop, heb ik geen view, maar een popup via browser-mod:
[Afbeelding]

De code is hier te vinden (onderverdeeld in views / cards / roomcards (dat zijn de groepstegels).
Heb je voor mij de yaml van die mushroom cards voor de slaapkamers? Zoiets wil ik ook voor de kamers van mijn dochters, maar de github van de mushroom card gaat door de VPN van werk kapot (afbeeldingen worden o.a. geblokkeerd).
barrymossel schreef op donderdag 10 november 2022 @ 10:37:
[...]

Heb je voor mij de yaml van die mushroom cards voor de slaapkamers? Zoiets wil ik ook voor de kamers van mijn dochters, maar de github van de mushroom card gaat door de VPN van werk kapot (afbeeldingen worden o.a. geblokkeerd).
Bedoel je dan die op het startscherm?
Die heb ik roomcards genoemd, en staan hier:
https://github.com/TheFes/HA-configuration

Dit is 'm van de slaapkamer
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
type: custom:vertical-stack-in-card
cards:
  - type: custom:mushroom-template-card
    primary: Slaapkamer
    icon: mdi:bed-double
    icon_color: blue
    layout: horizontal
    secondary: >-
      {{ states('sensor.slaapkamer_temp') ~ '°C' if states('sensor.slaapkamer_temp') | is_number }}
    tap_action:
      action: navigate
      navigation_path: slaapkamer
  - type: custom:vertical-stack-in-card
    horizontal: true
    cards:
      - type: custom:mushroom-template-card
        entity: light.groep_slaapkamer
        layout: vertical
        icon: >-
          {% if is_state(entity, 'on') %}
            mdi:lightbulb-group
          {% else %}
            mdi:lightbulb-group-off
          {% endif %}
        icon_color: >-
          {% if is_state(entity, 'on') %}
            yellow
          {% endif %}
      - type: custom:mushroom-template-card
        entity: cover.slaapkamer
        layout: vertical
        badge_icon: "{{ 'mdi:alert' if is_state('cover.slaapkamer', 'unavailable')}}"
        badge_color: red
        icon: "{{ state_attr('cover.slaapkamer', 'icon') }}"
        icon_color: >-
          {% if states('cover.slaapkamer') in [ 'opening', 'closing' ] %}
            green
          {% elif is_state_attr('cover.slaapkamer', 'current_position', 0) %}
            yellow
          {% elif state_attr('cover.slaapkamer', 'current_position') | int(100) < 100 %}
            orange
          {% endif %}
      - type: custom:mushroom-template-card
        entity: vacuum.rockrobo_vacuum_v1
        layout: vertical
        icon: mdi:robot-vacuum
        icon_color: >-
          {% if is_state('vacuum.rockrobo_vacuum_v1', 'cleaning') %}
            yellow
          {% elif is_state('vacuum.rockrobo_vacuum_v1', 'error') %}
            red
          {% endif %}
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Stofzuiger
              content:
                type: custom:xiaomi-vacuum-map-card
                entity: vacuum.rockrobo_vacuum_v1
                map_source:
                  camera: camera.xiaomi_cloud_map_extractor
                calibration_source:
                  camera: true
                map_modes:
                  - template: vacuum_clean_zone
                  - template: vacuum_goto
                  - template: vacuum_clean_zone_predefined
                    predefined_selections:
                      - zones: [[24145, 22380, 28925, 25965]] # Slaapkamer
                      - zones: [[28906, 22304, 32795, 25946]] # Pepijn
                      - zones: [[30196, 20180, 32814, 22304]] # Floris
                      - zones: [[27104, 20217, 30234, 22380]] # Hal
                      - zones: [[24012, 20199, 27161, 22418]] # Badkamer
      - type: conditional
        conditions:
          - entity: media_player.slaapkamer_hub
            state_not: "off"
          - entity: media_player.slaapkamer_hub
            state_not: "idle"
        card:
          type: custom:mushroom-template-card
          layout: vertical
          entity: media_player.slaapkamer_hub
          icon: mdi:cast
          icon_color: >-
            {% if is_state('media_player.slaapkamer_hub', 'playing') %}
              yellow
            {% elif is_state('media_player.slaapkamer_hub', 'unavailable') %}
              red
            {% endif %}

Home Assistant configuratie


  • barrymossel
  • Registratie: Juni 2003
  • Laatst online: 18:39
TheFes schreef op donderdag 10 november 2022 @ 10:54:
[...]


Bedoel je dan die op het startscherm?
Die heb ik roomcards genoemd, en staan hier:
https://github.com/TheFes/HA-configuration

Dit is 'm van de slaapkamer
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
type: custom:vertical-stack-in-card
cards:
  - type: custom:mushroom-template-card
    primary: Slaapkamer
    icon: mdi:bed-double
    icon_color: blue
    layout: horizontal
    secondary: >-
      {{ states('sensor.slaapkamer_temp') ~ '°C' if states('sensor.slaapkamer_temp') | is_number }}
    tap_action:
      action: navigate
      navigation_path: slaapkamer
  - type: custom:vertical-stack-in-card
    horizontal: true
    cards:
      - type: custom:mushroom-template-card
        entity: light.groep_slaapkamer
        layout: vertical
        icon: >-
          {% if is_state(entity, 'on') %}
            mdi:lightbulb-group
          {% else %}
            mdi:lightbulb-group-off
          {% endif %}
        icon_color: >-
          {% if is_state(entity, 'on') %}
            yellow
          {% endif %}
      - type: custom:mushroom-template-card
        entity: cover.slaapkamer
        layout: vertical
        badge_icon: "{{ 'mdi:alert' if is_state('cover.slaapkamer', 'unavailable')}}"
        badge_color: red
        icon: "{{ state_attr('cover.slaapkamer', 'icon') }}"
        icon_color: >-
          {% if states('cover.slaapkamer') in [ 'opening', 'closing' ] %}
            green
          {% elif is_state_attr('cover.slaapkamer', 'current_position', 0) %}
            yellow
          {% elif state_attr('cover.slaapkamer', 'current_position') | int(100) < 100 %}
            orange
          {% endif %}
      - type: custom:mushroom-template-card
        entity: vacuum.rockrobo_vacuum_v1
        layout: vertical
        icon: mdi:robot-vacuum
        icon_color: >-
          {% if is_state('vacuum.rockrobo_vacuum_v1', 'cleaning') %}
            yellow
          {% elif is_state('vacuum.rockrobo_vacuum_v1', 'error') %}
            red
          {% endif %}
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Stofzuiger
              content:
                type: custom:xiaomi-vacuum-map-card
                entity: vacuum.rockrobo_vacuum_v1
                map_source:
                  camera: camera.xiaomi_cloud_map_extractor
                calibration_source:
                  camera: true
                map_modes:
                  - template: vacuum_clean_zone
                  - template: vacuum_goto
                  - template: vacuum_clean_zone_predefined
                    predefined_selections:
                      - zones: [[24145, 22380, 28925, 25965]] # Slaapkamer
                      - zones: [[28906, 22304, 32795, 25946]] # Pepijn
                      - zones: [[30196, 20180, 32814, 22304]] # Floris
                      - zones: [[27104, 20217, 30234, 22380]] # Hal
                      - zones: [[24012, 20199, 27161, 22418]] # Badkamer
      - type: conditional
        conditions:
          - entity: media_player.slaapkamer_hub
            state_not: "off"
          - entity: media_player.slaapkamer_hub
            state_not: "idle"
        card:
          type: custom:mushroom-template-card
          layout: vertical
          entity: media_player.slaapkamer_hub
          icon: mdi:cast
          icon_color: >-
            {% if is_state('media_player.slaapkamer_hub', 'playing') %}
              yellow
            {% elif is_state('media_player.slaapkamer_hub', 'unavailable') %}
              red
            {% endif %}
Ah, je gebruikt de stack in card! Thanks!

  • Slonzo
  • Registratie: Mei 2007
  • Niet online

Slonzo

Taarsidath-an Halsaam

COP 20 tot 40 in je grafiek? Die warmtepomp wil ik ook... :P
Slonzo schreef op maandag 28 november 2022 @ 14:30:
[...]

COP 20 tot 40 in je grafiek? Die warmtepomp wil ik ook... :P
Snap ik :D

Niets geks aan de code:
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
      - name: "COP with cooling"
        unit_of_measurement: "COP"
        state_class: measurement
        state: >-
          {% if
            state_attr('sensor.althermasensors','Operation Mode') in ('Heating', 'Cooling')
            and state_attr('sensor.althermasensors','Freeze Protection') == 'OFF'
            and state_attr('sensor.althermasensors','INV primary current (A)')  | float != 0
          %} 
          {{ 
            (
              (
                state_attr('sensor.althermasensors','Flow sensor (l/min)') | float
                * 0.06
                * 1.16
                *
                  (
                    state_attr('sensor.althermasensors','Leaving water temp. before BUH (R1T)') | float
                    - state_attr('sensor.althermasensors','Inlet water temp.(R4T)') | float
                  )
              )
              /
              (
                state_attr('sensor.althermasensors','INV primary current (A)') | float
                * 230 | float
                / 1000
              )
            )
            | round(2)
            | abs
          }}
          {% else %} unknown {% endif %}

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


  • sailor_dg
  • Registratie: Januari 2019
  • Laatst online: 01-02 15:47
nice - hoe werk jij die COP per dag uit (rechtsonderin)? Maw hoe haal jij de productie uit de WP, of bereken je een integraal?
sailor_dg schreef op maandag 28 november 2022 @ 16:04:
[...]


nice - hoe werk jij die COP per dag uit (rechtsonderin)? Maw hoe haal jij de productie uit de WP, of bereken je een integraal?
Rechts onder? Links bedoel je? Dat is de mini-graph kaart die je via HACS kan downloaden.

Om de COP te berekenen gebruik ik het script wat boven je post staat. Ik filter de 0 waarde er uit naar ‘unknown’ omdat hij anders de 0 waardes in het gemiddelde gaat mee nemen.

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


  • sailor_dg
  • Registratie: Januari 2019
  • Laatst online: 01-02 15:47
Toppe schreef op maandag 28 november 2022 @ 16:20:
[...]


Rechts onder? Links bedoel je? Dat is de mini-graph kaart die je via HACS kan downloaden.

Om de COP te berekenen gebruik ik het script wat boven je post staat. Ik filter de 0 waarde er uit naar ‘unknown’ omdat hij anders de 0 waardes in het gemiddelde gaat mee nemen.
tnx, was niet helemaal wakker :)

  • ngommers
  • Registratie: November 2005
  • Laatst online: 18:48
Ziet er super mooi uit, zou je meer van jouw HA setup willen delen (Ik heb wat pagina's terug gekeken maar kon het niet vinden).

  • kepler
  • Registratie: Maart 2002
  • Laatst online: 15:40
Ik denk dat je voor de altherma 3 die esphome oplossing gebruikt? Of via de Daikin api?

Renault Zoe R210 Intens (22kWh)

kepler schreef op maandag 28 november 2022 @ 20:26:
[...]

Ik denk dat je voor de altherma 3 die esphome oplossing gebruikt? Of via de Daikin api?
ESPAltherma inderdaad :)

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!

ngommers schreef op maandag 28 november 2022 @ 19:54:
[...]

Ziet er super mooi uit, zou je meer van jouw HA setup willen delen (Ik heb wat pagina's terug gekeken maar kon het niet vinden).
Doe ik morgen!

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


  • B-Force
  • Registratie: Mei 2000
  • Laatst online: 01-02 17:53
(jarig!)
welke cards/layout gebruik je om in het midden bredere kaarten te krijgen dan aan de zijkant? ik zoek zelf namelijk nog naar een goede manier om dit te doen :) nu werk ik met horizontal- en vertical stack kaarten, maar dat lukt nog niet zoals ik wil...

  • UniPer
  • Registratie: April 2003
  • Laatst online: 26-01 13:56
B-Force schreef op dinsdag 29 november 2022 @ 09:13:
[...]
welke cards/layout gebruik je om in het midden bredere kaarten te krijgen dan aan de zijkant? ik zoek zelf namelijk nog naar een goede manier om dit te doen :) nu werk ik met horizontal- en vertical stack kaarten, maar dat lukt nog niet zoals ik wil...
Not sure of hij deze kaart gebruikt, maar dit is in ieder geval een manier waarop je dat kunt bereiken:
https://github.com/thomasloven/lovelace-layout-card

Do not argue with an idiot. He will drag you down to his level and beat you with experience.

Dit is een showcase topic, misschien beter het gesprek voortzetten in het discussietopic: Home Assistant: Open source Python3 home automation - deel 4

ZZP'er en kijken of MoneyMonk iets voor jou is? DM me voor 50% korting in het eerste jaar (en ik 'n cadeaubon)!


  • Koffie
  • Registratie: Augustus 2000
  • Laatst online: 01-02 20:49

Koffie

Koffiebierbrouwer

Braaimeneer

Dit kan wellicht ook beter in het andere topic :)

[Voor 99% gewijzigd door Koffie op 29-11-2022 11:00]

Zwembad - Braaihok - YouTube - BraaiTV - TBNT


  • f.welvering
  • Registratie: Oktober 2009
  • Laatst online: 17:16
Wat voor waterontharder heb jij? Mijne krijg ik niet zo mooi uitgelezen

Wan ip adres weten? https://mijnips.eu

f.welvering schreef op dinsdag 29 november 2022 @ 19:04:
[...]


Wat voor waterontharder heb jij? Mijne krijg ik niet zo mooi uitgelezen
ESP met een losse hoogte meter :)

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


  • pentode
  • Registratie: Maart 2008
  • Laatst online: 31-01 13:17
@Toppe Mooi warmtepomp staatje, goed bezig. Zou ik ook wel willen.

Hier in huis hangt al een > decennia lang de Ecolution Combi 50. Daar komt helaas weinig data uit. Wel warmte ;-P Er is een topic om via usb serieel data eruit te halen. Nog niet een (hacktober) poging hier aan gewaagd.

Update: een week geleden een bme680 eraan gekoppeld.
Door 1 relais van het ESP(8266) 4 channel relais board (show je setup tijdje terug) te gebruiken als virtuele thermostaat.
En niet meer via de temperatuur sensor in het ventilatie kanaal. De draden liepen toch al naar binnen vanaf het relaisbord.

Nu via Home Assistant Climate de boel aansturen. Ff aankijken hoe dat gaat. ESPHome heeft ook een thermostat climate controller mogelijkheid. Moet daar nog een keuze in maken.

Bij een rij nullen staat één vooraan.


  • paQ
  • Registratie: Augustus 2001
  • Nu online
Mijn "nerd-paneel" zoals mijn vrouw het noemt is ook af (vind ik)


Nog paar kleine dingetjes tweaken. In leesbaarheid en/of kleur, maar verder doet het prima wart ik wil :)

  • Pikkemans
  • Registratie: September 2004
  • Laatst online: 31-01 16:17
Hierbij ook maar eens mijn main dashboard delen. Het Dashboard is wel geoptimaliseerd voor mobiel dus in een desktop browser staan de tegels wat door elkaar.



Ik maak gebruik van de Mushroom Cards en Apexchart addons.
paQ schreef op woensdag 30 november 2022 @ 23:05:
Mijn "nerd-paneel" zoals mijn vrouw het noemt is ook af (vind ik)
[Afbeelding]

Nog paar kleine dingetjes tweaken. In leesbaarheid en/of kleur, maar verder doet het prima wart ik wil :)


@paQ en ik doen vooral ervaring bij elkaar op en vinden samen dingen uit :D

[Voor 5% gewijzigd door Toppe op 02-12-2022 14:25]

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!

Mogelijkheid tot zoemen in de grafiekjes toegevoegd


Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


  • pentode
  • Registratie: Maart 2008
  • Laatst online: 31-01 13:17
Note to self @pentode
De thermostaat van de CV blijft/bleef bijna 24/7 op de 19 °C hangen? Kwam zelden lager. Toch voelde het frisjes aan.
Was wel bezig de warmtepomp wat meer in te zetten ter ondersteuning van de CV.
Die wordt nu sinds een week via een esp thermostaat aangestuurd. In plaats van een meetsensor in het ventilatiekanaal. Dan kun je is het idee nauwkeuriger regelen. En minder gas gebruiken.

En had een paar maanden terug een Landon display links strak naast de thermostaat gehangen. Waarvan het display na een paar minuten niet in gebruik uit gaat.

Toch maar even de warmtebeeld camera erbij gepakt. En.. er wordt aardig wat(t) door het display gedissipeerd. Ook in 'rust'.
En precies 19 °C in het thermo grafisch beeld. Het zal toch niet?
Had wel van CV thermostaat koudeval gehoord. Of plaatsing op een buitenmuur, Nu heb ik mogelijk de thermostaat in de watten gelegd ;-P

Het vermoeden is dat het display de CV thermostaat opwarmt of beïnvloed. Hoewel die niet warm oplicht?
Helaas zijn lucht warmte stromingen moeilijk zichtbaar te maken. Voor nu het display iets verder naar links, klein kiertje, opgehangen. Maar even aankijken zo. Later de CV met bijvoorbeeld OpenTherm regelen.






[Voor 0% gewijzigd door pentode op 15-12-2022 10:31. Reden: aanvulling]

Bij een rij nullen staat één vooraan.


  • kepler
  • Registratie: Maart 2002
  • Laatst online: 15:40
Toppe schreef op vrijdag 2 december 2022 @ 14:22:
[...]


[Afbeelding]

@paQ en ik doen vooral ervaring bij elkaar op en vinden samen dingen uit :D
en ik kopieer dadelijk gewoon jullie werk 8) ;) Net de spullen besteld voor ESPalterma

Binnenkort ben ik zover dat ik mijn setup kan showen, alhoewel ik vooral focus op automations zonder interface. Er is wel een interface maar die is alleen voor mij :P To be continued :D

Renault Zoe R210 Intens (22kWh)

kepler schreef op zaterdag 3 december 2022 @ 21:35:
[...]
en ik kopieer dadelijk gewoon jullie werk 8) ;) Net de spullen besteld voor ESPalterma

Binnenkort ben ik zover dat ik mijn setup kan showen, alhoewel ik vooral focus op automations zonder interface. Er is wel een interface maar die is alleen voor mij :P To be continued :D
Mocht je de bestanden willen, ook voor espaltherma, stuur me dan een PB, kan je hoop werk schelen :D

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


  • kepler
  • Registratie: Maart 2002
  • Laatst online: 15:40
Toppe schreef op zaterdag 3 december 2022 @ 22:10:
[...]


Mocht je de bestanden willen, ook voor espaltherma, stuur me dan een PB, kan je hoop werk schelen :D
Thanks, doe ik. Leuk project voor in de winter, eens kijken hoe zuinig we nu echt zijn

Renault Zoe R210 Intens (22kWh)

kepler schreef op zaterdag 3 december 2022 @ 22:40:
[...]

Thanks, doe ik. Leuk project voor in de winter, eens kijken hoe zuinig we nu echt zijn

LET OP!

Ik heb er twee losse berichten van moeten maken omdat ik 56000 karakters over de maximale toegestane hoeveelheid ging :+

benodigdheden: https://www.tinytronics.n...s-esp32-development-board

en 4 male-female Dupont kabeltjes

Ik ga hem toch hier even delen omdat er denk ik wel meer mensen geïnteresseerd zijn of in elk geval ideëen kunnen opdoen:
code: ALTHERMA(LT_DA_04-08KW).h
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
#include "labeldef.h"
//  This file is a definition file for the ESPAtherma.
//  uncomment each value you want to query for your installation.

LabelDef PROGMEM labelDefs[] = {
//{0x00,0,802,0,-1,"*Refrigerant type"},
//{0x00,1,996,1,-1,"Override CMD:0x00 N_INV=1"},
//{0x00,2,996,0,-1,"Override CMD:0x00 N_STD=0"},
//{0x00,3,996,2,-1,"Override CMD:0x00 N_FAN=2"},
//{0x00,4,996,2,-1,"Override CMD:0x00 N_EV=2"},
//{0x00,5,996,1,-1,"Override CMD:0x00 N_20S=1"},
//{0x00,6,996,1,-1,"Override CMD:0x00 N_CH=1"},
//{0x00,7,996,3,-1,"Override CMD:0x00 N_SV=3"},
//{0x00,0,152,1,-1,"Sensor Data Qty"},
//{0x00,1,152,1,-1,"INV compressor Qty"},
//{0x00,2,152,1,-1,"STD compressor Qty"},
//{0x00,3,152,1,-1,"Fan Data Qty"},
//{0x00,4,152,1,-1,"Expansion Valve Data Qty"},
//{0x00,5,152,1,-1,"4 Way Valve Data Qty"},
//{0x00,6,152,1,-1,"Crank Case Heater Qty"},
//{0x00,7,152,1,-1,"Solenoid valve Qty"},
//{0x00,8,152,1,-1,"Max. connectable indoor units"},
//{0x00,9,152,1,-1,"Connected Indoor Unit Qty"},
//{0x00,10,152,1,-1,"O/U MPU ID (xx)"},
//{0x00,11,152,1,-1,"O/U MPU ID (yy)"},
//{0x00,12,105,1,-1,"O/U capacity (kW)"},
{0x10,0,217,1,-1,"Operation Mode"},
{0x10,1,307,1,-1,"Thermostat ON/OFF"},
//{0x10,1,306,1,-1,"Restart standby"},
//{0x10,1,305,1,-1,"Startup Control"},
{0x10,1,304,1,-1,"Defrost Operation"},
//{0x10,1,303,1,-1,"Oil Return Operation"},
//{0x10,1,302,1,-1,"Pressure equalizing operation"},
//{0x10,1,301,1,-1,"Demand Signal"},
{0x10,1,300,1,-1,"Low noise control"},
//{0x10,4,203,1,-1,"Error type"},
//{0x10,5,204,1,-1,"Error Code"},
//{0x10,6,114,2,1,"Target Evap. Temp."},
//{0x10,8,114,2,1,"Target Cond. Temp."},
//{0x10,10,307,1,-1,"Discharge Temp. Drop"},
//{0x10,10,310,1,-1,"Discharge Temp. Protection Retry Qty"},
//{0x10,10,303,1,-1,"Comp. INV Current Drop"},
//{0x10,10,311,1,-1,"Comp. INV Current Protection Retry Qty"},
//{0x10,11,307,1,-1,"HP Drop Control"},
//{0x10,11,310,1,-1,"HP Protection Retry Qty"},
//{0x10,11,303,1,-1,"LP Drop Control"},
//{0x10,11,311,1,-1,"LP Protection Retry Qty"},
//{0x10,12,307,1,-1,"Fin Temp. Drop Control"},
//{0x10,12,310,1,-1,"Fin Temp. Protection Retry Qty"},
//{0x10,12,303,1,-1,"Other Drop Control"},
//{0x10,12,311,1,-1,"Not in use"},
//{0x11,0,215,1,-1,"O/U EEPROM (1st digit)"},
//{0x11,1,215,1,-1,"O/U EEPROM (3rd 4th digit)"},
//{0x11,2,215,1,-1,"O/U EEPROM (5th 6th digit)"},
//{0x11,3,215,1,-1,"O/U EEPROM (7th 8th digit)"},
//{0x11,4,215,1,-1,"O/U EEPROM (10th digit)"},
//{0x11,5,214,1,-1,"O/U EEPROM (11th digit)"},
//{0x00,0,995,1,-1,"NextDataGrid"},
{0x20,0,105,2,1,"Outdoor air temp.(R1T)"},
//{0x20,2,105,2,1,"O/U Heat Exch. Temp."},
{0x20,4,105,2,1,"Discharge pipe temp."},
{0x20,6,105,2,1,"Suction pipe temp."},
{0x20,8,105,2,1,"Heat exchanger mid-temp."},
//{0x20,10,105,2,1,"Liquid pipe temp.(R6T)"},
//{0x20,12,105,2,1,"Heat sink temp."},
{0x20,14,105,2,2,"Pressure sensor"},
//{0x20,14,405,2,1,"Pressure sensor(T)"},
{0x21,0,105,2,-1,"INV primary current (A)"},
{0x21,2,105,2,-1,"INV secondary current (A)"},
{0x21,4,101,2,-1,"Voltage (N-phase) (V)"},
//{0x21,6,307,1,-1,"Brine Flow Switch"},
//{0x21,6,306,1,-1,"Not in use"},
//{0x21,6,305,1,-1,"Not in use"},
//{0x21,6,304,1,-1,"Not in use"},
//{0x21,6,303,1,-1,"Not in use"},
//{0x21,6,302,1,-1,"Not in use"},
//{0x21,6,301,1,-1,"Not in use"},
//{0x21,6,300,1,-1,"Not in use"},
//{0x21,7,105,2,1,"Brine inlet temp."},
//{0x21,9,105,2,1,"Brine outlet temp."},
//{0x21,11,105,2,1,"Refrig. temp. evap. In"},
//{0x21,13,105,2,1,"Refrig. temp. evap.Out"},
//{0x21,15,105,1,-1,"Not in use"},
//{0x21,16,105,1,-1,"Not in use"},
//{0x21,17,105,1,-1,"Not in use"},
//{0x21,18,105,1,-1,"Not in use"},
//{0x00,0,995,1,-1,"NextDataGrid"},
{0x30,0,152,1,-1,"INV frequency (rps)"},
{0x30,1,152,1,-1,"INV frequency 2 (rps)"},
{0x30,0,307,1,-1,"STD Compressor 1"},
{0x30,0,306,1,-1,"STD Compressor 2"},
{0x30,0,211,1,-1,"Fan 1 (10 rpm)"},
{0x30,1,211,1,-1,"Fan 2 (step)"},
//{0x30,0,151,2,-1,"Expansion valve (pls)"},
//{0x30,2,151,2,-1,"Expansion valve 2 (pls)"},
//{0x30,4,151,2,-1,"Expansion valve 3 (pls)"},
//{0x30,6,151,2,-1,"Expansion valve 4 (pls)"},
//{0x30,8,151,2,-1,"Expansion valve 5 (pls)"},
//{0x30,0,307,1,-1,"4 Way Valve 1"},
//{0x30,0,306,1,-1,"4 Way Valve 2"},
//{0x30,0,305,1,-1,"4 Way Valve 3"},
//{0x30,0,304,1,-1,"4 Way Valve 4"},
//{0x30,0,303,1,-1,"4 Way Valve 5"},
//{0x30,0,307,1,-1,"Crank case heater 1"},
//{0x30,0,306,1,-1,"Crank case heater 2"},
//{0x30,0,305,1,-1,"Crank case heater 3"},
//{0x30,0,304,1,-1,"Crank case heater 4"},
//{0x30,0,307,1,-1,"Solenoid Valve 1"},
//{0x30,0,306,1,-1,"Solenoid Valve 2"},
//{0x30,0,305,1,-1,"Solenoid Valve 3"},
//{0x30,0,304,1,-1,"Solenoid Valve 4"},
//{0x30,0,303,1,-1,"Solenoid Valve 5"},
//{0x00,0,998,1,-1,"In-Out separator"},
//{0x60,0,304,1,-1,"Data Enable/Disable"},
//{0x60,1,152,1,-1,"Indoor Unit Address"},
{0x60,2,315,1,-1,"I/U operation mode"},
{0x60,2,303,1,-1,"Thermostat ON/OFF"},
{0x60,2,302,1,-1,"Freeze Protection"},
{0x60,2,301,1,-1,"Silent Mode"},
//{0x60,2,300,1,-1,"Freeze Protection for water piping"},
//{0x60,3,204,1,-1,"Error Code"},
//{0x60,4,152,1,-1,"Error detailed code"},
//{0x60,5,203,1,-1,"Error type"},
//{0x60,6,219,1,-1,"I/U capacity code"},
{0x60,7,105,2,1,"DHW setpoint"},
{0x60,9,105,2,1,"LW setpoint (main)"},
{0x60,11,307,1,-1,"Water flow switch"},
{0x60,11,306,1,-1,"Thermal protector (Q1L) BUH"},
{0x60,11,305,1,-1,"Thermal protector BSH"},
//{0x60,11,304,1,-1,"Benefit kWh rate power supply"},
//{0x60,11,303,1,-1,"Solar input"},
//{0x60,11,302,1,-1,"Not in use"},
//{0x60,11,301,1,-1,"Not in use"},
//{0x60,11,300,1,-1,"Bivalent Operation"},
//{0x60,12,307,1,-1,"2way valve(On:Heat_Off:Cool)"},
//{0x60,12,306,1,-1,"3way valve(On:DHW_Off:Space)"},
//{0x60,12,305,1,-1,"BSH"},
{0x60,12,304,1,-1,"BUH Step1"},
{0x60,12,303,1,-1,"BUH Step2"},
{0x60,12,302,1,-1,"BPH"},
{0x60,12,301,1,-1,"Water pump operation"},
//{0x60,12,300,1,-1,"Solar pump operation"},
//{0x60,13,152,1,-1,"Indoor Option Code"},
//{0x60,15,215,1,-1,"I/U Software ID (xx)"},
//{0x60,14,215,1,-1,"I/U Software ID (yy)"},
//{0x60,16,152,1,-1,"I/U EEPROM Ver."},
//{0x61,0,307,1,-1,"Data Enable/Disable"},
//{0x61,1,152,1,-1,"Indoor Unit Address"},
{0x61,2,105,2,1,"Leaving water temp. before BUH (R1T)"},
{0x61,4,105,2,1,"Leaving water temp. after BUH (R2T)"},
{0x61,6,105,2,1,"Refrig. Temp. liquid side (R3T)"},
{0x61,8,105,2,1,"Inlet water temp.(R4T)"},
{0x61,10,105,2,1,"DHW tank temp. (R5T)"},
{0x61,12,105,2,1,"Indoor ambient temp. (R1T)"},
{0x61,14,105,2,1,"Ext. indoor ambient sensor (R6T)"},
{0x62,0,307,1,-1,"Data Enable/Disable"},
{0x62,1,152,1,-1,"Indoor Unit Address"},
{0x62,2,307,1,-1,"Reheat ON/OFF"},
{0x62,2,306,1,-1,"Storage eco ON/OFF"},
//{0x62,2,305,1,-1,"Storage comfort ON/OFF"},
//{0x62,2,304,1,-1,"Powerful DHW Operation. ON/OFF"},
//{0x62,2,303,1,-1,"Space heating Operation ON/OFF"},
//{0x62,2,302,1,-1,"System OFF (ON:System off)"},
//{0x62,2,301,1,-1,"Not in use"},
//{0x62,2,300,1,-1,"Emergency (indoor) active/not active"},
//{0x62,3,105,2,1,"LW setpoint (add)"},
{0x62,5,105,2,1,"RT setpoint"},
{0x62,7,307,1,-1,"Add. Ext. RT Input Cool."},
{0x62,7,306,1,-1,"Add. Ext. RT Input Heat."},
{0x62,7,305,1,-1,"Main RT Cooling"},
//{0x62,7,304,1,-1,"Main RT Heating"},
//{0x62,7,303,1,-1,"Pwr consumption limit 4"},
//{0x62,7,302,1,-1,"Pwr consumption limit 3"},
//{0x62,7,301,1,-1,"Pwr consumption limit 2"},
//{0x62,7,300,1,-1,"Pwr consumption limit 1"},
//{0x62,8,307,1,-1,"None"},
//{0x62,8,306,1,-1,"Not in use"},
//{0x62,8,305,1,-1,"Not in use"},
//{0x62,8,304,1,-1,"Not in use"},
//{0x62,8,303,1,-1,"Tank preheat ON/OFF"},
{0x62,8,302,1,-1,"Circulation pump operation"},
//{0x62,8,301,1,-1,"Alarm output"},
//{0x62,8,300,1,-1,"Space H Operation output"},
{0x62,9,105,2,-1,"Flow sensor (l/min)"},
{0x62,11,105,1,2,"Water pressure"},
{0x62,12,152,1,-1,"Water pump signal (0:max-100:stop)"},
//{0x62,13,152,1,-1,"[Future] 3 way Valve Mixing 1"},
//{0x62,14,152,1,-1,"[Future] 3 way Valve Mixing 2"},
//{0x62,15,152,2,-1,"Not in use"},
//{0x63,0,307,1,-1,"Data Enable/Disable"},
//{0x63,1,152,1,-1,"Indoor Unit Address"},
//{0x63,2,215,1,-1,"I/U EEPROM (3rd digit)"},
//{0x63,3,215,1,-1,"I/U EEPROM (4th 5th digit)"},
//{0x63,4,215,1,-1,"I/U EEPROM (6th 7th digit)"},
//{0x63,5,215,1,-1,"I/U EEPROM (8th 9th digit)"},
//{0x63,6,215,1,-1,"I/U EEPROM (11th digit)"},
//{0x63,7,214,1,-1,"I/U EEPROM (12th digit)(rev.)"},
//{0x64,0,307,1,-1,"Data Enable/Disable"},
//{0x64,1,152,1,-1,"Indoor Unit Address"},
//{0x64,2,316,1,-1,"Hybrid Op. Mode"},
//{0x64,2,303,1,-1,"Boiler Operation Demand"},
//{0x64,2,302,1,-1,"Boiler DHW Demand"},
//{0x64,2,301,1,-1,"Bypass Valve Output"},
//{0x64,3,105,2,-1,"BE_COP"},
//{0x64,5,105,2,1,"Hybrid Heating Target Temp."},
//{0x64,7,105,2,1,"Boiler Heating Target Temp."},
//{0x64,9,302,1,-1,"Add pump"},
//{0x64,9,301,1,-1,"Main pump"},
//{0x64,10,105,2,1,"Mixed water temp."},
//{0x64,12,105,2,1,"2nd Domestic hot water temperature"},
{0x64,14,152,1,1,"Target delta T heating"},
{0x64,15,152,1,1,"Target delta T cooling"},
//{0x00,0,996,0,-1,"Override All Clear"},
};
Dit is de code voor HA zelf, ik heb inderdaad 2 COP sensoren aangemaakt omdat, afhankelijk van de gekozen grafiekjes, je geen 0 waardes wil hebben (bijvoorbeeld om het dag gemiddelde te berekenen). Dit is wellicht niet de beste manier, maar wel de manier waarop het werkt.
YAML: configuration.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
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
 - sensor:
      - name: "Dampleidingtemperatuur"
        state: "{{ state_attr('sensor.althermasensors','Discharge pipe temp.') }}"
        unit_of_measurement: "°C"
        state_class: measurement
      - name: "Operation mode"
        state: "{{ state_attr('sensor.althermasensors','Operation Mode') }}"
      - name: "I/O Mode"
        state: "{{ state_attr('sensor.althermasensors','I/U operation mode') }}"
      - name: "Current mode"
        state: "{% if is_state('sensor.espaltherma_thermostaat_aan_uit', 'ON') %} {{ state_attr('sensor.althermasensors','Operation Mode') }} {% else %} Uit {% endif %}"
      - name: "Booster thermal protection"
        state: "{{ state_attr('sensor.althermasensors','Thermal protector (Q1L) BUH') }}"
      - name: "Back-up thermal protection"
        state: "{{ state_attr('sensor.althermasensors','Thermal protector BSH') }}"
      - name: "Watertanktemperature"
        state: "{{ state_attr('sensor.althermasensors','DHW tank temp. (R5T)') }}"
        unit_of_measurement: "°C"
        state_class: measurement
      - name: "Flowpump"
        state: "{{ state_attr('sensor.althermasensors','Flow sensor (l/min)') }}"
        unit_of_measurement: "l/min"
        state_class: measurement
      - name: "Water flow switch"
        state: "{{ state_attr('sensor.althermasensors','Water flow switch') }}"
      - name: "Water pump operation"
        state: "{{ state_attr('sensor.althermasensors','Water pump operation') }}"
      - name: "Water pump level (original)"
        state: "{{ state_attr('sensor.althermasensors','Water pump signal (0:max-100:stop)') }}"
        unit_of_measurement: "%"
        state_class: measurement
      - name: "Water pump level"
        state: "{{ 100 - state_attr('sensor.althermasensors','Water pump signal (0:max-100:stop)') }}"
        unit_of_measurement: "%"
        state_class: measurement
      - name: "Reheat"
        state: "{{ state_attr('sensor.althermasensors','Reheat ON/OFF') }}"
      - name: "Circulation pump"
        state: "{{ state_attr('sensor.althermasensors','Circulation pump operation') }}"
      - name: "Delta T Heating"
        state: "{{ state_attr('sensor.althermasensors','Target delta T heating') }}"
        unit_of_measurement: "°C"
        state_class: measurement
      - name: "Delta T Cooling"
        state: "{{ state_attr('sensor.althermasensors','Target delta T cooling') }}"
        unit_of_measurement: "°C"
        state_class: measurement
      - name: "Outdoor temperature"
        state: "{{ state_attr('sensor.althermasensors','Outdoor air temp.(R1T)') }}"
        unit_of_measurement: "°C"
        state_class: measurement
      - name: "Thermostat"
        state: "{{ state_attr('sensor.althermasensors','Thermostat ON/OFF') }}"
      - name: "Defrost operation"
        state: "{{ state_attr('sensor.althermasensors','Defrost Operation') }}"
      - name: "Back-up heater"
        state: "{{ state_attr('sensor.althermasensors','BUH Step1') }}"
      - name: "Watertank setpoint"
        state: "{{ state_attr('sensor.althermasensors','DHW setpoint') }}"
        unit_of_measurement: "°C"
        state_class: measurement
      - name: "Room temperature setpoint"
        state: "{{ state_attr('sensor.althermasensors','RT setpoint') }}"
        unit_of_measurement: "°C"
        state_class: measurement
      - name: "Water leaving temperature"
        state: "{{ state_attr('sensor.althermasensors','Leaving water temp. before BUH (R1T)') }}"
        unit_of_measurement: "°C"
        state_class: measurement
      - name: "Water inlet temperature"
        state: "{{ state_attr('sensor.althermasensors','Inlet water temp.(R4T)') }}"
        unit_of_measurement: "°C"
        state_class: measurement
      - name: "Heat exchanger temperature"
        state: "{{ state_attr('sensor.althermasensors','Heat exchanger mid-temp.') }}"
        unit_of_measurement: "°C"
        state_class: measurement
      - name: "Refrigerator liquid temperature"
        state: "{{ state_attr('sensor.althermasensors','Refrig. Temp. liquid side (R3T)') }}"
        unit_of_measurement: "°C"
        state_class: measurement
      - name: "Water pressure"
        state: "{{ state_attr('sensor.althermasensors','Water pressure') }}"
        unit_of_measurement: "bar"
        state_class: measurement
      - name: "Leaving water setpoint"
        state: "{{ state_attr('sensor.althermasensors','LW setpoint (main)') }}"
        unit_of_measurement: "°C"
        state_class: measurement
      - name: "Roomtemperature"
        state: "{{ state_attr('sensor.althermasensors','Indoor ambient temp. (R1T)') }}"
        unit_of_measurement: "°C"
        state_class: measurement
      - name: "Inverter current"
        state: "{{ state_attr('sensor.althermasensors','INV primary current (A)') }}"
        unit_of_measurement: "A"
        state_class: measurement
      - name: "Inverter frequency"
        state: "{{ state_attr('sensor.althermasensors','INV frequency (rps)') }}"
        unit_of_measurement: "rps"
        state_class: measurement
      - name: "Voltage"
        state: "{{ state_attr('sensor.althermasensors','Voltage (N-phase) (V)') }}"
        unit_of_measurement: "V"
        state_class: measurement
      - name: "Inverter usage"
        state: "{% if is_state_attr('sensor.althermasensors', 'Thermostat ON/OFF', 'ON') %} {{ (states('sensor.inverter_current')|float * 230 | float) }} {% else %} 0 {% endif %}"
        unit_of_measurement: "W"
        state_class: measurement
      - name: "Heat yield"
        state: "{% if is_state_attr('sensor.althermasensors', 'Thermostat ON/OFF', 'ON') %} {{ (states('sensor.inverter_usage')|float * states('sensor.cop')| float)|round|int }} {% else %} 0 {% endif %}"
        unit_of_measurement: "W"
        state_class: measurement
     
      - name : "Low noise control"
        state: "{{ stae_attr('sensor.althermasensors', 'Low noise control') }}"
        state_class: measurement
      - name : "Suction pipe temperature"
        state: "{{ state_attr('sensor.althermasensors', 'Suction pipe temp.') }}"
        unit_of_measurement: "°C"
        state_class: measurement
      - name : "Inverter current secondary"
        state: "{{ state_attr('sensor.althermasensors', 'INV secondary current (A)') }}"
        unit_of_measurement: "A"
        state_class: measurement
      - name : "Druk sensor"
        state: "{{ state_attr('sensor.althermasensors', 'Pressure sensor') }}"
        state_class: measurement
      - name : "STD Compressor 1"
        state: "{{ state_attr('sensor.althermasensors', 'STD Compressor 1') }}"
        state_class: measurement 
      - name : "Vries beveiliging"
        state: "{{ state_attr('sensor.althermasensors', 'Freeze Protection') }}"
        state_class: measurement 
      - name : "Stille modus"
        state: "{{ state_attr('sensor.althermasensors', 'Silent Mode') }}"
        state_class: measurement 

      - name: "ESPAltherma last update"
        state: "{{ as_timestamp(states.sensor.althermasensors.last_updated) | timestamp_custom('%H:%M:%S',True) }}"
      - name: "COP"
        unit_of_measurement: "COP"
        state_class: measurement
        state: >-
          {% if states('sensor.thermostat') == 'OFF'  %}
          {% set cop = 0.0 | float %} 
          {% elif states('sensor.thermostat') == 'ON' 
            or states('sensor.inverter_usage') |float >90 %}
          {% set t1 = states('sensor.water_leaving_temperature') | float %}
          {% set t2 = states('sensor.water_inlet_temperature') | float %}
          {% set f = states('sensor.flowpump') | float %}
          {% set pw = states('sensor.inverter_usage') | float %}
          {% set pwg = ((t1 - t2)*f) / 60 * 4184 | float %}
          {% set cop = pwg / pw | float  %}
            {% endif %}
          {% if cop != 0.0 %}
          {{ cop | float | round(1) }}
            {% else %}
          {% endif %}
      - name: "Working COP"
        unit_of_measurement: "COP"
        state_class: measurement
        state: >-
          {% if states('sensor.thermostat') == 'OFF'  %}
          {% set cop = 0.0 | float %} 
          {% elif states('sensor.thermostat') == 'ON' 
            or states('sensor.inverter_usage') |float >90 %}
          {% set t1 = states('sensor.water_leaving_temperature') | float %}
          {% set t2 = states('sensor.water_inlet_temperature') | float %}
          {% set f = states('sensor.flowpump') | float %}
          {% set pw = states('sensor.inverter_usage') | float %}
          {% set pwg = ((t1 - t2)*f) / 60 * 4184 | float %}
          {% set cop = pwg / pw | float  %}
            {% endif %}
          {% if cop != 0.0 %}
          {{ cop | float | round(1) }}
            {% else %}
          {% endif %}

      - name: "∆T"
        unit_of_measurement: "°C"
        state_class: measurement
        state: >-
          {{ (states('sensor.water_leaving_temperature')|float - states('sensor.water_inlet_temperature') | float)|round(1) }}

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!

Hier mijn dashboard code:
YAML: lovelace
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
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
  - theme: Backend-selected
    title: Daikin Altherma 3
    layout_type: custom:masonry-layout
    layout:
      min_height: 1
      max_cols: 3
      grid-template-columns: 20% 60% 20%
      grid-template-rows: px 160px 160px
    type: custom:grid-layout
    path: wp
    badges: []
    cards:
      - type: vertical-stack
        cards:
          - color: accent
            type: tile
            entity: sensor.espaltherma_last_update
            show_entity_picture: false
            icon: mdi:clock
            name: Laatste update
          - type: entities
            entities:
              - entity: sensor.outdoor_temperature
                icon: mdi:temperature-celsius
              - entity: sensor.roomtemperature
                icon: mdi:temperature-celsius
              - entity: sensor.room_temperature_setpoint
                icon: mdi:temperature-celsius
              - entity: sensor.t
                icon: mdi:temperature-celsius
                card_mod:
                  style:
                    hui-generic-entity-row:
                      $: |
                        .text-content:not(.info) {
                          font-weight: bold;
                          color:
                          {% if states(config.entity)|int|round(0) == 0  %}
                            #ff9900
                          {% elif (states(config.entity) | int <= 2.7) and (states(config.entity) | int >= -3.5) %} 
                            #03a034 !important
                          {% elif (states(config.entity) | int > 2.7) and (states(config.entity) | int < 3.4) %}
                            #ff9900 !important
                          {% elif states(config.entity) | int >= 3.4 %}
                            #cc2900 !important
                          {% elif states(config.entity) | int < -3.5 %}
                            red
                          {% endif %}
                          ;
                        }
          - type: entities
            entities:
              - entity: sensor.heat_yield
                icon: mdi:heating-coil
              - entity: sensor.inverter_usage
                icon: mdi:lightning-bolt
          - type: glance
            entities:
              - entity: sensor.leaving_water_setpoint
              - entity: sensor.water_leaving_temperature
              - entity: sensor.water_inlet_temperature
              - entity: sensor.heat_exchanger_temperature
          - type: custom:mini-graph-card
            entities:
              - entity: sensor.cop_with_cooling
                name: Gemiddelde CoP per dag
            hours_to_show: 168
            hour24: true
            aggregate_func: avg
            group_by: date
            smoothing: false
            show:
              graph: bar
              labels: true
              state: true
              extrema: false
              show_state: true
            color_thresholds:
              - value: 1
                color: '#f39c12'
            icon: mdi:speedometer
            unit: CoP
            state_map:
              - value: unknown
                label: 0,0
      - type: vertical-stack
        cards:
          - type: history-graph
            entities:
              - entity: sensor.i_o_mode
              - entity: sensor.water_flow_switch
              - entity: sensor.thermostat
              - entity: sensor.defrost_operation
              - entity: sensor.booster_thermal_protection
              - entity: sensor.back_up_thermal_protection
              - entity: sensor.back_up_heater
          - type: custom:apexcharts-card
            experimental:
              color_threshold: true
              brush: true
            graph_span: 24h
            brush:
              selection_span: 24h
            apex_config:
              chart:
                height: 250px
            header:
              show: true
              title: COP
              show_states: true
              colorize_states: true
            series:
              - entity: sensor.cop
                show:
                  in_brush: true
                fill_raw: last
                stroke_width: 1
                color_threshold:
                  - value: -20
                    color: purple
                  - value: -10
                    color: red
                  - value: 3
                    color: '#ff9900'
                  - value: 4
                    color: '#03a034'
              - entity: sensor.cop
                show:
                  in_brush: true
                fill_raw: last
                stroke_width: 1
                color_threshold:
                  - value: -20
                    color: purple
                  - value: -10
                    color: red
                  - value: 3
                    color: '#ff9900'
                  - value: 4
                    color: '#03a034'
                group_by:
                  func: avg
                  duration: 1d
          - type: custom:apexcharts-card
            experimental:
              color_threshold: true
              brush: true
            graph_span: 24h
            brush:
              selection_span: 24h
            apex_config:
              chart:
                height: 250px
            header:
              show: true
              title: Vloerverwarming temperatuur
              show_states: true
              colorize_states: true
            series:
              - entity: sensor.water_inlet_temperature
                fill_raw: last
                stroke_width: 1
                show:
                  in_brush: true
                name: Retour
                color: blue
              - entity: sensor.water_leaving_temperature
                fill_raw: last
                stroke_width: 1
                show:
                  in_brush: true
                color: red
                name: Uitgaand
              - entity: sensor.leaving_water_setpoint
                fill_raw: last
                stroke_width: 1
                show:
                  in_brush: true
                color: purple
                name: Stooklijn
              - entity: sensor.t
                fill_raw: last
                stroke_width: 1
                show:
                  in_brush: true
                color: orange
                name: Delta
          - type: horizontal-stack
            cards:
              - type: custom:apexcharts-card
                apex_config:
                  chart:
                    height: 250px
                header:
                  show: true
                  title: Heat Yield
                  show_states: true
                  colorize_states: true
                series:
                  - entity: sensor.heat_yield
                    fill_raw: last
                    stroke_width: 1
              - type: custom:apexcharts-card
                apex_config:
                  chart:
                    height: 250px
                header:
                  show: true
                  title: Inverter verbr
                  show_states: true
                  colorize_states: true
                series:
                  - entity: sensor.inverter_usage
                    fill_raw: last
                    stroke_width: 1
          - type: horizontal-stack
            cards:
              - type: custom:apexcharts-card
                experimental:
                  color_threshold: true
                apex_config:
                  chart:
                    height: 250px
                header:
                  show: true
                  title: Tank temperatuur
                  show_states: true
                  colorize_states: true
                series:
                  - entity: sensor.watertanktemperature
                    fill_raw: last
                    stroke_width: 1
                    color_threshold:
                      - value: 50
                        color: '#03a034'
                      - value: 45
                        color: '#ff9900'
                      - value: 40
                        color: '#cc2900'
                      - value: 30
                        color: purple
              - type: custom:apexcharts-card
                experimental:
                  color_threshold: true
                apex_config:
                  chart:
                    height: 250px
                header:
                  show: true
                  title: T
                  show_states: true
                  colorize_states: true
                series:
                  - entity: sensor.t
                    fill_raw: last
                    stroke_width: 1
                    color_threshold:
                      - value: -99
                        color: red;
                      - value: -3.5
                        color: '#03a034'
                        opacity: 1
                      - value: 2.7
                        color: '#ff9900'
                      - value: 3.4
                        color: '#cc2900'
                      - value: 0
                        color: '#ff9900'
          - type: custom:apexcharts-card
            experimental:
              color_threshold: true
              brush: true
            graph_span: 1month
            apex_config:
              chart:
                height: 250px
            header:
              show: true
              title: COP
              show_states: true
              colorize_states: true
            series:
              - entity: sensor.cop_with_cooling
                type: column
                show:
                  in_brush: true
                group_by:
                  func: avg
                  duration: 1d
                color_threshold:
                  - value: -10
                    color: purple
                  - value: 0
                    color: red
                  - value: 2
                    color: orange
                  - value: 3
                    color: yellow
                  - value: 4
                    color: lightgreen
                  - value: 5
                    color: green
          - type: conditional
            conditions:
              - entity: sensor.cop
                state_not: '0'
            card:
              type: custom:apexcharts-card
              experimental:
                color_threshold: true
              graph_span: 15m
              apex_config:
                chart:
                  height: 250px
              header:
                show: true
                title: COP
                show_states: true
                colorize_states: true
              series:
                - entity: sensor.cop
                  fill_raw: last
                  stroke_width: 1
                  color_threshold:
                    - value: -20
                      color: purple
                    - value: -10
                      color: red
                    - value: 3
                      color: '#ff9900'
                    - value: 4
                      color: '#03a034'
      - type: vertical-stack
        cards:
          - type: conditional
            conditions:
              - entity: sensor.defrost_operation
                state: 'ON'
            card:
              type: markdown
              content: '## Warmtepomp staat in defrost mode.'
          - type: entities
            entities:
              - entity: sensor.watertanktemperature
                icon: mdi:water-boiler
              - entity: sensor.desinfectie
                icon: mdi:calendar
              - entity: sensor.water_tank_afgeleide
              - entity: sensor.flowpump
                icon: mdi:water-pump
              - entity: sensor.water_pump_level
                icon: mdi:waves-arrow-up
              - entity: sensor.water_flow_switch
                icon: mdi:electric-switch
              - entity: sensor.dampleidingtemperatuur
                icon: mdi:temperature-celsius
          - type: entities
            entities:
              - entity: sensor.booster_thermal_protection
                card_mod:
                  style:
                    hui-generic-entity-row:
                      $: |
                        .text-content:not(.info) {
                          font-weight: bold;
                          color:
                          {% if (states(config.entity) == "OFF") %} 
                            #03a034 !important
                          {% elif (states(config.entity) == "ON") %}
                            #ff9900
                          {% endif %}
                          ;
                        }
              - entity: sensor.back_up_thermal_protection
                card_mod:
                  style:
                    hui-generic-entity-row:
                      $: |
                        .text-content:not(.info) {
                          font-weight: bold;
                          color:
                          {% if (states(config.entity) == "OFF") %} 
                            #03a034 !important
                          {% elif (states(config.entity) == "ON") %}
                            #ff9900
                          {% endif %}
                          ;
                        }
              - entity: sensor.reheat
                icon: mdi:heat-wave
                card_mod:
                  style:
                    hui-generic-entity-row:
                      $: |
                        .text-content:not(.info) {
                          font-weight: bold;
                          color:
                          {% if (states(config.entity) == "OFF") %} 
                            #03a034 !important
                          {% elif (states(config.entity) == "ON") %}
                            #ff9900
                          {% endif %}
                          ;
                        }
              - entity: sensor.defrost_operation
                card_mod:
                  style:
                    hui-generic-entity-row:
                      $: |
                        .text-content:not(.info) {
                          font-weight: bold;
                          color:
                          {% if (states(config.entity) == "OFF") %} 
                            #03a034 !important
                          {% elif (states(config.entity) == "ON") %}
                            #ff9900
                          {% endif %}
                          ;
                        }
              - entity: sensor.thermostat
                card_mod:
                  style:
                    hui-generic-entity-row:
                      $: |
                        .text-content:not(.info) {
                          font-weight: bold;
                          color:
                          {% if (states(config.entity) == "OFF") %} 
                            #03a034 !important
                          {% elif (states(config.entity) == "ON") %}
                            #ff9900
                          {% endif %}
                          ;
                        }
              - entity: sensor.back_up_heater
                card_mod:
                  style:
                    hui-generic-entity-row:
                      $: |
                        .text-content:not(.info) {
                          font-weight: bold;
                          color:
                          {% if (states(config.entity) == "OFF") %} 
                            #03a034 !important
                          {% elif (states(config.entity) == "ON") %}
                            #ff9900
                          {% endif %}
                          ;
                        }
          - type: thermostat
            entity: climate.altherma
          - type: custom:apexcharts-card
            chart_type: donut
            apex_config:
              chart:
                height: 250px
            header:
              show: true
              title: Energieverbruik
              show_states: true
              colorize_states: true
            series:
              - entity: sensor.altherma_daily_heat_energy_consumption
              - entity: sensor.altherma_daily_heat_tank_energy_consumption
Hiervoor heb je nog wel een aantal extra's nodig:
- ApexCharts
- Lovelace Card Mod
- Lovelace Layout Card

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


  • verjager
  • Registratie: Oktober 2012
  • Niet online
Pas de Template Light integratie ontdekt.

Ik heb een Shellydimmer2 die na calibreren niet laag genoeg kan dimmen. Dus gebruik ik 'm ongecalibreerd. Alleen het effectieve bereik ligt tussen 20% en 50% in. Eronder gaat de lamp uit, erboven wordt die niet feller.

Beetje mee gepuzzeld, en het is nu mooi opgelost:

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
### Lights
light:

- platform: template
  lights:
    lamp_slaapkamer:
      unique_id: "lamp_slaapkamer"
      friendly_name: "Lamp slaapkamer"
      level_template: >
        {% if states('light.shellydimmer2_lamp_slaapkamer') in ['off', 'unavailable'] %}
          0
        {% elif state_attr('light.shellydimmer2_lamp_slaapkamer', 'brightness') <= 0.20*255 %}
          1
        {% elif state_attr('light.shellydimmer2_lamp_slaapkamer', 'brightness') >= 0.50*255 %}
          255
        {% else %}
          {{ ( (state_attr('light.shellydimmer2_lamp_slaapkamer', 'brightness') | float - 0.20*255) / (0.50-0.20) ) | round(0) }}
        {% endif %}
      value_template: "{{ states('light.shellydimmer2_lamp_slaapkamer') }}"
      turn_on:
        service: light.turn_on
        entity_id: light.shellydimmer2_lamp_slaapkamer
      turn_off:
        service: light.turn_off
        entity_id: light.shellydimmer2_lamp_slaapkamer
      set_level:
        service: light.turn_on
        data_template:
          entity_id: light.shellydimmer2_lamp_slaapkamer
          brightness: "{{ ( 0.20*255 + (0.50-0.20) * brightness | float ) | round(0) }}"


Mag je best show case'en :) => schopje

[Voor 1% gewijzigd door septillion op 08-12-2022 23:25]


  • -Nexus
  • Registratie: Februari 2002
  • Laatst online: 27-01 14:48

-Nexus

|1.25GHz G4 Powerbook|

Update: Mijn LilyGo voorzien van een 3D print (dank @Jampot007 !). Data komt uit HA, code is vergelijkbaar met deze post (niet van mij).

Ik laat nu zien: Calender voor komende twee dagen, en onderin de countdown vanuit afvalinfo.


  • g1n0
  • Registratie: Maart 2016
  • Niet online
<knip> Daarvoor hebben we de topic report

[Voor 87% gewijzigd door septillion op 15-12-2022 13:13]


  • GekkePrutser
  • Registratie: Juli 2004
  • Niet online
pentode schreef op zaterdag 3 december 2022 @ 21:26:
Het vermoeden is dat het display de CV thermostaat opwarmt of beïnvloed. Hoewel die niet warm oplicht?
Helaas zijn lucht warmte stromingen moeilijk zichtbaar te maken. Voor nu het display iets verder naar links, klein kiertje, opgehangen. Maar even aankijken zo. Later de CV met bijvoorbeeld OpenTherm regelen.
Absoluut. Ik heb jaren geleden een keer een controllerbordje gemaakt met een ESP8266 die ook handwarm werd, en ongeveer 5cm daar vandaan een temperatuursensor. Was dus een foute zet, altijd te hoog.

Die thermostaat moet gewoon vrij van warmtebronnen hangen, ik zou dat display verplaatsen. Je ziet daar ook best een beetje warmte (je kan de outline van de thermostaat zien op het warmtebeeld!)

Edit: Dit is het show topic dus ook een foto O-)


Was bedoeld destijds voor een P1 interface met nog wat andere dingetjes erop. Maar de P1 interface heb ik nooit aan de praat gekregen omdat ik geen meter had met P1 om te testen (buitenland...). Ondanks dat ik eerst met stripboard een prototype met de hand had gemaakt dat wel goed werkte...

Tegenwoordig gebruik ik de overgebleven in China gemaakte bordjes voor temperatuur meting en andere dingetjes :) In dit geval kan ik mijn niet-slimme koelkast via Home Assistant in de gaten houden. Was de bedoeling om er nog een behuizing omheen te printen maar aangezien ik geen vriendin heb die klaagt over loshangende PCB's en draadjes is het wel helemaal prima zo.

Maar die AM2302 sensor gebruik ik dus ook niet meer omdat de waarde daarvan gewoon teveel afwijkt.

[Voor 47% gewijzigd door GekkePrutser op 15-12-2022 03:02]


  • pentode
  • Registratie: Maart 2008
  • Laatst online: 31-01 13:17
-Nexus schreef op woensdag 14 december 2022 @ 15:37:
Update: Mijn LilyGo voorzien van een 3D print (dank @Jampot007 !). Data komt uit HA, code is vergelijkbaar met deze post (niet van mij).

Ik laat nu zien: Calender voor komende twee dagen, en onderin de countdown vanuit afvalinfo.

[Afbeelding]
Gebruik hetzelfde e-ink display maar dan een kwartslag gedraaid. Als weerstation.

Bij een rij nullen staat één vooraan.


  • pentode
  • Registratie: Maart 2008
  • Laatst online: 31-01 13:17
GekkePrutser schreef op donderdag 15 december 2022 @ 02:46:
[...]


Absoluut. Ik heb jaren geleden een keer een controllerbordje gemaakt met een ESP8266 die ook handwarm werd, en ongeveer 5cm daar vandaan een temperatuursensor. Was dus een foute zet, altijd te hoog.

Die thermostaat moet gewoon vrij van warmtebronnen hangen, ik zou dat display verplaatsen. Je ziet daar ook best een beetje warmte (je kan de outline van de thermostaat zien op het warmtebeeld!)

Edit: Dit is het show topic dus ook een foto O-)
[Afbeelding]

Was bedoeld destijds voor een P1 interface met nog wat andere dingetjes erop. Maar de P1 interface heb ik nooit aan de praat gekregen omdat ik geen meter had met P1 om te testen (buitenland...). Ondanks dat ik eerst met stripboard een prototype met de hand had gemaakt dat wel goed werkte...

Tegenwoordig gebruik ik de overgebleven in China gemaakte bordjes voor temperatuur meting en andere dingetjes :) In dit geval kan ik mijn niet-slimme koelkast via Home Assistant in de gaten houden. Was de bedoeling om er nog een behuizing omheen te printen maar aangezien ik geen vriendin heb die klaagt over loshangende PCB's en draadjes is het wel helemaal prima zo.

Maar die AM2302 sensor gebruik ik dus ook niet meer omdat de waarde daarvan gewoon teveel afwijkt.
En in de Remeha I-sense zit ook nog precies links onderin de temperatuur voeler. Met lichtgroene thermisch geleidende gel/potty. Nu hangt de thermostaat weer vrij. En gaat het regelen van de temperatuur een stuk beter.
Eventueel de AM2302 niet direct op de print solderen. Dat heb ik met de BME680's gedaan. Die hangen 10cm van het esp bordje vandaan. Flapping in the breeze. Hoewel de laatste dagen in the freeze ;-P

Bij een rij nullen staat één vooraan.

pentode schreef op donderdag 15 december 2022 @ 10:43:
[...]

Gebruik hetzelfde e-ink display maar dan een kwartslag gedraaid. Als weerstation.
[Afbeelding]
Heb je een boodschappen lijstje? :D

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


  • pentode
  • Registratie: Maart 2008
  • Laatst online: 31-01 13:17
Toppe schreef op zaterdag 17 december 2022 @ 11:03:
[...]


Heb je een boodschappen lijstje? :D
Verlanglijst voor onder de kerstboom:
Hardewaren:
☑ 1 x LILYGO® TTGO T5-4.7 Inch E-paper ESP32 V3 (Met een ☑18650 of ☐ Lipo batterij)
☑ 1 x 3d geprinte behuizing

Softewaren:
De/een Arduino versie gebruikt met een Open Weather APi key
En een Nederlandse vertaling gemaakt: lang_nl.h
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
#define FONT(x) x##_tf

//Temperature - Humidity - Forecast
const String TXT_TEMPERATURE_C    = "Temperatuur (°C)";
const String TXT_TEMPERATURE_F    = "Temperatuur (°F)";
const String TXT_HUMIDITY_PERCENT = "Luchtvochtigheid (%)";
const String TXT_HILO             = "Ho/La";
const String TXT_FEELSLIKE        = "GW";

// Pressure
const String TXT_PRESSURE_HPA     = "Luchtdruk (hPa)";
const String TXT_PRESSURE_IN      = "Luchtdruk (in)";

//RainFall / SnowFall
const String TXT_RAINFALL_MM = "Regen (mm)";
const String TXT_RAINFALL_IN = "Regen (in)";
const String TXT_SNOWFALL_MM = "Sneeuw (mm)";
const String TXT_SNOWFALL_IN = "Sneeuw (in)";

//Moon
const String TXT_MOON_NEW             = "Nieuwe Maan";
const String TXT_MOON_WAXING_CRESCENT = "Jonge Maansikkel";
const String TXT_MOON_FIRST_QUARTER   = "Eerste Kwartier";
const String TXT_MOON_WAXING_GIBBOUS  = "Wassende Maan";
const String TXT_MOON_FULL            = "Volle Maan";
const String TXT_MOON_WANING_GIBBOUS  = "Afnemende Maan";
const String TXT_MOON_THIRD_QUARTER   = "Laatste Kwartier";
const String TXT_MOON_WANING_CRESCENT = "Asgrauwe Maan";

//Wind
const String TXT_N   = "N";
const String TXT_NNE = "NNO";
const String TXT_NE  = "NO";
const String TXT_ENE = "ONO";
const String TXT_E   = "O";
const String TXT_ESE = "OZO";
const String TXT_SE  = "ZO";
const String TXT_SSE = "ZZO";
const String TXT_S   = "Z";
const String TXT_SSW = "ZZW";
const String TXT_SW  = "ZW";
const String TXT_WSW = "WZW";
const String TXT_W   = "W";
const String TXT_WNW = "WNW";
const String TXT_NW  = "NW";
const String TXT_NNW = "NNW";

// UV
const String TXT_UV_LOW = "(L)";
const String TXT_UV_MEDIUM = "(M)";
const String TXT_UV_HIGH = "(H)";
const String TXT_UV_VERYHIGH = "(H+)";
const String TXT_UV_EXTREME = "(H!)";

//Day of the week
const char* weekday_D[] = { "Zon", "Maa", "Din", "Woe", "Don", "Vri", "Zat" };

//Month

Bij een rij nullen staat één vooraan.


  • kepler
  • Registratie: Maart 2002
  • Laatst online: 15:40
Tijd om een keer mijn setup te plaatsen, waarbij de voornaamste focus ligt op automations. Ik doe (nog) heel weinig met dashboards en/of mobiele bediening. Ik heb wel een enigszins logisch ingedeeld dashboard, maar voornamelijk als ik data wil checken.

Ik heb het geprobeerd zo helder mogelijk op te schrijven, maar kan me voorstellen dat ik dingen niet goed heb uitgelegd of zelfs helemaal ben vergeten. Dus stel gerust vragen :D

Vooral ter inspiratie, aangezien ik die hier ook vandaan haal :)

Hardware:

  • Raspberry Pi 4 + 64 GB SSD
  • Slaesh Zigbee stick
  • Zwave Stick Aeotec 5+ (ivm Pi4)

Sensoren/switches

  • Netatmo weerstation
  • ESPhome zoutlevel sensor voor ontkalker
  • Meerdere Aqara sensoren: PIR, temp, vibration, watersensor
  • Aantal Zwave sensoren (voornamelijk PIR), merk dat die net wat stabieler is
  • Aantal Qubino dimmers/switches (Zwave) voor verlichting
  • Tradfri switches en lampen

Apparatuur (direct) geintegreerd in HA

  • Siemens Ovens
  • Miele vaatwasser
  • Bosch Droger
  • Zehnder WTW unit
  • Daikin Warmtepomp
  • Samsung The Frame
  • Brother Printer
  • Google Casts
  • Solaredge Zonnepanelen
  • Luxafles duettes

Automations

Woonkamer
Belangrijke aanpak voor de woonkamer is bepalen of de woonkamer gebruikt wordt. Dat doe ik dmv aanwezigheids boolean. Elke 10min wordt er gecheckt of de TV aanstaat (en geen ART modus heeft) en of 1 van de twee PIRS actief is. Antwoord ja? Huiskamer aanwezigheid aan. Antwoord nee? Huiskamer aanwezigheid uit.
Sfeerverlichting
  • Sfeerverlichting aan op basis van lichtsterkte buiten en huiskamer aanwezigheid
  • Sfeerverlichting uit zodra huiskamer aanwezigheid uit gaat
  • Radio uit als huiskamer aanwezigheid uit gaat, maar weer aan als aanwezigheid weer aan gaat (alleen overdag)
  • TV sfeerverlichting aan als TV aan gaat, en radio uit
Eetkamer
  • Eetkamer verlichting gaat aan/uit op basis van een PIR (en 10min buffer)
  • - Kan uitgezet worden indien nodig, nog weinig gebruikt
Duetten
  • Duettes naar beneden/omhoog op basis van lichtsterkte buiten
  • - Indien de zon op een bepaalde stand staat op een bepaalde tijd, de duette bij de eettafel half (anders zon in onze bakkes bij ontbijt) - Tuinverlichting loopt mee met de duettes
Keuken
Grootste uitdaging hier was om te bepalen wanneer er echt iemand aan het koken was. We hebben namelijk 4 lichtpunten, waarvan er twee alleen nodig zijn bij het koken. Dat heb ik opgelost door te kijken naar de staat van de ovens en de kookmodus aanzetten. Maar dat was niet genoeg, want ik wil ook zien of we de kookplaat gebruiken. Dit is een Bora-kookplaat, zonder smart-functie. Na wat geprobeer, uiteindelijk opgelost door een aqara temp-sensor in de afvoerbuis te plaatsen. Deze meet ook de druk, en zodra de afzuiging aangaat zakt de druk = kookplaat aan. it werkt de laatste weken prima! (Op basis van verschil met andere aqara sensor in de badkamer)
Licht
  • Licht op basis van PIR
  • - Wanneer koken=aan, alle verlichting aan - Fallback: Tussen 16u en 19u altijd alle verlichting aan (dan koken we het meeste en hebben ook alle licht nodig voor inruimen ed) - Soms ben je alleen aan het snijden oid en wordt de kook-modus niet actief. Dit kan aangezet worden door een knopje, via de app of wanneer je het keukenlicht via Google aanzet
Afzuiging
  • Aantal uren dat de afzuiging aanstaat wordt geteld, notificatie als 200hr gehaald is (filterwissel)
Vaatwasser
  • Vaatwasser:
  • - Instelbaar schema, elke dag starten om bepaalde tijd (melding als remote start uit staat) - Notificatie wanneer vaatwasmiddel bijna leeg is (en ook wanneer de voorraad zelf op is) - Notificatie wanneer het tijd is voor vaatwasser onderhoud
Gang
  • Notificatie wanneer deur open als beiden afwezig zijn/huiskamer afwezig (we hebben hem een keer de hele dag open laten staan... :') )
  • Notificatie wanneer deur na 2030 open gaat, dat GFT/Papier/Groen de volgende dag wordt opgehaald
  • Notificatie wanneer de deur tussen 7-8u open gaat, dat GFT/Papier/Groen die dag wordt opgehaald (minimaal 10min tussen notificaties)
  • Deurbel sensor (vibration), zet de TV op pauze als de bel gaat.
Overloop/slaapkamers
  • Looplicht onder een kastje op de overloop, op basis van PIR (erg handig in de nacht!)
  • Looplicht onder ons bed, op basis van PIR (ook erg handig in de nacht)
  • Lampen van de kinderen in de nacht op rood, om 6u oranje en om 630 groen (slaap stoplicht)
Ventilatie
Badkamers
  • Afzuiging badkamers gaat aan op basis van sprong in vochtigheid en/of >90%
  • Afzuiging badkamer gaat weer uit na een uur, of als verschil vochtigheid badkamer-gang onder bepaalde waarde zakt
  • - Dit wordt per badkamer bekeken, ze kunnen elkaar niet uitzetten - Indien afzuiging na 21u aangaat, dan maximaal 30min draaien ivm herrie
CO2
  • Als CO2 in onze slaapkamer te hoog wordt, afzuiging naar stand 2
  • - Gaat in principe weer uit als er gedoucht wordt in de ochtend, of als CO2 weer normaal is
  • Als CO2 in woonkamer te hoog is, ventilatie op max. Weer uit als CO2 normaal is
  • - Dit is in principe alleen met gasten, dus zit de badkamer logica eigenlijk nooit in de weg
Bad
  • Ik heb een boolean gemaakt voor wanneer ik in bad ga, dan gaat de afzuiging niet aan (teveel herrie als ik rustig in bad zit :D), maar gaat pas aan als ik de boolean weer uitzet
  • - De bad-modus zet ook de sfeerverlichting in de badkamer aan - Dit gaat nog handmatig, maar zit te denken om een vochtsensor in de douche te plaatsen om te bepalen of het bad aanstaat (vochtigheid = hoog, vochtsensor= uit, dan staat het bad aan)
Bypass
  • Wanneer in een warme zomer de bypass open gaat van de WTW, dan gaat de ventilatie harder draaien en maximaal als er niemand is. Dit zorgt voor extra koeling in de zomer
  • - Gelinkt met de badkamer status, zit elkaar niet in de weg
Warmtepomp:
Nog niks mee gedaan qua automations, behalve uitlezen op te optimaliseren.
Zoutlevel:
Houdt de hoogte van het zout in de ontkalker in de gaat. Stuurt een notification (met actie) zodra deze onder een bepaalde waarde komt. Wanneer ik op bijgevuld klik, dan gaat de zoutvoorraad met 1 omlaag. Ik krijg een notificatie dat ik zout moet bestellen als de zakken op zijn
Toekomst?
  • Ik ben op zoek naar een (simpele) manier om te bepalen of en welke vuilnisbak er nog op de oprit staat
  • Als we stil zitten te werken aan de eettafel gaat het licht wel eens, misschien naar mmwave?
  • Alles timen (vaatwasser, verwarming/koeling, warmwatertank, droger, etc) aan beschikbare zonne-energie
  • Meer lampen via Qubino's (gewoon geen tijd :P)
  • E-ink displays zoals hierboven

Renault Zoe R210 Intens (22kWh)


  • GAEvakYD
  • Registratie: Juni 2001
  • Laatst online: 16:48
kepler schreef op maandag 19 december 2022 @ 21:31:
Tijd om een keer mijn setup te plaatsen, waarbij de voornaamste focus ligt op automations. Ik doe (nog) heel weinig met dashboards en/of mobiele bediening. Ik heb wel een enigszins logisch ingedeeld dashboard, maar voornamelijk als ik data wil checken.

Ik heb het geprobeerd zo helder mogelijk op te schrijven, maar kan me voorstellen dat ik dingen niet goed heb uitgelegd of zelfs helemaal ben vergeten. Dus stel gerust vragen :D

Vooral ter inspiratie, aangezien ik die hier ook vandaan haal :)

Hardware:

  • Raspberry Pi 4 + 64 GB SSD
  • Slaesh Zigbee stick
  • Zwave Stick Aeotec 5+ (ivm Pi4)

Sensoren/switches

  • Netatmo weerstation
  • ESPhome zoutlevel sensor voor ontkalker
  • Meerdere Aqara sensoren: PIR, temp, vibration, watersensor
  • Aantal Zwave sensoren (voornamelijk PIR), merk dat die net wat stabieler is
  • Aantal Qubino dimmers/switches (Zwave) voor verlichting
  • Tradfri switches en lampen

Apparatuur (direct) geintegreerd in HA

  • Siemens Ovens
  • Miele vaatwasser
  • Bosch Droger
  • Zehnder WTW unit
  • Daikin Warmtepomp
  • Samsung The Frame
  • Brother Printer
  • Google Casts
  • Solaredge Zonnepanelen
  • Luxafles duettes

Automations

Woonkamer
Belangrijke aanpak voor de woonkamer is bepalen of de woonkamer gebruikt wordt. Dat doe ik dmv aanwezigheids boolean. Elke 10min wordt er gecheckt of de TV aanstaat (en geen ART modus heeft) en of 1 van de twee PIRS actief is. Antwoord ja? Huiskamer aanwezigheid aan. Antwoord nee? Huiskamer aanwezigheid uit.
Sfeerverlichting
  • Sfeerverlichting aan op basis van lichtsterkte buiten en huiskamer aanwezigheid
  • Sfeerverlichting uit zodra huiskamer aanwezigheid uit gaat
  • Radio uit als huiskamer aanwezigheid uit gaat, maar weer aan als aanwezigheid weer aan gaat (alleen overdag)
  • TV sfeerverlichting aan als TV aan gaat, en radio uit
Eetkamer
  • Eetkamer verlichting gaat aan/uit op basis van een PIR (en 10min buffer)
  • - Kan uitgezet worden indien nodig, nog weinig gebruikt
Duetten
  • Duettes naar beneden/omhoog op basis van lichtsterkte buiten
  • - Indien de zon op een bepaalde stand staat op een bepaalde tijd, de duette bij de eettafel half (anders zon in onze bakkes bij ontbijt) - Tuinverlichting loopt mee met de duettes
Keuken
Grootste uitdaging hier was om te bepalen wanneer er echt iemand aan het koken was. We hebben namelijk 4 lichtpunten, waarvan er twee alleen nodig zijn bij het koken. Dat heb ik opgelost door te kijken naar de staat van de ovens en de kookmodus aanzetten. Maar dat was niet genoeg, want ik wil ook zien of we de kookplaat gebruiken. Dit is een Bora-kookplaat, zonder smart-functie. Na wat geprobeer, uiteindelijk opgelost door een aqara temp-sensor in de afvoerbuis te plaatsen. Deze meet ook de druk, en zodra de afzuiging aangaat zakt de druk = kookplaat aan. it werkt de laatste weken prima! (Op basis van verschil met andere aqara sensor in de badkamer)
Licht
  • Licht op basis van PIR
  • - Wanneer koken=aan, alle verlichting aan - Fallback: Tussen 16u en 19u altijd alle verlichting aan (dan koken we het meeste en hebben ook alle licht nodig voor inruimen ed) - Soms ben je alleen aan het snijden oid en wordt de kook-modus niet actief. Dit kan aangezet worden door een knopje, via de app of wanneer je het keukenlicht via Google aanzet
Afzuiging
  • Aantal uren dat de afzuiging aanstaat wordt geteld, notificatie als 200hr gehaald is (filterwissel)
Vaatwasser
  • Vaatwasser:
  • - Instelbaar schema, elke dag starten om bepaalde tijd (melding als remote start uit staat) - Notificatie wanneer vaatwasmiddel bijna leeg is (en ook wanneer de voorraad zelf op is) - Notificatie wanneer het tijd is voor vaatwasser onderhoud
Gang
  • Notificatie wanneer deur open als beiden afwezig zijn/huiskamer afwezig (we hebben hem een keer de hele dag open laten staan... :') )
  • Notificatie wanneer deur na 2030 open gaat, dat GFT/Papier/Groen de volgende dag wordt opgehaald
  • Notificatie wanneer de deur tussen 7-8u open gaat, dat GFT/Papier/Groen die dag wordt opgehaald (minimaal 10min tussen notificaties)
  • Deurbel sensor (vibration), zet de TV op pauze als de bel gaat.
Overloop/slaapkamers
  • Looplicht onder een kastje op de overloop, op basis van PIR (erg handig in de nacht!)
  • Looplicht onder ons bed, op basis van PIR (ook erg handig in de nacht)
  • Lampen van de kinderen in de nacht op rood, om 6u oranje en om 630 groen (slaap stoplicht)
Ventilatie
Badkamers
  • Afzuiging badkamers gaat aan op basis van sprong in vochtigheid en/of >90%
  • Afzuiging badkamer gaat weer uit na een uur, of als verschil vochtigheid badkamer-gang onder bepaalde waarde zakt
  • - Dit wordt per badkamer bekeken, ze kunnen elkaar niet uitzetten - Indien afzuiging na 21u aangaat, dan maximaal 30min draaien ivm herrie
CO2
  • Als CO2 in onze slaapkamer te hoog wordt, afzuiging naar stand 2
  • - Gaat in principe weer uit als er gedoucht wordt in de ochtend, of als CO2 weer normaal is
  • Als CO2 in woonkamer te hoog is, ventilatie op max. Weer uit als CO2 normaal is
  • - Dit is in principe alleen met gasten, dus zit de badkamer logica eigenlijk nooit in de weg
Bad
  • Ik heb een boolean gemaakt voor wanneer ik in bad ga, dan gaat de afzuiging niet aan (teveel herrie als ik rustig in bad zit :D), maar gaat pas aan als ik de boolean weer uitzet
  • - De bad-modus zet ook de sfeerverlichting in de badkamer aan - Dit gaat nog handmatig, maar zit te denken om een vochtsensor in de douche te plaatsen om te bepalen of het bad aanstaat (vochtigheid = hoog, vochtsensor= uit, dan staat het bad aan)
Bypass
  • Wanneer in een warme zomer de bypass open gaat van de WTW, dan gaat de ventilatie harder draaien en maximaal als er niemand is. Dit zorgt voor extra koeling in de zomer
  • - Gelinkt met de badkamer status, zit elkaar niet in de weg
Warmtepomp:
Nog niks mee gedaan qua automations, behalve uitlezen op te optimaliseren.
Zoutlevel:
Houdt de hoogte van het zout in de ontkalker in de gaat. Stuurt een notification (met actie) zodra deze onder een bepaalde waarde komt. Wanneer ik op bijgevuld klik, dan gaat de zoutvoorraad met 1 omlaag. Ik krijg een notificatie dat ik zout moet bestellen als de zakken op zijn
Toekomst?
  • Ik ben op zoek naar een (simpele) manier om te bepalen of en welke vuilnisbak er nog op de oprit staat
  • Als we stil zitten te werken aan de eettafel gaat het licht wel eens, misschien naar mmwave?
  • Alles timen (vaatwasser, verwarming/koeling, warmwatertank, droger, etc) aan beschikbare zonne-energie
  • Meer lampen via Qubino's (gewoon geen tijd :P)
  • E-ink displays zoals hierboven
Nice, leuke update. Dank voor het delen.

Kun je aangeven hoe je de status van je WTW bypass uitleest? Ik heb ook een Zehner WTW en stuur die met de 0-10v input. Er zit ook een 0-5v output op voor status volgens mij. Gebruik je die of wat anders?

Lekker duurzaam. Skoda Enyaq EV - First edtion, Alpha Innotec Brine warmtepomp (MSW2-6S), Totaal 12135 Wp aan Zonnepanelen geïnstalleerd.


  • kepler
  • Registratie: Maart 2002
  • Laatst online: 15:40
GAEvakYD schreef op maandag 19 december 2022 @ 22:57:
[...]


Nice, leuke update. Dank voor het delen.

Kun je aangeven hoe je de status van je WTW bypass uitleest? Ik heb ook een Zehner WTW en stuur die met de 0-10v input. Er zit ook een 0-5v output op voor status volgens mij. Gebruik je die of wat anders?
Ik heb een lan-adapter gekocht voor de Zehnder en daar is een HA integratie voor. Kan je van alles uitlezen, waaronder de bypass, en de wtw aansturen.

Renault Zoe R210 Intens (22kWh)


  • GAEvakYD
  • Registratie: Juni 2001
  • Laatst online: 16:48
kepler schreef op dinsdag 20 december 2022 @ 07:09:
[...]

Ik heb een lan-adapter gekocht voor de Zehnder en daar is een HA integratie voor. Kan je van alles uitlezen, waaronder de bypass, en de wtw aansturen.
Ah erg cool. Volgens mij werkt die niet op mijn ComfoAir E 400. Volgens mij bestaat er niet zoiets voor mijn type.

Lekker duurzaam. Skoda Enyaq EV - First edtion, Alpha Innotec Brine warmtepomp (MSW2-6S), Totaal 12135 Wp aan Zonnepanelen geïnstalleerd.


  • Lutjebroeker
  • Registratie: Juni 2009
  • Laatst online: 14:39
[b]kepler schreef op maandag 19 december 2022 @ 21:31:
Toekomst?
  • Ik ben op zoek naar een (simpele) manier om te bepalen of en welke vuilnisbak er nog op de oprit staat
  • Als we stil zitten te werken aan de eettafel gaat het licht wel eens, misschien naar mmwave?
  • Alles timen (vaatwasser, verwarming/koeling, warmwatertank, droger, etc) aan beschikbare zonne-energie
  • Meer lampen via Qubino's (gewoon geen tijd :P)
  • E-ink displays zoals hierboven
Zelf zat ik te denken om het met een vibratiesensor op te lossen. Met werken beweegt de tafel toch vaak (minmaal) dus hopelijk kan het op die manier. Heb alleen zelf (nog) geen vibratie sensor.

Wil dezelfde truc doen om iemand op de trap te detecteren, om zo niet 2 motion sensors op te moeten hangen die ook afgaan wanneer ik door de kamer loop.

[Voor 23% gewijzigd door Lutjebroeker op 20-12-2022 09:36]


  • Chaker
  • Registratie: Juni 2011
  • Laatst online: 09:26
Toekomst?
  • Ik ben op zoek naar een (simpele) manier om te bepalen of en welke vuilnisbak er nog op de oprit staat
Mss deur sensor op zigbee? 1 deel tegen de muur/ander deel op de vuilbak.
Moet je wel telkens de vuilbak exact op de juiste plaats zetten :/

  • polthemol
  • Registratie: Maart 2006
  • Laatst online: 19:02

polthemol

Moderator General Chat
Lutjebroeker schreef op dinsdag 20 december 2022 @ 09:34:
[...]


Zelf zat ik te denken om het met een vibratiesensor op te lossen. Met werken beweegt de tafel toch vaak (minmaal) dus hopelijk kan het op die manier. Heb alleen zelf (nog) geen vibratie sensor.

Wil dezelfde truc doen om iemand op de trap te detecteren, om zo niet 2 motion sensors op te moeten hangen die ook afgaan wanneer ik door de kamer loop.
Piezo element niet eleganter? Die registeren druk (weerstand verhoogt als de druk verhoogt). In feite gewoon een grote weerstand, makkelijk uit te lezen met een arduino/raspberry zero systeem. (voor de trap dan, voor een tafel is het niet altijd de meest elegante oplossing denk ik, tenzij de tafel tegen een muur staat en je zo dat ding makkelijk weg kunt werken).

[Voor 11% gewijzigd door polthemol op 20-12-2022 10:37]

Nunc purus risus, volutpat sagittis, lobortis at, dignissim sed, sapien

kepler schreef op maandag 19 december 2022 @ 21:31:
Tijd om een keer mijn setup te plaatsen, waarbij de voornaamste focus ligt op automations. Ik doe (nog) heel weinig met dashboards en/of mobiele bediening. Ik heb wel een enigszins logisch ingedeeld dashboard, maar voornamelijk als ik data wil checken.

Ik heb het geprobeerd zo helder mogelijk op te schrijven, maar kan me voorstellen dat ik dingen niet goed heb uitgelegd of zelfs helemaal ben vergeten. Dus stel gerust vragen :D

Vooral ter inspiratie, aangezien ik die hier ook vandaan haal :)

Hardware:

  • Raspberry Pi 4 + 64 GB SSD
  • Slaesh Zigbee stick
  • Zwave Stick Aeotec 5+ (ivm Pi4)

Sensoren/switches

  • Netatmo weerstation
  • ESPhome zoutlevel sensor voor ontkalker
  • Meerdere Aqara sensoren: PIR, temp, vibration, watersensor
  • Aantal Zwave sensoren (voornamelijk PIR), merk dat die net wat stabieler is
  • Aantal Qubino dimmers/switches (Zwave) voor verlichting
  • Tradfri switches en lampen

Apparatuur (direct) geintegreerd in HA

  • Siemens Ovens
  • Miele vaatwasser
  • Bosch Droger
  • Zehnder WTW unit
  • Daikin Warmtepomp
  • Samsung The Frame
  • Brother Printer
  • Google Casts
  • Solaredge Zonnepanelen
  • Luxafles duettes

Automations

Woonkamer
Belangrijke aanpak voor de woonkamer is bepalen of de woonkamer gebruikt wordt. Dat doe ik dmv aanwezigheids boolean. Elke 10min wordt er gecheckt of de TV aanstaat (en geen ART modus heeft) en of 1 van de twee PIRS actief is. Antwoord ja? Huiskamer aanwezigheid aan. Antwoord nee? Huiskamer aanwezigheid uit.
Sfeerverlichting
  • Sfeerverlichting aan op basis van lichtsterkte buiten en huiskamer aanwezigheid
  • Sfeerverlichting uit zodra huiskamer aanwezigheid uit gaat
  • Radio uit als huiskamer aanwezigheid uit gaat, maar weer aan als aanwezigheid weer aan gaat (alleen overdag)
  • TV sfeerverlichting aan als TV aan gaat, en radio uit
Eetkamer
  • Eetkamer verlichting gaat aan/uit op basis van een PIR (en 10min buffer)
  • - Kan uitgezet worden indien nodig, nog weinig gebruikt
Duetten
  • Duettes naar beneden/omhoog op basis van lichtsterkte buiten
  • - Indien de zon op een bepaalde stand staat op een bepaalde tijd, de duette bij de eettafel half (anders zon in onze bakkes bij ontbijt) - Tuinverlichting loopt mee met de duettes
Keuken
Grootste uitdaging hier was om te bepalen wanneer er echt iemand aan het koken was. We hebben namelijk 4 lichtpunten, waarvan er twee alleen nodig zijn bij het koken. Dat heb ik opgelost door te kijken naar de staat van de ovens en de kookmodus aanzetten. Maar dat was niet genoeg, want ik wil ook zien of we de kookplaat gebruiken. Dit is een Bora-kookplaat, zonder smart-functie. Na wat geprobeer, uiteindelijk opgelost door een aqara temp-sensor in de afvoerbuis te plaatsen. Deze meet ook de druk, en zodra de afzuiging aangaat zakt de druk = kookplaat aan. it werkt de laatste weken prima! (Op basis van verschil met andere aqara sensor in de badkamer)
Licht
  • Licht op basis van PIR
  • - Wanneer koken=aan, alle verlichting aan - Fallback: Tussen 16u en 19u altijd alle verlichting aan (dan koken we het meeste en hebben ook alle licht nodig voor inruimen ed) - Soms ben je alleen aan het snijden oid en wordt de kook-modus niet actief. Dit kan aangezet worden door een knopje, via de app of wanneer je het keukenlicht via Google aanzet
Afzuiging
  • Aantal uren dat de afzuiging aanstaat wordt geteld, notificatie als 200hr gehaald is (filterwissel)
Vaatwasser
  • Vaatwasser:
  • - Instelbaar schema, elke dag starten om bepaalde tijd (melding als remote start uit staat) - Notificatie wanneer vaatwasmiddel bijna leeg is (en ook wanneer de voorraad zelf op is) - Notificatie wanneer het tijd is voor vaatwasser onderhoud
Gang
  • Notificatie wanneer deur open als beiden afwezig zijn/huiskamer afwezig (we hebben hem een keer de hele dag open laten staan... :') )
  • Notificatie wanneer deur na 2030 open gaat, dat GFT/Papier/Groen de volgende dag wordt opgehaald
  • Notificatie wanneer de deur tussen 7-8u open gaat, dat GFT/Papier/Groen die dag wordt opgehaald (minimaal 10min tussen notificaties)
  • Deurbel sensor (vibration), zet de TV op pauze als de bel gaat.
Overloop/slaapkamers
  • Looplicht onder een kastje op de overloop, op basis van PIR (erg handig in de nacht!)
  • Looplicht onder ons bed, op basis van PIR (ook erg handig in de nacht)
  • Lampen van de kinderen in de nacht op rood, om 6u oranje en om 630 groen (slaap stoplicht)
Ventilatie
Badkamers
  • Afzuiging badkamers gaat aan op basis van sprong in vochtigheid en/of >90%
  • Afzuiging badkamer gaat weer uit na een uur, of als verschil vochtigheid badkamer-gang onder bepaalde waarde zakt
  • - Dit wordt per badkamer bekeken, ze kunnen elkaar niet uitzetten - Indien afzuiging na 21u aangaat, dan maximaal 30min draaien ivm herrie
CO2
  • Als CO2 in onze slaapkamer te hoog wordt, afzuiging naar stand 2
  • - Gaat in principe weer uit als er gedoucht wordt in de ochtend, of als CO2 weer normaal is
  • Als CO2 in woonkamer te hoog is, ventilatie op max. Weer uit als CO2 normaal is
  • - Dit is in principe alleen met gasten, dus zit de badkamer logica eigenlijk nooit in de weg
Bad
  • Ik heb een boolean gemaakt voor wanneer ik in bad ga, dan gaat de afzuiging niet aan (teveel herrie als ik rustig in bad zit :D), maar gaat pas aan als ik de boolean weer uitzet
  • - De bad-modus zet ook de sfeerverlichting in de badkamer aan - Dit gaat nog handmatig, maar zit te denken om een vochtsensor in de douche te plaatsen om te bepalen of het bad aanstaat (vochtigheid = hoog, vochtsensor= uit, dan staat het bad aan)
Bypass
  • Wanneer in een warme zomer de bypass open gaat van de WTW, dan gaat de ventilatie harder draaien en maximaal als er niemand is. Dit zorgt voor extra koeling in de zomer
  • - Gelinkt met de badkamer status, zit elkaar niet in de weg
Warmtepomp:
Nog niks mee gedaan qua automations, behalve uitlezen op te optimaliseren.
Zoutlevel:
Houdt de hoogte van het zout in de ontkalker in de gaat. Stuurt een notification (met actie) zodra deze onder een bepaalde waarde komt. Wanneer ik op bijgevuld klik, dan gaat de zoutvoorraad met 1 omlaag. Ik krijg een notificatie dat ik zout moet bestellen als de zakken op zijn
Toekomst?
  • Ik ben op zoek naar een (simpele) manier om te bepalen of en welke vuilnisbak er nog op de oprit staat
  • Als we stil zitten te werken aan de eettafel gaat het licht wel eens, misschien naar mmwave?
  • Alles timen (vaatwasser, verwarming/koeling, warmwatertank, droger, etc) aan beschikbare zonne-energie
  • Meer lampen via Qubino's (gewoon geen tijd :P)
  • E-ink displays zoals hierboven
Dit dit SHOW je setup, niet praat over je setup.

Doorkomen met die foto's :D

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!

Chaker schreef op dinsdag 20 december 2022 @ 10:11:
[...]


Mss deur sensor op zigbee? 1 deel tegen de muur/ander deel op de vuilbak.
Moet je wel telkens de vuilbak exact op de juiste plaats zetten :/
Beter om een TOF te gebruiken

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


  • koelkast
  • Registratie: Juni 1999
  • Niet online
Lutjebroeker schreef op dinsdag 20 december 2022 @ 09:34:
[...]


Zelf zat ik te denken om het met een vibratiesensor op te lossen. Met werken beweegt de tafel toch vaak (minmaal) dus hopelijk kan het op die manier. Heb alleen zelf (nog) geen vibratie sensor.

Wil dezelfde truc doen om iemand op de trap te detecteren, om zo niet 2 motion sensors op te moeten hangen die ook afgaan wanneer ik door de kamer loop.
Ik heb voor dit doel een pir sensor in het midden onder de eettafel geplakt (een goedkope lidl zigbee sensor). Je zit toch altijd wel één keer in de paar minuten met je benen te bewegen. Werkt voor ons prima!

  • kepler
  • Registratie: Maart 2002
  • Laatst online: 15:40
Toppe schreef op dinsdag 20 december 2022 @ 13:24:
[...]


Dit dit SHOW je setup, niet praat over je setup.

Doorkomen met die foto's :D
Hehe, dat is dus mijn punt, maar ik kan wel wat saaie fotos posten :P

@Lutjebroeker @polthemol Heb ik al geprobeerd, maar die is niet gevoelig genoeg... Als je bv alleen op je laptop zit te lezen dan werkt het niet.
mmwave met zone herkenning lijkt me de beste oplossing

@koelkast Heb ik aan gedacht, dat zou wel kunnen werken idd.

@Chaker Heb ik ook al eens getest, maar Zigbee bereik buiten is heel slecht. Ook wel een getest met het unavailable gaan van een sensor als hij op de stoep staat. Ook niet betrouwbaar. Beste oplossing lijkt me nog een (simpele) camera, met vision systeem. Die hoeft alleen maar drie kleuren te controleren die altijd op ongeveer dezelfde plek staan. Maar alhoewel het makkelijk klinkt, is dat het niet volgens mij :D

Renault Zoe R210 Intens (22kWh)

kepler schreef op dinsdag 20 december 2022 @ 16:39:
[...]

Hehe, dat is dus mijn punt, maar ik kan wel wat saaie fotos posten :P

@Lutjebroeker @polthemol Heb ik al geprobeerd, maar die is niet gevoelig genoeg... Als je bv alleen op je laptop zit te lezen dan werkt het niet.
mmwave met zone herkenning lijkt me de beste oplossing

@koelkast Heb ik aan gedacht, dat zou wel kunnen werken idd.

@Chaker Heb ik ook al eens getest, maar Zigbee bereik buiten is heel slecht. Ook wel een getest met het unavailable gaan van een sensor als hij op de stoep staat. Ook niet betrouwbaar. Beste oplossing lijkt me nog een (simpele) camera, met vision systeem. Die hoeft alleen maar drie kleuren te controleren die altijd op ongeveer dezelfde plek staan. Maar alhoewel het makkelijk klinkt, is dat het niet volgens mij :D
Ik heb hier twee mmWave sensoren in gebruik: Perfect.

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


  • kepler
  • Registratie: Maart 2002
  • Laatst online: 15:40
Toppe schreef op dinsdag 20 december 2022 @ 16:40:
[...]


Ik heb hier twee mmWave sensoren in gebruik: Perfect.
Welke? En is die net zo snel als een PIR?

Renault Zoe R210 Intens (22kWh)


  • Trasos
  • Registratie: Juli 2003
  • Niet online
kepler schreef op dinsdag 20 december 2022 @ 07:09:
[...]

Ik heb een lan-adapter gekocht voor de Zehnder en daar is een HA integratie voor. Kan je van alles uitlezen, waaronder de bypass, en de wtw aansturen.
Edit: post de vraag wel in het daarvoor bedoelde topic.

[Voor 55% gewijzigd door Trasos op 20-12-2022 18:53]


  • _Marcel_1973
  • Registratie: Maart 2015
  • Laatst online: 08:39
Pikkemans schreef op vrijdag 2 december 2022 @ 13:25:
Hierbij ook maar eens mijn main dashboard delen. Het Dashboard is wel geoptimaliseerd voor mobiel dus in een desktop browser staan de tegels wat door elkaar.

[Afbeelding]

Ik maak gebruik van de Mushroom Cards en Apexchart addons.
De graph van gas en elektriciteit, heeft u daar een linktip voor?

Refferal link voor ABRP of Tronity nodig voor 30 dagen premium? Stuur maar een PB.


  • Miyamoto
  • Registratie: Februari 2009
  • Laatst online: 18:47
_Marcel_1973 schreef op donderdag 29 december 2022 @ 22:18:
[...]


De graph van gas en elektriciteit, heeft u daar een linktip voor?
Dat is het standaard energy dashboard van HA.

  • _Marcel_1973
  • Registratie: Maart 2015
  • Laatst online: 08:39
Miyamoto schreef op vrijdag 30 december 2022 @ 07:58:
[...]

Dat is het standaard energy dashboard van HA.
Ik bedoel de grafiek met de beide energieprijzen die er naast staan. ;)

[Voor 4% gewijzigd door _Marcel_1973 op 30-12-2022 10:35. Reden: Typo]

Refferal link voor ABRP of Tronity nodig voor 30 dagen premium? Stuur maar een PB.


  • Pikkemans
  • Registratie: September 2004
  • Laatst online: 31-01 16:17
_Marcel_1973 schreef op donderdag 29 december 2022 @ 22:18:
[...]


De graph van gas en elektriciteit, heeft u daar een linktip voor?
Hier de github repo van Apexcharts die ik heb gebruikt.

Hierbij mijn yaml die ik gebruik voor de grafieken

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
type: custom:apexcharts-card
header:
  show: true
  title: Gasprijs (€/m³)
  colorize_states: true
  show_states: false
graph_span: 24h
span:
  start: day
now:
  show: true
  color: white
apex_config:
  yaxis:
    - decimals: 2
      min: 0
      max: 2
series:
  - entity: sensor.energyzero_gasprijzen
    show:
      in_header: raw
      legend_value: false
    stroke_width: 5
    float_precision: 3
    type: column
    opacity: 1
    color: '#8e031b'
    data_generator: |
      return entity.attributes.Prices.map((record, index) => {
        return [record.readingDate, record.price];
      });
  - entity: sensor.energyzero_gasprijzen
    name: Gemiddeld
    show:
      legend_value: false
    type: line
    stroke_width: 3
    float_precision: 2
    attribute: average


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
type: custom:apexcharts-card
header:
  show: true
  title: Stroomprijs (kWh)
  colorize_states: true
  show_states: false
graph_span: 24h
span:
  start: day
now:
  show: true
  color: white
apex_config:
  yaxis:
    - decimals: 2
      min: 0
series:
  - entity: sensor.energyzero_stroomprijzen
    show:
      in_header: raw
      legend_value: false
    stroke_width: 5
    float_precision: 2
    type: column
    opacity: 1
    color: '#488ec2'
    data_generator: |
      return entity.attributes.Prices.map((record, index) => {
        return [record.readingDate, record.price];
      });
  - entity: sensor.energyzero_stroomprijzen
    name: Gemiddeld
    color: '#8e031b'
    show:
      legend_value: false
    type: line
    stroke_width: 3
    float_precision: 2
    attribute: average


Ze zijn niet perfect maar geven voor mij duidelijk aan wat ik moet weten.

[Voor 0% gewijzigd door septillion op 05-01-2023 10:48]


  • _Marcel_1973
  • Registratie: Maart 2015
  • Laatst online: 08:39
Met dank @Pikkemans

Refferal link voor ABRP of Tronity nodig voor 30 dagen premium? Stuur maar een PB.


  • henkkeumus
  • Registratie: Juli 2010
  • Laatst online: 30-01 12:20
Kleine update, m'n dashboard weer compleet omgegooid (omdat ik dat leuk vind :P ).
Hevig HomeKit style geinspireerd dashboard. Zoals je kunt zien nog wat leeg, maar ga het komende weken vullen :).

Alle 4 kaarten zijn te swipen naar rechts zodat er meer entities beschikbaar komen. Dit gedaan met de swipe-card-mod van HACS.

Plannen: footer vullen met weervoorspelling (geanimeerd); eerste 3 agendapunten tonen (geanimeerd); wellicht email ook nog als het daarnaast past.

Sidebar:
- Welkomsbericht
- Datum/Tijd
- Temperatuur en verwachting
- Alle entities die aanstaan
- Twente Milieu
- Voetbalcalender (gebasseerd op Google Calendar)

Verlichting:
- Alle verlichting in huis.

Multimedia
- TV's, NAS, Muziek, Afspeelmedia

Domotica
- Automatiseringen, RPi, NAS, buttons voor scripts en automations

Media:
- Conditional kaarten, dit houd in dat wanneer bijv. Spotify speelt dit naar voren komt. Speelt er niets dan zal er een kaart te zien zijn van mijn laatst toegevoegde PLEX media.
* Spotify, plex, apple TV, youtube en Google Hub worden hierin getoond.

Klimaat:
- Beide AC's in huis te besturen, moet mijn Google Nest hier ook nog even inzetten :)

Thuis:
- Aanwezigheid, verbruik en afwezigheidsscript.





En op de telefoon...

[Voor 5% gewijzigd door henkkeumus op 04-01-2023 22:52]


Acties:
  • +16Henk 'm!

  • GENETX
  • Registratie: Juni 2005
  • Laatst online: 18:35
Ik moet ook maar eens wat showen. Vandaag bezig geweest met een dashboard dat me laat weten wanneer ik het beste mijn witgoed kan laten draaien:



Mijn apparaten kunnen per 1 uur worden opgeschoven (behalve de vaatwaser, maar die maak ik nog slimmer met een "resume after powerloss"). Aan de hand van een discrete time verbruiksprofiel van elk apparaat in 15 minuten (dat ik uit Grafana heb getrokken) kan ik dan aan de hand van de Zonneplan data bepalen wat het goedkoopste of duurzaamste moment is. Daar heb ik wat AppDaemon code voor.

Vervolgens krijg ik dan dus de starttijd (met een afgeronde delay die ik handmatig op de wasmachine en droger kan invullen) en wat andere handige statistieken :*) . De grafiek laat de prijs (Euro of CO2) per wasje zien op het moment dat ik de machine zou starten.

Eerst nog testen (momenteel staan ze actief op de koelkast en vriezer plugs om te testen of de notificaties goed werken :+ ). Wellicht dat ik de code later deel na opschonen en testen.

Edit: het lijkt er zelfs op dat Zonneplan de CO2 uitstoot voorspelling update :D

[Voor 6% gewijzigd door GENETX op 08-01-2023 22:58]

GENETX schreef op zondag 8 januari 2023 @ 21:48:
Ik moet ook maar eens wat showen. Vandaag bezig geweest met een dashboard dat me laat weten wanneer ik het beste mijn witgoed kan laten draaien:

[Afbeelding]

Mijn apparaten kunnen per 1 uur worden opgeschoven (behalve de vaatwaser, maar die maak ik nog slimmer met een "resume after powerloss"). Aan de hand van een discrete time verbruiksprofiel van elk apparaat in 15 minuten (dat ik uit Grafana heb getrokken) kan ik dan aan de hand van de Zonneplan data bepalen wat het goedkoopste of duurzaamste moment is. Daar heb ik wat AppDaemon code voor.

Vervolgens krijg ik dan dus de starttijd (met een afgeronde delay die ik handmatig op de wasmachine en droger kan invullen) en wat andere handige statistieken :*) . De grafiek laat de prijs (Euro of CO2) per wasje zien op het moment dat ik de machine zou starten.

Eerst nog testen (momenteel staan ze actief op de koelkast en vriezer plugs om te testen of de notificaties goed werken :+ ). Wellicht dat ik de code later deel na opschonen en testen.
Nice. Heb je de code ergens online staan?

ZZP'er en kijken of MoneyMonk iets voor jou is? DM me voor 50% korting in het eerste jaar (en ik 'n cadeaubon)!


Acties:
  • +4Henk 'm!

  • GENETX
  • Registratie: Juni 2005
  • Laatst online: 18:35
Nee, ik ben nog bugs aan het wegwerken en wil nog opschonen. Dus dat komt later (wil eigenlijk mijn hele config wel eens online zetten). Dus hoop ergens de komende dagen/weken wat tijd te hebben.

Heb in een weekend alle automations weer toegevoegd die ik in mijn vorige huis al had, maar 1,5 jaar is blijven liggen :o . Maar er zijn nog wat dingetjes om weg te werken O-)

Maar ik kan wel de berekening as is delen:

Python:
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
import appdaemon.plugins.hass.hassapi as hass
import time
import datetime
from dateutil import parser
from datetime import timedelta
from datetime import timezone

class VaatwasserApp(hass.Hass): 
    def initialize(self):   
        # Config
        self.devname = "vaatwasser"
        self.timestep = 900 
        
        # Profiles in Watts
        self.profile = [200, 1704, 1139, 66, 44, 1592, 462]
    
        # Optimal scheduling
        self.run_in(self.calculate, 1)
        
        self.set_state("sensor."+self.devname+"_plan_status", state="Inactief")



    # Calculate the costs
    def calculate(self, kwargs):
        # Obtaining data
        zp = self.get_state("sensor.zonneplan_current_electricity_tariff", attribute="all")
        ts = int(time.time())
        
        # Prepopulate the result attributes dict
        result = {'forecast': []}
        
        # Now round to the next full self.timestep.
        ts = ts + (self.timestep - (ts%self.timestep))
        
        # Obtain the price and CO2 data
        energy_prices = []
        energy_co2 = []
        timestamp = ts
        
        for element in zp['attributes']['forcast']:
            timeElement = int(parser.parse(element['datetime']).timestamp())
            for i in range(0, int(3600/self.timestep)):
                # Check if time is in this slot:
                if timeElement <= timestamp < timeElement+3600:
                    energy_prices.append(element['electricity_price']/10000000)
                    energy_co2.append(element['carbon_footprint_in_grams']/10)
                    
                    # Increment time
                    timestamp += self.timestep
        assert(len(energy_co2) == len(energy_prices))
        
        
        # Now loop to find the best costs
        best_costs =     100000000
        best_co2 =       100000000
        best_cost_co2 =  100000000
        best_co2_costs = 100000000
        best_cost_time = ts
        best_co2_time = ts
        
        # Loop through all options
        for i in range(0, len(energy_co2)-len(self.profile)+1):
            co2 = 0
            costs = 0
            timestamp = ts + i*self.timestep
            
            for j in range(0, len(self.profile)):
                #Calculate the costs
                costs += self.profile[j] * energy_prices[i+j] * (self.timestep/3600.0) / 1000
                co2 += self.profile[j] * energy_co2[i+j] * (self.timestep/3600.0) / 1000
                
            # append the result
            
            # Check if we are cheapest:
            if costs < best_costs:
                best_costs = costs
                best_cost_time = timestamp
                best_cost_co2 = co2
            if co2 < best_co2:
                best_co2 = co2
                best_co2_time = timestamp
                best_co2_costs = costs
                
            # Add this result   
            dt = datetime.datetime.fromtimestamp(timestamp).astimezone(tz=timezone.utc)
            r = {   
                    'datetime': dt.isoformat(timespec='microseconds')[:-6]+'Z', 
                    'costs': costs, 
                    'co2': co2 
                }   
            result['forecast'].append(r)


        # Now set the sensors:
        self.set_state("sensor."+self.devname+"_plan", state="on", attributes=result)
        
        
        
        # Indicate the best moment for price:
        dt = datetime.datetime.fromtimestamp(best_cost_time)
        et = datetime.datetime.fromtimestamp(best_cost_time+len(self.profile)*self.timestep)
        
        s = ""
        if best_cost_time - int(time.time()) > (24*3600):
            s+= "Morgen "
        s += dt.strftime('%H:%M')
        s += " ( +"+str(int(round(best_cost_time - int(time.time()))/3600))+"h )"
        
        a = "€ {:.2f} en {:d} gCO2".format(best_costs, int(round(best_cost_co2)))
        a = a.replace(".", ",")
        a += " - Klaar rond "
        a += et.strftime('%H:%M')
        
        
        self.set_state("sensor."+self.devname+"_plan_price", state=s, attributes={'info': a})       
        self.set_state("sensor."+self.devname+"_plan_price_timestamp", state=best_cost_time)
        
        
        
        
        
        # Indicate the best moment for CO2:
        dt = datetime.datetime.fromtimestamp(best_co2_time)
        et = datetime.datetime.fromtimestamp(best_co2_time+len(self.profile)*self.timestep)
        
        s = ""
        if best_cost_time - int(time.time()) > (24*3600):
            s+= "Morgen "
        s += dt.strftime('%H:%M')
        s += " ( +"+str(int(round(best_co2_time - int(time.time()))/3600))+"h )"
        
        a = "€ {:.2f} en {:d} gCO2".format(best_co2_costs, int(round(best_co2)))
        a = a.replace(".", ",")
        a += " - Klaar rond "
        a += et.strftime('%H:%M')
        
        
        self.set_state("sensor."+self.devname+"_plan_co2", state=s, attributes={'info': a})     
        self.set_state("sensor."+self.devname+"_plan_co2_timestamp", state=best_co2_time)       
        
        
        # Set the next runtime of this function
        t = datetime.datetime.fromtimestamp(ts+self.timestep)
        self.run_in(self.calculate, (self.timestep - (int(time.time())%self.timestep)))

[Voor 86% gewijzigd door GENETX op 08-01-2023 21:58]


  • -Nexus
  • Registratie: Februari 2002
  • Laatst online: 27-01 14:48

-Nexus

|1.25GHz G4 Powerbook|

Dashboard flink kleiner gemaakt, t hele huis in een enkele picture-elements card gezet.

Wat highlights:

Living room:
- Projector en een raspberry pi die met de knoppen aan en uit gezet kunnen worden.
- Vuilnisbakken staan op 'straat' ;)

Mannetje met de rode X is dat t nu niet een goede tijd is om een wasje te draaien. Als t een V met een thumbs up is, dan wel! Ik heb geen mooie grafiek als die van @GENETX want ik heb geen dal tarief meer, dus alleen afhankelijk van zonnepanelen > 2KWH dan duim omhoog.


[Voor 45% gewijzigd door -Nexus op 09-01-2023 15:47]


  • gac
  • Registratie: Mei 2010
  • Laatst online: 13:35
pentode schreef op donderdag 15 december 2022 @ 10:43:
[...]

Gebruik hetzelfde e-ink display maar dan een kwartslag gedraaid. Als weerstation.
[Afbeelding]
Ook ik heb zo'n display aangeschaft, wat een leuke dingen zijn dat! Ik toon er nu onder andere de dynamische stroomprijzen van de huidige dag, plus verbruikte en teruggeleverde stroom.
Ik zit alleen nu een beetje met de vraag welke oplaadbare batterij (18650) ik nu precies moet aanschaffen. Moet deze nu protected of unprotected zijn? Ik lees hier verschillende verhalen over. Ook moet ik nog uitzoeken hoe aan een simpele behuizing te komen, dus als iemand suggesties heeft (ik heb geen 3d printer).

  • jmachiels
  • Registratie: Januari 2009
  • Laatst online: 19:12
gac schreef op vrijdag 13 januari 2023 @ 21:42:
[...]

Ook ik heb zo'n display aangeschaft, wat een leuke dingen zijn dat! Ik toon er nu onder andere de dynamische stroomprijzen van de huidige dag, plus verbruikte en teruggeleverde stroom.[Afbeelding]
Ik zit alleen nu een beetje met de vraag welke oplaadbare batterij (18650) ik nu precies moet aanschaffen. Moet deze nu protected of unprotected zijn? Ik lees hier verschillende verhalen over. Ook moet ik nog uitzoeken hoe aan een simpele behuizing te komen, dus als iemand suggesties heeft (ik heb geen 3d printer).
Dit is mooi! Zou je je code kunnen delen?

  • kepler
  • Registratie: Maart 2002
  • Laatst online: 15:40
gac schreef op vrijdag 13 januari 2023 @ 21:42:
[...]

Ook ik heb zo'n display aangeschaft, wat een leuke dingen zijn dat! Ik toon er nu onder andere de dynamische stroomprijzen van de huidige dag, plus verbruikte en teruggeleverde stroom.[Afbeelding]
Ik zit alleen nu een beetje met de vraag welke oplaadbare batterij (18650) ik nu precies moet aanschaffen. Moet deze nu protected of unprotected zijn? Ik lees hier verschillende verhalen over. Ook moet ik nog uitzoeken hoe aan een simpele behuizing te komen, dus als iemand suggesties heeft (ik heb geen 3d printer).
Ik zie ook knopjes bovenop dat scherm, werken die ook met/in HA?

Renault Zoe R210 Intens (22kWh)


  • gac
  • Registratie: Mei 2010
  • Laatst online: 13:35
jmachiels schreef op vrijdag 13 januari 2023 @ 21:49:
[...]


Dit is mooi! Zou je je code kunnen delen?
Hieronder de ESPhome code voor aansturing van het display. De uurtarieven haal ik in Home Assistant op met de Nordpool integratie, waarna belasting en toeslag worden toegevoegd om aan de Tibber-prijzen te komen. Het stukje om het batterijniveau te bepalen heb ik hier vandaan: https://gist.github.com/P...05aaa7812f3a191714ca47a50

De code is verder niet erg mooi en kan vast korter. Het zijn ook mijn eerste stappen op het gebied van ESPhome. De deep sleep modus moet ik nog activeren, zodat het display misschien maar 1 of 2 keer per uur gerefresht wordt en de batterij zolang mogelijk meegaat.

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
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
substitutions:
  esp_name: ESP Display
  esp_hostname: esp-display
  ip_address: 192.168.178.25
  ip_gw: 192.168.178.1
  ip_netmask: 255.255.255.0
  run_time: 10s
  sleep_time: 30s

esphome:
  name: ${esp_hostname}
  platform: ESP32
  board: esp32dev
  platformio_options:
    upload_speed: 1500000

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

  manual_ip:
    static_ip: ${ip_address}
    gateway: ${ip_gw}
    subnet: ${ip_netmask}

#deep_sleep:
#    run_duration: ${run_time}
#    sleep_duration: ${sleep_time}
#    id: deep_sleep_1

# Enable logger
logger:

# Enable Home Assistant API
api:
  password: !secret ha_api_pwd
ota:
  password: !secret esp_ota_pwd

time:
  - platform: homeassistant
    id: ntp

font:
  - file: 'IBMPlexMono-Bold.ttf'
    id: font_large
    size: 40
  - file: 'IBMPlexMono-Bold.ttf'
    id: font_medium
    size: 28
  - file: 'IBMPlexMono-Bold.ttf'
    id: font_small
    size: 24
  - file: 'IBMPlexMono-Bold.ttf'
    id: font_smallest
    size: 20

color:
  - id: clr_grey0
    red: 0%
    green: 0%
    blue: 0%
  - id: clr_grey25
    red: 25%
    green: 25%
    blue: 25%
  - id: clr_grey50
    red: 50%
    green: 50%
    blue: 50%
  - id: clr_grey75
    red: 75%
    green: 75%
    blue: 75%
  - id: clr_grey100
    red: 100%
    green: 100%
    blue: 100%

text_sensor:
  - platform: homeassistant
    id: today_prices
    entity_id: sensor.nordpool_kwh_nl_eur_3_09_0
    attribute: today
  - platform: homeassistant
    id: tomorrow_prices
    entity_id: sensor.nordpool_kwh_nl_eur_3_09_0
    attribute: tomorrow

sensor:
  - platform: adc
    pin: GPIO36
    name: "${esp_name} Battery Voltage"
    id: batt_volt
    attenuation: 11db
    update_interval: never
    filters:
      - multiply: 2

  - platform: template
    name: "${esp_name} Battery"
    id: battery
    unit_of_measurement: "%"
    accuracy_decimals: 0
    device_class: battery
    lambda: |-
      int y = (1-(4.1-id(batt_volt).state)/(4.1-3.3))*100;
      if (y < 100) {return y;} else {return 100;};
    update_interval: never

  - platform: homeassistant
    id: co2
    entity_id: sensor.co2_woonkamer

  - platform: homeassistant
    id: buitentemperatuur
    entity_id: sensor.weather_temperature

  - platform: homeassistant
    id: current_price
    entity_id: sensor.nordpool_kwh_nl_eur_3_09_0
    attribute: current_price

  - platform: homeassistant
    id: energy_wasmachine
    entity_id: sensor.energy_1_total_daily_energy

  - platform: homeassistant
    id: energy_koelkast_keuken
    entity_id: sensor.energy_4_total_daily_energy_2

  - platform: homeassistant
    id: energy_koelkast_garage
    entity_id: sensor.energy_3_total_daily_energy

  - platform: homeassistant
    id: energy_boiler
    entity_id: sensor.boiler_sww_total_daily_energy

  - platform: homeassistant
    id: energy_vloerverwarming
    entity_id: sensor.energy_2_total_daily_energy

  - platform: homeassistant
    entity_id: sensor.daily_energy_consumption
    id: energy_consumption
    internal: True

  - platform: homeassistant
    entity_id: sensor.daily_energy_production
    id: energy_production
    internal: True
    on_value:
      then:
        - script.execute: all_data_received

script:
  - id: all_data_received
    then:
      - component.update: batt_volt
      - component.update: battery
      - component.update: t5_display
#      - deep_sleep.enter:
#          id: deep_sleep_1
#          sleep_duration: ${sleep_time}

display:
  - platform: t547
    id: t5_display
    rotation: 270
    update_interval: 60s
    lambda: |-
      #define screen_width 540
      #define screen_height 960
      #define border_width 10
      #define border_height 10

      #define price_lowest 15
      #define price_low    30
      #define price_middle 45

      #define gr_height 300
      #define gr_width 460
      #define gr_startx 40
      #define gr_starty 50
      #define gr_margin_x 10
      #define no_text_x_axis 4
      #define no_text_y_axis 8

      int bar_width = (gr_width - gr_margin_x * 2) / 24;
      int y = 0;

      // header: current date
      it.strftime(screen_width / 2, border_height, id(font_large), TextAlign::TOP_CENTER, "%a %d %b %Y", id(ntp).now());
      
      // diagram axes
      it.vertical_line(gr_startx, gr_starty, gr_height);
      it.horizontal_line(gr_startx, gr_starty + gr_height, gr_width);

      // draw x axis

      it.horizontal_line(gr_startx, gr_starty + gr_height, gr_width);

      int axis_x_text_space = (gr_width - gr_margin_x * 2) / no_text_x_axis;

      for (int i = 0; i < 4; i++)
      {
        it.vertical_line(gr_startx + gr_margin_x + axis_x_text_space * i, gr_starty + gr_height + 2, 7);
      }
      it.print(gr_startx + gr_margin_x, gr_starty + gr_height + 10, id(font_smallest), TextAlign::TOP_CENTER, "00:00");
      it.print(gr_startx + gr_margin_x + axis_x_text_space, gr_starty + gr_height + 10, id(font_smallest), TextAlign::TOP_CENTER, "06:00");
      it.print(gr_startx + gr_margin_x + axis_x_text_space * 2, gr_starty + gr_height + 10, id(font_smallest), TextAlign::TOP_CENTER, "12:00");
      it.print(gr_startx + gr_margin_x + axis_x_text_space * 3, gr_starty + gr_height + 10, id(font_smallest), TextAlign::TOP_CENTER, "18:00");

       // split the string with todays prices
      std::string s_tmp = id(today_prices).state;
      if (s_tmp.size() > 2)
      {
        std::string s_prices = s_tmp.substr(1, s_tmp.size() - 2);
        std::string delimiter = ", ";
        int hour = 0;
        size_t pos = 0;
        std::string token;
        int i_price[24];
        int i_max = 0;
        int i_min = 500;
        int idx = 0;

        while ((pos = s_prices.find(delimiter)) != std::string::npos && idx < 23)
        {
          i_price[idx] = std::round(std::stof(s_prices.substr(0, pos)));

          s_prices.erase(0, pos + delimiter.length());
          idx++;
        }
        i_price[idx] = std::round(std::stof(s_prices));

        // calculate min and max prices
        for (idx = 0; idx < 24; idx++)
        {
          if (i_price[idx] > i_max)
          {
            i_max = i_price[idx];
          }
          if (i_price[idx] < i_min)
          {
            i_min = i_price[idx];
          }
        }

        // draw scale at y axis
        int scale_y = (i_max + 5) / no_text_y_axis;

        if (scale_y <= 5)
        {
          scale_y = 5;
        }
        else if (scale_y <= 10)
        {
          scale_y = 10;
        }
        else if (scale_y <= 20)
        {
          scale_y = 20;
        }
        else
        {
          scale_y = 40;
        }

        int text_y = gr_starty + gr_height;
        int value_y = 0;
        float space_y = gr_height / (float) no_text_y_axis;

        for (idx = 0; idx < no_text_y_axis; idx++)
        {
          it.printf(gr_startx - 10, text_y - (int)(space_y * idx), id(font_smallest), TextAlign::CENTER_RIGHT, "%3d", value_y);
          if (idx > 0)  // don't draw the axis itself again
          {
            it.horizontal_line(gr_startx, text_y - (int)(space_y * idx), gr_width, id(clr_grey50));
          }
          value_y += scale_y;
        }
        
        float cent_height = space_y / scale_y;
        int bar_height;

        // draw bars in graph
        Color color;
        for (idx = 0; idx < 24; idx++)
        {
          bar_height = (int)(cent_height * i_price[idx]);
          if (i_price[idx] <= price_lowest)
          {
            color = id(clr_grey25);
          }
          else if (i_price[idx] <= price_low)
          {
            color = id(clr_grey50);
          }
          else if (i_price[idx] <= price_middle)
          {
            color = id(clr_grey75);
          }
          else
          {
            color = id(clr_grey100);
          }

          it.filled_rectangle(gr_startx + gr_margin_x + idx * bar_width - 1, gr_starty + gr_height - bar_height, bar_width - 4, bar_height, color);
        }

        y += gr_starty + gr_height + 50;

        it.printf(gr_startx, y, id(font_medium), "Huidige prijs: %.0f ct/kWh", id(current_price).state);

        y+= 70;

        // draw energy consumption and production info

        it.printf(gr_startx, y, id(font_small), "Totaal verbruikt      %3.2f kWh", id(energy_consumption).state);
        y += 30;
        it.printf(gr_startx, y, id(font_small), "   Waarvan warm water %3.2f kWh", id(energy_boiler).state);
        y += 30;
        it.printf(gr_startx, y, id(font_small), "   wasmachine         %3.2f kWh", id(energy_wasmachine).state);
        y += 30;
        it.printf(gr_startx, y, id(font_small), "   koelkast keuken    %3.2f kWh", id(energy_koelkast_keuken).state);
        y += 30;
        it.printf(gr_startx, y, id(font_small), "   koelkast garage    %3.2f kWh", id(energy_koelkast_garage).state);
        y += 30;
        it.printf(gr_startx, y, id(font_small), "   vloerverwarming    %3.2f kWh", id(energy_vloerverwarming).state);
        y += 30;
        it.printf(gr_startx, y, id(font_small), "Totaal teruggeleverd  %3.2f kWh", id(energy_production).state);
        y += 100;
        it.printf(gr_startx, y, id(font_large), "Buitentemp. %.1f", id(buitentemperatuur).state);
        y += 60;
        it.printf(gr_startx, y, id(font_large), "       CO2  %.0f ppm", id(co2).state);
      }

      // footer: Last update and battery level

      it.strftime(border_width, screen_height - border_height / 2, id(font_medium), TextAlign::BASELINE_LEFT, "Updated: %H:%M", id(ntp).now());
      it.printf(screen_width - border_width, screen_height - border_height / 2, id(font_medium), TextAlign::BASELINE_RIGHT, "%.2fV/%.0f%%", id(batt_volt).state, id(battery).state);

  • gac
  • Registratie: Mei 2010
  • Laatst online: 13:35
kepler schreef op vrijdag 13 januari 2023 @ 21:52:
[...]

Ik zie ook knopjes bovenop dat scherm, werken die ook met/in HA?
Aan de rechterkant zitten inderdaad een stuk of vijf knopjes. Ik heb nog niet gekeken hoe die aan te sturen zijn, maar zou zeker handig zijn om daarmee andere info te kunnen tonen.

Acties:
  • +12Henk 'm!

  • B-Force
  • Registratie: Mei 2000
  • Laatst online: 01-02 17:53
(jarig!)
Hierbij een bijdrage vanuit mij, vooral gericht op het gebruik van HA als centrale besturing van alles in huis inclusief een tablet aan de muur. Vorig jaar begonnen met HA en dit was mijn eerste focus. Nu meer aan de slag met automations, maar nog steeds beetje huiverig om alles in HA te gooien. Daarom zijn alle basics als verlichting etc ook nog steeds te bedienen via de muurschakelaars (Hue Wall Switches) en bv de losse apps van de verschillende apparaten. Toch best tevreden met waar ik nu na een paar maanden sta.

Hardware

  • Raspberry Pi 4
  • Lenovo Tab M10 FHD
  • P1 cable
  • Hue Bridge
  • Honeywell Evohome
  • 11x Honeywell HR92 thermostaatknoppen
  • 15X Hue lampen
  • 6x Tradfri lampen
  • 1x Hue Bridge
  • 16x Hue inbouwspots
  • 4x Hue Motion Sensor
  • 1x Hue Smart Plug
  • 3x Hue Wall Switch
  • 5x Google Nest Mini
  • 1x Google Nest Hub
  • 1x Sonos Playbar
  • 2x Sonos One
  • 2x Logitech Harmony Hub
  • 2x Apple TV 4K
  • Eufy Doorbell incl HomeBase
  • 16x zonnepanelen + Enphase Envoy omvormer
  • 1x Philips Air Purifier

Software & Integrations

  • Home Assistant
  • Browser Mod
  • Buienradar
  • DSMR
  • Fully Kiosk Browser
  • HACS
  • Music Assistant
  • Spotify
  • Tomorrow.io
  • WebRTC

Add-ons

  • AdGuard
  • DuckDNS
  • Eufy Security
  • Home Assistant Google Drive Backup
  • Let’s Encrypt
  • NGINX
  • RTSP Simple Server
  • Samba Share
  • Studio Code Server

Automations

Deurbel
Wanneer de deurbel gaat, spelen de Sonos speakers een ‘chime’ af en gaat op de tablet de videostream aan voor 1 minuut
Lampen
Automations via HA, o.a.:
  • Verlichting in Woon- en eetkamer aan obv zonsonderdag
  • Lampen in tuin en winterverlichting langs gevel gaan 1,5 uur voor zonsondergang
  • Alle lampen uit om 23:00
Meeste automations lopen via de Hue Bridge, o.a.:
  • Lampen in hal en trap aan obv bewegingssensor in hal, lichtsterkte afhankelijk van tijdstip
  • Lampen op overloop en trap aan obv bewegingssensor, lichtsterkte afhankelijk van tijdstip
  • Lampen in bijkeuken en inloopkast aan obv beweginssensor
Luchtkwaliteit
Als luchtkwaliteit langer dan 30 minuten goed is, dan naar slaapstand. Verder wordt mate van zuivering geregeld via Philips Air app

Dashboards

Dashboard is voornamelijk gemaakt om te tonen op tablet aan de muur in eetkamer. De tablet draait op Fully Kiosk en gaat automatisch aan wanneer je ervoor staat. Ik heb screenshots gemaakt vanaf de laptop, de sidebar vanuit HA is dus niet te zien op de tablet.


Sidebar
Sidebar met links naar de verschillende dashboards. Onderin de sidebar komt een kaart naar voren op het moment dat de afvalcontainer (over)morgen aan de straat moet.

Home
Basis dashboard verdeeld in een bovenste rij en daaronder 3 kolommen:
  • Bovenste rij: belangrijkste verlichting, verwarming en luchtkwaliteit
  • Linker kolom: Laatste snapshot van deurbel; afvalwijzer, kaart met sensoren die <10% zijn (bv. batterijen en filters)
  • Middelste kolom: Locatie van gezinsleden met voor gedefinieerd: Thuis, Werk, School, Sport; TTS berichten die naar de Google Nests op slaapkamers van de kinderen gaan
  • Rechter kolom: Buienradar; Weersvoorspelling (obv tomorrow.io)


Lights
Dashboard om alle verlichting in huis te schakelen. Veel gebeurt op basis van Automations, maar hier is handmatig te schakelen:
  • Bovenste rij: verlichting in verschillende kamers aan-/uitzetten
  • Middelste rij: 3 hoofdvertrekken (woon-/eet-/slaapkamer verlichting aan-/uitzetten, sterkte instellen via slider en snelknoppen voor scenes)
  • Onderste rij: uitklapbare kaarten voor iedere kamer waarin lampen individueel te schakelen zijn (gebruik ik eigenlijk nooit, zijn altijd ingeklapt)
Ingeklapt:


Uitgeklapt:


Energy
Dashboard met overzicht van alle energie sensoren.
  • Bovenste rij: dagoverzicht met kosten (links), verbruik (midden) en opwekking per dak (rechts)
  • Linker kolom: Netto verbruik of opwekking in een ‘gauge’ met als maximum de maximum waarde van opwekking in afgelopen jaar; kaart met waarden van energieprijzen waarmee bovenste rij berekend wordt
  • Midden kolom: Energy card vanuit HA; grafiek met gas- en electriciteitsverbruik laatste 48h
  • Rechter kolom: Zonnepanelen statistieken gauge als terugverdientijd; actuele opbrengst per paneel


Heating
Dashboard met daarin alle kamers en de instellingen van de verwarming.


Media
Dashboard met Sonos Media Player


Overige dashboards
De overige dashboard gebruik ik om te testen, functionaliteit nog niet helemaal zoals ik wil.

Wensen / Next Steps

  • Layout van huis maken met daarin de schakelaars voor verlichting en verwarming
  • Layout van huis maken met daarin de schakelaars voor verlichting en verwarming
  • Nieuwe versie van Music Assistant om beter te kunnen zoeken naar Media op table
  • Aqara sensors op ramen, zodat verwarming in ruimte automatisch uitgaat op moment dat het raam openstaat
  • Aqara sensors om te checken of er buitendeuren openstaan
  • Smart slot in voordeur
  • Extra camera’s in tuin op achterzijde huis al beveiliging
  • En nog veel meer 😊

[Voor 4% gewijzigd door B-Force op 15-01-2023 15:27]


  • HekkeySE
  • Registratie: Maart 2000
  • Niet online
B-Force schreef op zondag 15 januari 2023 @ 15:11:
Hierbij een bijdrage vanuit mij, vooral gericht op het gebruik van HA als centrale besturing van alles in huis inclusief een tablet aan de muur. Vorig jaar begonnen met HA en dit was mijn eerste focus. Nu meer aan de slag met automations, maar nog steeds beetje huiverig om alles in HA te gooien. Daarom zijn alle basics als verlichting etc ook nog steeds te bedienen via de muurschakelaars (Hue Wall Switches) en bv de losse apps van de verschillende apparaten. Toch best tevreden met waar ik nu na een paar maanden sta.

Hardware

  • Raspberry Pi 4
  • Lenovo Tab M10 FHD
  • P1 cable
  • Hue Bridge
  • Honeywell Evohome
  • 11x Honeywell HR92 thermostaatknoppen
  • 15X Hue lampen
  • 6x Tradfri lampen
  • 1x Hue Bridge
  • 16x Hue inbouwspots
  • 4x Hue Motion Sensor
  • 1x Hue Smart Plug
  • 3x Hue Wall Switch
  • 5x Google Nest Mini
  • 1x Google Nest Hub
  • 1x Sonos Playbar
  • 2x Sonos One
  • 2x Logitech Harmony Hub
  • 2x Apple TV 4K
  • Eufy Doorbell incl HomeBase
  • 16x zonnepanelen + Enphase Envoy omvormer
  • 1x Philips Air Purifier

Software & Integrations

  • Home Assistant
  • Browser Mod
  • Buienradar
  • DSMR
  • Fully Kiosk Browser
  • HACS
  • Music Assistant
  • Spotify
  • Tomorrow.io
  • WebRTC

Add-ons

  • AdGuard
  • DuckDNS
  • Eufy Security
  • Home Assistant Google Drive Backup
  • Let’s Encrypt
  • NGINX
  • RTSP Simple Server
  • Samba Share
  • Studio Code Server

Automations

Deurbel
Wanneer de deurbel gaat, spelen de Sonos speakers een ‘chime’ af en gaat op de tablet de videostream aan voor 1 minuut
Lampen
Automations via HA, o.a.:
  • Verlichting in Woon- en eetkamer aan obv zonsonderdag
  • Lampen in tuin en winterverlichting langs gevel gaan 1,5 uur voor zonsondergang
  • Alle lampen uit om 23:00
Meeste automations lopen via de Hue Bridge, o.a.:
  • Lampen in hal en trap aan obv bewegingssensor in hal, lichtsterkte afhankelijk van tijdstip
  • Lampen op overloop en trap aan obv bewegingssensor, lichtsterkte afhankelijk van tijdstip
  • Lampen in bijkeuken en inloopkast aan obv beweginssensor
Luchtkwaliteit
Als luchtkwaliteit langer dan 30 minuten goed is, dan naar slaapstand. Verder wordt mate van zuivering geregeld via Philips Air app

Dashboards

Dashboard is voornamelijk gemaakt om te tonen op tablet aan de muur in eetkamer. De tablet draait op Fully Kiosk en gaat automatisch aan wanneer je ervoor staat. Ik heb screenshots gemaakt vanaf de laptop, de sidebar vanuit HA is dus niet te zien op de tablet.
[Afbeelding]

Sidebar
Sidebar met links naar de verschillende dashboards. Onderin de sidebar komt een kaart naar voren op het moment dat de afvalcontainer (over)morgen aan de straat moet.

Home
Basis dashboard verdeeld in een bovenste rij en daaronder 3 kolommen:
  • Bovenste rij: belangrijkste verlichting, verwarming en luchtkwaliteit
  • Linker kolom: Laatste snapshot van deurbel; afvalwijzer, kaart met sensoren die <10% zijn (bv. batterijen en filters)
  • Middelste kolom: Locatie van gezinsleden met voor gedefinieerd: Thuis, Werk, School, Sport; TTS berichten die naar de Google Nests op slaapkamers van de kinderen gaan
  • Rechter kolom: Buienradar; Weersvoorspelling (obv tomorrow.io)
[Afbeelding]

Lights
Dashboard om alle verlichting in huis te schakelen. Veel gebeurt op basis van Automations, maar hier is handmatig te schakelen:
  • Bovenste rij: verlichting in verschillende kamers aan-/uitzetten
  • Middelste rij: 3 hoofdvertrekken (woon-/eet-/slaapkamer verlichting aan-/uitzetten, sterkte instellen via slider en snelknoppen voor scenes)
  • Onderste rij: uitklapbare kaarten voor iedere kamer waarin lampen individueel te schakelen zijn (gebruik ik eigenlijk nooit, zijn altijd ingeklapt)
Ingeklapt:
[Afbeelding]

Uitgeklapt:
[Afbeelding]

Energy
Dashboard met overzicht van alle energie sensoren.
  • Bovenste rij: dagoverzicht met kosten (links), verbruik (midden) en opwekking per dak (rechts)
  • Linker kolom: Netto verbruik of opwekking in een ‘gauge’ met als maximum de maximum waarde van opwekking in afgelopen jaar; kaart met waarden van energieprijzen waarmee bovenste rij berekend wordt
  • Midden kolom: Energy card vanuit HA; grafiek met gas- en electriciteitsverbruik laatste 48h
  • Rechter kolom: Zonnepanelen statistieken gauge als terugverdientijd; actuele opbrengst per paneel
[Afbeelding]

Heating
Dashboard met daarin alle kamers en de instellingen van de verwarming.
[Afbeelding]

Media
Dashboard met Sonos Media Player
[Afbeelding]

Overige dashboards
De overige dashboard gebruik ik om te testen, functionaliteit nog niet helemaal zoals ik wil.

Wensen / Next Steps

  • Layout van huis maken met daarin de schakelaars voor verlichting en verwarming
  • Layout van huis maken met daarin de schakelaars voor verlichting en verwarming
  • Nieuwe versie van Music Assistant om beter te kunnen zoeken naar Media op table
  • Aqara sensors op ramen, zodat verwarming in ruimte automatisch uitgaat op moment dat het raam openstaat
  • Aqara sensors om te checken of er buitendeuren openstaan
  • Smart slot in voordeur
  • Extra camera’s in tuin op achterzijde huis al beveiliging
  • En nog veel meer 😊
Nice! Welke purifier heb je? Toevallig zoek ik er net 1.
Waarom niet volledig op Zigbee via bijv. Zigbee2MQTT? Scheelt weer bridges (en stroom). Zeker als je de schakelaars etc bind dan werkt het ook als HA etc niet werkt.

Recht op morgen heb ik niet, maar morgen wordt beter dan vandaag en gisteren bestaat niet.


  • B-Force
  • Registratie: Mei 2000
  • Laatst online: 01-02 17:53
(jarig!)
HekkeySE schreef op zondag 15 januari 2023 @ 17:03:
[...]


Nice! Welke purifier heb je? Toevallig zoek ik er net 1.
Waarom niet volledig op Zigbee via bijv. Zigbee2MQTT? Scheelt weer bridges (en stroom). Zeker als je de schakelaars etc bind dan werkt het ook als HA etc niet werkt.
Ik heb gekozen voor de AC2939 van Philips. Die werkt prima tot nu toe.
Volledig over op Zigbee wil ik doen als ik ook Aqara sensoren ga toevoegen. Ik had de Hue bridge al en dat werkt prima. En ik ben niet afhankelijk van HA voor een essentieel iets als verlichting.

  • MauriceQ
  • Registratie: Juli 2005
  • Laatst online: 01-02 13:49
B-Force schreef op zondag 15 januari 2023 @ 15:11:
Hierbij een bijdrage vanuit mij, ....
Ziet er netjes uit zeg.

Hoe heb je de tablet aan de muur bevestigt en voorzie je hem van spanning???

iRacing Profiel


  • B-Force
  • Registratie: Mei 2000
  • Laatst online: 01-02 17:53
(jarig!)
MauriceQ schreef op maandag 16 januari 2023 @ 16:03:
[...]


Ziet er netjes uit zeg.

Hoe heb je de tablet aan de muur bevestigt en voorzie je hem van spanning???
De tablet zit over een wcd heen, in de wcd zit een 240V naar 5V USB adapter en die zit standaard met een platte usb kabel met haakse kop weggewerkt in de wall mount.
Gekocht via mbmounts.com. Kostte wat, maar het eindresultaat is echt superstrak 👍🏼

  • pentode
  • Registratie: Maart 2008
  • Laatst online: 31-01 13:17
gac schreef op vrijdag 13 januari 2023 @ 21:42:
[...]

Ook ik heb zo'n display aangeschaft, wat een leuke dingen zijn dat! Ik toon er nu onder andere de dynamische stroomprijzen van de huidige dag, plus verbruikte en teruggeleverde stroom.[Afbeelding]
Ik zit alleen nu een beetje met de vraag welke oplaadbare batterij (18650) ik nu precies moet aanschaffen. Moet deze nu protected of unprotected zijn? Ik lees hier verschillende verhalen over. Ook moet ik nog uitzoeken hoe aan een simpele behuizing te komen, dus als iemand suggesties heeft (ik heb geen 3d printer).
Weer een mooie praktische toepassing. Wilde zelf nog iets met een agenda doen.
Ergens had ik nog een 18650 liggen. Ooit gebruikt in een battery shield. Deze is unprotected. Protected schijnen ook iets langer te zijn. Dan passen ze mogelijk niet goed in de houder. En ook nog flat en button top uitvoeringen. Of met van die aansluitlippen, U-tag. Dat maakt het er inderdaad niet makkelijker op. Hier in het forum zal vast wel een draadje zijn met Tweakers die hier meer van af weten.
Wel oppassen met sommige shrink wraps en de batterij houder connector lippen. Die blijven soms erachter hangen met het eruit halen.

De behuizing heb ik toen gelijk mee besteld. Maar zie die nu niet meer staan ;-(

[Voor 0% gewijzigd door pentode op 17-01-2023 11:58. Reden: aanvulling]

Bij een rij nullen staat één vooraan.


  • Goudvis
  • Registratie: Februari 2004
  • Laatst online: 17:22

Goudvis

'Hallo buurman! Ik ook hier?'

B-Force schreef op zondag 15 januari 2023 @ 15:11:
• Honeywell Evohome
• 11x Honeywell HR92 thermostaatknoppen
Ziet er mooi uit! :*) Hoe heb je de Evohome+knoppen aan HA geknoopt? Ik heb daar al eens naar gezocht maar nog geen sluitende oplossing voor gevonden. :)

Die loslopende kat - houd 'm lekker binnen (de tuin)


  • pentode
  • Registratie: Maart 2008
  • Laatst online: 31-01 13:17
kepler schreef op vrijdag 13 januari 2023 @ 21:52:
[...]

Ik zie ook knopjes bovenop dat scherm, werken die ook met/in HA?
Via esphome zou dat moeten lukken om de knopjes te kunnen gebruiken. Eéntje is wel fixed de reset.
Aan de toe te voegen digitiser/touch wordt ook gewerkt zo te lezen.

Bij een rij nullen staat één vooraan.


  • gac
  • Registratie: Mei 2010
  • Laatst online: 13:35
pentode schreef op dinsdag 17 januari 2023 @ 11:28:
[...]

Weer een mooie praktische toepassing. Wilde zelf nog iets met een agenda doen.
Ergens had ik nog een 18650 liggen. Ooit gebruikt in een battery shield. Deze is unprotected. Protected schijnen ook iets langer te zijn. Dan passen ze mogelijk niet goed in de houder. En ook nog flat en button top uitvoeringen. Of met van die aansluitlippen, U-tag. Dat maakt het er inderdaad niet makkelijker op. Hier in het forum zal vast wel een draadje zijn met Tweakers die hier meer van af weten.
Wel oppassen met sommige shrink wraps en de batterij houder connector lippen. Die blijven soms erachter hangen met het eruit halen.

De behuizing heb ik toen gelijk mee besteld. Maar zie die nu niet meer staan ;-(
Dank voor de info! Ja, die batterijen zijn er in veel variaties, dat maakt het best lastig om de kiezen. Ik denk zelf dat ik eerst eens een protected versie met button top ga aanschaffen. Hopelijk dat die gaat passen met een beetje gepriegel.
Je zou toch zeggen dat die behuizingen wat makkelijker te vinden zouden moeten zijn. Heb er eentje op AliExpress gevonden maar met een lange levertijd. Twijfel.

  • gac
  • Registratie: Mei 2010
  • Laatst online: 13:35
-Nexus schreef op woensdag 14 december 2022 @ 15:37:
Update: Mijn LilyGo voorzien van een 3D print (dank @Jampot007 !). Data komt uit HA, code is vergelijkbaar met deze post (niet van mij).

Ik laat nu zien: Calender voor komende twee dagen, en onderin de countdown vanuit afvalinfo.

[Afbeelding]
Behuizing ziet er strak uit! Heb je die zelf ontworpen of is het model ergens te downloaden?
Pagina: 1 ... 7 8 9 Laatste

Let op:
Dit topic is alleen bedoelt als showcase! Vragen ("Hoe kan ik het zelf toepassen?" etc) kunnen gesteld worden in Home Assistant: Open source Python3 home automation - deel 4. Doe naar een mention naar de juiste persoon en eventueel een link naar de showcase.

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