Home Assistant: Open source Python3 home automation - deel 5 Vorige deel Overzicht

Pagina: 1 ... 360 ... 366 Laatste
Acties:

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:28

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@0xygen500 Maar hoe zag je dan voor je om de juiste strip te selecteren? Aan welke parameter?

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 05:14
Septillion schreef op maandag 15 december 2025 @ 19:01:
@0xygen500 Maar hoe zag je dan voor je om de juiste strip te selecteren? Aan welke parameter?
Op basis van afstand? Maar dat kan een PIR dus niet (@0xygen500). Dan zou je al naar mmwave moeten gaan. Maar of dat echt een verbetering is? Ik zou gewoon 2 PIRs pakken. "Desnoods" gewoon zelfbouw. 2 PIRs + 2 LED strips koppelen aan 1 ESP (met ESPHome). Dan kun je het daarin ook nog uit programmeren en hoef je niet eens via HA te gaan (oftewel: het werkt altijd, ook als HA er uit ligt).

  • 0xygen500
  • Registratie: Juni 2014
  • Laatst online: 06:46
Septillion schreef op maandag 15 december 2025 @ 19:01:
@0xygen500 Maar hoe zag je dan voor je om de juiste strip te selecteren? Aan welke parameter?
Ik had gehoopt dat je een kant kon kiezen. Als in, Noord -Noord/oost is led 1, Zuid- Zuid/west is led 2.
RobertMe schreef op maandag 15 december 2025 @ 19:04:
[...]

Op basis van afstand? Maar dat kan een PIR dus niet (@0xygen500). Dan zou je al naar mmwave moeten gaan. Maar of dat echt een verbetering is? Ik zou gewoon 2 PIRs pakken. "Desnoods" gewoon zelfbouw. 2 PIRs + 2 LED strips koppelen aan 1 ESP (met ESPHome). Dan kun je het daarin ook nog uit programmeren en hoef je niet eens via HA te gaan (oftewel: het werkt altijd, ook als HA er uit ligt).
Ik heb nog nooit gewerkt met ESP Home, ook nog nooit geprogrammeerd. Mijn naam is ook niet Pipi Langkous, dus ik verwacht niet dat ik dit automagisch ook kan :+

Had zelf zo iets in gedachten
2x
Afbeeldingslocatie: https://tweakers.net/i/XWR4lQVCAc8N0wkNQDh7j6cBnO0=/x800/filters:strip_icc():strip_exif()/f/image/mpO5w5cnGdxkZyW3PVhdkBsI.jpg?f=fotoalbum_large

1 of twee keer deze:
Afbeeldingslocatie: https://tweakers.net/i/BMaJw6wDJUYQGZePxVMcvds0p0E=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/5MqZHTpq12CCpctNLn7E9igk.png?f=user_large

Het probleem is een beetje, Die dingen zijn rond, dus ik verwacht dat als ik er één gebruik, deze eigenlijk te goed is en altijd alle leds direct aan doet.

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:28

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@0xygen500 Gewone PIR geeft niets meer terug dan ja of nee. mWave kan soms meer maar lijkt me ook complex. Want die kijkt ook weer makkelijk door het bed heen :+ En als ik bij mij zo inschat ziet een PIR iets van 120-150 graden.

Voor die strip, zo met plaatje en de naam zou ik nog wel checken of er echt een Zigbee controller bij zit. En gezien je het denk ik ook in de nacht wilt gebruiken zou ik vooral niet te veel leds per meter pakken, dat is snel veel licht.

  • 0xygen500
  • Registratie: Juni 2014
  • Laatst online: 06:46
Septillion schreef op maandag 15 december 2025 @ 19:19:
@0xygen500 Gewone PIR geeft niets meer terug dan ja of nee. mWave kan soms meer maar lijkt me ook complex. Want die kijkt ook weer makkelijk door het bed heen :+ En als ik bij mij zo inschat ziet een PIR iets van 120-150 graden.

Voor die strip, zo met plaatje en de naam zou ik nog wel checken of er echt een Zigbee controller bij zit. En gezien je het denk ik ook in de nacht wilt gebruiken zou ik vooral niet te veel leds per meter pakken, dat is snel veel licht.
Het is inderdaad gewoon in de nacht om wat verlichting te hebben voor het begeleiden naar een andere kamer. Niet om heel de kamer te verlichten. Tuya is geen ramp voor mij, heb al meerdere devices in smarlife. Deze gooi ik allemaal op een eigen IoT 2.4ghz netwerk

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 05:14
0xygen500 schreef op maandag 15 december 2025 @ 19:14:
[...]

Ik heb nog nooit gewerkt met ESP Home, ook nog nooit geprogrammeerd. Mijn naam is ook niet Pipi Langkous, dus ik verwacht niet dat ik dit automagisch ook kan :+
Kun je automations in HA schrijven in YAML? Zo ja: dan kun je vast ook met ESPHome overweg. Echt programmeren is er niet voor nodig, maar de juiste YAML opbouwen. Het is anders dan HA YAML, maar ook weer niet extreem veel anders (alleen als je met lambda's gaat werken schrijf je echt C-code. Maar lambda's heb je hier in principe niet voor nodig).
1 of twee keer deze:
[Afbeelding]

Het probleem is een beetje, Die dingen zijn rond, dus ik verwacht dat als ik er één gebruik, deze eigenlijk te goed is en altijd alle leds direct aan doet.
Kwestie van richten dus. PIRs reageren AFAIK niet op "reflectie". Als je bij wijze van spreken beiden tegen elkaar plakt met de achterkant en dit vervolgens midden onder het bed in plaatst kijken ze beiden aan 1 kant onder het bed uit.

  • Gondelier
  • Registratie: Maart 2014
  • Laatst online: 19-12-2025

Gondelier

HP-ThinCient T630, HA OS

Kan iemand mij misschien helpen met deze kwelgeest.
Ik heb het vullen van mijn shopping list geprobeerd een op spraak gebaseerde boodschappenlijst te laten maken.
Gebruikmakend van HA-CLOUD en de Voice PE op een server HP T630. Nu komt mijn probleem. Dit is de .yaml code:
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
alias: Boodschappenlijstje via spraakcommando
description: Voeg één of meerdere items toe via HA Voice PE
triggers:
  - trigger: conversation
    command: "Zet op de boodschappenlijst {items}"
actions:
  - variables:
      lijst: "{{ items.split(' en ') }}"
  - repeat:
      for_each: "{{ lijst }}"
      sequence:
        - action: shopping_list.add_item
          data:
            name: "{{ repeat.item }}"
mode: single 

