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).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.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 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 kanRobertMe 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).
Had zelf zo iets in gedachten
2x
:strip_exif()/f/image/mpO5w5cnGdxkZyW3PVhdkBsI.jpg?f=fotoalbum_large)
1 of twee keer deze:
: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.
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 netwerkSeptillion 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 heenEn 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.
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).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
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.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.
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:
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
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. ]
@wernert De Eastron SDM120 bedoel je?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.
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>
Probeer het eens met intents?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 15alias: 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 kwelgeestaf helpen, of misschien een juiste oplossing voor wat ik verkeerd doe.
Veel dank.
intents.yaml
1
2
3
4
| AddShoppingItems: data: - name: items type: wildcard |
intents_script.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
gewoon de oude repo verwijderen, en de mijne installeren. Dan gewoon er los over; Neemt normaal alles gewoon overPsycho_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.
enkel devive tracker kan je er 2 hebben , eentje verwijderen en klaar.
Marstek 5.12kw v151, CT003 v117, Sagecom Xs212 1P,
Hmm dat zou nog wel wat zijn tegen elkaar plakken en zo ervoor zorgen dat ze elkaar niet beinvloedenRobertMe 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.
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
Of gewoon zorgen voor een schot tussen beide kanten0xygen500 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
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.
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 betersHippe 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.
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.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?
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
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.RobertMe schreef op maandag 15 december 2025 @ 21:02:
[...]
Of gewoon zorgen voor een schot tussen beide kantenPIR 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.
Ik draai ook gewoon Tuya niet lokaal. Nooit werkend gekregen en als China mijn bedlamp wilt laten flikkeren, tsja succes.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.
@CrankyGamerOG Bedankt voor de hulp en ik ga hiermee aan de slagCrankyGamerOG 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.
Ik denk dat ik deze getackeld heb. Ziet iemand hier volledige overkill of fouten?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 probleemmaar het loggen van dat tijdelijke verbruik.
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 |
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 lampSlaapkamer xxx uitgezet getriggerd door automatisering Lampen binnen uit knop triggered
08:22:54 - 1 uur geleden
Tijdstip hetzelfde, maar geen verwijzing naar de automatisering.Konijn aka buiten kerst uitgezet
08:22:54 - 1 uur geleden
[/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!!
Heb je wellicht alleen de area gewijzigd op de entity, maar staat het device nog wel op de slaapkamer?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?
Even gecontroleerd: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?
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!!
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.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:
1TemplateError('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?
Got Leenucks? | Debian Bookworm x86_64 / ARM | OpenWrt: Empower your router | Blogje
Alle keys hebben een unieke scope, de dict die je aanmaakt onder je state template, is niet beschikbaar onder je icon template.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.
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.
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 ]
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).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 %}
Want hier kan ik denk ik ook wel iets mee
Ja, de entities gebruikt in je variables zetten ook listeners.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).
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:
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 }}" |
[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
[ Voor 30% gewijzigd door WoBBeL op 16-12-2025 12:51 ]
Na wat zoek werk blijkt het deze te zijn. https://www.matcall.nl/producten/mc-easy-ontvanger-m12/Septillion schreef op maandag 15 december 2025 @ 11:11:
@Pukson Drop in replacement is wel heeeeeel makkelijk
Andere alternatieven die ik snel kan vinden:
Gledopto
Ali inline
Ali module
Shelly Plus RGBW (Wifi, geen Zigbee)
En @RonJ linkt ook een aardige.
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
@Toppe Je hebt ze allemaal netjes op datumvolgorde. Is dat toevallig, of sorteer je dat op de een of andere manier bij het weergeven?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
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>
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
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.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.
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!
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.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
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
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.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 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
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?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
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"..
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 ]
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
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)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.
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
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.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.
PV 5.590 Wp Enphase, 2.700 Wp Growatt - Easee laadpaal - Itho Amber 95 WP
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 PhraseImpossibl3 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.
Ik zou 1 en 3 sowieso nooit combineren.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 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!
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).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.
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
En anders lijkt me toch wel met Whisper dat ook prima zal werken op een beetje hardware?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
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.
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.
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).Impossibl3 schreef op dinsdag 16 december 2025 @ 16:24:
[...]
Frigate draait ook lokaal met een Coral.
Het cover voorbeeld zou volgens mij moeten werken, tenzij Whisper je natuurlijk niet verstaatRobertMe 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.
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.
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) .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).
PV 5.590 Wp Enphase, 2.700 Wp Growatt - Easee laadpaal - Itho Amber 95 WP
V.w.b. de rest van de post doelde ik op Speech to PhraseTheFes 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.
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
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
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 zijnS. 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?
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!
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 ]
Versie van de verschillende onderdelen kun je uit de update entities van dit onderdelen halen.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, … ?
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
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.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
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)).
Maar je komt van 300, dus naar 50 toe is dalen. Dus je kan alleen ergens onder zakken.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.
De 300watt voor het inschakelen is energiemeter productie.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 50watt uitschakeling is energiemeter verbruik.
Beetje verwarrend maar lijkt mij toch juist zo?
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.
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 wegSeptillion 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)).
Maar je eerdere automation aangepast:
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 |
Settings => Devices & services => Helpers => Create helper => Template => Sensor
Name: Electricity meter netto import
State:
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
1
| {{ states('sensor.electricity_meter_energieverbruik') |is_number and states('sensor.electricity_meter_energieproductie') |is_number}} |
Zonder ook maar iets te doen, werkt het op magische wijze sinds 00:00 weerSeptillion 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.
Ik doe niet aan bijgeloof. Dat brengt ongeluk.
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!
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 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
Warempel! Ik was in de veronderstelling dat een attribuut nooit werd afgerond... Waarom ze hier de keus maken is mij dan ook een raadsel.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.
Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!
: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;;
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 |
Ik ga het proberen, kom er op terug. Thnxkrijn1985 schreef op woensdag 17 december 2025 @ 13:18:
@maartend En als je je switch nu omzet naar een light? zoals hier beschreven.
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 ]
En als je dan dit doet (of dus veranderen naar light.pp_trap):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
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.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
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 ]
Benodigdheden:
Er vanuit gaande dat je al P2000 gebruikt
Places
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!
Bedankt voor je reactie. heb het nu zo ingesteld als je zei en ga morgen kijken of het nu wel goed werkt.
Super bedankt
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.
BedanktTheFes 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 %}
Got Leenucks? | Debian Bookworm x86_64 / ARM | OpenWrt: Empower your router | Blogje
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.Borromini schreef op woensdag 17 december 2025 @ 20:39:
[...]
BedanktIk 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]
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:
/f/image/vkN8VZtqK1FTTIdZ0XTiksaq.png?f=fotoalbum_large)
En dit is wat de app van de auto op hetzelfde moment laat zien:
[ 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>
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!
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.
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: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!
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.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
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 waardewvdveer 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.
Ik doe letterlijk dit:
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:
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?
Dus iets als:
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
Bah. Ik wist dat het in een klein hoekje zat... Nu werkt het welTheFes 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.
Got Leenucks? | Debian Bookworm x86_64 / ARM | OpenWrt: Empower your router | Blogje
Je kunt van de bestaande thermostaat een switch maken met de switch template. Dat ziet er ongeveer zo uit (in templates.yaml):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!
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:
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)
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
/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
Als je maar één input opgeeft (alleen net) zal dat voor deze grafiek dus ook verbruik zijn. Je zult ook solar op moeten geven.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?
Heb je daar zelf een rest sensor voor aangemaakt? En zo ja, heb je dan ook iets voor de power value?
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
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.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"
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
Je moet voor een goede grafiek daar 2 waardes hebben (er vanuit gaande dat je geen batterij hebt).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 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
[ Voor 4% gewijzigd door TheFes op 18-12-2025 14:13 ]
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 omdenkenKoepert 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?
Als ik in de YAML van een basis automation op deze radiator kijk zie ik
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.
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:
:strip_exif()/f/image/tjC7b8I8cUpW0HGUzShV9L0n.png?f=user_large)
Wanneer ik hier op klik, en hoe ik het op mijn dashboard wil krijgen:
3600 Wp | 12x AEG mono | SE3500
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.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.
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.
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 ]
Ah, ik maakte hem aan met device ipv entiteit. Nu krijg ik hem op dezelfde manier te zien. Bedankt! Ik ga weer verder prutsenKoepert 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.
Ik merk al dat er 1001 manieren zijn om tot een oplossing te komen, bedankt voor de uitgebreide reactie! Ik ga het eens rustig bekijkenHuismAndré 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).
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.