En deze code werkt soms wel en soms weer niet.
Nu heb ik ontdekt, dat als ik de code wegschrijf en nergens meer naar omkijk werkt deze code niet altijd, na wat zoeken geeft de 5e regel aan:
command: Zet op de boodschappenlijst {items}
zonder ACCOLADES ("") dus.
Dit gebeurt heel vaak en dan moet ik die twee accolades er weer bij zetten, wegschrijven en niet meer in deze .yaml komen want dan werkt het niet meer.
Kan iemand mij van deze kwelgeest |:( af helpen, of misschien een juiste oplossing voor wat ik verkeerd doe.
Veel dank.

Je zou ondertussen wel moeten weten hoe de code-tags werken

[ Voor 2% gewijzigd door Septillion op 15-12-2025 21:17 . Reden: Denk aan de 'yaml' bij de code tags aub! Zie topic warning en hoe deze post is aangepast. ]


  • Hippe Lip
  • Registratie: Februari 2011
  • Laatst online: 06:20

Hippe Lip

Er valt altijd wat te leren

wernert schreef op maandag 15 december 2025 @ 13:56:
[...]
Heb je ook advies voor een 1-fase tussenmeter (bijv. van Eastron) zodat elke groep apart te meten is? Zo'n tussenmeter lijkt mij een betere oplossing dan CT-klemmen voor elke groep.
@wernert De Eastron SDM120 bedoel je?

En als je gewone 16A groepen hebt (geen alamat dus), dan kun je mss nog heel even wachten. Shelly komt binnenkort met groepsautomaten met ingeboude metering en bediening. De productpresentatie heb ik al gezien. Dat lijkt me wel handig, want dat neemt geen extra ruimte in in de groepenkast.
Helaas nix voor mij, want ik heb geen losse ALS, alles is alamat.

Verdraagzaamheid is het hoogste gebod
en wie dat niet eert die schoppen we rot.
<John O`Mill>


  • CrankyGamerOG
  • Registratie: Juni 2003
  • Laatst online: 23:49

CrankyGamerOG

Assumption is the mother.....

Gondelier schreef op maandag 15 december 2025 @ 20:08:
Kan iemand mij misschien helpen met deze kwelgeest.
Ik heb het vullen van mijn shopping list geprobeerd een op spraak gebaseerde boodschappenlijst te laten maken.
Gebruikmakend van HA-CLOUD en de Voice PE op een server HP T630. Nu komt mijn probleem. Dit is de .yaml code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
alias: Boodschappenlijstje via spraakcommando
description: Voeg één of meerdere items toe via HA Voice PE
triggers:
  - trigger: conversation
    command: "Zet op de boodschappenlijst {items}"
actions:
  - variables:
      lijst: "{{ items.split(' en ') }}"
  - repeat:
      for_each: "{{ lijst }}"
      sequence:
        - action: shopping_list.add_item
          data:
            name: "{{ repeat.item }}"
mode: single

En deze code werkt soms wel en soms weer niet.
Nu heb ik ontdekt, dat als ik de code wegschrijf en nergens meer naar omkijk werkt deze code niet altijd, na wat zoeken geeft de 5e regel aan:
command: Zet op de boodschappenlijst {items}
zonder ACCOLADES ("") dus.
Dit gebeurt heel vaak en dan moet ik die twee accolades er weer bij zetten, wegschrijven en niet meer in deze .yaml komen want dan werkt het niet meer.
Kan iemand mij van deze kwelgeest |:( af helpen, of misschien een juiste oplossing voor wat ik verkeerd doe.
Veel dank.
Probeer het eens met intents?

intents.yaml
YAML:
1
2
3
4
AddShoppingItems:
  data:
    - name: items
      type: wildcard


intents_script.yaml
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
AddShoppingItems:
  action:
    - variables:
        lijst: >
          {{ items
             | lower
             | replace(',', ' en ')
             | split(' en ')
             | map('trim')
             | reject('equalto', '')
             | list }}
    - repeat:
        for_each: "{{ lijst }}"
        sequence:
          - service: shopping_list.add_item
            data:
              name: "{{ repeat.item }}"


Op jouw manier kan er heel veel misgaan namelijk vanwege extra tekens (aanhalings, komma etc etc).
En nog wel meer dingen die te veel zijn op op te noemen :)
Het feit dat je failures stil zijn, en dus ook geen logging kunt uitlezen geeft jou het idee dat het soms wel soms niet werkt. ;)

[ Voor 3% gewijzigd door CrankyGamerOG op 15-12-2025 20:35 ]

KPN - Vodafone Ziggo Partner


  • SadisticPanda
  • Registratie: Februari 2009
  • Niet online

SadisticPanda

Heet patatje :o

Psycho_Mantis schreef op maandag 15 december 2025 @ 09:41:
[...]

Goed bezig!
Ik heb de intergratie inmiddels draaien en werkt eigenlijk wel vrij probleemloos. Maar had inderdaad al gelezen dat de originele ontwikkelaar niet zo veel meer van zich laat horen, dus zonder onderhoud stop het vanzelf met werken.

Mij is het alleen niet helemaal duidelijk hoe ik een intergratie kan switchen zonder de configuratie kwijt te raken. Ik heb hier 2 auto's geconfigureerd en heb niet zo veel zin om die hele procedure opnieuw te moeten zoen.
gewoon de oude repo verwijderen, en de mijne installeren. Dan gewoon er los over; Neemt normaal alles gewoon over

enkel devive tracker kan je er 2 hebben , eentje verwijderen en klaar. :)

Marstek 5.12kw v151, CT003 v117, Sagecom Xs212 1P,


  • 0xygen500
  • Registratie: Juni 2014
  • Laatst online: 06:46
RobertMe schreef op maandag 15 december 2025 @ 20:07:
[...]

Kun je automations in HA schrijven in YAML? Zo ja: dan kun je vast ook met ESPHome overweg. Echt programmeren is er niet voor nodig, maar de juiste YAML opbouwen. Het is anders dan HA YAML, maar ook weer niet extreem veel anders (alleen als je met lambda's gaat werken schrijf je echt C-code. Maar lambda's heb je hier in principe niet voor nodig).


[...]

Kwestie van richten dus. PIRs reageren AFAIK niet op "reflectie". Als je bij wijze van spreken beiden tegen elkaar plakt met de achterkant en dit vervolgens midden onder het bed in plaatst kijken ze beiden aan 1 kant onder het bed uit.
Hmm dat zou nog wel wat zijn tegen elkaar plakken en zo ervoor zorgen dat ze elkaar niet beinvloeden

  • CrankyGamerOG
  • Registratie: Juni 2003
  • Laatst online: 23:49

CrankyGamerOG

Assumption is the mother.....

Help, ik heb per ongeluk mijn entity person.mijnnaam inactief gezet.
Onder entiteiten kom ik hem nu niet meer tegen.
Hoe zet ik hem weer aan? :x

Laat maar, moest gewoon filteren op uitgeschakeld onder entiteiten.

[ Voor 20% gewijzigd door CrankyGamerOG op 15-12-2025 20:44 ]

KPN - Vodafone Ziggo Partner


  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 05:14
0xygen500 schreef op maandag 15 december 2025 @ 20:39:
[...]

Hmm dat zou nog wel wat zijn tegen elkaar plakken en zo ervoor zorgen dat ze elkaar niet beinvloeden
Of gewoon zorgen voor een schot tussen beide kanten :) PIR kan nergens doorheen kijken. Als je dus zorgt voor een plank van het hoofdeind tot voeteind kan die ook niet aan de andere kant zien.
Enige wat tricky kan zijn is dat de wandelroute van de een alsnog de PIR aan de andere kant triggert. Dus als één van de PIRs zicht heeft op de deur maakt het niet uit aan welke kant je het bed uit gaat, als door de deur wordt gelopen zal het licht aan die kant sowieso (ook) aan gaan.

Overigens v.w.b. aansturing. Als je zou gaan voor een hele simpele (witte) LED strip die maar aan/uit hoeft ("op volle sterkte") zou je het zelfs volledig hardwarematig kunnen aansturen, "dom". PIR waarvan de "trigger" (aan/uit signaal, gewoon "stroom" voor aan en "geen stroom" voor uit) gekoppeld is aan een simpele mosfet die de -/ground komende van de LED strip schakeld. Dan kun je niet dimmen, niet slim aansturen vanuit HA (, geen kleur), .... Maar werkt ook gewoon. En AFAIK bestaan daar ook kant en klare oplossingen voor: LED strips voor onder het bed die automatisch aan en uit gaan bij beweging. En hetzelfde bv ook voor in een kast. Deur open is licht aan.

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:28

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@0xygen500 Als je Zigbee gebruikt met ZHA of Z2M dan maakt het niet uit dat het Tuya is. Dan blijft dan lokaal.

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:28

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
Hippe Lip schreef op maandag 15 december 2025 @ 20:16:
[...]

@wernert De Eastron SDM120 bedoel je?

En als je gewone 16A groepen hebt (geen alamat dus), dan kun je mss nog heel even wachten. Shelly komt binnenkort met groepsautomaten met ingeboude metering en bediening. De productpresentatie heb ik al gezien. Dat lijkt me wel handig, want dat neemt geen extra ruimte in in de groepenkast.
Helaas nix voor mij, want ik heb geen losse ALS, alles is alamat.
Poeh, geen haar op mijn hoofd die een beveiliging van Shelly zou gebruiken... Prima voor het smart deel maar voor de beveiliging pak ik liever toch wat beters :X

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:28

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
Mm, nu riep ik al tijden dat je niet meer legacy templates moet maken omdat ik ze wel zag verdwijnen. En tada, nu in 2025.12 natuurlijk deprecated.

Maar dat betekende niet dat ik ze zelf niet meer had. Paar template sensoren uit de begintijd had ik nog steeds op de todo list staan om om te zetten. Dus nu met de deprecated melding maar opgepakt. Omzetten is natuurlijk ook geen enkel probleem. Maar ik had enkele die ik toch niet meer gebruikte dus die gewoon weggegooid. Maar na een herstart staan ze alleen nog in HA en mag ik ze niet weggooien omdat ze geen unique id hebben...

Voor de template sensoren kon ik het oplossen door ze eerst een unique id te geven, dan weg te gooien uit de yaml en dan kon ik ze verwijderen. Maar ik gooide ook wat utility meters uit de yaml en die blijven ook staan en hebben geen unique id optie...

Ik kan me niet echt heugen dat ik ze eerder niet weg kon gooien na verwijderen. Of sterker nog, dat ze dan gewoon verdwenen. Heb ik dat mis? Of verdwijnen ze vanzelf als ze uit de recorder vallen? Of hoe krijg ik ze anders weg?

  • TheFes
  • Registratie: Juni 2001
  • Laatst online: 06:49
Septillion schreef op maandag 15 december 2025 @ 21:35:
Mm, nu riep ik al tijden dat je niet meer legacy templates moet maken omdat ik ze wel zag verdwijnen. En tada, nu in 2025.12 natuurlijk deprecated.

Maar dat betekende niet dat ik ze zelf niet meer had. Paar template sensoren uit de begintijd had ik nog steeds op de todo list staan om om te zetten. Dus nu met de deprecated melding maar opgepakt. Omzetten is natuurlijk ook geen enkel probleem. Maar ik had enkele die ik toch niet meer gebruikte dus die gewoon weggegooid. Maar na een herstart staan ze alleen nog in HA en mag ik ze niet weggooien omdat ze geen unique id hebben...

Voor de template sensoren kon ik het oplossen door ze eerst een unique id te geven, dan weg te gooien uit de yaml en dan kon ik ze verwijderen. Maar ik gooide ook wat utility meters uit de yaml en die blijven ook staan en hebben geen unique id optie...

Ik kan me niet echt heugen dat ik ze eerder niet weg kon gooien na verwijderen. Of sterker nog, dat ze dan gewoon verdwenen. Heb ik dat mis? Of verdwijnen ze vanzelf als ze uit de recorder vallen? Of hoe krijg ik ze anders weg?
Je zou ze wel moeten kunnen verwijderen, ook zonder unique_id.

Home Assistant configuratie


  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:28

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@TheFes Mm, zonder unique id bleven de template sensoren dus staan en kon ik niet bij config komen om te deleten omdat ze geen unique id hebben. Maar na tijdelijk toevoegen die wel weg.

Maar ik heb dus nog spook utility meters. Ik heb er 4 weggegooid, één is nu "unavailable" en mag ik verwijderen. Eén is verdwenen (maar durf niet 100% te zeggen dat ik die niet al verwijdert heb). Maar twee staan er dus nog vrolijk in met een waarde van 0 :| En die krijg ik niet weg wegens een unique id melding...

  • 0xygen500
  • Registratie: Juni 2014
  • Laatst online: 06:46
RobertMe schreef op maandag 15 december 2025 @ 21:02:
[...]

Of gewoon zorgen voor een schot tussen beide kanten :) PIR kan nergens doorheen kijken. Als je dus zorgt voor een plank van het hoofdeind tot voeteind kan die ook niet aan de andere kant zien.
Enige wat tricky kan zijn is dat de wandelroute van de een alsnog de PIR aan de andere kant triggert. Dus als één van de PIRs zicht heeft op de deur maakt het niet uit aan welke kant je het bed uit gaat, als door de deur wordt gelopen zal het licht aan die kant sowieso (ook) aan gaan.

Overigens v.w.b. aansturing. Als je zou gaan voor een hele simpele (witte) LED strip die maar aan/uit hoeft ("op volle sterkte") zou je het zelfs volledig hardwarematig kunnen aansturen, "dom". PIR waarvan de "trigger" (aan/uit signaal, gewoon "stroom" voor aan en "geen stroom" voor uit) gekoppeld is aan een simpele mosfet die de -/ground komende van de LED strip schakeld. Dan kun je niet dimmen, niet slim aansturen vanuit HA (, geen kleur), .... Maar werkt ook gewoon. En AFAIK bestaan daar ook kant en klare oplossingen voor: LED strips voor onder het bed die automatisch aan en uit gaan bij beweging. En hetzelfde bv ook voor in een kast. Deur open is licht aan.
Opzich ook een optie om een kant en klare set te kopen. Een schot onder bed is sws geen optie, moet nog een robotstofzuiger onderdoor.
Septillion schreef op maandag 15 december 2025 @ 21:17:
@0xygen500 Als je Zigbee gebruikt met ZHA of Z2M dan maakt het niet uit dat het Tuya is. Dan blijft dan lokaal.
Ik draai ook gewoon Tuya niet lokaal. Nooit werkend gekregen en als China mijn bedlamp wilt laten flikkeren, tsja succes.

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:28

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@0xygen500 Bedoelde dus vooral aan te geven dat er nogal eenv erschil is tussen Tuya Wifi en Tuya Zigbee :)

  • Gondelier
  • Registratie: Maart 2014
  • Laatst online: 19-12-2025

Gondelier

HP-ThinCient T630, HA OS

CrankyGamerOG schreef op maandag 15 december 2025 @ 20:28:
[...]

Probeer het eens met intents?

intents.yaml
YAML:
1
2
3
4
AddShoppingItems:
  data:
    - name: items
      type: wildcard


intents_script.yaml
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
AddShoppingItems:
  action:
    - variables:
        lijst: >
          {{ items
             | lower
             | replace(',', ' en ')
             | split(' en ')
             | map('trim')
             | reject('equalto', '')
             | list }}
    - repeat:
        for_each: "{{ lijst }}"
        sequence:
          - service: shopping_list.add_item
            data:
              name: "{{ repeat.item }}"


Op jouw manier kan er heel veel misgaan namelijk vanwege extra tekens (aanhalings, komma etc etc).
En nog wel meer dingen die te veel zijn op op te noemen :)
Het feit dat je failures stil zijn, en dus ook geen logging kunt uitlezen geeft jou het idee dat het soms wel soms niet werkt. ;)
@CrankyGamerOG Bedankt voor de hulp en ik ga hiermee aan de slag _/-\o_

  • Koepert
  • Registratie: Augustus 2013
  • Nu online
Koepert schreef op maandag 15 december 2025 @ 10:20:
Hi Vraagje over nabouwen van iets van Node-Red in HA gui.

Daar heb ik nu een flow als volgt (idem voor droger overigens:

Status Wasmachine_power komt in NR - Gaat naar een power_monitor node (URL) die start als verbruik boven 100W is en stopt bij 0. Bij een stop-event krijg ik vervolgens een bericht uit de Power_monitor Node met device_name, event_type, verstreken tijd en verbruikte energie. Die verwerk ik met een Function Node tot tijd en kosten en die notify ik mezelf.

Hoe kan ik dit het beste in de GUI verwerken? Ik zat eerst te denken aan een Drempelwaarde sensor voor aan/uit, maar die logt dan nog steeds niet de tijd en het verbruik. De notificatie sturen is niet zozeer het probleem :P maar het loggen van dat tijdelijke verbruik.
Ik denk dat ik deze getackeld heb. Ziet iemand hier volledige overkill of fouten?

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
alias: Verbruik Was
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.wasmachine_power
    for:
      hours: 0
      minutes: 1
      seconds: 0
    above: 10
conditions: []
actions:
  - action: input_number.set_value
    metadata: {}
    target:
      entity_id: input_number.wasbeurt
    data:
      value: "{{ states('sensor.wasmachine_energy') | float}}"
  - wait_for_trigger:
      - trigger: numeric_state
        entity_id:
          - sensor.wasmachine_power
        for:
          hours: 0
          minutes: 5
          seconds: 0
        below: 5
  - action: input_number.set_value
    metadata: {}
    target:
      entity_id: input_number.wasbeurt
    data:
      value: >-
        {{ (states('sensor.wasmachine_energy') | float ) -
        (states('input_number.wasbeurt') | float | round(0)) }}
  - action: notify.homeassistant_bot
    metadata: {}
    data:
      target: "kanaalnummer weggehaald"
      message: >-
        🧺👕De was is klaar! Het verbruik was {{ states('input_number.wasbeurt'
        ) | round(0) }} wH.
    alias: Discord melding
mode: single

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 08-01 16:37

pietje63

RTFM

Vraagje. ik heb een "alle lampen uit" automatisering. Deze is beperkt tot de begane grond en eerste verdieping beneden. De automatisering kan worden gestart met een knop in dashboard (vandaar de naam..) maar is inmiddels ook gekoppeld aan mijn avondroutine (script - vanuit ios widget)

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
alias: Lampen binnen uit knop
description: ""
triggers:
  - event_data:
      actionName: Alle lampen uit
    event_type: ios.action_fired
    trigger: event
conditions: []
actions:
  - action: light.turn_off
    metadata: {}
    data: {}
    target:
      floor_id:
        - begane_grond
        - eerste_verdieping
mode: single


Ik heb een plug ("lamp") die ik meestal gebruik in een van de slaapkamers (onder de noemer "konijn"), maar nu buiten heb gehangen voor kerstverlichting. Ik heb de ruimte gewijzigd naar "buiten" (dit is géén onderdeel van BG). De automatisering zet toch nog de lamp uit.

De logs op het niveau van de lamp zijn echter bijzonder. Bij een willekeurige lamp, zie ik
Slaapkamer xxx uitgezet getriggerd door automatisering Lampen binnen uit knop triggered
08:22:54 - 1 uur geleden
Bij de betreffende lamp
Konijn aka buiten kerst uitgezet
08:22:54 - 1 uur geleden
Tijdstip hetzelfde, maar geen verwijzing naar de automatisering.
[/quote]

Iemand een idee hoe dit kan? Een reboot zou niet nodig zijn na wijzigen ruimte toch?

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


  • TheFes
  • Registratie: Juni 2001
  • Laatst online: 06:49
pietje63 schreef op dinsdag 16 december 2025 @ 09:29:
Vraagje. ik heb een "alle lampen uit" automatisering. Deze is beperkt tot de begane grond en eerste verdieping beneden. De automatisering kan worden gestart met een knop in dashboard (vandaar de naam..) maar is inmiddels ook gekoppeld aan mijn avondroutine (script - vanuit ios widget)

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
alias: Lampen binnen uit knop
description: ""
triggers:
  - event_data:
      actionName: Alle lampen uit
    event_type: ios.action_fired
    trigger: event
conditions: []
actions:
  - action: light.turn_off
    metadata: {}
    data: {}
    target:
      floor_id:
        - begane_grond
        - eerste_verdieping
mode: single


Ik heb een plug ("lamp") die ik meestal gebruik in een van de slaapkamers (onder de noemer "konijn"), maar nu buiten heb gehangen voor kerstverlichting. Ik heb de ruimte gewijzigd naar "buiten" (dit is géén onderdeel van BG). De automatisering zet toch nog de lamp uit.

De logs op het niveau van de lamp zijn echter bijzonder. Bij een willekeurige lamp, zie ik

[...]

Bij de betreffende lamp

[...]

Tijdstip hetzelfde, maar geen verwijzing naar de automatisering.
[/quote]

Iemand een idee hoe dit kan? Een reboot zou niet nodig zijn na wijzigen ruimte toch?
Heb je wellicht alleen de area gewijzigd op de entity, maar staat het device nog wel op de slaapkamer?

Home Assistant configuratie


  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 08-01 16:37

pietje63

RTFM

TheFes schreef op dinsdag 16 december 2025 @ 09:57:
[...]

Heb je wellicht alleen de area gewijzigd op de entity, maar staat het device nog wel op de slaapkamer?
Even gecontroleerd:
entity staat op "ruimte van apparaat gebruiken"
en appartaat staat op "buiten".

In de tijdslijn tracering van de automation komt deze lamp ook niet terug.

Inmiddels denk ik wel het probleem te hebben gevonden. In de tijdslijn tracering van de automation stond een lamp in die ik niet kon plaatsen (want voor mijn gevoel uit was). Blijkt dat er een hue groep is, waar deze nog wel in zit... en deze groep zit (zat) nog wel gekoppeld aan de slaapkamer

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


  • Borromini
  • Registratie: Januari 2003
  • Niet online

Borromini

Mislukt misantroop

Borromini schreef op maandag 15 december 2025 @ 00:05:
Ik had graag het icoon van een template sensor ingesteld op basis van de waarde, maar de logs laten zien dat trash_dict niet is gedefinieerd voor het icoon.

code:
1
TemplateError('UndefinedError: 'trash_dict' is undefined') while processing template 'Template<template=({% if trash_dict.get(next_date) == Papier %} mdi:package-variant {% elif trash_dict.get(next_date) == PMD %} mdi:bottle-soda-classic-outline {% endif %}) renders=5>' for attribute '_attr_icon' in entity 'sensor.afvalfractie'


Template:

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- sensor:
    - name: Afvalfractie
      unique_id: afvalfractie
      state: >
        {% set trash_dict = 
          { states('sensor.pmd'): "PMD",
            states('sensor.papier_karton'): "Papier"
          }
         %}
        {% set next_date = trash_dict.keys()|sort|first %}
        {{ trash_dict.get(next_date)}}: {{ (next_date|as_datetime).strftime("%-d/%m") }}
      icon: >
        {% if trash_dict.get(next_date) == Papier %}
          mdi:package-variant
        {% elif trash_dict.get(next_date) == PMD %}
          mdi:bottle-soda-classic-outline
        {% endif %}


Ik kan de code van de state opnieuw hernemen, maar is er een efficiëntere manier om die waarde (tijdelijk) op te slaan en opnieuw uit te lezen?
Iemand? Als ik de trash_dict code herneem onder icon: > heb ik geen foutmeldingen meer in de logs, maar HA stelt ook geen icoon in.

Got Leenucks? | Debian Bookworm x86_64 / ARM | OpenWrt: Empower your router | Blogje


  • TheFes
  • Registratie: Juni 2001
  • Laatst online: 06:49
Borromini schreef op dinsdag 16 december 2025 @ 11:01:
[...]

Iemand? Als ik de trash_dict code herneem onder icon: > heb ik geen foutmeldingen meer in de logs, maar HA stelt ook geen icoon in.
Alle keys hebben een unieke scope, de dict die je aanmaakt onder je state template, is niet beschikbaar onder je icon template.

Je kunt variables gebruiken om ze wel in de hele entity config beschikbaar te maken. Alternatief zou zijn om trash_dict en next_date nog een keer te definiëren onder icon, maar onderstaande lijkt me efficienter.

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
- sensor:
    - name: Afvalfractie
      unique_id: afvalfractie
      variables:
        trash_dict: >
          {{
            {
              states('sensor.pmd'): "PMD",
              states('sensor.papier_karton'): "Papier"
            }
          }}
        next_date: "{{ trash_dict.keys()|sort|first }}"
      state: >
        {{ trash_dict.get(next_date)}}: {{ (next_date|as_datetime).strftime("%-d/%m") }}
      icon: >
        {% if trash_dict.get(next_date) == Papier %}
          mdi:package-variant
        {% elif trash_dict.get(next_date) == PMD %}
          mdi:bottle-soda-classic-outline
        {% endif %}

[ Voor 6% gewijzigd door TheFes op 16-12-2025 11:08 ]

Home Assistant configuratie


  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 05:14
TheFes schreef op dinsdag 16 december 2025 @ 11:06:
Je kunt variables gebruiken om ze wel in de hele entity config beschikbaar te maken. [...]

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
- sensor:
    - name: Afvalfractie
      unique_id: afvalfractie
      variables:
        trash_dict: >
          {{
            {
              states('sensor.pmd'): "PMD",
              states('sensor.papier_karton'): "Papier"
            }
          }}
        next_date: "{{ trash_dict.keys()|sort|first }}"
      state: >
        {{ trash_dict.get(next_date)}}: {{ (next_date|as_datetime).strftime("%-d/%m") }}
      icon: >
        {% if trash_dict.get(next_date) == Papier %}
          mdi:package-variant
        {% elif trash_dict.get(next_date) == PMD %}
          mdi:bottle-soda-classic-outline
        {% endif %}
Oe nice. En die variables zorgen neem ik aan ook gewoon voor automatische herevaluatie van het template? (Als in: state changes van entities gebruikt in de variables zorgen automatisch ervoor dat het template opnieuw wordt uitgevoerd).

Want hier kan ik denk ik ook wel iets mee :) (in de zin van dat ik nu IIRC wat "dubbele" sensoren heb om 1x een state te berekenen als een "interne" sensor en vervolgens nog een "publieke" sensor (die ik in automations etc gebruik) waarin ik de state van de "internal" gebruik om zowel de state als wat attributes te bepalen).

  • TheFes
  • Registratie: Juni 2001
  • Laatst online: 06:49
RobertMe schreef op dinsdag 16 december 2025 @ 11:28:
[...]

Oe nice. En die variables zorgen neem ik aan ook gewoon voor automatische herevaluatie van het template? (Als in: state changes van entities gebruikt in de variables zorgen automatisch ervoor dat het template opnieuw wordt uitgevoerd).

Want hier kan ik denk ik ook wel iets mee :) (in de zin van dat ik nu IIRC wat "dubbele" sensoren heb om 1x een state te berekenen als een "interne" sensor en vervolgens nog een "publieke" sensor (die ik in automations etc gebruik) waarin ik de state van de "internal" gebruik om zowel de state als wat attributes te bepalen).
Ja, de entities gebruikt in je variables zetten ook listeners.

Als meerdere sensoren dezelfde variables gebruiken, dan kan kun je het ook nog een niveau hoger definiëren, maar die worden alleen resolved bij een template reload. Dus dat is alleen voor statische variables. Bij trigger based template sensors worden deze wel op de trigger resolved.

Voorbeeld:

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
template:
  - variables:
      mapper:
        - state: sunny
          translation: zonnig
          icon: "mdi:sunny"
        - state: cloudy
          translation: bewolkt
          icon: "mdi:cloudy"
    sensor:
      - name: Weer vertaald
        state: "{{ mapper | selectattr('state', 'eq', states('weather.home')) | map(attribute='translation') | list | first }}"
        icon: "{{ mapper | selectattr('state', 'eq', states('weather.home')) | map(attribute='icon') | list | first }}"

Home Assistant configuratie


  • WoBBeL
  • Registratie: Juni 2004
  • Laatst online: 06-01 07:07

WoBBeL

*zwaai*

Vandaag voor het eerst Matter (over Thread) devices gekocht bij de IKEA. In eerste instantie ging het niet lekker omdat mn Matter plugin nog niet draaide maar hierna was het toevoegen van devices vrij pijnloos. Even wennen dat het met de QR code moet vanaf m'n telefoon en niet meer in pairing mode zetten. Moeiteloos door HA herkend! Hulde voor alle dev's _/-\o_

[edit]
Wat je ook doet, op Android niet je telefoon z'n scherm uit laten gaan dan kun je opnieuw beginnen, ook als hij al aan je Thread netwerk is toegevoegd 8)7 dan voert hij de matter stap niet uit.

[ Voor 30% gewijzigd door WoBBeL op 16-12-2025 12:51 ]


  • Pukson
  • Registratie: September 2013
  • Laatst online: 08-01 15:08
Septillion schreef op maandag 15 december 2025 @ 11:11:
@Pukson Drop in replacement is wel heeeeeel makkelijk :D

Andere alternatieven die ik snel kan vinden:
Gledopto
Ali inline
Ali module
Shelly Plus RGBW (Wifi, geen Zigbee)

En @RonJ linkt ook een aardige.
Na wat zoek werk blijkt het deze te zijn. https://www.matcall.nl/producten/mc-easy-ontvanger-m12/

Denk dat dit het makkelijkste is te vervangen door dit. Lijkt haast plug and play. Gezien de poorten etc overeenkomen. Dit i.t.t die van ali.

https://www.robbshop.nl/r...2609&utm_term&utm_content

Klopt mijn denkwijze? Zo ja dan bestel ik het :)

  • Hippe Lip
  • Registratie: Februari 2011
  • Laatst online: 06:20

Hippe Lip

Er valt altijd wat te leren

Toppe schreef op dinsdag 16 december 2025 @ 09:17:
Netjes de containers op een rijtje met daar onder het aantal dagen tot lediging
[Afbeelding]

Benodigdheden:
Auto entities
Template entity row
Afvalinfo

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
type: custom:auto-entities
card:
  type: entities
  title: Afvalkalender
filter:
  include:
    - options:
        type: custom:template-entity-row
        secondary: >
          {% set days = state_attr(config.entity, 'days_until_collection_date')
          | int(default=-1) %} {{ 'Vandaag!' if days == 0 
             else 'Morgen' if days == 1
             else 'Over ' ~ days ~ ' dagen' if days > 1
             else 'Geen geplande ophaling' }}
        tap_action:
          action: none
      entity_id: sensor.afvalinfo_home_*
  exclude:
    - options: {}
      entity_id: sensor.afvalinfo_home_trash_type_today
    - options: {}
      entity_id: sensor.afvalinfo_home_trash_type_tomorrow
show_empty: false
sort:
  method: attribute
  attribute: days_until_collection_date
  numeric: true

Ik heb 'alles' in popup's weg gewerkt, deze opent een seperate pagina binnen het zelfde dashboard. Dit zorgt er voor dat ik heel snel op verschillende plekken een popup kan maken en ik deze ook heel eenvoudig kan bewerken door een specifieke pagina te bewerken. Dit zorgt er voor dat ik een heel opgeruimd dashboard hou en ik alleen informatie zie wanneer ik dat nodig ben.
[Afbeelding]
@D4NG3R
@Toppe Je hebt ze allemaal netjes op datumvolgorde. Is dat toevallig, of sorteer je dat op de een of andere manier bij het weergeven?
Daar ben ik namelijk nog naar op zoek en ik zie in je code niet echt dat er daar gesorteerd wordt.

Verdraagzaamheid is het hoogste gebod
en wie dat niet eert die schoppen we rot.
<John O`Mill>


  • Impossibl3
  • Registratie: November 2012
  • Nu online
Vraagje. Heeft iemand hier misschien HA draaien in combinatie met een Nvidia Jetson Orin Nano die ergens in het netwerk hangt om lokaal AI te draaien?

Ik merk dat ik steeds nieuwsgieriger wordt naar die Nvidia Jetson Orin Nano en de mogelijkheden maar ik moet nog een "goede reden" hebben om voor de gein even ca €400,-- uit te geven (249 ex BTW, maar 299 incl. btw op Bol + SD kaartje & SSD).

Ik weet niet helemaal of dit de goede plek is maar om nu een los topic te openen vind ik wat ver gaan aangezien ik nog in de zeer beginnende onderzoekfase zit.

PV 5.590 Wp Enphase, 2.700 Wp Growatt - Easee laadpaal - Itho Amber 95 WP


  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 23:11
Hippe Lip schreef op dinsdag 16 december 2025 @ 13:18:
[...]

@Toppe Je hebt ze allemaal netjes op datumvolgorde. Is dat toevallig, of sorteer je dat op de een of andere manier bij het weergeven?
Daar ben ik namelijk nog naar op zoek en ik zie in je code niet echt dat er daar gesorteerd wordt.
Kan je auto entities voor gebruiken. Moet je wel opletten dat je op attribute sorteert. Als je de state van de sensor pakt dan werkt niet niet goed, alles komt dan elke keer door elkaar te staan.

De plugin van afval info vooriet daarin door een ruw attribuut mee te geven met het aantal dagen, dat is gewoon een number en dus makelijk te gebruiken om te sorteren :)

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


  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:28

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@Pukson Dat lijkt er inderdaad erg op. En specs kloppen ook. Dus denk dat ze gewoon zelf aan rebranding doen. Maar lijkt me prima om hem daarmee te wisselen :)

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:28

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
Koepert schreef op dinsdag 16 december 2025 @ 07:29:
[...]


Ik denk dat ik deze getackeld heb. Ziet iemand hier volledige overkill of fouten?

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
alias: Verbruik Was
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.wasmachine_power
    for:
      hours: 0
      minutes: 1
      seconds: 0
    above: 10
conditions: []
actions:
  - action: input_number.set_value
    metadata: {}
    target:
      entity_id: input_number.wasbeurt
    data:
      value: "{{ states('sensor.wasmachine_energy') | float}}"
  - wait_for_trigger:
      - trigger: numeric_state
        entity_id:
          - sensor.wasmachine_power
        for:
          hours: 0
          minutes: 5
          seconds: 0
        below: 5
  - action: input_number.set_value
    metadata: {}
    target:
      entity_id: input_number.wasbeurt
    data:
      value: >-
        {{ (states('sensor.wasmachine_energy') | float ) -
        (states('input_number.wasbeurt') | float | round(0)) }}
  - action: notify.homeassistant_bot
    metadata: {}
    data:
      target: "kanaalnummer weggehaald"
      message: >-
        🧺👕De was is klaar! Het verbruik was {{ states('input_number.wasbeurt'
        ) | round(0) }} wH.
    alias: Discord melding
mode: single
Op zich prima, ik hou alleen zelf niet van lang wachten in een automation. Bij een herstart of automations herladen ben je dan weer af. Dus zelf heb ik zowel boven de drempelwaarde als onder de drempelwaarde als trigger. En houdt ik in een helper bij of de wasmachine bezig is. Kan een input_boolean zijn maar gebruik zelf een [mono]input_select[] omdat ik ook nog bijhoudt of hij klaar is maar niet leeggehaald (off, running, done). Daardoor kan ik gewoon de status aanpassen en weer de automation verlaten. En geeft me gelijk de mogelijkheid op een dashboard om de state weer te geven.

En weet dat mocht de energy sensor niet beschikbaar zijn dat je wel direct een error aan je broek hebt omdat je geen default gebruikt.

PS Het is Wh, niet wH :+

  • InjecTioN
  • Registratie: Juli 2005
  • Laatst online: 00:28

InjecTioN

¯\_(ツ)_/¯

Impossibl3 schreef op dinsdag 16 december 2025 @ 13:24:
Vraagje. Heeft iemand hier misschien HA draaien in combinatie met een Nvidia Jetson Orin Nano die ergens in het netwerk hangt om lokaal AI te draaien?

Ik merk dat ik steeds nieuwsgieriger wordt naar die Nvidia Jetson Orin Nano en de mogelijkheden maar ik moet nog een "goede reden" hebben om voor de gein even ca €400,-- uit te geven (249 ex BTW, maar 299 incl. btw op Bol + SD kaartje & SSD).

Ik weet niet helemaal of dit de goede plek is maar om nu een los topic te openen vind ik wat ver gaan aangezien ik nog in de zeer beginnende onderzoekfase zit.
Ik ken eerlijk gezegd niemand met een Nvidia systeem, buiten een aantal Youtubers die zo'n ding hebben om mee te klooien. Meestal draaien die alleen maar benchmarks en laten ze 'm daarna weer links liggen. Althans, er komen geen vervolg video's.

Ik verwacht dat je eerder iets hebt aan een usecase, "lokaal AI draaien" is natuurlijk een arbitraire reden. Ik hoor vaker dat mensen NPU compute inkopen om daarna pas de usecase te verzinnen. Dat is naar mijn mening zonde van je geld. :)

De enige manier waarop ik een Jetson gebruikt zou zien worden in combinatie met Home Assistant is een losse Home Assistant instance en daarnaast de Jetson als een losse AI node voor camera AI (ook af te vangen met een Coral TPU), of een voice pipeline iets als bijvoorbeeld Whisper om als offline STT te dienen. Daar leent die Jetson zich prima voor. Eventueel misschien zelfs een kleine LLM voor context?

Mocht iemand bovenstaande kunnen ontkrachten, voel je vrij.

1995: 486 AM5x86-p75@160 512kb L2, 64MB, S3 Stealth 64 3000 4MB VLB, AWE64 Value, 8GB CFµDrive
1998: K6-III 400MHz, 384MB, Voodoo4 AGP, AWE64 Gold!, Adaptec AHA-29160+2x 72GB 10krpm SCSI


  • Koepert
  • Registratie: Augustus 2013
  • Nu online
Septillion schreef op dinsdag 16 december 2025 @ 14:06:
[...]

Op zich prima, ik hou alleen zelf niet van lang wachten in een automation. Bij een herstart of automations herladen ben je dan weer af. Dus zelf heb ik zowel boven de drempelwaarde als onder de drempelwaarde als trigger. En houdt ik in een helper bij of de wasmachine bezig is. Kan een input_boolean zijn maar gebruik zelf een [mono]input_select[] omdat ik ook nog bijhoudt of hij klaar is maar niet leeggehaald (off, running, done). Daardoor kan ik gewoon de status aanpassen en weer de automation verlaten. En geeft me gelijk de mogelijkheid op een dashboard om de state weer te geven.

En weet dat mocht de energy sensor niet beschikbaar zijn dat je wel direct een error aan je broek hebt omdat je geen default gebruikt.

PS Het is Wh, niet wH :+
Thx, maar hoe zou je dat dan doen met een select? In de automation die above waarde als trigger en dan als actie de select op running, en die running als trigger voor de telling?


Heb nu dit er van gemaakt. Ik heb nog iets teveel Wait for in mn systeem zitten. Het is wel mn idee om dat zoveel mogelijk te strippen, maar t is n soort "automatisme"..


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
alias: Verbruik Was
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.wasmachine_aan
    to:
      - "on"
    for:
      hours: 0
      minutes: 0
      seconds: 10
    id: Was aan
  - trigger: state
    entity_id:
      - binary_sensor.wasmachine_aan
    from:
      - "on"
    to:
      - "off"
    id: Was uit
    for:
      hours: 0
      minutes: 0
      seconds: 30
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Was aan
        sequence:
          - action: input_number.set_value
            metadata: {}
            target:
              entity_id: input_number.wasbeurt
            data:
              value: "{{ states('sensor.wasmachine_energy') | default(0)| float}}"
      - conditions:
          - condition: trigger
            id:
              - Was uit
        sequence:
          - action: input_number.set_value
            metadata: {}
            target:
              entity_id: input_number.wasbeurt
            data:
              value: >-
                {{ (states('sensor.wasmachine_energy') | default(0)| float ) -
                (states('input_number.wasbeurt') | default(0) | float |
                round(0)) }}
            enabled: true
          - alias: Discord melding
            action: notify.homeassistant_bot
            metadata: {}
            data:
              target: "kanaalnummer"
              message: >-
                🧺👕De was is klaar! Het verbruik was {{
                states('input_number.wasbeurt' ) | default(0) | round(0) }} Wh.
            enabled: true
mode: single


Ik krijg nu echter vrij frequent deze melding::

Logger: homeassistant.helpers.event
Bron: helpers/event.py:360
Eerst voorgekomen: 15:59:04 (2 gebeurtenissen)
Laatst gelogd: 15:59:19

Error while dispatching event for sensor.wasmachine_power to <Job track state_changed event ['sensor.wasmachine_power'] HassJobType.Callback <function ThresholdSensor._async_setup_sensor.<locals>.async_threshold_sensor_state_listener at 0x7f85938704a0>>
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/event.py", line 360, in _async_dispatch_entity_id_event
hass.async_run_hass_job(job, event)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 918, in async_run_hass_job
hassjob.target(*args)
~~~~~~~~~~~~~~^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/threshold/binary_sensor.py", line 241, in async_threshold_sensor_state_listener
_update_sensor_state()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/src/homeassistant/homeassistant/components/threshold/binary_sensor.py", line 228, in _update_sensor_state
self._update_state()
~~~~~~~~~~~~~~~~~~^^
File "/usr/src/homeassistant/homeassistant/components/threshold/binary_sensor.py", line 304, in _update_state
if above(self.sensor_value, self._threshold_upper):
~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/threshold/binary_sensor.py", line 277, in above
return sensor_value > (threshold + self._hysteresis)
~~~~~~~~~~^~~~~~~~~~~~~~~~~~
TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'


De bovengrens is 60, Hysteresis 30 en hij kijkt naar: sensor.wasmachine_power die momenteel op 0 staat. Maar dit is dus die binary waar de automation ook naar kijkt

[ Voor 70% gewijzigd door Koepert op 16-12-2025 16:04 ]


  • Gizz
  • Registratie: Maart 2001
  • Laatst online: 06:29

Gizz

Dunder-Mifflin, Inc.

@Impossibl3 je geeft niet echt aan met wat voor AI je aan de slag wil gaan. Ook weet ik niet hoe je systeem/homelab nu opgebouwd is. Maar als ik nu behoefte zou hebben aan bijvoorbeeld een sneller lokaal LLM d.m.v. Ollama zou ik eerder die €400 steken in een videokaart voor mijn server dan in een los apparaatje.

Canon EOS 5Dm3 + 5D + 7D + 300D + 1000FN + EF 17-40 4L + EF 35 1.4L + EF 50 1.8 + EF 80-200 2.8L + 550EX


  • Impossibl3
  • Registratie: November 2012
  • Nu online
Gizz schreef op dinsdag 16 december 2025 @ 14:47:
@Impossibl3 je geeft niet echt aan met wat voor AI je aan de slag wil gaan. Ook weet ik niet hoe je systeem/homelab nu opgebouwd is. Maar als ik nu behoefte zou hebben aan bijvoorbeeld een sneller lokaal LLM d.m.v. Ollama zou ik eerder die €400 steken in een videokaart voor mijn server dan in een los apparaatje.
Ah ja check. Ik draai HA nu op een Intel NUC. Ik heb nog een oude PC staan maar die heeft best wel wat liefde nodig om de moderne kaarten te accepteren (de voeding is bijvoorbeeld niet krachtig genoeg)

Wat ik wil doen is beeldherkenning van de camera gericht op de oprit. Dit zodat er geen beelden naar buiten hoeven worden gestuurd als de set eenmaal getraind is. Nu wil ik een melding krijgen als een onbekende aan de deur staat en dus niet mijn buurman die naar zijn deur loopt. Deze (prive) informatie wil ik niet naar de cloud sturen want de aanbellers hebben hier geen toestemming voor gegeven als ze voor het eerst aanbellen. Ik draai via HA nu frigate met een Google Coral want anders werd het systeem te zwaar belast.

Daarnaast wil ik graag algemenere commando's geven zoals zet de lichten uit in de woonkamer ipv zet de lampen XYZ uit (alle specifieke lampen in de woonkamer) zodat ik of mijn gezien niet hele exacte commando's hoef te geven.

Als 3de wil ik graag wat gevoelige data analyseren (los van HA) met betrekking tot bankafschrijvingen (IBAN, Incasso ID's etc.) en nog niet gepubliceerde rapporten.

[ Voor 4% gewijzigd door Impossibl3 op 16-12-2025 15:46 ]

PV 5.590 Wp Enphase, 2.700 Wp Growatt - Easee laadpaal - Itho Amber 95 WP


  • Impossibl3
  • Registratie: November 2012
  • Nu online
InjecTioN schreef op dinsdag 16 december 2025 @ 14:28:
[...]

Ik ken eerlijk gezegd niemand met een Nvidia systeem, buiten een aantal Youtubers die zo'n ding hebben om mee te klooien. Meestal draaien die alleen maar benchmarks en laten ze 'm daarna weer links liggen. Althans, er komen geen vervolg video's.

Ik verwacht dat je eerder iets hebt aan een usecase, "lokaal AI draaien" is natuurlijk een arbitraire reden. Ik hoor vaker dat mensen NPU compute inkopen om daarna pas de usecase te verzinnen. Dat is naar mijn mening zonde van je geld. :)

De enige manier waarop ik een Jetson gebruikt zou zien worden in combinatie met Home Assistant is een losse Home Assistant instance en daarnaast de Jetson als een losse AI node voor camera AI (ook af te vangen met een Coral TPU), of een voice pipeline iets als bijvoorbeeld Whisper om als offline STT te dienen. Daar leent die Jetson zich prima voor. Eventueel misschien zelfs een kleine LLM voor context?

Mocht iemand bovenstaande kunnen ontkrachten, voel je vrij.
Een van de mensen waar ik mee sport heeft een Jatson aangeschaft maar hij werkt voor KPN en zit daar in een AI groepje. Hij gebruikt het ook als "werk" systeempje om te kijken wat er kan. Hij heeft geen slim huis want programmeren doet die al genoeg op zijn werk zegt die. _O-

PV 5.590 Wp Enphase, 2.700 Wp Growatt - Easee laadpaal - Itho Amber 95 WP


  • TheFes
  • Registratie: Juni 2001
  • Laatst online: 06:49
Impossibl3 schreef op dinsdag 16 december 2025 @ 15:41:
[...]


Ah ja check. Ik draai HA nu op een Intel NUC. Ik heb nog een oude PC staan maar die heeft best wel wat liefde nodig om de moderne kaarten te accepteren (de voeding is bijvoorbeeld niet krachtig genoeg)

Wat ik wil doen is beeldherkenning van de camera gericht op de oprit. Dit zodat er geen beelden naar buiten hoeven worden gestuurd als de set eenmaal getraind is. Nu wil ik een melding krijgen als een onbekende aan de deur staat en dus niet mijn buurman die naar zijn deur loopt. Deze (prive) informatie wil ik niet naar de cloud sturen want de aanbellers hebben hier geen toestemming voor gegeven als ze voor het eerst aanbellen. Ik draai via HA nu frigate met een Google Coral want anders werd het systeem te zwaar belast.

Daarnaast wil ik graag algemenere commando's geven zoals zet de lichten uit in de woonkamer ipv zet de lampen XYZ uit (alle specifieke lampen in de woonkamer) zodat ik of mijn gezien niet hele exacte commando's hoef te geven.

Als 3de wil ik graag wat gevoelige data analyseren (los van HA) met betrekking tot bankafschrijvingen (IBAN, Incasso ID's etc.) en nog niet gepubliceerde rapporten.
Even op een specifiek item uit je post reageren, maar "Zet de lampen in de woonkamer uit" zou in het Nederlands prima moeten werken met Speech to Phrase

Home Assistant configuratie


  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 23:11
Impossibl3 schreef op dinsdag 16 december 2025 @ 15:41:
[...]


Ah ja check. Ik draai HA nu op een Intel NUC. Ik heb nog een oude PC staan maar die heeft best wel wat liefde nodig om de moderne kaarten te accepteren (de voeding is bijvoorbeeld niet krachtig genoeg)

Wat ik wil doen is beeldherkenning van de camera gericht op de oprit. Dit zodat er geen beelden naar buiten hoeven worden gestuurd als de set eenmaal getraind is. Nu wil ik een melding krijgen als een onbekende aan de deur staat en dus niet mijn buurman die naar zijn deur loopt. Deze (prive) informatie wil ik niet naar de cloud sturen want de aanbellers hebben hier geen toestemming voor gegeven als ze voor het eerst aanbellen. Ik draai via HA nu frigate met een Google Coral want anders werd het systeem te zwaar belast.

Als 3de wil ik graag wat gevoelige data analyseren (los van HA) met betrekking tot bankafschrijvingen (IBAN, Incasso ID's etc.) en nog niet gepubliceerde rapporten.
Ik zou 1 en 3 sowieso nooit combineren.

Ik heb Frigate draaien, dat werkt lokaal prima. Je zou bijvoorbeeld ook iets van een Coral of wat vergelijkbaars kunnen nemen.

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


  • Impossibl3
  • Registratie: November 2012
  • Nu online
Toppe schreef op dinsdag 16 december 2025 @ 16:21:
[...]


Ik zou 1 en 3 sowieso nooit combineren.

Ik heb Frigate draaien, dat werkt lokaal prima. Je zou bijvoorbeeld ook iets van een Coral of wat vergelijkbaars kunnen nemen.
Frigate draait ook lokaal met een Coral. Dat gaat prima. Het trainen van gezicht herkenning is mij alleen nog niet gelukt binnen Frigate (moet ik eens goed induiken).

Punt 3 wil ik ook absoluut niet in een cloud gaan draaien. Vandaar het lokale aspect.

PV 5.590 Wp Enphase, 2.700 Wp Growatt - Easee laadpaal - Itho Amber 95 WP


  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 05:14
TheFes schreef op dinsdag 16 december 2025 @ 16:04:
[...]


Even op een specifiek item uit je post reageren, maar "Zet de lampen in de woonkamer uit" zou in het Nederlands prima moeten werken met Speech to Phrase
En anders lijkt me toch wel met Whisper dat ook prima zal werken op een beetje hardware?

Nu draai ik zelf ook Speech to Phrase (op een N5105 systeem dus niet heel geweldig), maar dat valt me toch een beetje tegen. "Zet positie rolluik op X" (of "X procent") is iets dat die niet kent. Instellen temperatuur (wederom nummers) doet die ook niet. De set aan beschikbare zinnen is echt gewoon extreem beperkt.
En an zich maakt dat niet zo heel veel uit als er aan gewerkt wordt. Maar de laatste release is IIRC al een aantal maanden oud. En voor (bv) rolluiken staat er al veel langer een issue / feature request. Het voelt een beetje alsof het een proof of concept is, en het werkt nu, en that's it (of een programmeur die de code heeft geschreven, evt nog onderhoud (maar niet echt nodig is), maar niet de interesse heeft om bv de zinnen te "synchoniseren" uit de HA intents repo). Terwijl er IMO een redelijke "ontwikkeling" zou "moeten" zijn in ondersteunde zinnen. En dat is er niet.
* RobertMe moet dus of eens kijken of hier iets aan valt bij te dragen, of maar overstappen op Whisper. Maar anderzijds doe ik bijna niks met voice. Alhoewel ik wel overweeg om of zelf iets van voice te bouwen, of een Satelite1 te kopen.

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 05:14
Toppe schreef op dinsdag 16 december 2025 @ 16:21:
Ik heb Frigate draaien, dat werkt lokaal prima. Je zou bijvoorbeeld ook iets van een Coral of wat vergelijkbaars kunnen nemen.
Impossibl3 schreef op dinsdag 16 december 2025 @ 16:24:
[...]


Frigate draait ook lokaal met een Coral.
Draait Frigate niet al een hele tijd ook prima met OpenVINO? Een feature van Intel CPUs?/GPUs? Dus aanwezig op elk modern(er) Intel systeem. (* checkt * vanaf 6th gen. Dat zijn CPUs uit ~2016, niet echt "modern" vereist dus). Een Coral is dus al lang niet meer nodig. (Maar als je hem hebt vast nog steeds prima. Maar wellicht wel relevant voor meelezers).

  • TheFes
  • Registratie: Juni 2001
  • Laatst online: 06:49
RobertMe schreef op dinsdag 16 december 2025 @ 16:47:
[...]

En anders lijkt me toch wel met Whisper dat ook prima zal werken op een beetje hardware?

Nu draai ik zelf ook Speech to Phrase (op een N5105 systeem dus niet heel geweldig), maar dat valt me toch een beetje tegen. "Zet positie rolluik op X" (of "X procent") is iets dat die niet kent. Instellen temperatuur (wederom nummers) doet die ook niet. De set aan beschikbare zinnen is echt gewoon extreem beperkt.
En an zich maakt dat niet zo heel veel uit als er aan gewerkt wordt. Maar de laatste release is IIRC al een aantal maanden oud. En voor (bv) rolluiken staat er al veel langer een issue / feature request. Het voelt een beetje alsof het een proof of concept is, en het werkt nu, en that's it (of een programmeur die de code heeft geschreven, evt nog onderhoud (maar niet echt nodig is), maar niet de interesse heeft om bv de zinnen te "synchoniseren" uit de HA intents repo). Terwijl er IMO een redelijke "ontwikkeling" zou "moeten" zijn in ondersteunde zinnen. En dat is er niet.
* RobertMe moet dus of eens kijken of hier iets aan valt bij te dragen, of maar overstappen op Whisper. Maar anderzijds doe ik bijna niks met voice. Alhoewel ik wel overweeg om of zelf iets van voice te bouwen, of een Satelite1 te kopen.
Het cover voorbeeld zou volgens mij moeten werken, tenzij Whisper je natuurlijk niet verstaat
Wel moet je er ofwel de name van de cover entity bij zetten, of de area. Er zijn geen area aware set cover position zinnen. Ook niet in het Engels.
De zinnen uit de HA intents repo worden in principe elke maand gewoon meegenomen in de releases, in ieder geval in de .0 release. Voor NL zijn in oktober voor het laatst updates geweest, maar over het algemeen zijn er nog heel regelmatig updates aan de intents.

Home Assistant configuratie


  • Impossibl3
  • Registratie: November 2012
  • Nu online
RobertMe schreef op dinsdag 16 december 2025 @ 16:52:
[...]


[...]

Draait Frigate niet al een hele tijd ook prima met OpenVINO? Een feature van Intel CPUs?/GPUs? Dus aanwezig op elk modern(er) Intel systeem. (* checkt * vanaf 6th gen. Dat zijn CPUs uit ~2016, niet echt "modern" vereist dus). Een Coral is dus al lang niet meer nodig. (Maar als je hem hebt vast nog steeds prima. Maar wellicht wel relevant voor meelezers).
Klopt maar naar mijn weten kan je OpenVINO niet draaien binnen Frigate als je deze als add-on hebt geïnstalleerd. Dit omdat je binnen HAOS niet OpenVINO kan installeren. Mocht je daarnaast gebruik willen maken van hun AI service dan pomp je dan nog steeds data naar een cloud server (die van OpenVINO) .

PV 5.590 Wp Enphase, 2.700 Wp Growatt - Easee laadpaal - Itho Amber 95 WP


  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 05:14
TheFes schreef op dinsdag 16 december 2025 @ 17:03:
[...]


Het cover voorbeeld zou volgens mij moeten werken, tenzij Whisper je natuurlijk niet verstaat
Wel moet je er ofwel de name van de cover entity bij zetten, of de area. Er zijn geen area aware set cover position zinnen. Ook niet in het Engels.
De zinnen uit de HA intents repo worden in principe elke maand gewoon meegenomen in de releases, in ieder geval in de .0 release. Voor NL zijn in oktober voor het laatst updates geweest, maar over het algemeen zijn er nog heel regelmatig updates aan de intents.
V.w.b. de rest van de post doelde ik op Speech to Phrase :) Daarin ontbreekt grotendeels ondersteuning voor covers (alleen (volledig) open en dicht zit daar in meen ik). Dat de intents in HA zitten weet ik (want soms type ik ze uit in Assist op de telefoon :X). En met Whisper als STT engine zal het dan ook vast wel werken zolang die het verstaat. Maar Speech to Phrase zitten deze zinnen niet in dus die verstaat ze ook niet -O-

  • S. Belshof
  • Registratie: Januari 2023
  • Laatst online: 07-01 22:04
Hallo,

Ik ben nieuw met ha. Nu heb ik mijn homewizzard installatie en slimme meter geïntrigeerd maar krijg het in en uit schakelen op overschot niet werkend. Inschakelen gebeurt meestal wel maar uit heel vaak niet. zoals vanavond is het donker en is de boiler nog aan. Hebben jullie een idee? Ik gebruik voor inschakelen deze code
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 alias: Inschakelen SWW boiler
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.electricity_meter_energieproductie
    above: 300
    for:
      hours: 0
      minutes: 1
      seconds: 0
conditions: []
actions:
  - type: turn_on
    device_id: 90766c5b28dee98727ff896d5c5a0318
    entity_id: 329f150479d781e4ce060b77ad39e1df
    domain: switch
mode: restart    


voor het uitschakelen gebruik ik de volgende code

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  alias: SWW Boiler uitschakelen
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.electricity_meter_energieverbruik
    above: 50
    for:
      hours: 0
      minutes: 2
      seconds: 0
conditions: []
actions:
  - type: turn_off
    device_id: 90766c5b28dee98727ff896d5c5a0318
    entity_id: 329f150479d781e4ce060b77ad39e1df
    domain: switch
mode: restart
  


de boiler is gedimd vandaar de 300 watt inschakel vermogen.
wie weet er raad? In homewizzard werkte het in en uitschakelen altijd perfect, dus wat doe ik fout?

  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 23:11
S. Belshof schreef op dinsdag 16 december 2025 @ 20:17:
Hallo,

Ik ben nieuw met ha. Nu heb ik mijn homewizzard installatie en slimme meter geïntrigeerd maar krijg het in en uit schakelen op overschot niet werkend. Inschakelen gebeurt meestal wel maar uit heel vaak niet. zoals vanavond is het donker en is de boiler nog aan. Hebben jullie een idee? Ik gebruik voor inschakelen deze code
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 alias: Inschakelen SWW boiler
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.electricity_meter_energieproductie
    above: 300
    for:
      hours: 0
      minutes: 1
      seconds: 0
conditions: []
actions:
  - type: turn_on
    device_id: 90766c5b28dee98727ff896d5c5a0318
    entity_id: 329f150479d781e4ce060b77ad39e1df
    domain: switch
mode: restart    


voor het uitschakelen gebruik ik de volgende code

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  alias: SWW Boiler uitschakelen
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.electricity_meter_energieverbruik
    above: 50
    for:
      hours: 0
      minutes: 2
      seconds: 0
conditions: []
actions:
  - type: turn_off
    device_id: 90766c5b28dee98727ff896d5c5a0318
    entity_id: 329f150479d781e4ce060b77ad39e1df
    domain: switch
mode: restart
  


de boiler is gedimd vandaar de 300 watt inschakel vermogen.
wie weet er raad? In homewizzard werkte het in en uitschakelen altijd perfect, dus wat doe ik fout?
Het uitschakelen met below 50 en niet above 50 zijn

Edit; iets te snel gekeken. Je wil de boiler uitschakelen als je verbruik boven de 50w is? Dan schakelt die boiler toch zichzelf uit?

[ Voor 4% gewijzigd door Toppe op 16-12-2025 20:45 ]

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


  • S. Belshof
  • Registratie: Januari 2023
  • Laatst online: 07-01 22:04
Ik wil de boiler uitschakelen als het verbruik van de p1 meter stijgt boven de 50watt.

  • Brynnie
  • Registratie: Februari 2001
  • Niet online
Zijn er sensors waarmee je de informatie van home assistant zelf kan opvragen? Bvb versie nummer van de verschillende onderdelen, hoeveel updates er uit te voeren zijn, uptime, last boot time, … ?

Bij system monitor vind ik de ip adressen, maar geen versienummers.
Bij Home Assistant Supervisor vind ik ook geen versienummers.

[ Voor 25% gewijzigd door Brynnie op 16-12-2025 22:42 ]


  • TheFes
  • Registratie: Juni 2001
  • Laatst online: 06:49
Brynnie schreef op dinsdag 16 december 2025 @ 22:22:
Zijn er sensors waarmee je de informatie van home assistant zelf kan opvragen? Bvb versie nummer van de verschillende onderdelen, hoeveel updates er uit te voeren zijn, uptime, last boot time, … ?
Versie van de verschillende onderdelen kun je uit de update entities van dit onderdelen halen.
Aantal uit te voeren updates ook (tel het aantal update entities met de state on)
Voor last boot time is er de uptime sensor. Ondanks de naam geeft die dus de laatste datum en tijd waarop HA opgestart is, de uptime kun je dan uitrekenen en als je de sensor op je dashboard zet zal de uptime weergegeven worden

Home Assistant configuratie


  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:28

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
Koepert schreef op dinsdag 16 december 2025 @ 14:30:
[...]


Thx, maar hoe zou je dat dan doen met een select? In de automation die above waarde als trigger en dan als actie de select op running, en die running als trigger voor de telling?


Heb nu dit er van gemaakt. Ik heb nog iets teveel Wait for in mn systeem zitten. Het is wel mn idee om dat zoveel mogelijk te strippen, maar t is n soort "automatisme"..


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
alias: Verbruik Was
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.wasmachine_aan
    to:
      - "on"
    for:
      hours: 0
      minutes: 0
      seconds: 10
    id: Was aan
  - trigger: state
    entity_id:
      - binary_sensor.wasmachine_aan
    from:
      - "on"
    to:
      - "off"
    id: Was uit
    for:
      hours: 0
      minutes: 0
      seconds: 30
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Was aan
        sequence:
          - action: input_number.set_value
            metadata: {}
            target:
              entity_id: input_number.wasbeurt
            data:
              value: "{{ states('sensor.wasmachine_energy') | default(0)| float}}"
      - conditions:
          - condition: trigger
            id:
              - Was uit
        sequence:
          - action: input_number.set_value
            metadata: {}
            target:
              entity_id: input_number.wasbeurt
            data:
              value: >-
                {{ (states('sensor.wasmachine_energy') | default(0)| float ) -
                (states('input_number.wasbeurt') | default(0) | float |
                round(0)) }}
            enabled: true
          - alias: Discord melding
            action: notify.homeassistant_bot
            metadata: {}
            data:
              target: "kanaalnummer"
              message: >-
                🧺👕De was is klaar! Het verbruik was {{
                states('input_number.wasbeurt' ) | default(0) | round(0) }} Wh.
            enabled: true
mode: single


Ik krijg nu echter vrij frequent deze melding::

Logger: homeassistant.helpers.event
Bron: helpers/event.py:360
Eerst voorgekomen: 15:59:04 (2 gebeurtenissen)
Laatst gelogd: 15:59:19

Error while dispatching event for sensor.wasmachine_power to <Job track state_changed event ['sensor.wasmachine_power'] HassJobType.Callback <function ThresholdSensor._async_setup_sensor.<locals>.async_threshold_sensor_state_listener at 0x7f85938704a0>>
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/event.py", line 360, in _async_dispatch_entity_id_event
hass.async_run_hass_job(job, event)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 918, in async_run_hass_job
hassjob.target(*args)
~~~~~~~~~~~~~~^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/threshold/binary_sensor.py", line 241, in async_threshold_sensor_state_listener
_update_sensor_state()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/src/homeassistant/homeassistant/components/threshold/binary_sensor.py", line 228, in _update_sensor_state
self._update_state()
~~~~~~~~~~~~~~~~~~^^
File "/usr/src/homeassistant/homeassistant/components/threshold/binary_sensor.py", line 304, in _update_state
if above(self.sensor_value, self._threshold_upper):
~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/threshold/binary_sensor.py", line 277, in above
return sensor_value > (threshold + self._hysteresis)
~~~~~~~~~~^~~~~~~~~~~~~~~~~~
TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'


De bovengrens is 60, Hysteresis 30 en hij kijkt naar: sensor.wasmachine_power die momenteel op 0 staat. Maar dit is dus die binary waar de automation ook naar kijkt
Je hebt zo te zien een template binary sensor aangemaakt ipv gewoon een helper. Kan ook natuurlijk, maar lijkt me dat je daar een error gemaakt hebt. Zelf gebruik ik dus gewoon een helper (input_select) die ik instel in de automation. Als je alleen aan/uit wilt dan kan je natuurlijk ook een input_boolean kunnen pakken.

Mocht je het splitsen (of het nu een template binary sensor is of een helper) zou ik de tijd hysterese (dus de for-tijd) al in de sensor bakken ipv in de notificatie automation.

Voor de default op de float moet je die IN de float opgeven. Nu zal all null afgevangen worden maar bijvoorbeeld "unavailable" gaat door naar het float filter maar die kan daar niets mee. Dus je wilt states('input_number.wasbeurt') | float(0) (is gelijk aan states('input_number.wasbeurt') | float(default=0)).

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:28

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
S. Belshof schreef op dinsdag 16 december 2025 @ 21:03:
Ik wil de boiler uitschakelen als het verbruik van de p1 meter stijgt boven de 50watt.
Maar je komt van 300, dus naar 50 toe is dalen. Dus je kan alleen ergens onder zakken.

  • S. Belshof
  • Registratie: Januari 2023
  • Laatst online: 07-01 22:04
Septillion schreef op dinsdag 16 december 2025 @ 23:19:
[...]

Maar je komt van 300, dus naar 50 toe is dalen. Dus je kan alleen ergens onder zakken.
De 300watt voor het inschakelen is energiemeter productie.

De 50watt uitschakeling is energiemeter verbruik.

Beetje verwarrend maar lijkt mij toch juist zo?

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:28

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@S. Belshof Die had ik even gemist :+

Als je een 3-fase meter hebt, dan moet je vooral even goed kijken of die niet tegelijk energieproductie als energieverbruik kan weergeven. Er zijn meters in omloop die dat namelijk wel doen. Dan moet je eerst zelf de netto import/export berekenen.

  • Koepert
  • Registratie: Augustus 2013
  • Nu online
Septillion schreef op dinsdag 16 december 2025 @ 23:16:
[...]

Je hebt zo te zien een template binary sensor aangemaakt ipv gewoon een helper. Kan ook natuurlijk, maar lijkt me dat je daar een error gemaakt hebt. Zelf gebruik ik dus gewoon een helper (input_select) die ik instel in de automation. Als je alleen aan/uit wilt dan kan je natuurlijk ook een input_boolean kunnen pakken.

Mocht je het splitsen (of het nu een template binary sensor is of een helper) zou ik de tijd hysterese (dus de for-tijd) al in de sensor bakken ipv in de notificatie automation.

Voor de default op de float moet je die IN de float opgeven. Nu zal all null afgevangen worden maar bijvoorbeeld "unavailable" gaat door naar het float filter maar die kan daar niets mee. Dus je wilt states('input_number.wasbeurt') | float(0) (is gelijk aan states('input_number.wasbeurt') | float(default=0)).
Nou die binary is een drempelwaarde sensor helper. Vandaar ook mijn omschrijving met de hysteresis en mijn vraag over hoe je dat met die select dan deed. Overigens heb ik m weggegooid en opnieuw aangemaakt en nu lijkt de error weg

  • S. Belshof
  • Registratie: Januari 2023
  • Laatst online: 07-01 22:04
@Septillion bedankt voor de tip, dit is inderdaad het geval. Hoe stel ik dit berekenen in?

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:28

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@Koepert Ah, ja dat kan ook. Maar die doet helaas geen tijd hysteresis.

Maar je eerdere automation aangepast:
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
alias: Verbruik Was
description: ""
triggers:
  - trigger: numeric_state
    id: Above
    entity_id:
      - sensor.wasmachine_power
    above: 10
    for:
      hours: 0
      minutes: 1
      seconds: 0
  - trigger: numeric_state
    id: Below
    entity_id:
      - sensor.wasmachine_power
    below: 5
    for:
      hours: 0
      minutes: 5
      seconds: 0
conditions: []
actions:
  - wait_for_trigger:
      - trigger: numeric_state
        entity_id:
          - sensor.wasmachine_power
        for:
          hours: 0
          minutes: 5
          seconds: 0
        below: 5
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Above
          - condition: state
            entity_id: input_boolean.wasmachine_aan
            state:
              - "off"
        sequence:
          - action: input_boolean.turn_on
            metadata: {}
            target:
              entity_id: input_boolean.wasmachine_aan
            data: {}
          - action: input_number.set_value
            metadata: {}
            target:
              entity_id: input_number.wasbeurt
            data:
              value: "{{ states('sensor.wasmachine_energy') | float(0)}}"
      - conditions:
          - condition: trigger
            id:
              - Below
          - condition: state
            entity_id: input_boolean.wasmachine_aan
            state:
              - "on"
        sequence:
          - action: input_boolean.turn_off
            metadata: {}
            target:
              entity_id: input_boolean.wasmachine_aan
            data: {}
          - action: input_number.set_value
            metadata: {}
            target:
              entity_id: input_number.wasbeurt
            data:
              value: >-
                {{ states('sensor.wasmachine_energy') |float(0)  -
                states('input_number.wasbeurt') |float(0) }}
          - action: notify.homeassistant_bot
            metadata: {}
            data:
              target: kanaalnummer weggehaald
              message: >-
                🧺👕De was is klaar! Het verbruik was {{
                states('input_number.wasbeurt' )  |round(0) }} Wh.
            alias: Discord melding
mode: single

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:28

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@S. Belshof Dat verklaard het dan wel ja. Want dan hoe je het extra verbruik nu niet netjes terug te zien. Dan kan je een template sensor helper aanmaken.

Settings => Devices & services => Helpers => Create helper => Template => Sensor

Name: Electricity meter netto import
State:
Django/Jinja:
1
{{ states('sensor.electricity_meter_energieverbruik') |float - states('sensor.electricity_meter_energieproductie') |float }}


Unit of measurement: W (uitgaande dat de huidige ook in W zijn en niet kW)
Device class: power
State class: measurment
Device: Kan je de HomeWizard meter selecteren
Advanced => Availability
Django/Jinja:
1
{{ states('sensor.electricity_meter_energieverbruik') |is_number and states('sensor.electricity_meter_energieproductie') |is_number}}

  • paQ
  • Registratie: Augustus 2001
  • Laatst online: 01:27

paQ

Septillion schreef op maandag 15 december 2025 @ 13:08:
@paQ Zit je op 2015.12.3? Meen dat het iets was met meerder bronnen. En dacht het het nu opgelost was.
Zonder ook maar iets te doen, werkt het op magische wijze sinds 00:00 weer :?
Afbeeldingslocatie: https://tweakers.net/i/n5SgGgTGcAfZXhxjJ0oijyNudUk=/800x/filters:strip_exif()/f/image/VMvZiubgSzYox1l170JBBbUu.png?f=fotoalbum_large

Ik doe niet aan bijgeloof. Dat brengt ongeluk.


  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 23:11
Ik heb een sensor voor P2000 maar ik zie dat hij de GPS afkort... Dat wil ik niet hebben maar ik kan niet ergens een regel vinden waar hij wordt afgekort, online zie ik wel wat oplossingen met het toevoegen van een str maar iemand enig idee of dat daadwerkelijk wat gaan oplossen?

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
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
"""Support for P2000 sensors."""
import datetime
import logging

import feedparser
import voluptuous as vol

from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import (
    ATTR_ATTRIBUTION,
    ATTR_LATITUDE,
    ATTR_LONGITUDE,
    CONF_ICON,
    CONF_LATITUDE,
    CONF_LONGITUDE,
    CONF_NAME,
    CONF_RADIUS,
    CONF_SCAN_INTERVAL,
)
from homeassistant.core import callback
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.dispatcher import async_dispatcher_connect, dispatcher_send
from homeassistant.helpers.event import async_track_time_interval
from homeassistant.helpers.restore_state import RestoreEntity
import homeassistant.util as util
from homeassistant.util.location import distance

_LOGGER = logging.getLogger(__name__)

BASE_URL = "http://p2000.brandweer-berkel-enschot.nl/homeassistant/rss.asp"

DEFAULT_INTERVAL = datetime.timedelta(seconds=10)
DATA_UPDATED = "p2000_data_updated"

CONF_REGIOS = "regios"
CONF_DISCIPLINES = "disciplines"
CONF_CAPCODES = "capcodes"
CONF_ATTRIBUTION = "P2000 Livemonitor 2021 HomeAssistant"
CONF_NOLOCATION = "nolocation"
CONF_CONTAINS = "contains"

DEFAULT_NAME = "P2000"
DEFAULT_ICON = "mdi:ambulance"

PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
    {
        vol.Optional(CONF_REGIOS): cv.string,
        vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
        vol.Optional(CONF_DISCIPLINES): cv.string,
        vol.Optional(CONF_SCAN_INTERVAL, default=DEFAULT_INTERVAL): vol.All(
            cv.time_period, cv.positive_timedelta
        ),
        vol.Optional(CONF_RADIUS, 0): vol.Coerce(float),
        vol.Optional(CONF_CAPCODES): cv.string,
        vol.Optional(CONF_LATITUDE): cv.latitude,
        vol.Optional(CONF_LONGITUDE): cv.longitude,
        vol.Optional(CONF_NOLOCATION, default=True): cv.boolean,
        vol.Optional(CONF_CONTAINS): cv.string,
        vol.Optional(CONF_ICON, default=DEFAULT_ICON): cv.icon,
    }
)


async def async_setup_platform(hass, config, async_add_devices, discovery_info=None):
    """Set up the P2000 sensor."""
    data = P2000Data(hass, config)

    async_track_time_interval(hass, data.async_update, config[CONF_SCAN_INTERVAL])

    async_add_devices(
        [P2000Sensor(hass, data, config.get(CONF_NAME), config.get(CONF_ICON))], True
    )


class P2000Data:
    """Handle P2000 object and limit updates."""

    def __init__(self, hass, config):
        """Initialize the data object."""
        self._hass = hass
        self._lat = util.convert(config.get(CONF_LATITUDE, hass.config.latitude), float)
        self._lon = util.convert(
            config.get(CONF_LONGITUDE, hass.config.longitude), float
        )
        self._regios = config.get(CONF_REGIOS)
        self._url = BASE_URL
        self._nolocation = config.get(CONF_NOLOCATION)
        self._radius = config.get(CONF_RADIUS)
        self._capcodes = config.get(CONF_CAPCODES)
        self._contains = config.get(CONF_CONTAINS)
        self._disciplines = config.get(CONF_DISCIPLINES)

        self._capcodelist = None
        self._regiolist = None
        self._disciplinelist = None

        self._feed = None

        self._restart = True
        self._event_time = None
        self._data = None

        if self._capcodes:
            self._capcodelist = self._capcodes.split(",")

        if self._regios:
            self._regiolist = self._regios.split(",")

        if self._disciplines:
            self._disciplinelist = self._disciplines.split(",")

    @property
    def latest_data(self):
        """Return the data object."""
        return self._data

    @staticmethod
    def _convert_time(time):
        try:
            return datetime.datetime.strptime(
                time.split(",")[1][:-6], " %d %b %Y %H:%M:%S"
            )
        except IndexError:
            return None

    async def async_update(self, dummy):
        """Update data."""

        self._feed = await self._hass.async_add_executor_job(
            feedparser.parse, self._url
        )
        if not self._feed:
            _LOGGER.debug("Failed to get feed data from %s", self._url)
            return

        if self._feed.bozo:
            _LOGGER.debug("Error parsing feed data from %s", self._url)
            return

        _LOGGER.debug("Feed url: %s data: %s", self._url, self._feed)

        if self._restart:
            self._restart = False
            self._event_time = self._convert_time(self._feed.entries[0]["published"])
            _LOGGER.debug("Start fresh after a restart")
            return

        try:
            for entry in reversed(self._feed.entries):

                event_msg = None
                event_capcode = None
                event_time = self._convert_time(entry.published)
                if event_time < self._event_time:
                    continue
                self._event_time = event_time

                # Fill data from feed
                event_msg = entry.message
                event_regioname = entry.regname
                event_regio = entry.regcode.lstrip("0")
                event_discipline = entry.dienst
                event_capcode = entry.code

                _LOGGER.debug(
                    "New P2000 event found: %s, at %s", event_msg, entry.published
                )

                # Check regio
                if "regcode" in entry:
                    if self._regiolist:
                        _LOGGER.debug("Filtering on Regio(s) %s", self._regiolist)
                        regiofound = False
                        for regio in self._regiolist:
                            _LOGGER.debug(
                                "Searching for regio %s in %s",
                                regio,
                                event_regio,
                            )
                            if event_regio == regio:
                                _LOGGER.debug("Regio matched")
                                regiofound = True
                                break
                            _LOGGER.debug("Regio mismatch, discarding")
                            continue
                        if not regiofound:
                            continue

                # Check discipline
                if "dienst" in entry:
                    if self._disciplines:
                        if self._disciplinelist:
                            _LOGGER.debug(
                                "Filtering on Disciplines(s) %s", self._disciplinelist
                            )
                            disciplinefound = False
                            for discipline in self._disciplinelist:
                                _LOGGER.debug(
                                    "Searching for discipline %s in %s",
                                    discipline,
                                    event_discipline,
                                )
                                if event_discipline == discipline:
                                    _LOGGER.debug("Discipline matched")
                                    disciplinefound = True
                                    break
                                _LOGGER.debug("Discipline mismatch, discarding")
                                continue
                            if not disciplinefound:
                                continue

                # Check radius or nolocation
                if "lat" in entry and entry.lat:
                    event_lat = float(entry.lat)
                    event_lon = float(entry.lon)
                    event_dist = distance(self._lat, self._lon, event_lat, event_lon)
                    event_dist = int(round(event_dist))
                    if self._radius:
                        _LOGGER.debug(
                            "Filtering on Radius %s, calculated distance %d m ",
                            self._radius,
                            event_dist,
                        )
                        if event_dist > self._radius:
                            event_msg = ""
                            _LOGGER.debug("Radius filter mismatch, discarding")
                            continue
                        _LOGGER.debug("Radius filter matched")
                else:
                    event_lat = 0.0
                    event_lon = 0.0
                    event_dist = 0
                    if not self._nolocation:
                        _LOGGER.debug("No location found, discarding")
                        continue

                # Check capcodes if defined
                if "code" in entry:
                    if self._capcodelist:
                        _LOGGER.debug("Filtering on Capcode(s) %s", self._capcodelist)
                        capfound = False
                        for capcode in self._capcodelist:
                            _LOGGER.debug(
                                "Searching for capcode %s in %s",
                                capcode.strip(),
                                event_capcode,
                            )
                            if event_capcode == capcode.strip():
                                _LOGGER.debug("Capcode filter matched")
                                capfound = True
                                break
                            _LOGGER.debug("Capcode filter mismatch, discarding")
                            continue
                        if not capfound:
                            continue

                if self._contains:
                    _LOGGER.debug("Filtering on Contains string %s", self._contains)
                    if event_msg.find(self._contains) != -1:
                        _LOGGER.debug("Contains string filter matched")
                    else:
                        _LOGGER.debug("Contains string filter mismatch, discarding")
                        continue

                if event_msg:
                    event = {}
                    event["msgtext"] = event_msg
                    event["latitude"] = event_lat
                    event["longitude"] = event_lon
                    event["distance"] = event_dist
                    event["msgtime"] = event_time
                    event["capcode"] = event_capcode
                    event["regio"] = event_regio
                    event["regioname"] = event_regioname
                    event["discipline"] = event_discipline
                    _LOGGER.debug("Event: %s", event)
                    self._data = event

            dispatcher_send(self._hass, DATA_UPDATED + CONF_NAME)

        except ValueError as err:
            _LOGGER.error("Error parsing feed data %s", err)
            self._data = None


class P2000Sensor(RestoreEntity):
    """Representation of a P2000 Sensor."""

    def __init__(self, hass, data, name, icon):
        """Initialize a P2000 sensor."""
        self._hass = hass
        self._data = data
        self._name = name
        self._icon = icon
        self._state = None
        self.attrs = {}
        self._attr_unique_id = self._name

    @property
    def name(self):
        """Return the name of the sensor."""
        return self._name

    @property
    def icon(self):
        """Return the icon to use in the frontend."""
        data = self._data.latest_data
        if data:
            if data["discipline"] == "Ambulancediensten":
                return "mdi:ambulance"
            elif data["discipline"] == "Brandweerdiensten":
                return "mdi:fire-truck"
            elif data["discipline"] == "Politiediensten":
                return "mdi:car-emergency"
            elif data["discipline"] == "Gereserveerd":
                return "mdi:car-emergency"
            elif data["discipline"] == "Lifeliner":
                return "mdi:helicopter"

        return self._icon

    @property
    def state(self):
        """Return the state of the device."""
        return self._state

    @property
    def should_poll(self):
        """Return the polling requirement for this sensor."""
        return False

    async def async_added_to_hass(self) -> None:
        """Handle entity which will be added."""
        await super().async_added_to_hass()
        state = await self.async_get_last_state()
        if not state:
            return
        self._state = state.state
        self.attrs = state.attributes

        async_dispatcher_connect(
            self._hass, DATA_UPDATED + CONF_NAME, self._schedule_immediate_update
        )

    @callback
    def _schedule_immediate_update(self):
        self.async_schedule_update_ha_state(True)

    @property
    def extra_state_attributes(self):
        """Return the state attributes."""
        attrs = {}
        data = self._data.latest_data
        if data:
            attrs[ATTR_LONGITUDE] = data["longitude"]
            attrs[ATTR_LATITUDE] = data["latitude"]
            attrs["distance"] = data["distance"]
            attrs["capcode"] = data["capcode"]
            attrs["regio"] = data["regio"]
            attrs["regio name"] = data["regioname"]
            attrs["discipline"] = data["discipline"]
            attrs["time"] = data["msgtime"]
            attrs[ATTR_ATTRIBUTION] = CONF_ATTRIBUTION
            self.attrs = attrs

        return self.attrs

    def update(self):
        """Update current values."""
        data = self._data.latest_data
        if data:
            self._state = data["msgtext"]
            _LOGGER.debug("State updated to %s", self._state)


Het zou dan specifiek om regel 267 en 268 gaan

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


  • verjager
  • Registratie: Oktober 2012
  • Niet online
Toppe schreef op woensdag 17 december 2025 @ 10:58:
Ik heb een sensor voor P2000 maar ik zie dat hij de GPS afkort... Dat wil ik niet hebben maar ik kan niet ergens een regel vinden waar hij wordt afgekort, online zie ik wel wat oplossingen met het toevoegen van een str maar iemand enig idee of dat daadwerkelijk wat gaan oplossen?

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
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
"""Support for P2000 sensors."""
import datetime
import logging

import feedparser
import voluptuous as vol

from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import (
    ATTR_ATTRIBUTION,
    ATTR_LATITUDE,
    ATTR_LONGITUDE,
    CONF_ICON,
    CONF_LATITUDE,
    CONF_LONGITUDE,
    CONF_NAME,
    CONF_RADIUS,
    CONF_SCAN_INTERVAL,
)
from homeassistant.core import callback
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.dispatcher import async_dispatcher_connect, dispatcher_send
from homeassistant.helpers.event import async_track_time_interval
from homeassistant.helpers.restore_state import RestoreEntity
import homeassistant.util as util
from homeassistant.util.location import distance

_LOGGER = logging.getLogger(__name__)

BASE_URL = "http://p2000.brandweer-berkel-enschot.nl/homeassistant/rss.asp"

DEFAULT_INTERVAL = datetime.timedelta(seconds=10)
DATA_UPDATED = "p2000_data_updated"

CONF_REGIOS = "regios"
CONF_DISCIPLINES = "disciplines"
CONF_CAPCODES = "capcodes"
CONF_ATTRIBUTION = "P2000 Livemonitor 2021 HomeAssistant"
CONF_NOLOCATION = "nolocation"
CONF_CONTAINS = "contains"

DEFAULT_NAME = "P2000"
DEFAULT_ICON = "mdi:ambulance"

PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
    {
        vol.Optional(CONF_REGIOS): cv.string,
        vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
        vol.Optional(CONF_DISCIPLINES): cv.string,
        vol.Optional(CONF_SCAN_INTERVAL, default=DEFAULT_INTERVAL): vol.All(
            cv.time_period, cv.positive_timedelta
        ),
        vol.Optional(CONF_RADIUS, 0): vol.Coerce(float),
        vol.Optional(CONF_CAPCODES): cv.string,
        vol.Optional(CONF_LATITUDE): cv.latitude,
        vol.Optional(CONF_LONGITUDE): cv.longitude,
        vol.Optional(CONF_NOLOCATION, default=True): cv.boolean,
        vol.Optional(CONF_CONTAINS): cv.string,
        vol.Optional(CONF_ICON, default=DEFAULT_ICON): cv.icon,
    }
)


async def async_setup_platform(hass, config, async_add_devices, discovery_info=None):
    """Set up the P2000 sensor."""
    data = P2000Data(hass, config)

    async_track_time_interval(hass, data.async_update, config[CONF_SCAN_INTERVAL])

    async_add_devices(
        [P2000Sensor(hass, data, config.get(CONF_NAME), config.get(CONF_ICON))], True
    )


class P2000Data:
    """Handle P2000 object and limit updates."""

    def __init__(self, hass, config):
        """Initialize the data object."""
        self._hass = hass
        self._lat = util.convert(config.get(CONF_LATITUDE, hass.config.latitude), float)
        self._lon = util.convert(
            config.get(CONF_LONGITUDE, hass.config.longitude), float
        )
        self._regios = config.get(CONF_REGIOS)
        self._url = BASE_URL
        self._nolocation = config.get(CONF_NOLOCATION)
        self._radius = config.get(CONF_RADIUS)
        self._capcodes = config.get(CONF_CAPCODES)
        self._contains = config.get(CONF_CONTAINS)
        self._disciplines = config.get(CONF_DISCIPLINES)

        self._capcodelist = None
        self._regiolist = None
        self._disciplinelist = None

        self._feed = None

        self._restart = True
        self._event_time = None
        self._data = None

        if self._capcodes:
            self._capcodelist = self._capcodes.split(",")

        if self._regios:
            self._regiolist = self._regios.split(",")

        if self._disciplines:
            self._disciplinelist = self._disciplines.split(",")

    @property
    def latest_data(self):
        """Return the data object."""
        return self._data

    @staticmethod
    def _convert_time(time):
        try:
            return datetime.datetime.strptime(
                time.split(",")[1][:-6], " %d %b %Y %H:%M:%S"
            )
        except IndexError:
            return None

    async def async_update(self, dummy):
        """Update data."""

        self._feed = await self._hass.async_add_executor_job(
            feedparser.parse, self._url
        )
        if not self._feed:
            _LOGGER.debug("Failed to get feed data from %s", self._url)
            return

        if self._feed.bozo:
            _LOGGER.debug("Error parsing feed data from %s", self._url)
            return

        _LOGGER.debug("Feed url: %s data: %s", self._url, self._feed)

        if self._restart:
            self._restart = False
            self._event_time = self._convert_time(self._feed.entries[0]["published"])
            _LOGGER.debug("Start fresh after a restart")
            return

        try:
            for entry in reversed(self._feed.entries):

                event_msg = None
                event_capcode = None
                event_time = self._convert_time(entry.published)
                if event_time < self._event_time:
                    continue
                self._event_time = event_time

                # Fill data from feed
                event_msg = entry.message
                event_regioname = entry.regname
                event_regio = entry.regcode.lstrip("0")
                event_discipline = entry.dienst
                event_capcode = entry.code

                _LOGGER.debug(
                    "New P2000 event found: %s, at %s", event_msg, entry.published
                )

                # Check regio
                if "regcode" in entry:
                    if self._regiolist:
                        _LOGGER.debug("Filtering on Regio(s) %s", self._regiolist)
                        regiofound = False
                        for regio in self._regiolist:
                            _LOGGER.debug(
                                "Searching for regio %s in %s",
                                regio,
                                event_regio,
                            )
                            if event_regio == regio:
                                _LOGGER.debug("Regio matched")
                                regiofound = True
                                break
                            _LOGGER.debug("Regio mismatch, discarding")
                            continue
                        if not regiofound:
                            continue

                # Check discipline
                if "dienst" in entry:
                    if self._disciplines:
                        if self._disciplinelist:
                            _LOGGER.debug(
                                "Filtering on Disciplines(s) %s", self._disciplinelist
                            )
                            disciplinefound = False
                            for discipline in self._disciplinelist:
                                _LOGGER.debug(
                                    "Searching for discipline %s in %s",
                                    discipline,
                                    event_discipline,
                                )
                                if event_discipline == discipline:
                                    _LOGGER.debug("Discipline matched")
                                    disciplinefound = True
                                    break
                                _LOGGER.debug("Discipline mismatch, discarding")
                                continue
                            if not disciplinefound:
                                continue

                # Check radius or nolocation
                if "lat" in entry and entry.lat:
                    event_lat = float(entry.lat)
                    event_lon = float(entry.lon)
                    event_dist = distance(self._lat, self._lon, event_lat, event_lon)
                    event_dist = int(round(event_dist))
                    if self._radius:
                        _LOGGER.debug(
                            "Filtering on Radius %s, calculated distance %d m ",
                            self._radius,
                            event_dist,
                        )
                        if event_dist > self._radius:
                            event_msg = ""
                            _LOGGER.debug("Radius filter mismatch, discarding")
                            continue
                        _LOGGER.debug("Radius filter matched")
                else:
                    event_lat = 0.0
                    event_lon = 0.0
                    event_dist = 0
                    if not self._nolocation:
                        _LOGGER.debug("No location found, discarding")
                        continue

                # Check capcodes if defined
                if "code" in entry:
                    if self._capcodelist:
                        _LOGGER.debug("Filtering on Capcode(s) %s", self._capcodelist)
                        capfound = False
                        for capcode in self._capcodelist:
                            _LOGGER.debug(
                                "Searching for capcode %s in %s",
                                capcode.strip(),
                                event_capcode,
                            )
                            if event_capcode == capcode.strip():
                                _LOGGER.debug("Capcode filter matched")
                                capfound = True
                                break
                            _LOGGER.debug("Capcode filter mismatch, discarding")
                            continue
                        if not capfound:
                            continue

                if self._contains:
                    _LOGGER.debug("Filtering on Contains string %s", self._contains)
                    if event_msg.find(self._contains) != -1:
                        _LOGGER.debug("Contains string filter matched")
                    else:
                        _LOGGER.debug("Contains string filter mismatch, discarding")
                        continue

                if event_msg:
                    event = {}
                    event["msgtext"] = event_msg
                    event["latitude"] = event_lat
                    event["longitude"] = event_lon
                    event["distance"] = event_dist
                    event["msgtime"] = event_time
                    event["capcode"] = event_capcode
                    event["regio"] = event_regio
                    event["regioname"] = event_regioname
                    event["discipline"] = event_discipline
                    _LOGGER.debug("Event: %s", event)
                    self._data = event

            dispatcher_send(self._hass, DATA_UPDATED + CONF_NAME)

        except ValueError as err:
            _LOGGER.error("Error parsing feed data %s", err)
            self._data = None


class P2000Sensor(RestoreEntity):
    """Representation of a P2000 Sensor."""

    def __init__(self, hass, data, name, icon):
        """Initialize a P2000 sensor."""
        self._hass = hass
        self._data = data
        self._name = name
        self._icon = icon
        self._state = None
        self.attrs = {}
        self._attr_unique_id = self._name

    @property
    def name(self):
        """Return the name of the sensor."""
        return self._name

    @property
    def icon(self):
        """Return the icon to use in the frontend."""
        data = self._data.latest_data
        if data:
            if data["discipline"] == "Ambulancediensten":
                return "mdi:ambulance"
            elif data["discipline"] == "Brandweerdiensten":
                return "mdi:fire-truck"
            elif data["discipline"] == "Politiediensten":
                return "mdi:car-emergency"
            elif data["discipline"] == "Gereserveerd":
                return "mdi:car-emergency"
            elif data["discipline"] == "Lifeliner":
                return "mdi:helicopter"

        return self._icon

    @property
    def state(self):
        """Return the state of the device."""
        return self._state

    @property
    def should_poll(self):
        """Return the polling requirement for this sensor."""
        return False

    async def async_added_to_hass(self) -> None:
        """Handle entity which will be added."""
        await super().async_added_to_hass()
        state = await self.async_get_last_state()
        if not state:
            return
        self._state = state.state
        self.attrs = state.attributes

        async_dispatcher_connect(
            self._hass, DATA_UPDATED + CONF_NAME, self._schedule_immediate_update
        )

    @callback
    def _schedule_immediate_update(self):
        self.async_schedule_update_ha_state(True)

    @property
    def extra_state_attributes(self):
        """Return the state attributes."""
        attrs = {}
        data = self._data.latest_data
        if data:
            attrs[ATTR_LONGITUDE] = data["longitude"]
            attrs[ATTR_LATITUDE] = data["latitude"]
            attrs["distance"] = data["distance"]
            attrs["capcode"] = data["capcode"]
            attrs["regio"] = data["regio"]
            attrs["regio name"] = data["regioname"]
            attrs["discipline"] = data["discipline"]
            attrs["time"] = data["msgtime"]
            attrs[ATTR_ATTRIBUTION] = CONF_ATTRIBUTION
            self.attrs = attrs

        return self.attrs

    def update(self):
        """Update current values."""
        data = self._data.latest_data
        if data:
            self._state = data["msgtext"]
            _LOGGER.debug("State updated to %s", self._state)


Het zou dan specifiek om regel 267 en 268 gaan
Is het niet zo dat de afronding alleen in de GUI gebeurd? Want als je in Ontwikkelhulpmiddelen kijkt bij de attributes van een P2000 sensor staan daar volgens mij wel de volledige coördinaten.

  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 23:11
verjager schreef op woensdag 17 december 2025 @ 11:14:
[...]

Is het niet zo dat de afronding alleen in de GUI gebeurd? Want als je in Ontwikkelhulpmiddelen kijkt bij de attributes van een P2000 sensor staan daar volgens mij wel de volledige coördinaten.
Warempel! Ik was in de veronderstelling dat een attribuut nooit werd afgerond... Waarom ze hier de keus maken is mij dan ook een raadsel.

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


  • maartend
  • Registratie: Augustus 2002
  • Laatst online: 23:29
Afbeeldingslocatie: https://tweakers.net/i/d5XQHq6so7EXavZ96fH8eAcMQ1Q=/fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():strip_exif()/f/image/Zh9LIqgnWiUASvKcZAlviMjo.jpg?f=user_large

Hoi. Ik gebruik bovenstaande voor mijn lampen, maar zoals je ziet is dat stukje van de TV niet echt passend. dat komt omdat ik alle lampen rechtstreeks kan aansturen, enkel de lamp bij de TV zit achter een switch. En daarmee ziet het er anders uit. Ik zou graag willen dat het er gelijkaardig uitziet, maar dan zonder de diom mogelijkheden, want de lamp is niet dimbaar.

Onderstaand de gebruikte code op dit moment;;
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
cards: null
entities:
  - HiBrightness: 250
    LowBrightness: 30
    MedBrightness: 150
    customSetpoints: true
    customTheme: true
    entity: light.yeelight_stripe_0x7c19564
    name: Speeltafel
    type: custom:light-brightness-preset-row
  - HiBrightness: 250
    LowBrightness: 30
    MedBrightness: 150
    customSetpoints: true
    customTheme: true
    entity: light.tuinlamp_achter
    name: Border achter
    type: custom:light-brightness-preset-row
  - HiBrightness: 250
    LowBrightness: 30
    MedBrightness: 150
    customSetpoints: true
    customTheme: true
    entity: light.leeshoek
    name: Platenspeler
    type: custom:light-brightness-preset-row
  - entity: switch.pp_trap
    name: TV
layout: auto
show_header_toggle: false
type: custom:layout-card

  • krijn1985
  • Registratie: Januari 2006
  • Laatst online: 22:36
@maartend En als je je switch nu omzet naar een light? zoals hier beschreven.

  • maartend
  • Registratie: Augustus 2002
  • Laatst online: 23:29
krijn1985 schreef op woensdag 17 december 2025 @ 13:18:
@maartend En als je je switch nu omzet naar een light? zoals hier beschreven.
Ik ga het proberen, kom er op terug. Thnx

edit ; ste stap is er, hij ziet hem als een lamp. Echter blijft de schakelaar er hetzelfde uitzien. Maar eens proberen die hele code van de ander lampen over te nemen

[ Voor 21% gewijzigd door maartend op 17-12-2025 13:22 ]


  • krijn1985
  • Registratie: Januari 2006
  • Laatst online: 22:36
maartend schreef op woensdag 17 december 2025 @ 13:19:
[...]

Ik ga het proberen, kom er op terug. Thnx

edit ; ste stap is er, hij ziet hem als een lamp. Echter blijft de schakelaar er hetzelfde uitzien. Maar eens proberen die hele code van de ander lampen over te nemen
En als je dan dit doet (of dus veranderen naar light.pp_trap):
YAML:
1
2
3
  - entity: switch.pp_trap
    name: TV
    type: custom:light-brightness-preset-row

  • maartend
  • Registratie: Augustus 2002
  • Laatst online: 23:29
krijn1985 schreef op woensdag 17 december 2025 @ 13:25:
[...]

En als je dan dit doet (of dus veranderen naar light.pp_trap):
YAML:
1
2
3
  - entity: switch.pp_trap
    name: TV
    type: custom:light-brightness-preset-row
Lol. Net via switch naar x device, maar dan idd zo verder. Het is gelukt en werkt.
Probleem met jou methode is wel, het tekentje blijft een switch. Maar dus in combinatie lukt het wel

[ Voor 11% gewijzigd door maartend op 17-12-2025 13:30 ]


  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 23:11
Voor de geinteresseerde: Ik wou graag de locatie ontvangen van een P2000 melding. Werkt prima!

Benodigdheden:
Er vanuit gaande dat je al P2000 gebruikt
Places

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
alias: P2000 Locatie Notificatie
description: "Stuurt een notificatie met kaart op basis van P2000 coördinaten"
triggers:
  - trigger: state
    entity_id:
      - sensor.p2000_sensor_naam # Vervang door je eigen sensor
conditions: []
actions:
  - delay:
      seconds: 10
  - action: notify.mobile_app_jouw_toestel # Vervang door je eigen toestel
    data:
      title: P2000
      message: "{{ states('sensor.p2000_regio_sensor') }}"
      data:
        push:
          category: "map" # Vereist voor het tonen van de kaart op iOS
        url: >-
          {{ state_attr('sensor.p2000_locatie_sensor', 'map_link') |
          replace('https://', 'maps://') }}
        action_data:
          latitude: "{{ state_attr('sensor.p2000_sensor_naam', 'latitude') }}"
          longitude: "{{ state_attr('sensor.p2000_sensor_naam', 'longitude') }}"
          zoom_level: 15 # Pas dit getal aan (1-20) voor de gewenste zoom
mode: single


Hij vervangt https:// voor maps:// zodat de companion app geforceerd gebruikt maakt van de kaarten intergratie op je toestel ipv het openen van de browser.

Daarbi haalt hij de lat/long op van de oorspronkelijke sensor en stuurt die mee met de notificatie, op je toestel zie je, als je lang op de notificatie drukt, direct waar het is. Als je er enkel op drukt dan opent hij de kaarten app met de exacte locatie.

Dit zou je werkend kunnen krijgen zonder Places maar ik ga Places voor meer doeleinde gebruiken dus mooie voorbereiding zo

[ Voor 24% gewijzigd door Toppe op 17-12-2025 14:55 ]

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


  • S. Belshof
  • Registratie: Januari 2023
  • Laatst online: 07-01 22:04
@Septillion

Bedankt voor je reactie. heb het nu zo ingesteld als je zei en ga morgen kijken of het nu wel goed werkt.
Super bedankt

  • 0xygen500
  • Registratie: Juni 2014
  • Laatst online: 06:46
Ik heb een integratie (solarman) waar enorm veel entities in zit. Nu wil ik dit wat inperken, moet ik dan onzichtbaar maken of uitschakelen?

  • RudolfR
  • Registratie: Maart 2011
  • Laatst online: 06:46
@0xygen500

Waarschijnlijk uitschakelen.
Enabled/Disabled
Disabled entities will not be added to Home Assistant.
Visible/Invisible
Hidden entities will not be included in auto-populated dashboards or when their area, device or label is referenced. Their history is still tracked and you can still interact with them with actions.

  • Borromini
  • Registratie: Januari 2003
  • Niet online

Borromini

Mislukt misantroop

TheFes schreef op dinsdag 16 december 2025 @ 11:06:
[...]


Alle keys hebben een unieke scope, de dict die je aanmaakt onder je state template, is niet beschikbaar onder je icon template.

Je kunt variables gebruiken om ze wel in de hele entity config beschikbaar te maken. Alternatief zou zijn om trash_dict en next_date nog een keer te definiëren onder icon, maar onderstaande lijkt me efficienter.

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
- sensor:
    - name: Afvalfractie
      unique_id: afvalfractie
      variables:
        trash_dict: >
          {{
            {
              states('sensor.pmd'): "PMD",
              states('sensor.papier_karton'): "Papier"
            }
          }}
        next_date: "{{ trash_dict.keys()|sort|first }}"
      state: >
        {{ trash_dict.get(next_date)}}: {{ (next_date|as_datetime).strftime("%-d/%m") }}
      icon: >
        {% if trash_dict.get(next_date) == Papier %}
          mdi:package-variant
        {% elif trash_dict.get(next_date) == PMD %}
          mdi:bottle-soda-classic-outline
        {% endif %}
Bedankt _/-\o_ Ik had inderdaad al de code gedupliceerd onder icon, dat zorgde voor schone logs, maar geen icoontje. Met de variables heb ik helaas hetzelfde. Schone logs, maar geen icoontje:

Afbeeldingslocatie: https://i.postimg.cc/3rv8qcVv/Schermafdruk-van-2025-12-17-20-31-19.png

Got Leenucks? | Debian Bookworm x86_64 / ARM | OpenWrt: Empower your router | Blogje


  • TheFes
  • Registratie: Juni 2001
  • Laatst online: 06:49
Borromini schreef op woensdag 17 december 2025 @ 20:39:
[...]

Bedankt _/-\o_ Ik had inderdaad al de code gedupliceerd onder icon, dat zorgde voor schone logs, maar geen icoontje. Met de variables heb ik helaas hetzelfde. Schone logs, maar geen icoontje:

[Afbeelding]
Je mist quotes om Papier en PMD in je template voor je icon. Nu Vergelijk je met niet bestaande variables in plaats van de strings.

Home Assistant configuratie


  • Hippe Lip
  • Registratie: Februari 2011
  • Laatst online: 06:20

Hippe Lip

Er valt altijd wat te leren

Ik heb de laatste dagen regelmatig dat HA geen contact heeft met de auto/ Hyundai.
De app doet het dan altijd wel. Een paar uur later werkt alles dan weer wel.

Iemand een idee waar dat aan kan liggen?

Dit is wat Home Assistant laat zien:
Afbeeldingslocatie: https://tweakers.net/i/n_M42L5VJWeUH8oOQur-7AFbcHs=/x800/filters:strip_exif()/f/image/vkN8VZtqK1FTTIdZ0XTiksaq.png?f=fotoalbum_large

En dit is wat de app van de auto op hetzelfde moment laat zien:
Afbeeldingslocatie: https://tweakers.net/i/KxfNGIKTCK-3ThzuOdAnW1nYk24=/x800/filters:strip_icc():strip_exif()/f/image/TYneWrH6scVjQuiS5Z1Hs97d.jpg?f=fotoalbum_large

[ Voor 5% gewijzigd door Hippe Lip op 17-12-2025 22:23 ]

Verdraagzaamheid is het hoogste gebod
en wie dat niet eert die schoppen we rot.
<John O`Mill>


  • wvdveer
  • Registratie: November 2008
  • Laatst online: 20:48
Uit frustratie over de ellendige 'slimme' functionaliteiten / thermostaat prestaties van de elektrische handdoekradiator ben ik aan het proberen om deze via HomeAssistant aan te sturen. Tot nu toe heb ik HA alleen gebruikt als fancy dashboardje voor klimaatsensoren en aansturing van de zonnewering, maar een daadwerkelijke thermostaat opzetten blijkt toch een stuk ingewikkelder voor deze noob.

Het betreft een elektrische radiator die via Tuya bridge aan te sturen is via een app / HA, wat prima werkt. Ik probeer nu echter een thermostaat op te zetten die een externe temperatuursensor gebruikt om de verwarming aan/uit te zetten.
- Permanente modus; bij temperatuur lager dan 17 graden, inschakelen tot 17,5 graden
- Iedere avond; tussen 17:00 en 18:30 inschakelen tot 20 graden

Ik heb geprobeerd om de generieke thermostaat helper te gebruiken icm scheduler, alleen in de thermostaat helper is de verwarming niet als actuator te zien aangezien deze geen simpele aan/uit switch heeft maar een 'climate' optie.

Wat is hier nu de meest handige aanpak voor? Het proberen op te lossen in één grote automation of is er een manier om de verwarming toch als actuator zichtbaar te krijgen in de thermostaat helper?

Alvast bedankt!

  • maartend
  • Registratie: Augustus 2002
  • Laatst online: 23:29
Ik kan het niet vinden, duis maar de vraag.

Weet iemand of het mogelijk is om in Music Assistant op HA een bepaald emuziekfolder als favorite aan te merken voor gebruik in Music Assitant?
Ik heb heel veel op mijn NAS staan maar wil 1 bepaalde folder een soort van shortcutten in Music Assitant zodat ik daar acuur naartoe kan klikken.

  • Koepert
  • Registratie: Augustus 2013
  • Nu online
wvdveer schreef op donderdag 18 december 2025 @ 08:47:
Uit frustratie over de ellendige 'slimme' functionaliteiten / thermostaat prestaties van de elektrische handdoekradiator ben ik aan het proberen om deze via HomeAssistant aan te sturen. Tot nu toe heb ik HA alleen gebruikt als fancy dashboardje voor klimaatsensoren en aansturing van de zonnewering, maar een daadwerkelijke thermostaat opzetten blijkt toch een stuk ingewikkelder voor deze noob.

Het betreft een elektrische radiator die via Tuya bridge aan te sturen is via een app / HA, wat prima werkt. Ik probeer nu echter een thermostaat op te zetten die een externe temperatuursensor gebruikt om de verwarming aan/uit te zetten.
- Permanente modus; bij temperatuur lager dan 17 graden, inschakelen tot 17,5 graden
- Iedere avond; tussen 17:00 en 18:30 inschakelen tot 20 graden

Ik heb geprobeerd om de generieke thermostaat helper te gebruiken icm scheduler, alleen in de thermostaat helper is de verwarming niet als actuator te zien aangezien deze geen simpele aan/uit switch heeft maar een 'climate' optie.

Wat is hier nu de meest handige aanpak voor? Het proberen op te lossen in één grote automation of is er een manier om de verwarming toch als actuator zichtbaar te krijgen in de thermostaat helper?

Alvast bedankt!
Wat heeft de climate dan voor opties? Hoe zien deze sensoren eruit? Want ik heb ook een Hombli electrisch paneel die ik via Tuya bedien --> Dat is een climate entity die ik via een automation op verwarmen of UIT zet. (Omdat de temperatuur bij mij altijd default staat). Wat klinkt als een optie is een automation als volgt:

Als Externe temp = 17 --> Zet climate op verwarmen met temp op 17.5 (dat is een attribute van de climate als het goed is)
En als iedere avond tijd tussen 17:00 - 18:30 --> zet attribute op 20 en status Heat

  • elebroek
  • Registratie: Februari 2005
  • Laatst online: 21:36
Ik heb een probleem met HA. Ik draai HA-OS op een NUC. Alles werkt alleen wil ik HA herstarten. Ik probeer hiervoor eerst de configuratie te controleren. Dit werkt niet. Het wieltje blijft draaien! Ook een normale herstarten werkt niet omdat hij dan eerst de configuratie gaat controleren. (N.B. Ik heb recente back-ups) Hoe kan ik dit oplossen? NUC geforceerd uit-/aanzetten?

  • wvdveer
  • Registratie: November 2008
  • Laatst online: 20:48
Koepert schreef op donderdag 18 december 2025 @ 09:02:
[...]


Wat heeft de climate dan voor opties? Hoe zien deze sensoren eruit? Want ik heb ook een Hombli electrisch paneel die ik via Tuya bedien --> Dat is een climate entity die ik via een automation op verwarmen of UIT zet. (Omdat de temperatuur bij mij altijd default staat). Wat klinkt als een optie is een automation als volgt:

Als Externe temp = 17 --> Zet climate op verwarmen met temp op 17.5 (dat is een attribute van de climate als het goed is)
En als iedere avond tijd tussen 17:00 - 18:30 --> zet attribute op 20 en status Heat
Climate heeft dezelfde opties als jij beschrijft. Alleen de interne thermostaat van dit paneel lijkt alleen niet heel erg betrouwbaar, waardoor 'inschakelen op 17.5' geen consistente resultaten levert.

Het liefst zou ik hem vast op comfort mode 21 graden zetten en de verwarming dom in/uitschakelen afhankelijk van de externe temperatuursensor.

  • Koepert
  • Registratie: Augustus 2013
  • Nu online
wvdveer schreef op donderdag 18 december 2025 @ 10:08:
[...]


Climate heeft dezelfde opties als jij beschrijft. Alleen de interne thermostaat van dit paneel lijkt alleen niet heel erg betrouwbaar, waardoor 'inschakelen op 17.5' geen consistente resultaten levert.

Het liefst zou ik hem vast op comfort mode 21 graden zetten en de verwarming dom in/uitschakelen afhankelijk van de externe temperatuursensor.
Ja daarom als trigger in je automatisering die externe temp-sensor met een numerieke waarde

Ik doe letterlijk dit:

YAML:
1
2
3
4
5
6
7
action: climate.set_hvac_mode
metadata: {}
target:
  entity_id: climate.hombli_smart_infrared_panel_heater
data:
  hvac_mode: heat
alias: Panel heater aan


En als je daar zoiets als trigger aan hangt:


YAML:
1
2
3
4
trigger: numeric_state
entity_id:
  - sensor.temperatuur_zolder_temperature
below: 17


Ben je er toch? Hiermee zet je de stand alleen op verwarmen overigens en doe je niets met de temp van de heater, die laat ik standaard op dezelfde waarde.


Of begrijp ik je wens nu gewoon niet goed?

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:28

Septillion

Moderator Wonen & Mobiliteit
Topicstarter
@wvdveer Dan zou ik gewoon een automation maken. En die ook triggeren op de temperatuursensor.

Dus iets als:
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
description: "Sturing badkamer verwarming"
mode: single
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.external_temperature
    below: 17
  - trigger: numeric_state
    entity_id:
      - sensor.external_temperature
    above: 17.5
  - trigger: numeric_state
    entity_id:
      - sensor.external_temperature
    below: 20
  - trigger: numeric_state
    entity_id:
      - sensor.external_temperature
    above: 20.5
  - trigger: state
    entity_id:
      - schedule.badkamer_verwarming
    to:
      - "on"
  - trigger: state
    entity_id:
      - schedule.badkamer_verwarming
    to:
      - "off"
  - trigger: homeassistant
    event: start
conditions: []
actions:
  - choose:
      - conditions:
          - condition: state
            entity_id: schedule.badkamer_verwarming
            state:
              - "on"
          - condition: numeric_state
            entity_id: sensor.external_temperature
            below: 20
        sequence:
          - action: climate.set_temperature
            metadata: {}
            target:
              entity_id: climate.badkamer_verwarming
            data:
              temperature: 21
      - conditions:
          - condition: state
            entity_id: schedule.badkamer_verwarming
            state:
              - "on"
          - condition: numeric_state
            entity_id: sensor.external_temperature
            above: 21.5
        sequence:
          - action: climate.turn_off
            metadata: {}
            target:
              entity_id: climate.badkamer_verwarming
            data: {}
      - conditions:
          - condition: state
            entity_id: schedule.badkamer_verwarming
            state:
              - "off"
          - condition: numeric_state
            entity_id: sensor.external_temperature
            below: 17
        sequence:
          - action: climate.set_temperature
            metadata: {}
            target:
              entity_id: climate.badkamer_verwarming
            data:
              temperature: 21
      - conditions:
          - condition: state
            entity_id: schedule.badkamer_verwarming
            state:
              - "off"
          - condition: numeric_state
            entity_id: sensor.external_temperature
            above: 21.5
        sequence:
          - action: climate.turn_off
            metadata: {}
            target:
              entity_id: climate.badkamer_verwarming
            data: {}


Moet je alleen kijken of ik de juiste climate actions gebruikt :+

  • Borromini
  • Registratie: Januari 2003
  • Niet online

Borromini

Mislukt misantroop

TheFes schreef op woensdag 17 december 2025 @ 21:13:
[...]

Je mist quotes om Papier en PMD in je template voor je icon. Nu Vergelijk je met niet bestaande variables in plaats van de strings.
Bah. Ik wist dat het in een klein hoekje zat... Nu werkt het wel d:)b

Got Leenucks? | Debian Bookworm x86_64 / ARM | OpenWrt: Empower your router | Blogje


  • HuismAndré
  • Registratie: Augustus 2001
  • Laatst online: 22:16

HuismAndré

-Pardon my French, I'm Dutch-

wvdveer schreef op donderdag 18 december 2025 @ 08:47:
Uit frustratie over de ellendige 'slimme' functionaliteiten / thermostaat prestaties van de elektrische handdoekradiator ben ik aan het proberen om deze via HomeAssistant aan te sturen. Tot nu toe heb ik HA alleen gebruikt als fancy dashboardje voor klimaatsensoren en aansturing van de zonnewering, maar een daadwerkelijke thermostaat opzetten blijkt toch een stuk ingewikkelder voor deze noob.

Het betreft een elektrische radiator die via Tuya bridge aan te sturen is via een app / HA, wat prima werkt. Ik probeer nu echter een thermostaat op te zetten die een externe temperatuursensor gebruikt om de verwarming aan/uit te zetten.
- Permanente modus; bij temperatuur lager dan 17 graden, inschakelen tot 17,5 graden
- Iedere avond; tussen 17:00 en 18:30 inschakelen tot 20 graden

Ik heb geprobeerd om de generieke thermostaat helper te gebruiken icm scheduler, alleen in de thermostaat helper is de verwarming niet als actuator te zien aangezien deze geen simpele aan/uit switch heeft maar een 'climate' optie.

Wat is hier nu de meest handige aanpak voor? Het proberen op te lossen in één grote automation of is er een manier om de verwarming toch als actuator zichtbaar te krijgen in de thermostaat helper?

Alvast bedankt!
Je kunt van de bestaande thermostaat een switch maken met de switch template. Dat ziet er ongeveer zo uit (in templates.yaml):
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
:
- switch:
    - name: "TRV Inpak Klep"
      unique_id: trv_inpak_klep_switch
      state: "{{ 'on' if states('climate.trv_inpak') == 'heat' else 'off' }}"
      turn_on:
        action: climate.set_hvac_mode
        target: { entity_id: climate.trv_inpak }
        data: { hvac_mode: "heat" }
      turn_off:
        action: climate.set_hvac_mode
        target: { entity_id: climate.trv_inpak }
        data: { hvac_mode: "off" }

Daarna stel je nog eenmalig in de "oude" climate entity in wat de off state moet worden (bijvoorbeeld 15 graden vorstbeveiliging) en de on state (bijvoorbeeld 24 graden als extra beveiliging als je nieuwe thermostaat "vast" zou komen te staan). Daarna kun je in je thermostaat entity deze switch als schakelaar gebruiken. Bijvoorbeeld zo:

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  - platform: generic_thermostat
    name: Thermostaat Inpak
    unique_id: thermostaat_inpak_ha
    heater: switch.trv_inpak_klep
    target_sensor: sensor.inpak_temp_r
    min_temp: 10
    max_temp: 20
    cold_tolerance: 0
    hot_tolerance: 0
    min_cycle_duration: 00:10:00
    keep_alive: 00:05:00
    away_temp: 10
    home_temp: 15
    precision: 0.1
    target_temp_step: 0.5

Opwarmmomenten kies je dan met een schedule en een automatisering die de setpoints omschakelt.

Een andere optie is kiezen voor "better thermostat" (maar goed, die optie had je vast al gevonden). Ook is het bij veel slimme thermostaten (zoals de TRVZB radiatorkranen) mogelijk om te kiezen voor een externe temperatuursensor (die je dan zelf up-to-date moet houden via een automatisering of zo). Veel mogelijkheiden dus om te testen.

PS: Je ziet bij mij "rare" cold- en warm tolerances staan. Dat is omdat ik met een globale warmtevraag per zone werk (gaat om een meerzonesysteem met diverse zonekleppen).

André Huisman (www.new-line.nl)


  • krizzziz
  • Registratie: December 2001
  • Laatst online: 08-01 15:33
Ik zie best wel issues open staan via https://github.com/Hyundai-Kia-Connect/kia_uvo/issues. Betekent voor mij in ieder geval dat Hyundai/Kia vast weer iets heeft aangepast dat nog niet verwerkt is in de integratie.

Ik heb zelf ook last van het issue...
Hippe Lip schreef op woensdag 17 december 2025 @ 22:23:
Ik heb de laatste dagen regelmatig dat HA geen contact heeft met de auto/ Hyundai.
De app doet het dan altijd wel. Een paar uur later werkt alles dan weer wel.

Iemand een idee waar dat aan kan liggen?

Dit is wat Home Assistant laat zien:
[Afbeelding]

En dit is wat de app van de auto op hetzelfde moment laat zien:
[Afbeelding]

[ Voor 18% gewijzigd door krizzziz op 18-12-2025 11:17 ]

ehhhh..HOI


  • CAP-Team
  • Registratie: April 2000
  • Laatst online: 02-01 22:30

CAP-Team

XBL: CAPTeam

Ik heb de nieuwe indeling van het energiedashboard, en dan vooral het NU gedeelte nog niet helemaal goed staan. Mijn Net en Verbruik lopen precies met elkaar gelijk, terwijl ik bij de individuele apparaten wel de power sensors heb toegevoegd, en bij net het actuele netverbruik.

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

Voor mijn zonnepanelen zie ik dat er voor het actuele vermogen geen statistiek beschikbaar is.
Dit is een REST API sensor via YAML, daar moet ik misschien nog iets mee doen?

Microsoft Surface Pro 6 | Samsung Galaxy S21FE | XBOX Series X


  • TheFes
  • Registratie: Juni 2001
  • Laatst online: 06:49
CAP-Team schreef op donderdag 18 december 2025 @ 11:51:
Ik heb de nieuwe indeling van het energiedashboard, en dan vooral het NU gedeelte nog niet helemaal goed staan. Mijn Net en Verbruik lopen precies met elkaar gelijk, terwijl ik bij de individuele apparaten wel de power sensors heb toegevoegd, en bij net het actuele netverbruik.

[Afbeelding]

Voor mijn zonnepanelen zie ik dat er voor het actuele vermogen geen statistiek beschikbaar is.
Dit is een REST API sensor via YAML, daar moet ik misschien nog iets mee doen?
Als je maar één input opgeeft (alleen net) zal dat voor deze grafiek dus ook verbruik zijn. Je zult ook solar op moeten geven.
Heb je daar zelf een rest sensor voor aangemaakt? En zo ja, heb je dan ook iets voor de power value?

Home Assistant configuratie


  • CAP-Team
  • Registratie: April 2000
  • Laatst online: 02-01 22:30

CAP-Team

XBL: CAPTeam

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sensor:
  - platform: rest
    name: "Solax vermogen nu"
    unique_id: solax_vermogen_nu
    scan_interval: 300
    unit_of_measurement: "kW"
    resource: !secret solax_api_url
    value_template: >
      {% if value_json.result is defined and value_json.result.acpower is defined %}
        {% set waarde = value_json.result.acpower %}
        {{ waarde / 1000 }}
      {% else %}
        0
      {% endif %}


Zo is de sensor aangemaakt, werkt prima om weer te geven hoeveel ik opwek, maar er worden blijkbaar geen statistieken voor bijgehouden die ik in het energie dashboard kan gebruiken.

Maar ik zie bij anderen dat het net lijntje anders is dan het verbruik lijntje zoals hier
paQ in "Home Assistant: Open source Python3 home automation - deel 5"

[ Voor 7% gewijzigd door CAP-Team op 18-12-2025 13:17 ]

Microsoft Surface Pro 6 | Samsung Galaxy S21FE | XBOX Series X


  • TheFes
  • Registratie: Juni 2001
  • Laatst online: 06:49
CAP-Team schreef op donderdag 18 december 2025 @ 13:16:
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sensor:
  - platform: rest
    name: "Solax vermogen nu"
    unique_id: solax_vermogen_nu
    scan_interval: 300
    unit_of_measurement: "kW"
    resource: !secret solax_api_url
    value_template: >
      {% if value_json.result is defined and value_json.result.acpower is defined %}
        {% set waarde = value_json.result.acpower %}
        {{ waarde / 1000 }}
      {% else %}
        0
      {% endif %}


Zo is de sensor aangemaakt, werkt prima om weer te geven hoeveel ik opwek, maar er worden blijkbaar geen statistieken voor bijgehouden die ik in het energie dashboard kan gebruiken.

Maar ik zie bij anderen dat het net lijntje anders is dan het verbruik lijntje zoals hier
paQ in "Home Assistant: Open source Python3 home automation - deel 5"
Je moet device_class: power en state_class: measurement toevoegen. Dan wordt het opgeslagen in de statistics, en dan kun je hem gebruiken als power sensor.

Home Assistant configuratie


  • CAP-Team
  • Registratie: April 2000
  • Laatst online: 02-01 22:30

CAP-Team

XBL: CAPTeam

Ik zie nu inderdaad wat ik opwek netjes terugkomen in de grafiek, alleen net en verbruik zijn nog steeds aan elkaar gelijk.

Als ik het goed begrijp:
- NET = vermogen van het net = P1 power consumption
- Verbruik = SOM van verbruik van alle individuele apparaten? Ik heb bij de individuele apparaten allemaal een energiesensor en een vermogens sensor geconfigureerd staan.

Microsoft Surface Pro 6 | Samsung Galaxy S21FE | XBOX Series X


  • TheFes
  • Registratie: Juni 2001
  • Laatst online: 06:49
CAP-Team schreef op donderdag 18 december 2025 @ 13:58:
Ik zie nu inderdaad wat ik opwek netjes terugkomen in de grafiek, alleen net en verbruik zijn nog steeds aan elkaar gelijk.

Als ik het goed begrijp:
- NET = vermogen van het net = P1 power consumption
- Verbruik = SOM van verbruik van alle individuele apparaten? Ik heb bij de individuele apparaten allemaal een energiesensor en een vermogens sensor geconfigureerd staan.
Je moet voor een goede grafiek daar 2 waardes hebben (er vanuit gaande dat je geen batterij hebt).
  • Je netto verbruik vanuit het net, dus consumption (van het net) minus de production (naar het net, teruglevering). Als je dat niet als één sensor hebt, moet je ze apart opvoeren (en dan moet production negatief zijn) of je moet er een template sensor voor maken die de production van de consumption af trekt.
  • Je waardes vanuit je inverter
Je individuele apparaten hebben niets met deze grafiek te maken, die zorgen voor de Sankey chart.

[ Voor 4% gewijzigd door TheFes op 18-12-2025 14:13 ]

Home Assistant configuratie


  • wvdveer
  • Registratie: November 2008
  • Laatst online: 20:48
Koepert schreef op donderdag 18 december 2025 @ 10:13:
[...]

Ja daarom als trigger in je automatisering die externe temp-sensor met een numerieke waarde

Ik doe letterlijk dit:

YAML:
1
2
3
4
5
6
7
action: climate.set_hvac_mode
metadata: {}
target:
  entity_id: climate.hombli_smart_infrared_panel_heater
data:
  hvac_mode: heat
alias: Panel heater aan


En als je daar zoiets als trigger aan hangt:


YAML:
1
2
3
4
trigger: numeric_state
entity_id:
  - sensor.temperatuur_zolder_temperature
below: 17


Ben je er toch? Hiermee zet je de stand alleen op verwarmen overigens en doe je niets met de temp van de heater, die laat ik standaard op dezelfde waarde.


Of begrijp ik je wens nu gewoon niet goed?
Dat zou wel eens kunnen kloppen, ik denk dat mijn denkwijze verkeerd is waardoor dit ingewikkelder lijkt dan het zou moeten zijn. Daarnaast is YAML een heel nieuwe wereld, dus het is even omdenken :)

Als ik in de YAML van een basis automation op deze radiator kijk zie ik

YAML:
1
2
3
4
5
6
actions:
  - device_id: c9f155b316eecd6bb85a40f361386f3c
    domain: climate
    entity_id: 10025d7f8d8d758e82992873562f80b5
    type: set_hvac_mode
    hvac_mode: heat 


Is dit een syntax verschil, of is het een andere manier van een actie aanroepen voor deze radiator? Wanneer ik jouw voorbeeld probeer te gebruiken wordt er na aanroepen van climate alleen het device als optie gegeven, geen acties van het device.

  • mede
  • Registratie: Oktober 2006
  • Laatst online: 00:50
Ik heb in Home Assistant de Itho-integratie van https://github.com/jasperslits/haithowifi gebruikt en kreeg via een ander forum (Itho Daalderop - open source wifi control add-on module) de tip om de fan entity te tonen met de presets.

Dit kan ik echter alleen voor elkaar krijgen nadat ik de fan entity op mijn dashboard heb gezet en hierop klik, dan wordt er een popup getoond zoals onderstaand screenshot. Hoe krijg ik dezelfde layout uit de popup nu als een kaart op mijn dashboard? Of is dit misschien niet mogelijk?

Fan entity op dashboard:
Afbeeldingslocatie: https://tweakers.net/i/8SfxU70tH1fnmaLiX4xmg3_AyBA=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/tjC7b8I8cUpW0HGUzShV9L0n.png?f=user_large

Wanneer ik hier op klik, en hoe ik het op mijn dashboard wil krijgen:
Afbeeldingslocatie: https://tweakers.net/i/lJr7XcAKZEP0fM-3dhEij34tcuE=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/6gasz7AscQ4OECk6dFpLnxZX.png?f=user_large

3600 Wp | 12x AEG mono | SE3500


  • Koepert
  • Registratie: Augustus 2013
  • Nu online
wvdveer schreef op donderdag 18 december 2025 @ 14:20:
[...]


Dat zou wel eens kunnen kloppen, ik denk dat mijn denkwijze verkeerd is waardoor dit ingewikkelder lijkt dan het zou moeten zijn. Daarnaast is YAML een heel nieuwe wereld, dus het is even omdenken :)

Als ik in de YAML van een basis automation op deze radiator kijk zie ik

YAML:
1
2
3
4
5
6
actions:
  - device_id: c9f155b316eecd6bb85a40f361386f3c
    domain: climate
    entity_id: 10025d7f8d8d758e82992873562f80b5
    type: set_hvac_mode
    hvac_mode: heat 


Is dit een syntax verschil, of is het een andere manier van een actie aanroepen voor deze radiator? Wanneer ik jouw voorbeeld probeer te gebruiken wordt er na aanroepen van climate alleen het device als optie gegeven, geen acties van het device.
Hoe maak je automations aan? Die van mij is de "bewerken als Yaml" versie van de GUI automation. Daarbij pak ik altijd een entiteit en niet het apparaat. Daar komt dat device_id & domain in dit geval bij jou vandaan.

Maar als ik even uitga van de GUI, dan kies ik daar dus in de automation uiteindelijk een Actie om toe te voegen aan mn automation, in het zoekveld zoek ik dan climate en kies ik voor de HVAC-mode instellen actie. Eenmaal geselecteerd voeg ik als doel mijn paneel toe.

  • JBS
  • Registratie: Januari 2004
  • Niet online

JBS

Naast m'n huidige SONOFF ZigBee 3.0 USB Dongle Plus P voor zigbee, wil ik ook graag Thread gaan toevoegen. Aangezien ik tevreden ben over m'n SONOFF adapter overweeg ik daarnaast de E variant toe te voegen voor enkel Thread (hoewel er mogelijk ook firmware komt/is om beide vanaf één stick te ondersteunen op de E, maar da's in principe niet m'n doel).

Is de keuze voor de ZBDongle-E voor Matter over Threat een goede/logische op dit moment?
Of is bijvoorbeeld de ZBT-2 (https://www.robbshop.nl/h...zigbee-thread-usb-antenne) noemenswaardig beter? Of wellicht de SONOFF MG24 (https://sonoff.tech/en-eu...b-dongle-dongle-plus-mg24)?

[ Voor 8% gewijzigd door JBS op 18-12-2025 15:32 ]


  • wvdveer
  • Registratie: November 2008
  • Laatst online: 20:48
Koepert schreef op donderdag 18 december 2025 @ 14:29:
[...]


Hoe maak je automations aan? Die van mij is de "bewerken als Yaml" versie van de GUI automation. Daarbij pak ik altijd een entiteit en niet het apparaat. Daar komt dat device_id & domain in dit geval bij jou vandaan.

Maar als ik even uitga van de GUI, dan kies ik daar dus in de automation uiteindelijk een Actie om toe te voegen aan mn automation, in het zoekveld zoek ik dan climate en kies ik voor de HVAC-mode instellen actie. Eenmaal geselecteerd voeg ik als doel mijn paneel toe.
Ah, ik maakte hem aan met device ipv entiteit. Nu krijg ik hem op dezelfde manier te zien. Bedankt! Ik ga weer verder prutsen

  • wvdveer
  • Registratie: November 2008
  • Laatst online: 20:48
HuismAndré schreef op donderdag 18 december 2025 @ 10:51:
[...]

Je kunt van de bestaande thermostaat een switch maken met de switch template. Dat ziet er ongeveer zo uit (in templates.yaml):
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
:
- switch:
    - name: "TRV Inpak Klep"
      unique_id: trv_inpak_klep_switch
      state: "{{ 'on' if states('climate.trv_inpak') == 'heat' else 'off' }}"
      turn_on:
        action: climate.set_hvac_mode
        target: { entity_id: climate.trv_inpak }
        data: { hvac_mode: "heat" }
      turn_off:
        action: climate.set_hvac_mode
        target: { entity_id: climate.trv_inpak }
        data: { hvac_mode: "off" }

Daarna stel je nog eenmalig in de "oude" climate entity in wat de off state moet worden (bijvoorbeeld 15 graden vorstbeveiliging) en de on state (bijvoorbeeld 24 graden als extra beveiliging als je nieuwe thermostaat "vast" zou komen te staan). Daarna kun je in je thermostaat entity deze switch als schakelaar gebruiken. Bijvoorbeeld zo:

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  - platform: generic_thermostat
    name: Thermostaat Inpak
    unique_id: thermostaat_inpak_ha
    heater: switch.trv_inpak_klep
    target_sensor: sensor.inpak_temp_r
    min_temp: 10
    max_temp: 20
    cold_tolerance: 0
    hot_tolerance: 0
    min_cycle_duration: 00:10:00
    keep_alive: 00:05:00
    away_temp: 10
    home_temp: 15
    precision: 0.1
    target_temp_step: 0.5

Opwarmmomenten kies je dan met een schedule en een automatisering die de setpoints omschakelt.

Een andere optie is kiezen voor "better thermostat" (maar goed, die optie had je vast al gevonden). Ook is het bij veel slimme thermostaten (zoals de TRVZB radiatorkranen) mogelijk om te kiezen voor een externe temperatuursensor (die je dan zelf up-to-date moet houden via een automatisering of zo). Veel mogelijkheiden dus om te testen.

PS: Je ziet bij mij "rare" cold- en warm tolerances staan. Dat is omdat ik met een globale warmtevraag per zone werk (gaat om een meerzonesysteem met diverse zonekleppen).
Ik merk al dat er 1001 manieren zijn om tot een oplossing te komen, bedankt voor de uitgebreide reactie! Ik ga het eens rustig bekijken
Pagina: 1 ... 360 ... 366 Laatste

Let op:
Zet je code tussen [code=yaml] [/code] tags om het goed leesbaar te houden; ook makkelijker voor de eventuele foutopsporing.

Lees ook eerst even de topicstart voor je je vraag plaatst, wellicht wordt je vraag daar al beantwoord. Wil je pronken met je setup mag dat in Home Assistant - Show je setup.