Nee.. in de flow van @Gizz wordt de PWM enkel gebruikt voor de aansturing van de ventilatie. De Co21, Co22, Co23, fijnstof en humidity worden alle 5 opgeslagen in de flow. (alles wordt omgerekend naar c02 waarde om het vergelijken makkelijker te maken, dus >70% humidity --> co2 waarde 2000). Vervolgens wordt op basis van de max waarde van deze 5 sensoren bepaald hoe hoog de ventilatie moet middels de range. Dit komt op hetzelfde neer als wat jij probeert te bereiken.etienne001 schreef op woensdag 6 oktober 2021 @ 23:26:
[...]
Ik heb gisteravond eens zitten spelen met jouw opzet.
Ik ben bang dat ik inderdaad zonder PWM controller dit niet ga redden.
Wat er bij mij gebeurd is eigenlijk dat het systeem gaat pendelen. Oké waarde CO2 is te hoog dus ventilatie aan. Dan is er weer een input van de HUM sensor en dan gaat de ventilatie weer uit![]()
En dat terwijl CO2 nog te hoog is.
Ik snap de opzet van hoogste waarde, maar ik als leek denk dan dat jouw PWM controller uitmaakt wat er gebeurd met welke waarde of heb ik het nou fout?
Ik moet het zou het zo willen hebben dat Node-RED zegt oké CO2 te hoog maar HUM niet ventilatie aan; HUM te hoog en CO2 laag, ventilatie aan; beide hoog ventilatie aan; beide laag ventilatie uit.
Als ik dan speel met die waardes in de range controller dan lijkt dit niet te werken.
Ahh oké, zoals ik het zie wordt er een commando verzonden naar de PWM controller. Bij dit commando zie ik niet wat aan en/of uit is. Mijn ventilatie box stuur ik op bais van een http command met een state vandaar.denuz schreef op woensdag 6 oktober 2021 @ 23:42:
[...]
Nee.. in de flow van @Gizz wordt de PWM enkel gebruikt voor de aansturing van de ventilatie. De Co21, Co22, Co23, fijnstof en humidity worden alle 5 opgeslagen in de flow. (alles wordt omgerekend naar c02 waarde om het vergelijken makkelijker te maken, dus >70% humidity --> co2 waarde 2000). Vervolgens wordt op basis van de max waarde van deze 5 sensoren bepaald hoe hoog de ventilatie moet middels de range. Dit komt op hetzelfde neer als wat jij probeert te bereiken.
Zou het dan echt in de aansturing zitten? Ik heb het script nagenoeg 1 op 1 gekopieerd, waarvoor alsnog mijn dank voor het aanbod
code:
1
2
3
4
5
6
| [{"id":"aa4a2e4.2bdda5","type":"tab","label":"Ventilatie","disabled":false,"info":""},{"id":"5dc83540.8dec6c","type":"change","z":"aa4a2e4.2bdda5","name":"choose highest value","rules":[{"t":"set","p":"co2","pt":"msg","to":"$max([$flowContext(\"co21\"), $flowContext(\"hum\")])","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":520,"y":180,"wires":[["2853bb3e2c610575"]]},{"id":"878d671023a9f0cd","type":"server-state-changed","z":"aa4a2e4.2bdda5","name":"","server":"1942d160.7834af","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.humidity_14","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"flow","value":"","valueType":"entityState"},{"property":"data","propertyType":"flow","value":"","valueType":"eventData"},{"property":"topic","propertyType":"flow","value":"","valueType":"triggerId"}],"x":140,"y":380,"wires":[["5ed218a5ab8bc2d9"]]},{"id":"daf6781342bf3fd5","type":"server-state-changed","z":"aa4a2e4.2bdda5","name":"","server":"1942d160.7834af","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.co2melder","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"flow","value":"","valueType":"entityState"},{"property":"data","propertyType":"flow","value":"","valueType":"eventData"},{"property":"topic","propertyType":"flow","value":"","valueType":"triggerId"}],"x":150,"y":100,"wires":[["9aa274014c9f3ad7"]]},{"id":"a0b63cc9ac9ff5ba","type":"www-request","z":"aa4a2e4.2bdda5","name":"Ventilatie hoog","method":"GET","ret":"txt","url":"htt p://192.168.1.30/control?cmd=STATE,3","follow-redirects":true,"persistent-http":true,"tls":"","x":1100,"y":80,"wires":[[]]},{"id":"92069d14e270ccd9","type":"www-request","z":"aa4a2e4.2bdda5","name":"Ventilatie laag","method":"GET","ret":"txt","url":"http://192.168.1.30/control?cmd=STATE,1","follow-redirects":true,"persistent-http":true,"tls":"","x":1120,"y":280,"wires":[[]]},{"id":"9aa274014c9f3ad7","type":"change","z":"aa4a2e4.2bdda5","name":"store","rules":[{"t":"set","p":"co21","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":390,"y":80,"wires":[["5dc83540.8dec6c"]]},{"id":"5ed218a5ab8bc2d9","type":"switch","z":"aa4a2e4.2bdda5","name":"","property":"payload.humidity","propertyType":"msg","rules":[{"t":"gte","v":"75","vt":"num"},{"t":"lt","v":"74","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":410,"y":360,"wires":[["7ba76be310d9c797"],["f3216c2f9e66da10"]]},{"id":"7ba76be310d9c797","type":"change","z":"aa4a2e4.2bdda5","name":"","rules":[{"t":"set","p":"hum","pt":"flow","to":"2000","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":590,"y":320,"wires":[["5dc83540.8dec6c"]]},{"id":"f3216c2f9e66da10","type":"change","z":"aa4a2e4.2bdda5","name":"","rules":[{"t":"set","p":"hum","pt":"flow","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":590,"y":420,"wires":[["5dc83540.8dec6c"]]},{"id":"2853bb3e2c610575","type":"range","z":"aa4a2e4.2bdda5","minin":"900","maxin":"1000","minout":"0","maxout":"1023","action":"clamp","round":true,"property":"co2","name":"","x":840,"y":180,"wires":[["1cd1f9fab56ff8fd","a0b63cc9ac9ff5ba"]]},{"id":"1cd1f9fab56ff8fd","type":"range","z":"aa4a2e4.2bdda5","minin":"0","maxin":"1023","minout":"0","maxout":"100","action":"scale","round":true,"property":"co2","name":"","x":860,"y":240,"wires":[["c35088796b1776d7"]]},{"id":"c35088796b1776d7","type":"change","z":"aa4a2e4.2bdda5","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"co2","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":900,"y":300,"wires":[["92069d14e270ccd9"]]},{"id":"1942d160.7834af","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}] |
@denuz legt de werking perfect uit
Doordat alle waardes bewaard worden in de flow vergelijk je alles netjes met elkaar, i.p.v. dat alleen naar de waarde van de sensor die zich het meest recent heeft geupdate wordt gekeken.
@etienne001 waar het bij jou misgaat is dat je teveel van mijn flow opnieuw probeert te gebruiken. Bij mij gaat de aansturing in 1024 stapjes (van 0 tot 1023), terwijl jij een binaire aansturing hebt (aan of uit). Maar in de flow die je deelt staat nog de range node met omzetting van msg.co2 naar een waarde van 0 tot 1023. Daar heb jij in jouw situatie niets aan.
Bij jou is het eigenlijk eenvoudiger. Na de 'choose highest value' node zet je een switch-node neer. Eén uitgang van de switch-node wordt geactiveerd als msg.co2 hoger is dan 800 (ik noem maar even wat). Dat leidt tot je http-commando om de ventilator te activeren. De andere uitgang wordt geactiveerd als msg.co2 gelijk of lager is dan 800 en leidt tot je http-commando dat de ventilator uitschakelt. Dan ben je klaar
Overigens is een beetje pendelgedrag met een aan/uit-schakeling te verwachten in een aantal situaties. Stel je zit gezellig met wat mensen in de kamer en msg.co2 is <800, dan staat je ventilatie uit. Het CO2-gehalte loopt op (want jullie ademen en er wordt weinig geventileerd). Op een gegeven moment wordt msg.co2 > 800 en de ventilatie gaat op vol vermogen draaien. Er wordt dan (hopelijk!) sneller schone lucht in de kamer dan jullie kunnen 'vervuilen' met je ademhaling. Na een tijdje wordt msg.co2 <800 en de ventilatie gaat geheel uit. Maar jullie blijven ademen, dus msg.co2 loopt weer op totdat >800 wordt bereikt en de ventilatie weer volle bak gaat draaien. Dit proces blijft zich herhalen.
Het snel achter elkaar wisselen zou je kunnen ondervangen door met timers te gaan werken. Dat de ventilatie in ieder geval 10 minuten aan moet bij msg.co2 >800. Want vaak is het niet eens vervelend qua geluid dat de ventilatie een tijdje hard draait, het is vooral vervelend als je binnen enkele minuten steeds de ventilatie aan en uit hoort gaan, dus de verandering van geluid. De mooiste oplossing is natuurlijk traploos de ventilatie aansturen.
Maar ik zou eerst gewoon zorgen dat hij mooi schakelt met een switch-node. Je merkt vanzelf wel of je tegen pendelgedrag gaat aanlopen en hoe erg je dat stoort.
@etienne001 waar het bij jou misgaat is dat je teveel van mijn flow opnieuw probeert te gebruiken. Bij mij gaat de aansturing in 1024 stapjes (van 0 tot 1023), terwijl jij een binaire aansturing hebt (aan of uit). Maar in de flow die je deelt staat nog de range node met omzetting van msg.co2 naar een waarde van 0 tot 1023. Daar heb jij in jouw situatie niets aan.
Bij jou is het eigenlijk eenvoudiger. Na de 'choose highest value' node zet je een switch-node neer. Eén uitgang van de switch-node wordt geactiveerd als msg.co2 hoger is dan 800 (ik noem maar even wat). Dat leidt tot je http-commando om de ventilator te activeren. De andere uitgang wordt geactiveerd als msg.co2 gelijk of lager is dan 800 en leidt tot je http-commando dat de ventilator uitschakelt. Dan ben je klaar
Overigens is een beetje pendelgedrag met een aan/uit-schakeling te verwachten in een aantal situaties. Stel je zit gezellig met wat mensen in de kamer en msg.co2 is <800, dan staat je ventilatie uit. Het CO2-gehalte loopt op (want jullie ademen en er wordt weinig geventileerd). Op een gegeven moment wordt msg.co2 > 800 en de ventilatie gaat op vol vermogen draaien. Er wordt dan (hopelijk!) sneller schone lucht in de kamer dan jullie kunnen 'vervuilen' met je ademhaling. Na een tijdje wordt msg.co2 <800 en de ventilatie gaat geheel uit. Maar jullie blijven ademen, dus msg.co2 loopt weer op totdat >800 wordt bereikt en de ventilatie weer volle bak gaat draaien. Dit proces blijft zich herhalen.
Het snel achter elkaar wisselen zou je kunnen ondervangen door met timers te gaan werken. Dat de ventilatie in ieder geval 10 minuten aan moet bij msg.co2 >800. Want vaak is het niet eens vervelend qua geluid dat de ventilatie een tijdje hard draait, het is vooral vervelend als je binnen enkele minuten steeds de ventilatie aan en uit hoort gaan, dus de verandering van geluid. De mooiste oplossing is natuurlijk traploos de ventilatie aansturen.
Maar ik zou eerst gewoon zorgen dat hij mooi schakelt met een switch-node. Je merkt vanzelf wel of je tegen pendelgedrag gaat aanlopen en hoe erg je dat stoort.
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
Heldere uitleg @denuz en @Gizz , zeer bedankt voor de aangeboden hulp tot zover.Gizz schreef op donderdag 7 oktober 2021 @ 07:42:
@denuz legt de werking perfect uitDoordat alle waardes bewaard worden in de flow vergelijk je alles netjes met elkaar, i.p.v. dat alleen naar de waarde van de sensor die zich het meest recent heeft geupdate wordt gekeken.
@etienne001 waar het bij jou misgaat is dat je teveel van mijn flow opnieuw probeert te gebruiken. Bij mij gaat de aansturing in 1024 stapjes (van 0 tot 1023), terwijl jij een binaire aansturing hebt (aan of uit). Maar in de flow die je deelt staat nog de range node met omzetting van msg.co2 naar een waarde van 0 tot 1023. Daar heb jij in jouw situatie niets aan.
Bij jou is het eigenlijk eenvoudiger. Na de 'choose highest value' node zet je een switch-node neer. Eén uitgang van de switch-node wordt geactiveerd als msg.co2 hoger is dan 800 (ik noem maar even wat). Dat leidt tot je http-commando om de ventilator te activeren. De andere uitgang wordt geactiveerd als msg.co2 gelijk of lager is dan 800 en leidt tot je http-commando dat de ventilator uitschakelt. Dan ben je klaar
Overigens is een beetje pendelgedrag met een aan/uit-schakeling te verwachten in een aantal situaties. Stel je zit gezellig met wat mensen in de kamer en msg.co2 is <800, dan staat je ventilatie uit. Het CO2-gehalte loopt op (want jullie ademen en er wordt weinig geventileerd). Op een gegeven moment wordt msg.co2 > 800 en de ventilatie gaat op vol vermogen draaien. Er wordt dan (hopelijk!) sneller schone lucht in de kamer dan jullie kunnen 'vervuilen' met je ademhaling. Na een tijdje wordt msg.co2 <800 en de ventilatie gaat geheel uit. Maar jullie blijven ademen, dus msg.co2 loopt weer op totdat >800 wordt bereikt en de ventilatie weer volle bak gaat draaien. Dit proces blijft zich herhalen.
Het snel achter elkaar wisselen zou je kunnen ondervangen door met timers te gaan werken. Dat de ventilatie in ieder geval 10 minuten aan moet bij msg.co2 >800. Want vaak is het niet eens vervelend qua geluid dat de ventilatie een tijdje hard draait, het is vooral vervelend als je binnen enkele minuten steeds de ventilatie aan en uit hoort gaan, dus de verandering van geluid. De mooiste oplossing is natuurlijk traploos de ventilatie aansturen.
Maar ik zou eerst gewoon zorgen dat hij mooi schakelt met een switch-node. Je merkt vanzelf wel of je tegen pendelgedrag gaat aanlopen en hoe erg je dat stoort.
Ik heb inderdaad de range selector weggehaald en een switch geplaatst met om te testen even een waarde van hoger of lager dan 800. De switch luistert idd naar de msg.co2
Even testen maar helaas bij zowel teveel co2 als hum wordt de ventilator nog niet gestuurd:
:strip_exif()/f/image/gKiFJ8O74WDK8G91cFvFT9ia.jpg?f=fotoalbum_large)
Nou zit ik toch nog even te kijken naar het voorbeeld en wellicht denk ik wel helemaal de verkeerde kant op hoor. Maar jouw input vanaf de CO2, Fijnstof en hum sensor komt in een Json waarde in de flow toch?
Wordt die Json waarde dan in de de choose highest verwerkt met de
code:
1
| $max([$flowContext("co21"), $flowContext("hum")]) |
De waarde die mijn entiteiten geven is niet in Json namelijk.
Het pendelen snap ik zeker als dit rond de ingestelde waarde idd. Met het testen was het namelijk direct aan/uit met een co2 waarde van +1000 terwijl de drempel 800 was. Dit was nog wel met de range selector er tussen
Kun je je flow posten? Wat ik doe als ik aan het prutsen ben is sowieso inject nodes plaatsen. Dan kun je stap voor stap dmv de debug nodes kijken tot waar je flow 'loopt'. Dan kan je ook makkelijk achterhalen waar ie dus stopt.etienne001 schreef op donderdag 7 oktober 2021 @ 15:24:
[...]
Heldere uitleg @denuz en @Gizz , zeer bedankt voor de aangeboden hulp tot zover.
Ik heb inderdaad de range selector weggehaald en een switch geplaatst met om te testen even een waarde van hoger of lager dan 800. De switch luistert idd naar de msg.co2
Even testen maar helaas bij zowel teveel co2 als hum wordt de ventilator nog niet gestuurd:
[Afbeelding]
Nou zit ik toch nog even te kijken naar het voorbeeld en wellicht denk ik wel helemaal de verkeerde kant op hoor. Maar jouw input vanaf de CO2, Fijnstof en hum sensor komt in een Json waarde in de flow toch?
Wordt die Json waarde dan in de de choose highest verwerkt met decode:
1 $max([$flowContext("co21"), $flowContext("hum")])
De waarde die mijn entiteiten geven is niet in Json namelijk.
Het pendelen snap ik zeker als dit rond de ingestelde waarde idd. Met het testen was het namelijk direct aan/uit met een co2 waarde van +1000 terwijl de drempel 800 was. Dit was nog wel met de range selector er tussen
Sorry vergetendenuz schreef op donderdag 7 oktober 2021 @ 15:39:
[...]
Kun je je flow posten? Wat ik doe als ik aan het prutsen ben is sowieso inject nodes plaatsen. Dan kun je stap voor stap dmv de debug nodes kijken tot waar je flow 'loopt'. Dan kan je ook makkelijk achterhalen waar ie dus stopt.

Bijgaand de code welke ik nu gebruik:
code:
1
| [{"id":"aa4a2e4.2bdda5","type":"tab","label":"Ventilatie","disabled":false,"info":""},{"id":"5dc83540.8dec6c","type":"change","z":"aa4a2e4.2bdda5","name":"choose highest value","rules":[{"t":"set","p":"co2","pt":"msg","to":"$max([$flowContext(\"co21\"), $flowContext(\"hum\")])","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":520,"y":180,"wires":[["e53534c6cb9ebf2a"]]},{"id":"878d671023a9f0cd","type":"server-state-changed","z":"aa4a2e4.2bdda5","name":"","server":"1942d160.7834af","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.humidity_14","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"flow","value":"","valueType":"entityState"},{"property":"data","propertyType":"flow","value":"","valueType":"eventData"},{"property":"topic","propertyType":"flow","value":"","valueType":"triggerId"}],"x":140,"y":380,"wires":[["5ed218a5ab8bc2d9"]]},{"id":"daf6781342bf3fd5","type":"server-state-changed","z":"aa4a2e4.2bdda5","name":"","server":"1942d160.7834af","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.co2melder","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"global","value":"","valueType":"entityState"},{"property":"data","propertyType":"global","value":"","valueType":"eventData"},{"property":"topic","propertyType":"global","value":"","valueType":"triggerId"}],"x":150,"y":100,"wires":[["9aa274014c9f3ad7"]]},{"id":"a0b63cc9ac9ff5ba","type":"www-request","z":"aa4a2e4.2bdda5","name":"Ventilatie hoog","method":"GET","ret":"txt","url":"http://192.168.1.30/control?cmd=STATE,3","follow-redirects":true,"persistent-http":true,"tls":"","x":1100,"y":80,"wires":[[]]},{"id":"92069d14e270ccd9","type":"www-request","z":"aa4a2e4.2bdda5","name":"Ventilatie laag","method":"GET","ret":"txt","url":"http://192.168.1.30/control?cmd=STATE,1","follow-redirects":true,"persistent-http":true,"tls":"","x":1120,"y":280,"wires":[[]]},{"id":"9aa274014c9f3ad7","type":"change","z":"aa4a2e4.2bdda5","name":"store","rules":[{"t":"set","p":"co21","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":270,"y":260,"wires":[["5dc83540.8dec6c"]]},{"id":"5ed218a5ab8bc2d9","type":"switch","z":"aa4a2e4.2bdda5","name":"","property":"payload.humidity","propertyType":"msg","rules":[{"t":"gte","v":"75","vt":"num"},{"t":"lt","v":"74","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":410,"y":360,"wires":[["7ba76be310d9c797"],["f3216c2f9e66da10"]]},{"id":"7ba76be310d9c797","type":"change","z":"aa4a2e4.2bdda5","name":"","rules":[{"t":"set","p":"hum","pt":"flow","to":"2000","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":590,"y":320,"wires":[["5dc83540.8dec6c"]]},{"id":"f3216c2f9e66da10","type":"change","z":"aa4a2e4.2bdda5","name":"","rules":[{"t":"set","p":"hum","pt":"flow","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":590,"y":420,"wires":[["5dc83540.8dec6c"]]},{"id":"e53534c6cb9ebf2a","type":"switch","z":"aa4a2e4.2bdda5","name":"","property":"co2","propertyType":"msg","rules":[{"t":"gte","v":"800","vt":"str"},{"t":"lt","v":"800","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":730,"y":160,"wires":[["a0b63cc9ac9ff5ba"],["92069d14e270ccd9"]]},{"id":"1942d160.7834af","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}] |
Die inject nodes ken ik eerlijk gezegd nog niet, zal me er vanavond eens in gaan verdiepen
etienne001 schreef op donderdag 7 oktober 2021 @ 15:52:
[...]
Sorry vergeten![]()
Bijgaand de code welke ik nu gebruik:
code:
1 [{"id":"aa4a2e4.2bdda5","type":"tab","label":"Ventilatie","disabled":false,"info":""},{"id":"5dc83540.8dec6c","type":"change","z":"aa4a2e4.2bdda5","name":"choose highest value","rules":[{"t":"set","p":"co2","pt":"msg","to":"$max([$flowContext(\"co21\"), $flowContext(\"hum\")])","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":520,"y":180,"wires":[["e53534c6cb9ebf2a"]]},{"id":"878d671023a9f0cd","type":"server-state-changed","z":"aa4a2e4.2bdda5","name":"","server":"1942d160.7834af","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.humidity_14","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"flow","value":"","valueType":"entityState"},{"property":"data","propertyType":"flow","value":"","valueType":"eventData"},{"property":"topic","propertyType":"flow","value":"","valueType":"triggerId"}],"x":140,"y":380,"wires":[["5ed218a5ab8bc2d9"]]},{"id":"daf6781342bf3fd5","type":"server-state-changed","z":"aa4a2e4.2bdda5","name":"","server":"1942d160.7834af","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.co2melder","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"global","value":"","valueType":"entityState"},{"property":"data","propertyType":"global","value":"","valueType":"eventData"},{"property":"topic","propertyType":"global","value":"","valueType":"triggerId"}],"x":150,"y":100,"wires":[["9aa274014c9f3ad7"]]},{"id":"a0b63cc9ac9ff5ba","type":"www-request","z":"aa4a2e4.2bdda5","name":"Ventilatie hoog","method":"GET","ret":"txt","url":"http://192.168.1.30/control?cmd=STATE,3","follow-redirects":true,"persistent-http":true,"tls":"","x":1100,"y":80,"wires":[[]]},{"id":"92069d14e270ccd9","type":"www-request","z":"aa4a2e4.2bdda5","name":"Ventilatie laag","method":"GET","ret":"txt","url":"http://192.168.1.30/control?cmd=STATE,1","follow-redirects":true,"persistent-http":true,"tls":"","x":1120,"y":280,"wires":[[]]},{"id":"9aa274014c9f3ad7","type":"change","z":"aa4a2e4.2bdda5","name":"store","rules":[{"t":"set","p":"co21","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":270,"y":260,"wires":[["5dc83540.8dec6c"]]},{"id":"5ed218a5ab8bc2d9","type":"switch","z":"aa4a2e4.2bdda5","name":"","property":"payload.humidity","propertyType":"msg","rules":[{"t":"gte","v":"75","vt":"num"},{"t":"lt","v":"74","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":410,"y":360,"wires":[["7ba76be310d9c797"],["f3216c2f9e66da10"]]},{"id":"7ba76be310d9c797","type":"change","z":"aa4a2e4.2bdda5","name":"","rules":[{"t":"set","p":"hum","pt":"flow","to":"2000","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":590,"y":320,"wires":[["5dc83540.8dec6c"]]},{"id":"f3216c2f9e66da10","type":"change","z":"aa4a2e4.2bdda5","name":"","rules":[{"t":"set","p":"hum","pt":"flow","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":590,"y":420,"wires":[["5dc83540.8dec6c"]]},{"id":"e53534c6cb9ebf2a","type":"switch","z":"aa4a2e4.2bdda5","name":"","property":"co2","propertyType":"msg","rules":[{"t":"gte","v":"800","vt":"str"},{"t":"lt","v":"800","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":730,"y":160,"wires":[["a0b63cc9ac9ff5ba"],["92069d14e270ccd9"]]},{"id":"1942d160.7834af","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]
Die inject nodes ken ik eerlijk gezegd nog niet, zal me er vanavond eens in gaan verdiepen
code:
1
| [{"id":"a6f4e9f5f8afeb7b","type":"tab","label":"Ventilatie","disabled":false,"info":""},{"id":"76d6d4786ba74a06","type":"change","z":"a6f4e9f5f8afeb7b","name":"choose highest value","rules":[{"t":"set","p":"co2","pt":"msg","to":"$max([$flowContext(\"co21\"), $flowContext(\"hum\")])","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":520,"y":180,"wires":[["9673d7b64d920fd8"]]},{"id":"079d6ab0a41d3418","type":"server-state-changed","z":"a6f4e9f5f8afeb7b","name":"","server":"1942d160.7834af","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.humidity_14","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"flow","value":"","valueType":"entityState"},{"property":"data","propertyType":"flow","value":"","valueType":"eventData"},{"property":"topic","propertyType":"flow","value":"","valueType":"triggerId"}],"x":140,"y":380,"wires":[["1be2d6a7b0861f65"]]},{"id":"b8f5467162dd123b","type":"server-state-changed","z":"a6f4e9f5f8afeb7b","name":"","server":"1942d160.7834af","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.co2melder","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"global","value":"","valueType":"entityState"},{"property":"data","propertyType":"global","value":"","valueType":"eventData"},{"property":"topic","propertyType":"global","value":"","valueType":"triggerId"}],"x":150,"y":100,"wires":[["cc8404a9ab5fd20a"]]},{"id":"e0df80589997ae28","type":"www-request","z":"a6f4e9f5f8afeb7b","name":"Ventilatie hoog","method":"GET","ret":"txt","url":"http://192.168.1.30/control?cmd=STATE,3","follow-redirects":true,"persistent-http":true,"tls":"","x":1100,"y":80,"wires":[[]]},{"id":"bbe85acd1016793b","type":"www-request","z":"a6f4e9f5f8afeb7b","name":"Ventilatie laag","method":"GET","ret":"txt","url":"http://192.168.1.30/control?cmd=STATE,1","follow-redirects":true,"persistent-http":true,"tls":"","x":1080,"y":240,"wires":[[]]},{"id":"cc8404a9ab5fd20a","type":"change","z":"a6f4e9f5f8afeb7b","name":"store","rules":[{"t":"set","p":"payload","pt":"msg","to":"$number(payload)","tot":"jsonata"},{"t":"set","p":"co21","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":270,"y":260,"wires":[["76d6d4786ba74a06"]]},{"id":"1be2d6a7b0861f65","type":"switch","z":"a6f4e9f5f8afeb7b","name":"","property":"payload","propertyType":"msg","rules":[{"t":"gte","v":"75","vt":"num"},{"t":"lt","v":"74","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":410,"y":360,"wires":[["c105f93611fc217c"],["fb434870735f64a9"]]},{"id":"c105f93611fc217c","type":"change","z":"a6f4e9f5f8afeb7b","name":"","rules":[{"t":"set","p":"hum","pt":"flow","to":"2000","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":590,"y":320,"wires":[["76d6d4786ba74a06"]]},{"id":"fb434870735f64a9","type":"change","z":"a6f4e9f5f8afeb7b","name":"","rules":[{"t":"set","p":"hum","pt":"flow","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":590,"y":420,"wires":[["76d6d4786ba74a06"]]},{"id":"9673d7b64d920fd8","type":"switch","z":"a6f4e9f5f8afeb7b","name":"","property":"co2","propertyType":"msg","rules":[{"t":"gte","v":"800","vt":"str"},{"t":"lt","v":"800","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":730,"y":160,"wires":[["dec3a3a7187231b7"],["88479d6fa9ca160f"]]},{"id":"a48c51154feef8ea","type":"inject","z":"a6f4e9f5f8afeb7b","name":"co2","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"800","payloadType":"str","x":70,"y":180,"wires":[["cc8404a9ab5fd20a"]]},{"id":"eea300c04ac95a7a","type":"inject","z":"a6f4e9f5f8afeb7b","name":"hum","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"80","payloadType":"str","x":70,"y":320,"wires":[["1be2d6a7b0861f65"]]},{"id":"dec3a3a7187231b7","type":"debug","z":"a6f4e9f5f8afeb7b","name":"ventilatie hoog","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1090,"y":140,"wires":[]},{"id":"88479d6fa9ca160f","type":"debug","z":"a6f4e9f5f8afeb7b","name":"ventilatie laag","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1000,"y":280,"wires":[]},{"id":"1942d160.7834af","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}] |
Volgende keer niet copy pasten
:fill(white):strip_exif()/f/image/dLjZ1kT1WbEaJwZ7eXsDJM9p.png?f=user_large)
Jouw property is msg.payload, en niet msg.payload.humidity.
Het lijkt erop dat de output van je co2 meter een string is ipv number.
Dus kleine toevoeging aan je change node.
:fill(white):strip_exif()/f/image/hf7fUh9xZyhar3x0j1NUtBgG.png?f=user_large)
Deze error gaf node-red trouwens.
:fill(white):strip_exif()/f/image/Lw4N9H5up5cASEUVTaasmLIP.png?f=user_large)
Inject- debug moet je zeker even naar kijken. Zonder die wordt het niets
Ik gebruik sinds jaar en dag de ems-esp om mijn Nefit CV-ketel uit te lezen (MQTT -> Node Red -> influx -> Grafana) en te bedienen (Home Assistant).
Na het upgraden van versie 2 naar versie 3 van de ems-esp krijg ik een hardnekkige foutmelding in Node-Red bij elke regel:
Er lijkt geen waarde te worden wegeschreven, terwijl er aan het format niets gewijzigd is t.o.v. ems-esp versie 2. Ik heb van alles geprobeerd en in MQTT-explorer de hele json string uitgeplozen. Zonder resultaat.
Het is me een raadsel daar er niets in de string is gewijzigd, behalve dat er een paar extra parameters zijn toegeovegd in de niewe versie.
Er zijn twee topics:
en
Het gaat om het topic boiler_data
Hieronder de JSON-string vanuit topic
De gewenste regels worden hier uit gefiterd en naar de Influx database gestuurd.
Toegevoegd de NR-flow. Hierin zit ook de thermostaat bediening bij. Die werkt wel goed.
:strip_exif()/f/image/NJuyuIS5qiHyCnSGpE8OujlM.jpg?f=fotoalbum_medium)
Hopelijk dat iemand ziet wat ik fout doe. Ik ben al uren aan het zoeken geweest...
Na het upgraden van versie 2 naar versie 3 van de ems-esp krijg ik een hardnekkige foutmelding in Node-Red bij elke regel:
{"error":"unable to parse 'retTemp value=undefined': invalid boolean"}
Er lijkt geen waarde te worden wegeschreven, terwijl er aan het format niets gewijzigd is t.o.v. ems-esp versie 2. Ik heb van alles geprobeerd en in MQTT-explorer de hele json string uitgeplozen. Zonder resultaat.
Het is me een raadsel daar er niets in de string is gewijzigd, behalve dat er een paar extra parameters zijn toegeovegd in de niewe versie.
Er zijn twee topics:
code:
1
| ems-esp/thermostat_data |
en
code:
1
| ems-esp/boiler_data |
Het gaat om het topic boiler_data
Hieronder de JSON-string vanuit topic
code:
1
| ems-esp/boiler_data |
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| { "id": 115, "heatingactive": "off", "tapwateractive": "off", "selflowtemp": 7, "selburnpow": 0, "heatingpumpmod": 0, "curflowtemp": 23.2, "rettemp": 23.2, "switchtemp": 0, "syspress": 1.8, "boiltemp": 23.6, "burngas": "off", "flamecurr": 0, "heatingpump": "off", "fanwork": "off", "ignwork": "off", "heatingactivated": "on", "heatingtemp": 50, "pumpmodmax": 50, "pumpmodmin": 50, "pumpdelay": 4, "burnminperiod": 10, "burnminpower": 0, "burnmaxpower": 35, "boilhyston": -6, "boilhystoff": 6, "curburnpow": 0, "burnstarts": 59844, "burnworkmin": 934311, "heatworkmin": 866434, "ubauptime": 4739185, "lastcode": "6C(306) 25.03.2021 07:10", "servicecode": "0H", "servicecodenumber": 203, "maintenance": "off", "maintenancetime": 6000, "maintenancedate": "01.01.2004" } |
De gewenste regels worden hier uit gefiterd en naar de Influx database gestuurd.
Toegevoegd de NR-flow. Hierin zit ook de thermostaat bediening bij. Die werkt wel goed.
code:
1
| [{"id":"66e30a8d.3e7d64","type":"tab","label":"Nefit ESP-EMS-HA","disabled":false,"info":""},{"id":"34bcf1f6.07dcde","type":"mqtt in","z":"66e30a8d.3e7d64","name":"","topic":"ems-esp/boiler_data","qos":"2","datatype":"json","broker":"b69e298b.75c308","nl":false,"rap":false,"rh":"0","x":110,"y":320,"wires":[["81b550f1.51849","51cfc2dd.da644c","e90cef99.fe456","51978d91.cd78a4","657a16e4.663c18","f1528dc4.43ae2","65d397c.812c668","f9f12485.c5b748","7a3d9601.49ecb8","f2b463f4.3ce95","eab92081.ee75c"]]},{"id":"51978d91.cd78a4","type":"change","z":"66e30a8d.3e7d64","name":"curFlowTemp","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.curFlowTemp","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":390,"y":220,"wires":[["5cbf8625.b96228"]]},{"id":"eab92081.ee75c","type":"change","z":"66e30a8d.3e7d64","name":"sysPress","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.sysPress","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":640,"wires":[["1a6a682d.026338","3493f8c1.2e44d8"]]},{"id":"f1528dc4.43ae2","type":"change","z":"66e30a8d.3e7d64","name":"boilTemp","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.boilTemp","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":340,"wires":[["ca779d3c.558f"]]},{"id":"f2b463f4.3ce95","type":"change","z":"66e30a8d.3e7d64","name":"retTemp","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.retTemp","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":580,"wires":[["9daf15f0.1abbc8"]]},{"id":"51cfc2dd.da644c","type":"change","z":"66e30a8d.3e7d64","name":"heatingActive","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.heatingActive","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":400,"y":100,"wires":[["3aa48ac5.7e7236"]]},{"id":"1a6a682d.026338","type":"debug","z":"66e30a8d.3e7d64","name":"pressure","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":720,"y":700,"wires":[]},{"id":"65d397c.812c668","type":"change","z":"66e30a8d.3e7d64","name":"heatingTemp","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.heatingTemp","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":390,"y":400,"wires":[["6ea894f3.8d5bdc"]]},{"id":"e90cef99.fe456","type":"change","z":"66e30a8d.3e7d64","name":"heatingActivated","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.heatingActivated","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":410,"y":160,"wires":[["1081ab9a.855634"]]},{"id":"c2788bc2.d79fc8","type":"mqtt in","z":"66e30a8d.3e7d64","name":"","topic":"ems-esp/thermostat_data","qos":"2","datatype":"json","broker":"b69e298b.75c308","nl":false,"rap":false,"x":130,"y":840,"wires":[["48f2af10.15f75","ab1c2531.a6d408","7b466be4.1cce84"]]},{"id":"48f2af10.15f75","type":"change","z":"66e30a8d.3e7d64","name":"seltemp","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.hc1.seltemp","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":780,"wires":[["d5d25401.ecbb08"]]},{"id":"7b466be4.1cce84","type":"change","z":"66e30a8d.3e7d64","name":"mode","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.hc1.mode","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":370,"y":900,"wires":[["520aa3e6.9259ac"]]},{"id":"ab1c2531.a6d408","type":"change","z":"66e30a8d.3e7d64","name":"currtemp","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.hc1.currtemp","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":840,"wires":[["af28e2f.fd98c2"]]},{"id":"d5d25401.ecbb08","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Selected Temperature","measurement":"selTemp","precision":"","retentionPolicy":"","x":580,"y":780,"wires":[]},{"id":"af28e2f.fd98c2","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Current Temperature","measurement":"currTemp","precision":"","retentionPolicy":"","x":580,"y":840,"wires":[]},{"id":"520aa3e6.9259ac","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Mode","measurement":"mode","precision":"","retentionPolicy":"","x":530,"y":900,"wires":[]},{"id":"3aa48ac5.7e7236","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Heating active","measurement":"heatingActive","precision":"","retentionPolicy":"","database":"","retentionPolicyV18Flux":"","org":"","bucket":"","x":620,"y":100,"wires":[]},{"id":"1081ab9a.855634","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Heating activated","measurement":"heatingActivated","precision":"","retentionPolicy":"","x":630,"y":160,"wires":[]},{"id":"5cbf8625.b96228","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Current flow temperature","measurement":"currFlowTemp","precision":"","retentionPolicy":"","x":650,"y":220,"wires":[]},{"id":"ca779d3c.558f","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Boiler temperature","measurement":"boilTemp","precision":"","retentionPolicy":"","x":630,"y":340,"wires":[]},{"id":"6ea894f3.8d5bdc","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Set boiler temperature","measurement":"boilTemp","precision":"","retentionPolicy":"","x":640,"y":400,"wires":[]},{"id":"657a16e4.663c18","type":"change","z":"66e30a8d.3e7d64","name":"selFlowTemp","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.selFlowTemp","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":390,"y":280,"wires":[["ea2c6c97.c5498"]]},{"id":"ea2c6c97.c5498","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Selected flow temperature","measurement":"selFlowTemp","precision":"","retentionPolicy":"","x":660,"y":280,"wires":[]},{"id":"f9f12485.c5b748","type":"change","z":"66e30a8d.3e7d64","name":"curBurnPow","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.curBurnPow","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":390,"y":460,"wires":[["9640e04b.1339b"]]},{"id":"9640e04b.1339b","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Current burner power","measurement":"curBurnPow","precision":"","retentionPolicy":"","x":640,"y":460,"wires":[]},{"id":"7a3d9601.49ecb8","type":"change","z":"66e30a8d.3e7d64","name":"pumpMod","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.pumpMod","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":520,"wires":[["66414194.d79d8"]]},{"id":"66414194.d79d8","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Pump modulation","measurement":"pumpMod","precision":"","retentionPolicy":"","x":630,"y":520,"wires":[]},{"id":"9daf15f0.1abbc8","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Return temperature","measurement":"retTemp","precision":"","retentionPolicy":"","x":640,"y":580,"wires":[]},{"id":"3493f8c1.2e44d8","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Waterdruk","measurement":"sysPress","precision":"","retentionPolicy":"","x":610,"y":640,"wires":[]},{"id":"81b550f1.51849","type":"debug","z":"66e30a8d.3e7d64","name":"boiler_data","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":350,"y":40,"wires":[]},{"id":"b69e298b.75c308","type":"mqtt-broker","name":"","broker":"192.168.178.5","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","closeTopic":"","closeRetain":"false","closePayload":"","willTopic":"","willQos":"0","willRetain":"false","willPayload":""},{"id":"20a786f1.17e152","type":"influxdb","hostname":"192.168.178.5","port":"8086","protocol":"http","database":"cv_ketel","name":"InfluxDB","usetls":false,"tls":"","influxdbVersion":"1.x","url":"","rejectUnauthorized":false}] |
:strip_exif()/f/image/NJuyuIS5qiHyCnSGpE8OujlM.jpg?f=fotoalbum_medium)
Hopelijk dat iemand ziet wat ik fout doe. Ik ben al uren aan het zoeken geweest...
33 x ET Solar 270Wp = 8910Wp @ SMA Sunny TriPower STP 8000TL-20 Live: PVOutput
@denuz en @Gizz jullie zijn heldendenuz schreef op donderdag 7 oktober 2021 @ 17:23:
[...]
code:
1 [{"id":"a6f4e9f5f8afeb7b","type":"tab","label":"Ventilatie","disabled":false,"info":""},{"id":"76d6d4786ba74a06","type":"change","z":"a6f4e9f5f8afeb7b","name":"choose highest value","rules":[{"t":"set","p":"co2","pt":"msg","to":"$max([$flowContext(\"co21\"), $flowContext(\"hum\")])","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":520,"y":180,"wires":[["9673d7b64d920fd8"]]},{"id":"079d6ab0a41d3418","type":"server-state-changed","z":"a6f4e9f5f8afeb7b","name":"","server":"1942d160.7834af","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.humidity_14","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"flow","value":"","valueType":"entityState"},{"property":"data","propertyType":"flow","value":"","valueType":"eventData"},{"property":"topic","propertyType":"flow","value":"","valueType":"triggerId"}],"x":140,"y":380,"wires":[["1be2d6a7b0861f65"]]},{"id":"b8f5467162dd123b","type":"server-state-changed","z":"a6f4e9f5f8afeb7b","name":"","server":"1942d160.7834af","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.co2melder","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"global","value":"","valueType":"entityState"},{"property":"data","propertyType":"global","value":"","valueType":"eventData"},{"property":"topic","propertyType":"global","value":"","valueType":"triggerId"}],"x":150,"y":100,"wires":[["cc8404a9ab5fd20a"]]},{"id":"e0df80589997ae28","type":"www-request","z":"a6f4e9f5f8afeb7b","name":"Ventilatie hoog","method":"GET","ret":"txt","url":"http://192.168.1.30/control?cmd=STATE,3","follow-redirects":true,"persistent-http":true,"tls":"","x":1100,"y":80,"wires":[[]]},{"id":"bbe85acd1016793b","type":"www-request","z":"a6f4e9f5f8afeb7b","name":"Ventilatie laag","method":"GET","ret":"txt","url":"http://192.168.1.30/control?cmd=STATE,1","follow-redirects":true,"persistent-http":true,"tls":"","x":1080,"y":240,"wires":[[]]},{"id":"cc8404a9ab5fd20a","type":"change","z":"a6f4e9f5f8afeb7b","name":"store","rules":[{"t":"set","p":"payload","pt":"msg","to":"$number(payload)","tot":"jsonata"},{"t":"set","p":"co21","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":270,"y":260,"wires":[["76d6d4786ba74a06"]]},{"id":"1be2d6a7b0861f65","type":"switch","z":"a6f4e9f5f8afeb7b","name":"","property":"payload","propertyType":"msg","rules":[{"t":"gte","v":"75","vt":"num"},{"t":"lt","v":"74","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":410,"y":360,"wires":[["c105f93611fc217c"],["fb434870735f64a9"]]},{"id":"c105f93611fc217c","type":"change","z":"a6f4e9f5f8afeb7b","name":"","rules":[{"t":"set","p":"hum","pt":"flow","to":"2000","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":590,"y":320,"wires":[["76d6d4786ba74a06"]]},{"id":"fb434870735f64a9","type":"change","z":"a6f4e9f5f8afeb7b","name":"","rules":[{"t":"set","p":"hum","pt":"flow","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":590,"y":420,"wires":[["76d6d4786ba74a06"]]},{"id":"9673d7b64d920fd8","type":"switch","z":"a6f4e9f5f8afeb7b","name":"","property":"co2","propertyType":"msg","rules":[{"t":"gte","v":"800","vt":"str"},{"t":"lt","v":"800","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":730,"y":160,"wires":[["dec3a3a7187231b7"],["88479d6fa9ca160f"]]},{"id":"a48c51154feef8ea","type":"inject","z":"a6f4e9f5f8afeb7b","name":"co2","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"800","payloadType":"str","x":70,"y":180,"wires":[["cc8404a9ab5fd20a"]]},{"id":"eea300c04ac95a7a","type":"inject","z":"a6f4e9f5f8afeb7b","name":"hum","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"80","payloadType":"str","x":70,"y":320,"wires":[["1be2d6a7b0861f65"]]},{"id":"dec3a3a7187231b7","type":"debug","z":"a6f4e9f5f8afeb7b","name":"ventilatie hoog","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1090,"y":140,"wires":[]},{"id":"88479d6fa9ca160f","type":"debug","z":"a6f4e9f5f8afeb7b","name":"ventilatie laag","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1000,"y":280,"wires":[]},{"id":"1942d160.7834af","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]
Volgende keer niet copy pasten[Afbeelding]
Jouw property is msg.payload, en niet msg.payload.humidity.
Het lijkt erop dat de output van je co2 meter een string is ipv number.
Dus kleine toevoeging aan je change node.
[Afbeelding]
Deze error gaf node-red trouwens.
[Afbeelding]
Inject- debug moet je zeker even naar kijken. Zonder die wordt het nietshttps://www.youtube.com/watch?v=nhxwnT5map0
In eerste instantie na de de import werkte de flow nog niet.
Beide HTTP requests nog even verbonden, nog niet.
De entiteit van de CO2 en de HUM sensor gaven een global.xxx output

Beide omgezet naar een msg.xxx output en hoppa werken
De debug zie ik nu ook netjes vollopen, die Inject toepassing blijkt idd dat je veel meer kunt volgen
Hoofdletter?Aegle schreef op donderdag 7 oktober 2021 @ 17:35:
Ik gebruik sinds jaar en dag de ems-esp om mijn Nefit CV-ketel uit te lezen (MQTT -> Node Red -> influx -> Grafana) en te bedienen (Home Assistant).
Na het upgraden van versie 2 naar versie 3 van de ems-esp krijg ik een hardnekkige foutmelding in Node-Red bij elke regel:
{"error":"unable to parse 'retTemp value=undefined': invalid boolean"}
Er lijkt geen waarde te worden wegeschreven, terwijl er aan het format niets gewijzigd is t.o.v. ems-esp versie 2. Ik heb van alles geprobeerd en in MQTT-explorer de hele json string uitgeplozen. Zonder resultaat.
Het is me een raadsel daar er niets in de string is gewijzigd, behalve dat er een paar extra parameters zijn toegeovegd in de niewe versie.
Er zijn twee topics:
code:
1 ems-esp/thermostat_data
en
code:
1 ems-esp/boiler_data
Het gaat om het topic boiler_data
Hieronder de JSON-string vanuit topiccode:
1 ems-esp/boiler_data
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 { "id": 115, "heatingactive": "off", "tapwateractive": "off", "selflowtemp": 7, "selburnpow": 0, "heatingpumpmod": 0, "curflowtemp": 23.2, "rettemp": 23.2, "switchtemp": 0, "syspress": 1.8, "boiltemp": 23.6, "burngas": "off", "flamecurr": 0, "heatingpump": "off", "fanwork": "off", "ignwork": "off", "heatingactivated": "on", "heatingtemp": 50, "pumpmodmax": 50, "pumpmodmin": 50, "pumpdelay": 4, "burnminperiod": 10, "burnminpower": 0, "burnmaxpower": 35, "boilhyston": -6, "boilhystoff": 6, "curburnpow": 0, "burnstarts": 59844, "burnworkmin": 934311, "heatworkmin": 866434, "ubauptime": 4739185, "lastcode": "6C(306) 25.03.2021 07:10", "servicecode": "0H", "servicecodenumber": 203, "maintenance": "off", "maintenancetime": 6000, "maintenancedate": "01.01.2004" }
De gewenste regels worden hier uit gefiterd en naar de Influx database gestuurd.
Toegevoegd de NR-flow. Hierin zit ook de thermostaat bediening bij. Die werkt wel goed.
code:
1 [{"id":"66e30a8d.3e7d64","type":"tab","label":"Nefit ESP-EMS-HA","disabled":false,"info":""},{"id":"34bcf1f6.07dcde","type":"mqtt in","z":"66e30a8d.3e7d64","name":"","topic":"ems-esp/boiler_data","qos":"2","datatype":"json","broker":"b69e298b.75c308","nl":false,"rap":false,"rh":"0","x":110,"y":320,"wires":[["81b550f1.51849","51cfc2dd.da644c","e90cef99.fe456","51978d91.cd78a4","657a16e4.663c18","f1528dc4.43ae2","65d397c.812c668","f9f12485.c5b748","7a3d9601.49ecb8","f2b463f4.3ce95","eab92081.ee75c"]]},{"id":"51978d91.cd78a4","type":"change","z":"66e30a8d.3e7d64","name":"curFlowTemp","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.curFlowTemp","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":390,"y":220,"wires":[["5cbf8625.b96228"]]},{"id":"eab92081.ee75c","type":"change","z":"66e30a8d.3e7d64","name":"sysPress","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.sysPress","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":640,"wires":[["1a6a682d.026338","3493f8c1.2e44d8"]]},{"id":"f1528dc4.43ae2","type":"change","z":"66e30a8d.3e7d64","name":"boilTemp","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.boilTemp","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":340,"wires":[["ca779d3c.558f"]]},{"id":"f2b463f4.3ce95","type":"change","z":"66e30a8d.3e7d64","name":"retTemp","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.retTemp","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":580,"wires":[["9daf15f0.1abbc8"]]},{"id":"51cfc2dd.da644c","type":"change","z":"66e30a8d.3e7d64","name":"heatingActive","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.heatingActive","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":400,"y":100,"wires":[["3aa48ac5.7e7236"]]},{"id":"1a6a682d.026338","type":"debug","z":"66e30a8d.3e7d64","name":"pressure","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":720,"y":700,"wires":[]},{"id":"65d397c.812c668","type":"change","z":"66e30a8d.3e7d64","name":"heatingTemp","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.heatingTemp","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":390,"y":400,"wires":[["6ea894f3.8d5bdc"]]},{"id":"e90cef99.fe456","type":"change","z":"66e30a8d.3e7d64","name":"heatingActivated","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.heatingActivated","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":410,"y":160,"wires":[["1081ab9a.855634"]]},{"id":"c2788bc2.d79fc8","type":"mqtt in","z":"66e30a8d.3e7d64","name":"","topic":"ems-esp/thermostat_data","qos":"2","datatype":"json","broker":"b69e298b.75c308","nl":false,"rap":false,"x":130,"y":840,"wires":[["48f2af10.15f75","ab1c2531.a6d408","7b466be4.1cce84"]]},{"id":"48f2af10.15f75","type":"change","z":"66e30a8d.3e7d64","name":"seltemp","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.hc1.seltemp","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":780,"wires":[["d5d25401.ecbb08"]]},{"id":"7b466be4.1cce84","type":"change","z":"66e30a8d.3e7d64","name":"mode","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.hc1.mode","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":370,"y":900,"wires":[["520aa3e6.9259ac"]]},{"id":"ab1c2531.a6d408","type":"change","z":"66e30a8d.3e7d64","name":"currtemp","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.hc1.currtemp","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":840,"wires":[["af28e2f.fd98c2"]]},{"id":"d5d25401.ecbb08","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Selected Temperature","measurement":"selTemp","precision":"","retentionPolicy":"","x":580,"y":780,"wires":[]},{"id":"af28e2f.fd98c2","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Current Temperature","measurement":"currTemp","precision":"","retentionPolicy":"","x":580,"y":840,"wires":[]},{"id":"520aa3e6.9259ac","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Mode","measurement":"mode","precision":"","retentionPolicy":"","x":530,"y":900,"wires":[]},{"id":"3aa48ac5.7e7236","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Heating active","measurement":"heatingActive","precision":"","retentionPolicy":"","database":"","retentionPolicyV18Flux":"","org":"","bucket":"","x":620,"y":100,"wires":[]},{"id":"1081ab9a.855634","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Heating activated","measurement":"heatingActivated","precision":"","retentionPolicy":"","x":630,"y":160,"wires":[]},{"id":"5cbf8625.b96228","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Current flow temperature","measurement":"currFlowTemp","precision":"","retentionPolicy":"","x":650,"y":220,"wires":[]},{"id":"ca779d3c.558f","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Boiler temperature","measurement":"boilTemp","precision":"","retentionPolicy":"","x":630,"y":340,"wires":[]},{"id":"6ea894f3.8d5bdc","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Set boiler temperature","measurement":"boilTemp","precision":"","retentionPolicy":"","x":640,"y":400,"wires":[]},{"id":"657a16e4.663c18","type":"change","z":"66e30a8d.3e7d64","name":"selFlowTemp","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.selFlowTemp","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":390,"y":280,"wires":[["ea2c6c97.c5498"]]},{"id":"ea2c6c97.c5498","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Selected flow temperature","measurement":"selFlowTemp","precision":"","retentionPolicy":"","x":660,"y":280,"wires":[]},{"id":"f9f12485.c5b748","type":"change","z":"66e30a8d.3e7d64","name":"curBurnPow","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.curBurnPow","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":390,"y":460,"wires":[["9640e04b.1339b"]]},{"id":"9640e04b.1339b","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Current burner power","measurement":"curBurnPow","precision":"","retentionPolicy":"","x":640,"y":460,"wires":[]},{"id":"7a3d9601.49ecb8","type":"change","z":"66e30a8d.3e7d64","name":"pumpMod","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.pumpMod","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":520,"wires":[["66414194.d79d8"]]},{"id":"66414194.d79d8","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Pump modulation","measurement":"pumpMod","precision":"","retentionPolicy":"","x":630,"y":520,"wires":[]},{"id":"9daf15f0.1abbc8","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Return temperature","measurement":"retTemp","precision":"","retentionPolicy":"","x":640,"y":580,"wires":[]},{"id":"3493f8c1.2e44d8","type":"influxdb out","z":"66e30a8d.3e7d64","influxdb":"20a786f1.17e152","name":"Waterdruk","measurement":"sysPress","precision":"","retentionPolicy":"","x":610,"y":640,"wires":[]},{"id":"81b550f1.51849","type":"debug","z":"66e30a8d.3e7d64","name":"boiler_data","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":350,"y":40,"wires":[]},{"id":"b69e298b.75c308","type":"mqtt-broker","name":"","broker":"192.168.178.5","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","closeTopic":"","closeRetain":"false","closePayload":"","willTopic":"","willQos":"0","willRetain":"false","willPayload":""},{"id":"20a786f1.17e152","type":"influxdb","hostname":"192.168.178.5","port":"8086","protocol":"http","database":"cv_ketel","name":"InfluxDB","usetls":false,"tls":"","influxdbVersion":"1.x","url":"","rejectUnauthorized":false}]
[Afbeelding]
Hopelijk dat iemand ziet wat ik fout doe. Ik ben al uren aan het zoeken geweest...
voorbeeld: je change node doet; payload.selFlowTemp terwijl je output selflowtemp is.
Bedankt!denuz schreef op donderdag 7 oktober 2021 @ 18:36:
[...]
Hoofdletter?
voorbeeld: je change node doet; payload.selFlowTemp terwijl je output selflowtemp is.


ze hebben in versie 3 blijkbaar alles geconverteerd naar kleine letters...
[ Voor 9% gewijzigd door Aegle op 08-10-2021 09:30 ]
33 x ET Solar 270Wp = 8910Wp @ SMA Sunny TriPower STP 8000TL-20 Live: PVOutput
Dit heeft voor mij gewerkt, pomp draait nu zoals hij het in domoticz deed.Step5 schreef op zondag 3 oktober 2021 @ 20:02:
[...]
Die timer moet inderdaad ook een reset krijgen, anders loopt die door en kan een dus die "off" flow voortzetten terwijl dat allang niet meer moet.
Door msg.reset op true te sturen naar die timer wordt hij gereset.
voorbeeld:
[Afbeelding]
Tevens nu een timer gemaakt zodat hij eens in de twee weken, in de zomer wanneer de CV niet aan is, een half uur draait. Voorschrift fabrikant.
De tweede moet ik nog testen maar werkt op zelfde manier als aan/uit pomp. Dank voor het kleine zetje wat ik nodig had
Aangezien de avonden korter beginnen te worden is de schakeling voor de verlichting niet helemaal meer compleet.
Ik heb een aantal lampen die worden gestuurd door een LUX sensor i.c.m. het alarmsysteem.
Werkt prima tot nu toe, echter wat wil het geval..
Lux meter zegt dat de lampen aan moeten als we thuis zijn, lampen gaan aan, nu zit daar ook de lamp van de eettafel bij die gedimd aangaat.
We willen lekker aan tafel gaan eten en er is dus te weinig licht bij de eettafel.
Nou heb ik ook nog een Zigbee schakelaar die ik graag zou willen gebruiken die er tussen komt zeg maar.
Lampen zijn aan (of niet aan) en die eettafel lamp wordt handmatig bediend, dan zou hij fijn zijn als deze zeg maar een brightness krijgt van 60% ipv 35%.
Activeer ik de schakelaar nogmaals dan dient deze te kijken of de lux meter wel of niet is ingeschakeld zodat de lamp uit of naar de lagere brightness gaat.
Is zo iets Überhaupt wel mogelijk? En zo ja kan iemand mij een schopje in de goede richting geven hoe ik zo iets kan maken?
:strip_exif()/f/image/2kVmicZcnYDHao78u6fttMqj.jpg?f=fotoalbum_large)
Voor de geïnteresseerde de code:
Ik heb een aantal lampen die worden gestuurd door een LUX sensor i.c.m. het alarmsysteem.
Werkt prima tot nu toe, echter wat wil het geval..
Lux meter zegt dat de lampen aan moeten als we thuis zijn, lampen gaan aan, nu zit daar ook de lamp van de eettafel bij die gedimd aangaat.
We willen lekker aan tafel gaan eten en er is dus te weinig licht bij de eettafel.
Nou heb ik ook nog een Zigbee schakelaar die ik graag zou willen gebruiken die er tussen komt zeg maar.
Lampen zijn aan (of niet aan) en die eettafel lamp wordt handmatig bediend, dan zou hij fijn zijn als deze zeg maar een brightness krijgt van 60% ipv 35%.
Activeer ik de schakelaar nogmaals dan dient deze te kijken of de lux meter wel of niet is ingeschakeld zodat de lamp uit of naar de lagere brightness gaat.
Is zo iets Überhaupt wel mogelijk? En zo ja kan iemand mij een schopje in de goede richting geven hoe ik zo iets kan maken?
:strip_exif()/f/image/2kVmicZcnYDHao78u6fttMqj.jpg?f=fotoalbum_large)
Voor de geïnteresseerde de code:
code:
1
| [{"id":"3b355f48.82cf1","type":"tab","label":"alarmsysteem aan/uit","disabled":false,"info":""},{"id":"eaf96f32.7ffb4","type":"api-current-state","z":"3b355f48.82cf1","name":"Alarmsysteem aan/uit","server":"1942d160.7834af","version":2,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"binary_sensor.openclose_17","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":540,"y":120,"wires":[["fc344614.057c88","47df24d553c90943","6e34869de9651e42","0a05a9e4a7f35ce0","8724c7d3f3647bb4","5cbbbbc60f3a2602"],["b9c120aa.38b24"]]},{"id":"b9c120aa.38b24","type":"api-current-state","z":"3b355f48.82cf1","name":"Lux lager dan 30","server":"1942d160.7834af","version":2,"outputs":2,"halt_if":"30","halt_if_type":"num","halt_if_compare":"lt","entity_id":"sensor.lightlevel_16","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":530,"y":480,"wires":[["60bc0e7f.bbb44","af36051119e6d6c3","d9a22015ad34cfb8","7a687cc21645eb1b","38557710dd701dfb","d3938466b06419c3"],["fc344614.057c88","47df24d553c90943","6e34869de9651e42","0a05a9e4a7f35ce0","8724c7d3f3647bb4","5cbbbbc60f3a2602"]]},{"id":"7dc00187.1f396","type":"server-state-changed","z":"3b355f48.82cf1","name":"Alarmsysteem","server":"1942d160.7834af","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.openclose_17","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":110,"y":120,"wires":[["eaf96f32.7ffb4"]]},{"id":"568caea7.56cb7","type":"server-state-changed","z":"3b355f48.82cf1","name":"Lux meter","server":"1942d160.7834af","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.lightlevel_16","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":120,"y":220,"wires":[["eaf96f32.7ffb4"]]},{"id":"60bc0e7f.bbb44","type":"api-call-service","z":"3b355f48.82cf1","name":"Eettafel aan 35%","server":"1942d160.7834af","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.dimmable_light_11","data":"{\"brightness_pct\":35}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1010,"y":540,"wires":[[]]},{"id":"fc344614.057c88","type":"api-call-service","z":"3b355f48.82cf1","name":"Eettafel uit","server":"1942d160.7834af","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.dimmable_light_11","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":990,"y":120,"wires":[[]]},{"id":"af36051119e6d6c3","type":"api-call-service","z":"3b355f48.82cf1","name":"Lamp bank aan 25%","server":"1942d160.7834af","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.bij_bank","data":"{\"brightness_pct\":25}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1020,"y":600,"wires":[[]]},{"id":"d9a22015ad34cfb8","type":"api-call-service","z":"3b355f48.82cf1","name":"hanglamp aan 25%","server":"1942d160.7834af","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.hanglamp","data":"{\"brightness_pct\":25}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1010,"y":660,"wires":[[]]},{"id":"7a687cc21645eb1b","type":"api-call-service","z":"3b355f48.82cf1","name":"staand onder aan 10%","server":"1942d160.7834af","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.staande_lamp_onder","data":"{\"brightness_pct\":10}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1020,"y":720,"wires":[[]]},{"id":"38557710dd701dfb","type":"api-call-service","z":"3b355f48.82cf1","name":"Staand midden aan 15%","server":"1942d160.7834af","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.staande_lamp_midden","data":"{\"brightness_pct\":15}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1030,"y":780,"wires":[[]]},{"id":"d3938466b06419c3","type":"api-call-service","z":"3b355f48.82cf1","name":"Staand boven aan 15%","server":"1942d160.7834af","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.staande_lamp_boven","data":"{\"brightness_pct\":15}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1030,"y":840,"wires":[[]]},{"id":"47df24d553c90943","type":"api-call-service","z":"3b355f48.82cf1","name":"Lamp bank uit","server":"1942d160.7834af","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.bij_bank","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1000,"y":180,"wires":[[]]},{"id":"6e34869de9651e42","type":"api-call-service","z":"3b355f48.82cf1","name":"hanglamp uit","server":"1942d160.7834af","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.hanglamp","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":990,"y":240,"wires":[[]]},{"id":"0a05a9e4a7f35ce0","type":"api-call-service","z":"3b355f48.82cf1","name":"staand onder uit","server":"1942d160.7834af","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.staande_lamp_onder","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1000,"y":300,"wires":[[]]},{"id":"8724c7d3f3647bb4","type":"api-call-service","z":"3b355f48.82cf1","name":"Staand midden uit","server":"1942d160.7834af","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.staande_lamp_midden","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1010,"y":360,"wires":[[]]},{"id":"5cbbbbc60f3a2602","type":"api-call-service","z":"3b355f48.82cf1","name":"Staand boven uit","server":"1942d160.7834af","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.staande_lamp_boven","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1010,"y":420,"wires":[[]]},{"id":"1942d160.7834af","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}] |
Je kan de lux meter een variabele laten zetten die je gaat uitlezen wanneer je op de schakelaar drukt. Op basis van de waarde kan je dan de lichtsterkte beperken.
Hallo Gizz,Gizz schreef op zondag 3 oktober 2021 @ 15:13:
[...]
Je flow delen maakt het altijd makkelijker. Niet in de laatste plaats omdat de tekst op een node niet altijd overeen hoeft te komen met wat er daadwerkelijk ingesteld is binnen een node
..............
Omdat ik deze flow ooit begonnen ben met CO2-waardes zet ik de fijnstofwaarde en de luchtvochtigheid ook om naar een fake-CO2-waarde zodat alles 'eerlijk' met elkaar vergeleken kan worden.
De hoogste CO2-waarde wordt met een range node omgezet naar een waarde van 0-1023. Dit is omdat ik een 'PWM naar 0-10V'-bordje aanstuur voor het aansturen van de mechanische ventilatie. En bij PWM is 0 het laagst en 1023 het hoogstHet stukje met de range-node van 0-100 stuurt niks aan, dat zorgt er alleen voor dat ik in Home Assistant netjes te zien krijg op welk percentage snelheid de mechanische ventilatie wordt aangestuurd.
Je hebt mij een hele tijd gelden al geholpen met de start van NodeRed. Ik heb ondertussen mijn WTW 0-10V, 3 CO2 meters en 3 kleppen draaien op de NodeRed.
Ik heb nu met espeasy zelf een luchtvochtigheid meter gebouwd en in het kanaal gehangen van de douche. Ik krijg ook berichten binnen Nodered. Maar de Luchtvochtigheid zit in een svalue het 2e getal.
object
idx: 434
RSSI: 4
nvalue: 0
svalue: "21.3;58.2;1"
Ik heb jouw aansturing voor luchtvochtigheid al gekopieerd en opgenomen in de FLOW voor CO2. Ik weet alleen niet hoe ik de svalue moet verwerken zodat ik die kan omzetten in een CO2 waarde die ik dan weer in de flow met de andere co2 meters vergelijk. Een avond google heeft mij nog niet verder geholpen.
Kan jij mij daarbij helpen?
Gr,
Andre
PS als iemand anders het antwoord weet dan hoor ik dat natuurlijk ook graag.
Hier kan je een function voor gebruiken... Ik ben niet helemaal zeker van het formaat van je input.. maar ik denk aan het volgende:frk123 schreef op woensdag 13 oktober 2021 @ 22:10:
[...]
Hallo Gizz,
Je hebt mij een hele tijd gelden al geholpen met de start van NodeRed. Ik heb ondertussen mijn WTW 0-10V, 3 CO2 meters en 3 kleppen draaien op de NodeRed.
Ik heb nu met espeasy zelf een luchtvochtigheid meter gebouwd en in het kanaal gehangen van de douche. Ik krijg ook berichten binnen Nodered. Maar de Luchtvochtigheid zit in een svalue het 2e getal.
object
idx: 434
RSSI: 4
nvalue: 0
svalue: "21.3;58.2;1"
Ik heb jouw aansturing voor luchtvochtigheid al gekopieerd en opgenomen in de FLOW voor CO2. Ik weet alleen niet hoe ik de svalue moet verwerken zodat ik die kan omzetten in een CO2 waarde die ik dan weer in de flow met de andere co2 meters vergelijk. Een avond google heeft mij nog niet verder geholpen.
Kan jij mij daarbij helpen?
Gr,
Andre
PS als iemand anders het antwoord weet dan hoor ik dat natuurlijk ook graag.
code:
1
2
3
4
5
6
| var data=msg.payload.svalue; var temp=data.split(";"); msg.temperature=temp[0]; msg.humidity=temp[1]; msg.geenidee=temp[2]; return msg; |
Ik ga er dus vanuit dat je svalue zit in de payload.svalue.
Middels deze function wordt de svalue gesplits bij het ";" teken. De eerste tekst wordt opgeslagen in msg.temperature. De 2e in msg.humidity en de 3e (waarvan ik niet weet wat voor waarde dit is) in msg.geenidee. Vervolgens kun je dus verder met je msg.humidity.
/f/image/UhmfpUVziM94YDXKDIOwF4IR.png?f=fotoalbum_large)
Ik ben mijn HomeAssistant automatiseringen aan het overzetten naar Node-RED en dat gaat best aardig.
Waar ik alleen niet helemaal uitkom is het volgende:
Ik heb een eenvoudige sequence die een sensor uitleest en een Telegram berichtje stuurt als de waarde boven de drempelwaarde is:
:fill(white):strip_exif()/f/image/SossRkbKU2t6Jto0yufPydfR.png?f=user_large)
Dit werkt in principe goed, ik krijg netjes een bericht als de CO2 boven de 1000ppm is. Alleen blijft dit bericht na elke nieuwe uitlezing herhalen (zo snel daalt het niet).
Wat ik eigenlijk wil is een bericht als de waarde boven de 1000ppm is, zoals ik nu heb. En pas een volgend bericht als de sensor waarde weer onder de 1000ppm is geweest.
Ik heb alleen geen idee hoe ik dat zou moeten bewerkstelligen. Ik heb al wel een 'wait until' node op het eind gezet, maar je kan daarmee blijkbaar niet een hele sequence on hold blijven zetten
Waar ik alleen niet helemaal uitkom is het volgende:
Ik heb een eenvoudige sequence die een sensor uitleest en een Telegram berichtje stuurt als de waarde boven de drempelwaarde is:
:fill(white):strip_exif()/f/image/SossRkbKU2t6Jto0yufPydfR.png?f=user_large)
Dit werkt in principe goed, ik krijg netjes een bericht als de CO2 boven de 1000ppm is. Alleen blijft dit bericht na elke nieuwe uitlezing herhalen (zo snel daalt het niet).
Wat ik eigenlijk wil is een bericht als de waarde boven de 1000ppm is, zoals ik nu heb. En pas een volgend bericht als de sensor waarde weer onder de 1000ppm is geweest.
Ik heb alleen geen idee hoe ik dat zou moeten bewerkstelligen. Ik heb al wel een 'wait until' node op het eind gezet, maar je kan daarmee blijkbaar niet een hele sequence on hold blijven zetten
@Jesse-
Ik denk dat je zoiets zoekt
:fill(white):strip_exif()/f/image/1IoGpg4s8wXDSEr6cYfM9K0w.png?f=user_large)
Ik denk dat je zoiets zoekt
:fill(white):strip_exif()/f/image/1IoGpg4s8wXDSEr6cYfM9K0w.png?f=user_large)
code:
1
| [{"id":"6c94d676f967559e","type":"inject","z":"ffbd7f06.4a014","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"120","payloadType":"num","x":114,"y":1520,"wires":[["731bdba266bb67f3"]]},{"id":"00adf111f7fc6a9d","type":"debug","z":"ffbd7f06.4a014","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":630,"y":1520,"wires":[]},{"id":"4736cd8d1fe028a7","type":"inject","z":"ffbd7f06.4a014","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"101","payloadType":"num","x":114,"y":1552,"wires":[["731bdba266bb67f3"]]},{"id":"4fb214c39fc60a4d","type":"inject","z":"ffbd7f06.4a014","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"100","payloadType":"num","x":114,"y":1584,"wires":[["731bdba266bb67f3"]]},{"id":"2133b67e44f7c2f2","type":"inject","z":"ffbd7f06.4a014","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"1","payloadType":"num","x":114,"y":1616,"wires":[["731bdba266bb67f3"]]},{"id":"731bdba266bb67f3","type":"change","z":"ffbd7f06.4a014","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload > 100 ? true : false","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":288,"y":1520,"wires":[["1af17a574c9d4920"]]},{"id":"1af17a574c9d4920","type":"rbe","z":"ffbd7f06.4a014","name":"","func":"rbe","gap":"","start":"","inout":"out","septopics":false,"property":"payload","topi":"topic","x":466,"y":1520,"wires":[["00adf111f7fc6a9d"]]}] |
Dank je, dat helpt me een eind op weg! Nu blijft er één overbodig bericht verstuurd worden (wanneer de waarde naar false gaat.d-vine schreef op vrijdag 15 oktober 2021 @ 20:38:
@Jesse-
Ik denk dat je zoiets zoekt
[Afbeelding]
code:
1 [{"id":"6c94d676f967559e","type":"inject","z":"ffbd7f06.4a014","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"120","payloadType":"num","x":114,"y":1520,"wires":[["731bdba266bb67f3"]]},{"id":"00adf111f7fc6a9d","type":"debug","z":"ffbd7f06.4a014","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":630,"y":1520,"wires":[]},{"id":"4736cd8d1fe028a7","type":"inject","z":"ffbd7f06.4a014","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"101","payloadType":"num","x":114,"y":1552,"wires":[["731bdba266bb67f3"]]},{"id":"4fb214c39fc60a4d","type":"inject","z":"ffbd7f06.4a014","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"100","payloadType":"num","x":114,"y":1584,"wires":[["731bdba266bb67f3"]]},{"id":"2133b67e44f7c2f2","type":"inject","z":"ffbd7f06.4a014","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"1","payloadType":"num","x":114,"y":1616,"wires":[["731bdba266bb67f3"]]},{"id":"731bdba266bb67f3","type":"change","z":"ffbd7f06.4a014","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload > 100 ? true : false","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":288,"y":1520,"wires":[["1af17a574c9d4920"]]},{"id":"1af17a574c9d4920","type":"rbe","z":"ffbd7f06.4a014","name":"","func":"rbe","gap":"","start":"","inout":"out","septopics":false,"property":"payload","topi":"topic","x":466,"y":1520,"wires":[["00adf111f7fc6a9d"]]}]
Dat lijkt precies te zijn wat ik nodig heb!denuz schreef op vrijdag 15 oktober 2021 @ 20:54:
@Jesse- Je kan het proberen met de trigger:state node. (zelf niet in gebruik).
[Afbeelding]
Opgelost door het via Alexa zelf te laten lopen.icecreamfarmer schreef op dinsdag 19 oktober 2021 @ 19:55:
Ik zou graag via een commando graag verder gaan met de laatste podcast op mijn sonos (via spotify).
Weet iemand hoe ik dat werkend krijg?
Radio zenders en playlist en dergelijke krijg ik wel geprogrammeerd maar de laatst geluisterde podcast is een dynamisch iets.
Commando wordt gegeven via Alexa.
Nu heb ik echter iets anders. Ik heb een bewegingssensor en een lamp. Via Node red een flow aangemaakt dat als de bewegingssensor aangaat de lamp aan moet gaan voor 30s.
Echter is het de bedoeling dat hij dat blijft doen zolang er beweging is. Nu gaat hij echter na 30s uit om vervolgens 5s later weer aan te gaan. Hoe programeer ik dat?
Of moet ik het programmeren dat de timer pas begint met lopen wanneer de sensor geen beweging maar ontvangt?
[mbr]NodeRed vragen graag in Node-RED - grafisch 'programmeren' (bijv. voor domotica)[/mbr]
ik zie ik zie wat jij niet ziet
Daar gebruik ik de volgende flow voor, je zult hem nog iets moeten aanpassen maar dit werkt prima.icecreamfarmer schreef op woensdag 20 oktober 2021 @ 13:31:
[...]
Opgelost door het via Alexa zelf te laten lopen.
Nu heb ik echter iets anders. Ik heb een bewegingssensor en een lamp. Via Node red een flow aangemaakt dat als de bewegingssensor aangaat de lamp aan moet gaan voor 30s.
Echter is het de bedoeling dat hij dat blijft doen zolang er beweging is. Nu gaat hij echter na 30s uit om vervolgens 5s later weer aan te gaan. Hoe programeer ik dat?
Of moet ik het programmeren dat de timer pas begint met lopen wanneer de sensor geen beweging maar ontvangt?
code:
1
| [{"id":"a6d8b052.c6615","type":"api-call-service","z":"bca27d87.daa6f","name":"Oprit verlichting (On)","server":"480f0ad4.89a784","version":3,"debugenabled":false,"service_domain":"switch","service":"turn_on","entityId":"switch.verlichting_oprit","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1080,"y":2705,"wires":[[]]},{"id":"56f4f22d.4d84dc","type":"stoptimer","z":"bca27d87.daa6f","duration":"10","units":"Minute","payloadtype":"num","payloadval":"0","name":"","x":800,"y":2765,"wires":[["82685499.43fac8","5b3224f1.04604c"],[]]},{"id":"b624da8c.5b9d08","type":"api-current-state","z":"bca27d87.daa6f","name":"Oprit verlichting al aan?","server":"480f0ad4.89a784","version":2,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"switch.verlichting_oprit","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":830,"y":2705,"wires":[[],["a6d8b052.c6615"]]},{"id":"953926ec.3dc2e8","type":"switch","z":"bca27d87.daa6f","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":590,"y":2745,"wires":[["b624da8c.5b9d08","56f4f22d.4d84dc"],["56f4f22d.4d84dc"]]},{"id":"5b3224f1.04604c","type":"api-current-state","z":"bca27d87.daa6f","name":"Oprit motion sensor nog aan?","server":"480f0ad4.89a784","version":2,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"binary_sensor.oprit_motion_sensor","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":1075,"y":2810,"wires":[["82685499.43fac8"]]},{"id":"82685499.43fac8","type":"switch","z":"bca27d87.daa6f","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":1310,"y":2790,"wires":[["56f4f22d.4d84dc"],["15ead79a.4bac18"]]},{"id":"15ead79a.4bac18","type":"api-call-service","z":"bca27d87.daa6f","name":"Oprit verlichting (Off)","server":"480f0ad4.89a784","version":3,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.verlichting_oprit","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1500,"y":2790,"wires":[[]]},{"id":"e67e5eee.390e3","type":"server-state-changed","z":"bca27d87.daa6f","name":"Oprit motion sensor (On)","server":"480f0ad4.89a784","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.oprit_motion_sensor","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":110,"y":2705,"wires":[["4dc099b5.36e248"]]},{"id":"ccbf53c7.2247f","type":"server-state-changed","z":"bca27d87.daa6f","name":"Garage deur (open)","server":"480f0ad4.89a784","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.garagedeur_contact","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":false,"for":"0","forType":"num","forUnits":"seconds","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":90,"y":2752,"wires":[["4dc099b5.36e248"],[]]},{"id":"4dc099b5.36e248","type":"time-range-switch","z":"bca27d87.daa6f","name":"","lat":"51.376639","lon":"5.215672","startTime":"sunset","endTime":"sunrise","startOffset":"+10","endOffset":"-10","x":440,"y":2745,"wires":[["953926ec.3dc2e8"],[]]},{"id":"f8e1e476.ff78d8","type":"comment","z":"bca27d87.daa6f","name":"Oprit verlichting bij beweging/ garagedeur open","info":"","x":180,"y":2665,"wires":[]},{"id":"480f0ad4.89a784","type":"server","name":"Home Assistant","version":1,"legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}] |
Kan iemand hier een Unifi Palette aanraden om te gebruiken in NodeRed? Zie unifi palletes. Niet iedere palette wordt namelijk even frequent bijgehouden en iedere palette kan weer wat anders.
Ik wil voor nu wat doen met aanwezigheid hier in huis, maar ik wil ook kijken of er een mogelijkheid is om wifi uit te schakelen zodra iedereen slaapt.
Wij hebben hier namelijk een "slaapknop" op de slaapkamers, en de laatste die gaat slapen drukt die knop in. Daaropvolgend wil ik dat Unifi of uitschakelt, of in ieder geval dat de Wifi uitgaat.
-----------------------------------------
@Fleshi @icecreamfarmer
Dat kan veel korter, echter hangt het er vanaf of je er nog specifieke tijden of andere dingen aan wilt hangen.
Importeer deze flow even
Zo ziet de flow eruit:
De sensor wordt geactiveerd. Vervolgens springt gelijk de lamp aan. Er begint ook direct een timer te lopen van 1 minuut (tijd zelf instellen) en na die minuut gaat de lamp uit. Zolang er beweging is wordt die timer dus ieder keer opnieuw gestart en blijft de lamp dus aan staan. Zo werken alle sensoren hier in huis. Ik heb er zelf dan nog wel allemaal specifieke tijden aangehangen en bepaalde voorwaarden zoals lux e.d. Maar test dit eerst even. Is ook extreem overzichtelijk.
Ik wil voor nu wat doen met aanwezigheid hier in huis, maar ik wil ook kijken of er een mogelijkheid is om wifi uit te schakelen zodra iedereen slaapt.
Wij hebben hier namelijk een "slaapknop" op de slaapkamers, en de laatste die gaat slapen drukt die knop in. Daaropvolgend wil ik dat Unifi of uitschakelt, of in ieder geval dat de Wifi uitgaat.
-----------------------------------------
@Fleshi @icecreamfarmer
Dat kan veel korter, echter hangt het er vanaf of je er nog specifieke tijden of andere dingen aan wilt hangen.
Importeer deze flow even
code:
1
| [{"id":"45a4912d0ede3e2f","type":"tab","label":"Flow 3","disabled":false,"info":""},{"id":"13fc4871db5a1627","type":"server-state-changed","z":"45a4912d0ede3e2f","name":"Overloop sensor wordt geactiveerd","server":"9b8bc642.fed038","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.bewegingssensor_overloop","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":300,"y":140,"wires":[["8db82586c853ccde","c63fce12fc21bc7e"],[]]},{"id":"8db82586c853ccde","type":"ha-wait-until","z":"45a4912d0ede3e2f","name":"Wacht voor 1 minuut","server":"9b8bc642.fed038","version":0,"outputs":2,"entityId":"binary_sensor.bewegingssensor_overloop","entityIdFilterType":"exact","property":"state","comparator":"is","value":"on","valueType":"str","timeout":"1","timeoutType":"num","timeoutUnits":"minutes","entityLocation":"","entityLocationType":"none","checkCurrentState":true,"blockInputOverrides":true,"x":640,"y":180,"wires":[[],["3c0178d308657bfc"]]},{"id":"3c0178d308657bfc","type":"api-call-service","z":"45a4912d0ede3e2f","name":"Overloop lamp uit","server":"9b8bc642.fed038","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.overloop","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":930,"y":180,"wires":[[]]},{"id":"c63fce12fc21bc7e","type":"api-call-service","z":"45a4912d0ede3e2f","name":"Overloop lamp aan","server":"9b8bc642.fed038","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.overloop","data":"{\"brightness_pct\":40,\"transition\":1}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":930,"y":120,"wires":[[]]},{"id":"9b8bc642.fed038","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"cacheJson":true}] |
Zo ziet de flow eruit:
De sensor wordt geactiveerd. Vervolgens springt gelijk de lamp aan. Er begint ook direct een timer te lopen van 1 minuut (tijd zelf instellen) en na die minuut gaat de lamp uit. Zolang er beweging is wordt die timer dus ieder keer opnieuw gestart en blijft de lamp dus aan staan. Zo werken alle sensoren hier in huis. Ik heb er zelf dan nog wel allemaal specifieke tijden aangehangen en bepaalde voorwaarden zoals lux e.d. Maar test dit eerst even. Is ook extreem overzichtelijk.
/f/image/0IYMOpa3lUSUWYm7CraX7MkM.png?f=fotoalbum_large)
[ Voor 78% gewijzigd door Wachten... op 20-10-2021 14:15 ]
Als je dit kunt lezen, dan werkt mij Signature!
Zoiets heb ik nu maar de sensor lijkt alleen een signaal te sturen bij een verandering (en om de 120s dacht ik). Nu ik erover na denk zit misschien daar het probleem. Hij krijgt maar 1x een on signaal. Het licht moet echter aan blijven totdat er een off signaal komt + 30s.Wachten... schreef op woensdag 20 oktober 2021 @ 14:05:
Kan iemand hier een Unifi Palette aanraden om te gebruiken in NodeRed? Zie unifi palletes. Niet iedere palette wordt namelijk even frequent bijgehouden en iedere palette kan weer wat anders.
Ik wil voor nu wat doen met aanwezigheid hier in huis, maar ik wil ook kijken of er een mogelijkheid is om wifi uit te schakelen zodra iedereen slaapt.
Wij hebben hier namelijk een "slaapknop" op de slaapkamers, en de laatste die gaat slapen drukt die knop in. Daaropvolgend wil ik dat Unifi of uitschakelt, of in ieder geval dat de Wifi uitgaat.
-----------------------------------------
@Fleshi @icecreamfarmer
Dat kan veel korter, echter hangt het er vanaf of je er nog specifieke tijden of andere dingen aan wilt hangen.
Importeer deze flow even
code:
1 [{"id":"45a4912d0ede3e2f","type":"tab","label":"Flow 3","disabled":false,"info":""},{"id":"13fc4871db5a1627","type":"server-state-changed","z":"45a4912d0ede3e2f","name":"Overloop sensor wordt geactiveerd","server":"9b8bc642.fed038","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.bewegingssensor_overloop","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":300,"y":140,"wires":[["8db82586c853ccde","c63fce12fc21bc7e"],[]]},{"id":"8db82586c853ccde","type":"ha-wait-until","z":"45a4912d0ede3e2f","name":"Wacht voor 1 minuut","server":"9b8bc642.fed038","version":0,"outputs":2,"entityId":"binary_sensor.bewegingssensor_overloop","entityIdFilterType":"exact","property":"state","comparator":"is","value":"on","valueType":"str","timeout":"1","timeoutType":"num","timeoutUnits":"minutes","entityLocation":"","entityLocationType":"none","checkCurrentState":true,"blockInputOverrides":true,"x":640,"y":180,"wires":[[],["3c0178d308657bfc"]]},{"id":"3c0178d308657bfc","type":"api-call-service","z":"45a4912d0ede3e2f","name":"Overloop lamp uit","server":"9b8bc642.fed038","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.overloop","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":930,"y":180,"wires":[[]]},{"id":"c63fce12fc21bc7e","type":"api-call-service","z":"45a4912d0ede3e2f","name":"Overloop lamp aan","server":"9b8bc642.fed038","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.overloop","data":"{\"brightness_pct\":40,\"transition\":1}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":930,"y":120,"wires":[[]]},{"id":"9b8bc642.fed038","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"cacheJson":true}]
Zo ziet de flow eruit:
De sensor wordt geactiveerd. Vervolgens springt gelijk de lamp aan. Er begint ook direct een timer te lopen van 1 minuut (tijd zelf instellen) en na die minuut gaat de lamp uit. Zolang er beweging is wordt die timer dus ieder keer opnieuw gestart en blijft de lamp dus aan staan. Zo werken alle sensoren hier in huis. Ik heb er zelf dan nog wel allemaal specifieke tijden aangehangen en bepaalde voorwaarden zoals lux e.d. Maar test dit eerst even. Is ook extreem overzichtelijk.
[Afbeelding]
ik zie ik zie wat jij niet ziet
Welk apparaat is het? Want je zit soms met de update (polling tijd) bij sommige apparaten kan dit inderdaad wat lang zijn, maar zijn zover ik weet soms ook wel aan te passen.icecreamfarmer schreef op woensdag 20 oktober 2021 @ 14:27:
[...]
Zoiets heb ik nu maar de sensor lijkt alleen een signaal te sturen bij een verandering (en om de 120s dacht ik). Nu ik erover na denk zit misschien daar het probleem. Hij krijgt maar 1x een on signaal. Het licht moet echter aan blijven totdat er een off signaal komt + 30s.
In jouw geval zou dit inhouden dat het apparaat überhaupt pas weer wat doet na 120 seconden. Dit zou dan aangepast moeten worden.
https://www.home-assistan...uration/platform_options/
Maar even voor de duidelijkheid. Probeer is exact deze flow die ik heb gemaakt. Ik herken jouw probleem en heb dit in ieder geval nooit met deze exacte flow gehad.
[ Voor 13% gewijzigd door Wachten... op 20-10-2021 14:33 ]
Als je dit kunt lezen, dan werkt mij Signature!
Met name Xiaomi motion sensors hebben hier last van, vandaar dat de flow die ik poste uitgebreider is maar wel dit "probleem" oplost.Wachten... schreef op woensdag 20 oktober 2021 @ 14:30:
[...]
Welk apparaat is het? Want je zit soms met de update (polling tijd) bij sommige apparaten kan dit inderdaad wat lang zijn, maar zijn zover ik weet soms ook wel aan te passen.
In jouw geval zou dit inhouden dat het apparaat überhaupt pas weer wat doet na 120 seconden. Dit zou dan aangepast moeten worden.
https://www.home-assistan...uration/platform_options/
Maar even voor de duidelijkheid. Probeer is exact deze flow die ik heb gemaakt. Ik herken jouw probleem en heb dit in ieder geval nooit met deze exacte flow gehad.
Dan kun je juist deze flow gebruiken, want deze flow gebruik ik overal met xiaomi motion sensorsFleshi schreef op woensdag 20 oktober 2021 @ 14:38:
[...]
Met name Xiaomi motion sensors hebben hier last van, vandaar dat de flow die ik poste uitgebreider is maar wel dit "probleem" oplost.
Daarom zeg ik, gebruik deze flow even
Vanuit daar kun je dan verder gaan bouwen etc. Het is vooral belangrijk dat je flows zo kort en overzichtelijk mogelijk houdt. Dit maakt het namelijk veel fijner werken als je er eens een jaar o.i.d. niks mee hebt gedaan.
Als je dit kunt lezen, dan werkt mij Signature!
@Fleshi
Hier is de flow (kijk even of deze klopt) uiteraard wel jouw entities erin zetten
Je moet dan gewoon even 1 'draadje' weghalen in je bestaande flow zodat die niet meer werkt. Dan heb je hem ook zo weer geactiveerd mocht je deze flow niet werkend krijgen.
Zo ziet de flow er dan uit en zou moeten werken. Ziet er naar mijn idee rustiger en overzichtelijker uit toch?
Hier is de flow (kijk even of deze klopt) uiteraard wel jouw entities erin zetten
Je moet dan gewoon even 1 'draadje' weghalen in je bestaande flow zodat die niet meer werkt. Dan heb je hem ook zo weer geactiveerd mocht je deze flow niet werkend krijgen.
code:
1
| [{"id":"fd822d9148507199","type":"tab","label":"Flow 2","disabled":false,"info":""},{"id":"9b507af6c1fd73f2","type":"server-state-changed","z":"fd822d9148507199","name":"Garagedeur open","server":"9b8bc642.fed038","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.bewegingssensor_overloop","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":270,"y":140,"wires":[["4c00638e42d69446"],[]]},{"id":"3bfdd81d1110b077","type":"api-call-service","z":"fd822d9148507199","name":"Oprit verlichting aan","server":"9b8bc642.fed038","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.overloop","data":"{\"brightness_pct\":100,\"transition\":1}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1040,"y":180,"wires":[[]]},{"id":"d3a230b3193e9b61","type":"ha-wait-until","z":"fd822d9148507199","name":"Wacht voor 10 minuten","server":"9b8bc642.fed038","version":0,"outputs":2,"entityId":"binary_sensor.bewegingssensor_overloop","entityIdFilterType":"exact","property":"state","comparator":"is","value":"on","valueType":"str","timeout":"1","timeoutType":"num","timeoutUnits":"minutes","entityLocation":"","entityLocationType":"none","checkCurrentState":true,"blockInputOverrides":true,"x":770,"y":240,"wires":[[],["cbdd7eb2a725e9be"]]},{"id":"cbdd7eb2a725e9be","type":"api-call-service","z":"fd822d9148507199","name":"Oprit verlichting uit","server":"9b8bc642.fed038","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.overloop","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1030,"y":240,"wires":[[]]},{"id":"4c00638e42d69446","type":"time-range-switch","z":"fd822d9148507199","name":"Sunrise / Sunset","lat":"52.12","lon":"4.65","startTime":"sunrise","endTime":"sunset","startOffset":0,"endOffset":0,"x":530,"y":180,"wires":[["3bfdd81d1110b077","d3a230b3193e9b61"],[]]},{"id":"1d0cc7a1731bddd4","type":"server-state-changed","z":"fd822d9148507199","name":"Garage sensor aan","server":"9b8bc642.fed038","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.bewegingssensor_overloop","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":270,"y":220,"wires":[["4c00638e42d69446"],[]]},{"id":"ea93d6b7f8059a04","type":"comment","z":"fd822d9148507199","name":"of","info":"","x":230,"y":180,"wires":[]},{"id":"9b8bc642.fed038","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"cacheJson":true}] |
Zo ziet de flow er dan uit en zou moeten werken. Ziet er naar mijn idee rustiger en overzichtelijker uit toch?
/f/image/XYrxgwpFW0tQzaV4eBDlLnF5.png?f=fotoalbum_large)
Als je dit kunt lezen, dan werkt mij Signature!
Yep deze flow is zeker overzichterlijker!Wachten... schreef op woensdag 20 oktober 2021 @ 15:02:
@Fleshi
Hier is de flow (kijk even of deze klopt) uiteraard wel jouw entities erin zetten
Je moet dan gewoon even 1 'draadje' weghalen in je bestaande flow zodat die niet meer werkt. Dan heb je hem ook zo weer geactiveerd mocht je deze flow niet werkend krijgen.
code:
1 [{"id":"fd822d9148507199","type":"tab","label":"Flow 2","disabled":false,"info":""},{"id":"9b507af6c1fd73f2","type":"server-state-changed","z":"fd822d9148507199","name":"Garagedeur open","server":"9b8bc642.fed038","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.bewegingssensor_overloop","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":270,"y":140,"wires":[["4c00638e42d69446"],[]]},{"id":"3bfdd81d1110b077","type":"api-call-service","z":"fd822d9148507199","name":"Oprit verlichting aan","server":"9b8bc642.fed038","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.overloop","data":"{\"brightness_pct\":100,\"transition\":1}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1040,"y":180,"wires":[[]]},{"id":"d3a230b3193e9b61","type":"ha-wait-until","z":"fd822d9148507199","name":"Wacht voor 10 minuten","server":"9b8bc642.fed038","version":0,"outputs":2,"entityId":"binary_sensor.bewegingssensor_overloop","entityIdFilterType":"exact","property":"state","comparator":"is","value":"on","valueType":"str","timeout":"1","timeoutType":"num","timeoutUnits":"minutes","entityLocation":"","entityLocationType":"none","checkCurrentState":true,"blockInputOverrides":true,"x":770,"y":240,"wires":[[],["cbdd7eb2a725e9be"]]},{"id":"cbdd7eb2a725e9be","type":"api-call-service","z":"fd822d9148507199","name":"Oprit verlichting uit","server":"9b8bc642.fed038","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.overloop","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1030,"y":240,"wires":[[]]},{"id":"4c00638e42d69446","type":"time-range-switch","z":"fd822d9148507199","name":"Sunrise / Sunset","lat":"52.12","lon":"4.65","startTime":"sunrise","endTime":"sunset","startOffset":0,"endOffset":0,"x":530,"y":180,"wires":[["3bfdd81d1110b077","d3a230b3193e9b61"],[]]},{"id":"1d0cc7a1731bddd4","type":"server-state-changed","z":"fd822d9148507199","name":"Garage sensor aan","server":"9b8bc642.fed038","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.bewegingssensor_overloop","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":270,"y":220,"wires":[["4c00638e42d69446"],[]]},{"id":"ea93d6b7f8059a04","type":"comment","z":"fd822d9148507199","name":"of","info":"","x":230,"y":180,"wires":[]},{"id":"9b8bc642.fed038","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"cacheJson":true}]
Zo ziet de flow er dan uit en zou moeten werken. Ziet er naar mijn idee rustiger en overzichtelijker uit toch?
[Afbeelding]
Herkenbaar. Ik moet nog steeds wat andere flows na gaan lopen, want een aantal kunnen een heel stuk korter. Ook ga ik nog wat dingen Verde finetunen. Ik heb nog aardig wat ideeën voor leuke automations.Fleshi schreef op woensdag 20 oktober 2021 @ 15:13:
[...]
Yep deze flow is zeker overzichterlijker!Mijn flow komt nog uit de periode dat ik niet zo bekend was met Node Red en al blij was om een werkende flow te kunnen maken, haha.
Als je dit kunt lezen, dan werkt mij Signature!
@denuz Jij hebt mij eerder heel goed geholpen en ben benieuwd of je met mij mee wilt denken over de volgende situatie.
Ik heb een bewegingssensor op de overloop. Deze stuurt de lamp aan:
Overdag op 100% en in de avond op 60% birghtness
Nu is het zo dat wij wel eens op de kinderkamer moeten zijn, (als onze kleine ligt te slapen) en we willen dan dat de deursensor de ander flow van de bewegingssensor overruled (tijdelijke uitschakelt?). De overloop lamp kan dan direct gedimd worden naar 10 procent, zodat de kleine niet vol licht naar binnen krijgt.
Is er iets waarmee je een andere flow o.i.d. tijdelijk uit kunt schakelen? Ik ben wel hele complexe dingen aan het bedenken, maar wellicht is er een mooie oplossing voor.
Ik heb overigens veel meer van dit soort scenario's in mijn hoofd, dus als ik hier iets voor heb, dan kan ik een heleboel andere automations ook eens toe gaan passen.
Ik heb een bewegingssensor op de overloop. Deze stuurt de lamp aan:
Overdag op 100% en in de avond op 60% birghtness
Nu is het zo dat wij wel eens op de kinderkamer moeten zijn, (als onze kleine ligt te slapen) en we willen dan dat de deursensor de ander flow van de bewegingssensor overruled (tijdelijke uitschakelt?). De overloop lamp kan dan direct gedimd worden naar 10 procent, zodat de kleine niet vol licht naar binnen krijgt.
Is er iets waarmee je een andere flow o.i.d. tijdelijk uit kunt schakelen? Ik ben wel hele complexe dingen aan het bedenken, maar wellicht is er een mooie oplossing voor.
Ik heb overigens veel meer van dit soort scenario's in mijn hoofd, dus als ik hier iets voor heb, dan kan ik een heleboel andere automations ook eens toe gaan passen.
[ Voor 5% gewijzigd door Wachten... op 20-10-2021 20:05 ]
Als je dit kunt lezen, dan werkt mij Signature!
Hoe weet je dat de kleine ligt te slapen?
Ik denk dat je moet werken met een variabele. Ik doe dit in de vorm van een input boolean in homeassistant. Op deze manier kan ik in homeassistant een schakelaar omzetten als ik wil dat bepaalde lichten niet automatisch uitgaan. Je kan ook gebruik maken van een global/flow. Dit zorgt er dan niet voor dat een bepaalde flow wordt uitgeschakeld, maar wel dat deze niet doorloopt.
Dus stel je hebt een knopje waar je op drukt als je de kleine in bed legt. Dan kan je de flow.kleineslapen op true zetten.
In je automation doe je dan iets als: als deur open --> switch. flow.kleineslapen = true --> light.overloop= 10%.
En wat betreft complexe dingen; complex as in:
?
Ik denk dat je moet werken met een variabele. Ik doe dit in de vorm van een input boolean in homeassistant. Op deze manier kan ik in homeassistant een schakelaar omzetten als ik wil dat bepaalde lichten niet automatisch uitgaan. Je kan ook gebruik maken van een global/flow. Dit zorgt er dan niet voor dat een bepaalde flow wordt uitgeschakeld, maar wel dat deze niet doorloopt.
Dus stel je hebt een knopje waar je op drukt als je de kleine in bed legt. Dan kan je de flow.kleineslapen op true zetten.
In je automation doe je dan iets als: als deur open --> switch. flow.kleineslapen = true --> light.overloop= 10%.
En wat betreft complexe dingen; complex as in:
/f/image/o7r6q1JPaipxwPnw7xqAjqyd.png?f=fotoalbum_large)
Ik heb een voorwaarde in mijn flow dat de camera in de kinderkamer aan moet staan en dat de lux waarde lager dan 10 moet zijn. Zo weten wij nagenoeg 100% zeker dat de kleine op de kamer is/slaapt.denuz schreef op woensdag 20 oktober 2021 @ 21:29:
Hoe weet je dat de kleine ligt te slapen?
Ik denk dat de global flow niet is wat ik zoek, want de kleine ligt in deze situatie al op bed (laten we zeggen dat ie al een uur) en wij moeten even op de kamer zijn.Ik denk dat je moet werken met een variabele. Ik doe dit in de vorm van een input boolean in homeassistant. Op deze manier kan ik in homeassistant een schakelaar omzetten als ik wil dat bepaalde lichten niet automatisch uitgaan. Je kan ook gebruik maken van een global/flow. Dit zorgt er dan niet voor dat een bepaalde flow wordt uitgeschakeld, maar wel dat deze niet doorloopt.
Dus stel je hebt een knopje waar je op drukt als je de kleine in bed legt. Dan kan je de flow.kleineslapen op true zetten.
In je automation doe je dan iets als: als deur open --> switch. flow.kleineslapen = true --> light.overloop= 10%.
We willen dan dat de deursensor iets activeert waardoor de bewegingssensor niet werkt, totdat de deur weer sluit. Heb jij toevallig een voorbeeld van een variabele waarmee je dan dus iets uit kunt schakelen totdat de deur weer sluit?
Nou precies dit. Hier zou ik dan dus echt niet meer uit komen 😂
Als je dit kunt lezen, dan werkt mij Signature!
Zoiets;Wachten... schreef op donderdag 21 oktober 2021 @ 10:28:
[...]
Ik heb een voorwaarde in mijn flow dat de camera in de kinderkamer aan moet staan en dat de lux waarde lager dan 10 moet zijn. Zo weten wij nagenoeg 100% zeker dat de kleine op de kamer is/slaapt.
[...]
Ik denk dat de global flow niet is wat ik zoek, want de kleine ligt in deze situatie al op bed (laten we zeggen dat ie al een uur) en wij moeten even op de kamer zijn.
We willen dan dat de deursensor iets activeert waardoor de bewegingssensor niet werkt, totdat de deur weer sluit. Heb jij toevallig een voorbeeld van een variabele waarmee je dan dus iets uit kunt schakelen totdat de deur weer sluit?
[...]
Nou precies dit. Hier zou ik dan dus echt niet meer uit komen 😂
:fill(white):strip_exif()/f/image/Xce0UyYgDUELn8XyFXbJXgEv.png?f=user_large)
code:
1
| [{"id":"bcd128b22d87409a","type":"inject","z":"22a7c96c.2e4376","name":"lux lager dan 10, camera aan checks","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"on","payloadType":"str","x":220,"y":1620,"wires":[["413e9643c7d03608"]]},{"id":"413e9643c7d03608","type":"change","z":"22a7c96c.2e4376","name":"","rules":[{"t":"set","p":"kleineslaapt","pt":"global","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":660,"y":1560,"wires":[[]]},{"id":"3983a9f61b10cc5a","type":"inject","z":"22a7c96c.2e4376","name":"motionsensor","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payloadType":"date","x":110,"y":1780,"wires":[["be8ace02d3c34fd7"]]},{"id":"be8ace02d3c34fd7","type":"switch","z":"22a7c96c.2e4376","name":"","property":"kleineslaapt","propertyType":"global","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":350,"y":1780,"wires":[["2b0db697502fad6c"],["1fd6509b2cb0c3b3"]]},{"id":"4b5a03bb7bb867db","type":"inject","z":"22a7c96c.2e4376","name":"lux hoger dan 10, camera uitchecks","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"off","payloadType":"str","x":200,"y":1680,"wires":[["30b283f7583a8306"]]},{"id":"30b283f7583a8306","type":"change","z":"22a7c96c.2e4376","name":"","rules":[{"t":"set","p":"kleineslaapt","pt":"global","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":640,"y":1660,"wires":[[]]},{"id":"2b0db697502fad6c","type":"debug","z":"22a7c96c.2e4376","name":"licht niet aan","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":590,"y":1740,"wires":[]},{"id":"201232a08f6b52aa","type":"inject","z":"22a7c96c.2e4376","name":"deursensor","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payloadType":"date","x":110,"y":1840,"wires":[["be8ace02d3c34fd7"]]},{"id":"1fd6509b2cb0c3b3","type":"debug","z":"22a7c96c.2e4376","name":"licht wel aan","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":590,"y":1820,"wires":[]}] |
En anders moet je even delen welke flow je zelf nu hebt. Maakt het makkelijker om even te checken hoe e.a.a hierin past.
Ik ga het je zo even sturen (drink even mijn koffie op)denuz schreef op donderdag 21 oktober 2021 @ 10:38:
[...]
Zoiets;
[Afbeelding]
code:
1 [{"id":"bcd128b22d87409a","type":"inject","z":"22a7c96c.2e4376","name":"lux lager dan 10, camera aan checks","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"on","payloadType":"str","x":220,"y":1620,"wires":[["413e9643c7d03608"]]},{"id":"413e9643c7d03608","type":"change","z":"22a7c96c.2e4376","name":"","rules":[{"t":"set","p":"kleineslaapt","pt":"global","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":660,"y":1560,"wires":[[]]},{"id":"3983a9f61b10cc5a","type":"inject","z":"22a7c96c.2e4376","name":"motionsensor","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payloadType":"date","x":110,"y":1780,"wires":[["be8ace02d3c34fd7"]]},{"id":"be8ace02d3c34fd7","type":"switch","z":"22a7c96c.2e4376","name":"","property":"kleineslaapt","propertyType":"global","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":350,"y":1780,"wires":[["2b0db697502fad6c"],["1fd6509b2cb0c3b3"]]},{"id":"4b5a03bb7bb867db","type":"inject","z":"22a7c96c.2e4376","name":"lux hoger dan 10, camera uitchecks","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"off","payloadType":"str","x":200,"y":1680,"wires":[["30b283f7583a8306"]]},{"id":"30b283f7583a8306","type":"change","z":"22a7c96c.2e4376","name":"","rules":[{"t":"set","p":"kleineslaapt","pt":"global","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":640,"y":1660,"wires":[[]]},{"id":"2b0db697502fad6c","type":"debug","z":"22a7c96c.2e4376","name":"licht niet aan","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":590,"y":1740,"wires":[]},{"id":"201232a08f6b52aa","type":"inject","z":"22a7c96c.2e4376","name":"deursensor","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payloadType":"date","x":110,"y":1840,"wires":[["be8ace02d3c34fd7"]]},{"id":"1fd6509b2cb0c3b3","type":"debug","z":"22a7c96c.2e4376","name":"licht wel aan","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":590,"y":1820,"wires":[]}]
En anders moet je even delen welke flow je zelf nu hebt. Maakt het makkelijker om even te checken hoe e.a.a hierin past.
Ziet er wel overzichtelijk uit, maar schakel je hier dan ook een complete flow mee uit? Ofzo zoals hier wordt aangegeven?
https://skylar.tech/enabl...om-the-home-assistant-ui/
Ik stuur je zo de flow(s) even.
Als je dit kunt lezen, dan werkt mij Signature!
In je link wordt niet de flow uitgeschakeld. Er wordt gewerkt met een variabele( zie mijn eerste reactie op je vraag). In je voorbeeld werken ze met een input boolean. Vervolgens wordt in de flow gecheckt wat de status is van de input boolean.Wachten... schreef op donderdag 21 oktober 2021 @ 10:47:
[...]
Ik ga het je zo even sturen (drink even mijn koffie op)
Ziet er wel overzichtelijk uit, maar schakel je hier dan ook een complete flow mee uit? Ofzo zoals hier wordt aangegeven?
https://skylar.tech/enabl...om-the-home-assistant-ui/
Ik stuur je zo de flow(s) even.
De titel is dan een beetje misleidend in het artikeldenuz schreef op donderdag 21 oktober 2021 @ 11:17:
[...]
In je link wordt niet de flow uitgeschakeld. Er wordt gewerkt met een variabele( zie mijn eerste reactie op je vraag). In je voorbeeld werken ze met een input boolean. Vervolgens wordt in de flow gecheckt wat de status is van de input boolean.
Ik zit nu achter de PC, ga zo de flow sturen, maar ik kom erachter dat ik geen entities meer kan zoeken in de Node(s) Heb jij enig idee wat er kan zijn?
@denuz
Ik kan dus momenteel even niks aanpassen, maar zo ziet de flow er momenteel uit.
Dit werkt dus wel zodra je de deur open doet en de kamer in gaat, echter als ik weer bij de deur/overloop kom (en de deur staat dan nog steeds open) dan ziet de bewegingssensor mij weer, en gaat de "bewegingssensor flow" weer lopen, en de lamp dus op 100 of 60% aan.
:fill(white):strip_exif()/f/image/6K5UCVo00LbaEQsVAXuxfZdS.png?f=user_large)
[ Voor 32% gewijzigd door Wachten... op 21-10-2021 12:19 ]
Als je dit kunt lezen, dan werkt mij Signature!
Geen idee waarom je geen enities ziet. Node-red even restarten?Wachten... schreef op donderdag 21 oktober 2021 @ 11:21:
[...]
De titel is dan een beetje misleidend in het artikel
Ik zit nu achter de PC, ga zo de flow sturen, maar ik kom erachter dat ik geen entities meer kan zoeken in de Node(s) Heb jij enig idee wat er kan zijn?
@denuz
Ik kan dus momenteel even niks aanpassen, maar zo ziet de flow er momenteel uit.
Dit werkt dus wel zodra je de deur open doet en de kamer in gaat, echter als ik weer bij de deur/overloop kom (en de deur staat dan nog steeds open) dan ziet de bewegingssensor mij weer, en gaat de "bewegingssensor flow" weer lopen, en de lamp dus op 100 of 60% aan.
[Afbeelding]
De node die je gepost hebt werkt.
Als je nu in de andere node ook deze logica wilt gebruiken, dan moet je daar alles tussen zetten.
Dus Beweging overloop--> is de kinderkamer deur open? JA? --> Staat de camera aan? Ja-> is de lux lager dan 10? ja? --> dim lamp overloop.
Wat je dus ook kan doen is een input boolean maken. Indien camera aan en lux>10 gaat de boolean op on/true.
Vervolgens hoef je enkel de boolean te checken. Dit is soms makkelijker.
Ik ben nu eerst nog bezig om NodeRed weer aan de praat te krijgen. Ik heb echt geen idee wat er aan de hand is. Onderstaand de LOG.denuz schreef op donderdag 21 oktober 2021 @ 13:39:
[...]
Geen idee waarom je geen enities ziet. Node-red even restarten?
De node die je gepost hebt werkt.
Als je nu in de andere node ook deze logica wilt gebruiken, dan moet je daar alles tussen zetten.
Dus Beweging overloop--> is de kinderkamer deur open? JA? --> Staat de camera aan? Ja-> is de lux lager dan 10? ja? --> dim lamp overloop.
Wat je dus ook kan doen is een input boolean maken. Indien camera aan en lux>10 gaat de boolean op on/true.
Vervolgens hoef je enkel de boolean te checken. Dit is soms makkelijker.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
| (node:479) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 550) (node:479) UnhandledPromiseRejectionWarning: Error: Huejay: connect EHOSTUNREACH 192.168.0.22:80 at /config/node-red/node_modules/huejay/lib/Transport.js:106:15 at runMicrotasks (<anonymous>) at processTicksAndRejections (internal/process/task_queues.js:95:5) (node:479) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 553) (node:479) UnhandledPromiseRejectionWarning: Error: Huejay: connect EHOSTUNREACH 192.168.0.22:80 at /config/node-red/node_modules/huejay/lib/Transport.js:106:15 at runMicrotasks (<anonymous>) at processTicksAndRejections (internal/process/task_queues.js:95:5) (node:479) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 555) (node:479) UnhandledPromiseRejectionWarning: Error: Huejay: connect EHOSTUNREACH 192.168.0.22:80 at /config/node-red/node_modules/huejay/lib/Transport.js:106:15 at runMicrotasks (<anonymous>) at processTicksAndRejections (internal/process/task_queues.js:95:5) (node:479) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 557) (node:479) UnhandledPromiseRejectionWarning: Error: Huejay: connect EHOSTUNREACH 192.168.0.22:80 at /config/node-red/node_modules/huejay/lib/Transport.js:106:15 at runMicrotasks (<anonymous>) at processTicksAndRejections (internal/process/task_queues.js:95:5) (node:479) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 560) (node:479) UnhandledPromiseRejectionWarning: Error: Huejay: connect EHOSTUNREACH 192.168.0.22:80 at /config/node-red/node_modules/huejay/lib/Transport.js:106:15 at runMicrotasks (<anonymous>) at processTicksAndRejections (internal/process/task_queues.js:95:5) (node:479) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 562) (node:479) UnhandledPromiseRejectionWarning: Error: Huejay: connect EHOSTUNREACH 192.168.0.22:80 at /config/node-red/node_modules/huejay/lib/Transport.js:106:15 at runMicrotasks (<anonymous>) at processTicksAndRejections (internal/process/task_queues.js:95:5) (node:479) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 564) (node:479) UnhandledPromiseRejectionWarning: Error: Huejay: connect EHOSTUNREACH 192.168.0.22:80 at /config/node-red/node_modules/huejay/lib/Transport.js:106:15 at runMicrotasks (<anonymous>) at processTicksAndRejections (internal/process/task_queues.js:95:5) (node:479) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 567) (node:479) UnhandledPromiseRejectionWarning: Error: Huejay: connect EHOSTUNREACH 192.168.0.22:80 at /config/node-red/node_modules/huejay/lib/Transport.js:106:15 at runMicrotasks (<anonymous>) at processTicksAndRejections (internal/process/task_queues.js:95:5) (node:479) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 569) (node:479) UnhandledPromiseRejectionWarning: Error: Huejay: connect EHOSTUNREACH 192.168.0.22:80 at /config/node-red/node_modules/huejay/lib/Transport.js:106:15 at runMicrotasks (<anonymous>) at processTicksAndRejections (internal/process/task_queues.js:95:5) (node:479) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 571) 21 Oct 13:15:29 - [info] Stopping flows 21 Oct 13:15:29 - [info] [server:Home Assistant] Closing connection to http://supervisor/core 21 Oct 13:15:29 - [info] [server:Home Assistant] Closing connection to http://supervisor/core 21 Oct 13:15:29 - [info] [server:Home Assistant] Closing connection to http://supervisor/core 21 Oct 13:15:29 - [info] [server:Home Assistant] Closing connection to undefined 21 Oct 13:15:29 - [info] [server:Home Assistant] Closing connection to http://supervisor/core 21 Oct 13:15:29 - [info] [server:Home Assistant] Closing connection to undefined 21 Oct 13:15:29 - [info] [server:Home Assistant] Closing connection to undefined 21 Oct 13:15:29 - [info] [server:Home Assistant] Closing connection to undefined 21 Oct 13:15:29 - [info] [server:Home Assistant Adem] Closing connection to http://supervisor/core 21 Oct 13:15:29 - [info] [server:Home Assistant] Closing connection to http://supervisor/core 21 Oct 13:15:29 - [info] [server:Home Assistant] Closing connection to undefined 21 Oct 13:15:29 - [info] [server:HassIO] Closing connection to http://supervisor/core 21 Oct 13:15:29 - [info] Stopped flows 21 Oct 13:15:30 - [info] Starting flows 21 Oct 13:15:30 - [info] Started flows 21 Oct 13:15:30 - [info] [server:Home Assistant] Connecting to http://supervisor/core 21 Oct 13:15:31 - [info] [server:Home Assistant] Connected to http://supervisor/core (node:479) UnhandledPromiseRejectionWarning: Error: Huejay: connect EHOSTUNREACH 192.168.0.22:80 at /config/node-red/node_modules/huejay/lib/Transport.js:106:15 at runMicrotasks (<anonymous>) at processTicksAndRejections (internal/process/task_queues.js:95:5) (node:479) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 574) (node:479) UnhandledPromiseRejectionWarning: Error: Huejay: connect EHOSTUNREACH 192.168.0.22:80 at /config/node-red/node_modules/huejay/lib/Transport.js:106:15 at runMicrotasks (<anonymous>) at processTicksAndRejections (internal/process/task_queues.js:95:5) (node:479) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 576) (node:479) UnhandledPromiseRejectionWarning: Error: Huejay: connect EHOSTUNREACH 192.168.0.22:80 at /config/node-red/node_modules/huejay/lib/Transport.js:106:15 at runMicrotasks (<anonymous>) at processTicksAndRejections (internal/process/task_queues.js:95:5) (node:479) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 578) 21 Oct 13:15:39 - [info] Stopping flows 21 Oct 13:15:39 - [info] [server:Home Assistant] Closing connection to http://supervisor/core 21 Oct 13:15:39 - [info] Stopped flows 21 Oct 13:15:40 - [info] Starting flows 21 Oct 13:15:40 - [info] Started flows 21 Oct 13:15:41 - [info] [server:Home Assistant] Connecting to http://supervisor/core 21 Oct 13:15:41 - [info] [server:Home Assistant] Connected to http://supervisor/core 21 Oct 13:20:40 - [error] [api-current-state:Lux slaapkamer hoger dan 100] Entity could not be found in cache for entity_id: sensor.bewegingssensor_slaapkamer_lux 21 Oct 13:20:40 - [error] [api-current-state:Lux kinderkamer hoger dan 100] Entity could not be found in cache for entity_id: sensor.bewegingssensor_kinderkamer_lux 21 Oct 13:25:40 - [error] [api-current-state:Lux slaapkamer hoger dan 100] Entity could not be found in cache for entity_id: sensor.bewegingssensor_slaapkamer_lux 21 Oct 13:25:40 - [error] [api-current-state:Lux kinderkamer hoger dan 100] Entity could not be found in cache for entity_id: sensor.bewegingssensor_kinderkamer_lux 21 Oct 13:30:00 - [error] [api-current-state:Lux lager dan 80] Entity could not be found in cache for entity_id: sensor.bewegingssensor_overloop_lux 21 Oct 13:30:00 - [error] [api-current-state:Lux lager dan 125] Entity could not be found in cache for entity_id: sensor.bewegingssensor_badkamer_lux 21 Oct 13:30:01 - [error] [api-current-state:Lux lager dan 80] Entity could not be found in cache for entity_id: sensor.bewegingssensor_gang_lux 21 Oct 13:30:40 - [error] [api-current-state:Lux slaapkamer hoger dan 100] Entity could not be found in cache for entity_id: sensor.bewegingssensor_slaapkamer_lux 21 Oct 13:30:40 - [error] [api-current-state:Lux kinderkamer hoger dan 100] Entity could not be found in cache for entity_id: sensor.bewegingssensor_kinderkamer_lux 21 Oct 13:35:40 - [error] [api-current-state:Lux slaapkamer hoger dan 100] Entity could not be found in cache for entity_id: sensor.bewegingssensor_slaapkamer_lux 21 Oct 13:35:40 - [error] [api-current-state:Lux kinderkamer hoger dan 100] Entity could not be found in cache for entity_id: sensor.bewegingssensor_kinderkamer_lux 21 Oct 13:38:06 - [error] [api-current-state:Lux lager dan 80] Entity could not be found in cache for entity_id: sensor.bewegingssensor_overloop_lux 21 Oct 13:38:06 - [error] [api-current-state:Lux lager dan 125] Entity could not be found in cache for entity_id: sensor.bewegingssensor_badkamer_lux 21 Oct 13:38:07 - [error] [api-current-state:Lux lager dan 80] Entity could not be found in cache for entity_id: sensor.bewegingssensor_gang_lux |
Voor de duidelijkheid: Normaal komen er dus suggesties (bij de pijl op de afbeelding) van de entities die in Home Assistant staan. Als ik nu iets type, dan komen er helemaal geen suggesties.
:fill(white):strip_exif()/f/image/MkIYk5HsHLF9ItvTeQ5TYlfj.png?f=user_large)
Als ik handmatig een entities invoer, dan werkt deze wel gewoon.
Deze krijg ik nu helemaal niet meer
Als je dit kunt lezen, dan werkt mij Signature!
Volgens mij wil je het volgende:Wachten... schreef op donderdag 21 oktober 2021 @ 11:21:
[...]
De titel is dan een beetje misleidend in het artikel
Ik zit nu achter de PC, ga zo de flow sturen, maar ik kom erachter dat ik geen entities meer kan zoeken in de Node(s) Heb jij enig idee wat er kan zijn?
@denuz
Ik kan dus momenteel even niks aanpassen, maar zo ziet de flow er momenteel uit.
Dit werkt dus wel zodra je de deur open doet en de kamer in gaat, echter als ik weer bij de deur/overloop kom (en de deur staat dan nog steeds open) dan ziet de bewegingssensor mij weer, en gaat de "bewegingssensor flow" weer lopen, en de lamp dus op 100 of 60% aan.
[Afbeelding]
- Normale situatie: Als je op de overloop komt gaat het licht aan (op 100 of 60%)
- Als kind slaapt: Als je op de overloop komt gaat het licht normaal aan, maar als je de deur van de kinderkamer open doet moet het licht op de overloop dimmen.
- Zodra je de kinderkamer weer uit komt moet het licht op de overloop gedimd aan gaan.
- Zodra je de deur van de kinderkamer hebt gesloten kan het licht op de overloop weer op normale sterkte gezet worden.
Je krijgt dan volgens mij de volgende flows
1. deur WORDT geopend (de verandering van gesloten naar open is de trigger)
is licht overloop aan EN kind slaapt? zo ja, dim
2. deur WORDT gesloten
is licht overloop aan EN licht is gedimd? terug naar normale lichtsterkte
3. beweging op de overloop
kind slaapt EN deur IS open (dus de huidige status van de deur)? dan gedimd, anders licht aan volgens normaal schema
(als jij dus op de kinderkamer bent en de deur open is, en er komt vervolgens iemand anders de overloop op lopen dan gaat het licht ook gedimd aan)
4. einde beweging op de overloop
licht uit na einde timer
Feel free to Buy me a coffee
Ja dit is precies wat er moet gebeuren. Echter moet ik dan in mijn bestaande flow voor de bewegingssensor iets gaan toevoegen dat hij iedere keer kijkt of onze kleine ook aan het slapen is en daarmee die flow "vervuil"musicpixel schreef op donderdag 21 oktober 2021 @ 14:06:
[...]
Volgens mij wil je het volgende:
- Normale situatie: Als je op de overloop komt gaat het licht aan (op 100 of 60%)
- Als kind slaapt: Als je op de overloop komt gaat het licht normaal aan, maar als je de deur van de kinderkamer open doet moet het licht op de overloop dimmen.
- Zodra je de kinderkamer weer uit komt moet het licht op de overloop gedimd aan gaan.
- Zodra je de deur van de kinderkamer hebt gesloten kan het licht op de overloop weer op normale sterkte gezet worden.
Je krijgt dan volgens mij de volgende flows
1. deur WORDT geopend (de verandering van gesloten naar open is de trigger)
is licht overloop aan EN kind slaapt? zo ja, dim
2. deur WORDT gesloten
is licht overloop aan EN licht is gedimd? terug naar normale lichtsterkte
3. beweging op de overloop
kind slaapt EN deur IS open (dus de huidige status van de deur)? dan gedimd, anders licht aan volgens normaal schema
(als jij dus op de kinderkamer bent en de deur open is, en er komt vervolgens iemand anders de overloop op lopen dan gaat het licht ook gedimd aan)
4. einde beweging op de overloop
licht uit na einde timer
Ik heb liever dat hij enkel kijkt zodra de deur open gaat en dan pas controleert of de kleine slaapt en vanuit daar handelen. Dit scheelt wat onnodige checks iedere keer. Dat is in ieder geval mijn gedachte.
Het feit blijft dat ik momenteel nog steeds niks kan want ik kan niks meer vinden in NodeRed. Weet een van jullie of je gewoon een snapshot vanuit Synology VM terug kan zetten? Of bestaat er een kans dat ik dingen om zeep help? want werkelijk alles draait hier op Home Assistant.
Als je dit kunt lezen, dan werkt mij Signature!
Ik heb het als volgt opgelost, dit is inclusief "Sleep Mode" (een binary_sensor in HA) en de mogelijkheid om de bewegingssensor te overriden door zelf het licht aan te passen (via knop, app, etc).icecreamfarmer schreef op woensdag 20 oktober 2021 @ 13:31:
[...]
Nu heb ik echter iets anders. Ik heb een bewegingssensor en een lamp. Via Node red een flow aangemaakt dat als de bewegingssensor aangaat de lamp aan moet gaan voor 30s.
Echter is het de bedoeling dat hij dat blijft doen zolang er beweging is. Nu gaat hij echter na 30s uit om vervolgens 5s later weer aan te gaan. Hoe programeer ik dat?
Of moet ik het programmeren dat de timer pas begint met lopen wanneer de sensor geen beweging maar ontvangt?
De lamp gaat uit 3 min nadat de sensor niets meer heeft gedetecteerd (+ de sensor timeout dus). In geval van de Hue Sensor is dat dus 3m10s (10 sec timeout), bij de Aqara zou dat 4m30s (90 sec timeout) zijn.
Ik heb overigens een EcoDim 07 dimmer met dimmerknop op de overloop dus kon alleen wijziging in lichtsterkte detecteren, niet het drukken op de knop zelf. Als ik de was wil opvouwen op de overloop dan is het licht al aan door de sensor, maar draai ik met de knop het licht op 100%. De sensor verandert het licht dan niet meer tot ik zelf het licht uit doe met de knop.
Ben nog niet helemaal happy met die 500ms delay, maar heb nog geen betere oplossing kunnen bedenken.
:strip_exif()/f/image/sayAY4zhbHdG9MFwZRbfw8CZ.jpg?f=fotoalbum_large)
code:
1
| [{"id":"bbbb1c32b23058e3","type":"tab","label":"Overloop","disabled":false,"info":""},{"id":"73501250eda68b4f","type":"server-state-changed","z":"bbbb1c32b23058e3","name":"Landing Motion","server":"2065350e.86a40a","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.landing_sensor_1_occupancy","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":100,"y":340,"wires":[["38d221973b9644cc"],["bcc7168dc82c2e13"]]},{"id":"9c6cbb43b7cb48ca","type":"api-call-service","z":"bbbb1c32b23058e3","name":"Landing OFF","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"homeassistant","service":"turn_off","entityId":"light.landing_light_ceiling","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1050,"y":460,"wires":[["1e8b2328b4c7e738"]]},{"id":"38d221973b9644cc","type":"api-current-state","z":"bbbb1c32b23058e3","name":"Landing == OFF?","server":"2065350e.86a40a","version":2,"outputs":2,"halt_if":"off","halt_if_type":"str","halt_if_compare":"is","entity_id":"light.landing_light_ceiling","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":330,"y":220,"wires":[["0d820810a292df1f"],["6a9a89b814599c8a"]]},{"id":"4b60a663dea3e01f","type":"delay","z":"bbbb1c32b23058e3","name":"","pauseType":"delay","timeout":"3","timeoutUnits":"minutes","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"x":860,"y":460,"wires":[["9c6cbb43b7cb48ca"]]},{"id":"1ca068585367851f","type":"switch","z":"bbbb1c32b23058e3","name":"operatingMode == MOTION?","property":"operatingMode","propertyType":"flow","rules":[{"t":"eq","v":"MOTION","vt":"str"},{"t":"else"}],"checkall":"false","repair":false,"outputs":2,"x":600,"y":460,"wires":[["4b60a663dea3e01f"],[]]},{"id":"1e8b2328b4c7e738","type":"change","z":"bbbb1c32b23058e3","name":"UNSET operatingMode","rules":[{"t":"set","p":"operatingMode","pt":"flow","to":"","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1130,"y":540,"wires":[[]]},{"id":"6a1ba96e2b5c01b4","type":"api-call-service","z":"bbbb1c32b23058e3","name":"Landing 40%","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.landing_light_ceiling","data":"{\"brightness_pct\":\"40\"}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1050,"y":140,"wires":[["b0cd87b13f14fdd4"]]},{"id":"fb1eb7c63569acf5","type":"server-state-changed","z":"bbbb1c32b23058e3","name":"Landing - Change detected","server":"2065350e.86a40a","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"light.landing_light_ceiling","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":130,"y":660,"wires":[["36478d33575fd8be"]]},{"id":"36478d33575fd8be","type":"switch","z":"bbbb1c32b23058e3","name":"operatingMode == MOTION?","property":"operatingMode","propertyType":"flow","rules":[{"t":"eq","v":"MOTION","vt":"str"},{"t":"else"}],"checkall":"false","repair":false,"outputs":2,"x":480,"y":660,"wires":[["815ffdc4931d4412"],[]]},{"id":"815ffdc4931d4412","type":"change","z":"bbbb1c32b23058e3","name":"UNSET operatingMode","rules":[{"t":"set","p":"operatingMode","pt":"flow","to":"","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":810,"y":660,"wires":[[]]},{"id":"d559d808a11bba83","type":"change","z":"bbbb1c32b23058e3","name":"SET operatingMode MOTION","rules":[{"t":"set","p":"operatingMode","pt":"flow","to":"MOTION","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1110,"y":300,"wires":[[]]},{"id":"b0cd87b13f14fdd4","type":"delay","z":"bbbb1c32b23058e3","name":"","pauseType":"delay","timeout":"500","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"x":830,"y":300,"wires":[["d559d808a11bba83"]]},{"id":"bcc7168dc82c2e13","type":"api-current-state","z":"bbbb1c32b23058e3","name":"Landing == ON?","server":"2065350e.86a40a","version":2,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"light.landing_light_ceiling","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":320,"y":460,"wires":[["1ca068585367851f"],[]]},{"id":"6a9a89b814599c8a","type":"change","z":"bbbb1c32b23058e3","name":"Reset","rules":[{"t":"set","p":"reset","pt":"msg","to":"","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":570,"y":340,"wires":[["4b60a663dea3e01f"]]},{"id":"460f4859b4c4cd15","type":"comment","z":"bbbb1c32b23058e3","name":"Spots overloop aanzetten obv beweging","info":"","x":170,"y":160,"wires":[]},{"id":"5a0ce85ef483288f","type":"comment","z":"bbbb1c32b23058e3","name":"Als overloop spots handmatig worden aangepast, annuleer dan beweging","info":"","x":280,"y":600,"wires":[]},{"id":"7136883734bc5f69","type":"comment","z":"bbbb1c32b23058e3","name":"Delay nodig omdat anders aanzetten verlichting al als change wordt gezien","info":"","x":1020,"y":340,"wires":[]},{"id":"0d820810a292df1f","type":"time-range-switch","z":"bbbb1c32b23058e3","name":"","lat":"52.63521","lon":"4.74158","startTime":"sunrise","endTime":"sunset","startOffset":0,"endOffset":0,"x":580,"y":80,"wires":[[],["7af9a8aa0796050b"]]},{"id":"6c23e9d4bc579536","type":"api-call-service","z":"bbbb1c32b23058e3","name":"Landing 2%","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.landing_light_ceiling","data":"{\"brightness_pct\":\"2\"}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1050,"y":80,"wires":[["b0cd87b13f14fdd4"]]},{"id":"7af9a8aa0796050b","type":"api-current-state","z":"bbbb1c32b23058e3","name":"Sleep Mode == ON?","server":"2065350e.86a40a","version":2,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_boolean.sleep_mode","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":820,"y":80,"wires":[["6c23e9d4bc579536"],["6a1ba96e2b5c01b4"]]},{"id":"2065350e.86a40a","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}] |
Feel free to Buy me a coffee
Dat vervuilen is ook waar ik soms mee zit. Ik heb er nog geen tijd voor gehad om het uit te proberen, maar er is zoiets als subflows: https://nodered.org/docs/...editor/workspace/subflowsWachten... schreef op donderdag 21 oktober 2021 @ 14:33:
[...]
Ja dit is precies wat er moet gebeuren. Echter moet ik dan in mijn bestaande flow voor de bewegingssensor iets gaan toevoegen dat hij iedere keer kijkt of onze kleine ook aan het slapen is en daarmee die flow "vervuil"
Misschien dat het maken van een subflow voor de "Kind slaapt" check kan helpen bij de "vervuiling".
Hier overigens iemand die scenes heeft gemaakt met subflows:
https://community.home-as...-scenes-in-node-red/88438
Feel free to Buy me a coffee
Ik heb dit zelf nooit gehad, maar even googlen leverde dit op:Wachten... schreef op donderdag 21 oktober 2021 @ 14:33:
[...]
Het feit blijft dat ik momenteel nog steeds niks kan want ik kan niks meer vinden in NodeRed. Weet een van jullie of je gewoon een snapshot vanuit Synology VM terug kan zetten? Of bestaat er een kans dat ik dingen om zeep help? want werkelijk alles draait hier op Home Assistant.
https://community.home-as...or-other-fields/225440/14
https://community.home-as...earing-in-node-red/197735
https://zachowj.github.io...the-autocomplete-dropdown
Lijkt er op dat de cache voor autocomplete niet werkt.
Specifiek Node-Red herstarten (vanuit Supervisor) lijkt het op te lossen afgaande op de links hierboven.
Feel free to Buy me a coffee
Ja ik heb al diverse malen de VM gerestart, Nodered opnieuw opgestart, Nodered een keer verwijderd en opnieuw geinstalleerd, Home Assistant opnieuw opgestart etc. Echter werkt niks.musicpixel schreef op donderdag 21 oktober 2021 @ 15:10:
[...]
Ik heb dit zelf nooit gehad, maar even googlen leverde dit op:
https://community.home-as...or-other-fields/225440/14
https://community.home-as...earing-in-node-red/197735
https://zachowj.github.io...the-autocomplete-dropdown
Lijkt er op dat de cache voor autocomplete niet werkt.
Specifiek Node-Red herstarten (vanuit Supervisor) lijkt het op te lossen afgaande op de links hierboven.
Ik zie wel alle entities gewoon in Home Assistant, en zoals gezegd kan ik ze wel handmatig invoeren en werken de flows wel gewoon (dus de link is er)
Als je dit kunt lezen, dan werkt mij Signature!
Staat de config van je server node voor HomeAssistant goed ingesteld?Wachten... schreef op donderdag 21 oktober 2021 @ 15:21:
[...]
Ja ik heb al diverse malen de VM gerestart, Nodered opnieuw opgestart, Nodered een keer verwijderd en opnieuw geinstalleerd, Home Assistant opnieuw opgestart etc. Echter werkt niks.
Ik zie wel alle entities gewoon in Home Assistant, en zoals gezegd kan ik ze wel handmatig invoeren en werken de flows wel gewoon (dus de link is er)
Ik had overigens een tijdje geleden opeens een tweede "Home Assistant" in het rijtje rechts staan nadat ik flows had geimporteerd. Vond ie niet leuk ;-)
:strip_exif()/f/image/ZvYRbCa6Q4d2ia5fLvw9Gq5d.jpg?f=fotoalbum_large)
Feel free to Buy me a coffee
Ja alles staat hetzelfde.musicpixel schreef op donderdag 21 oktober 2021 @ 15:30:
[...]
Staat de config van je server node voor HomeAssistant goed ingesteld?
Ik had overigens een tijdje geleden opeens een tweede "Home Assistant" in het rijtje rechts staan nadat ik flows had geimporteerd. Vond ie niet leuk ;-)
[Afbeelding]
Ik had er laatst ook een paar extra in staan met een nul erachter. Deze zijn al wel verwijderd.
ik heb net een VM snapshot van gisteren terug gezet, maar ook dit verhelpt het probleem niet. Ik snap er echt helemaal niks van.
/f/image/652riIbObJoJcb48x8WEhVER.png?f=fotoalbum_large)
Als je dit kunt lezen, dan werkt mij Signature!
Ik zou het nu ook even niet meer weten.Wachten... schreef op donderdag 21 oktober 2021 @ 15:49:
[...]
Ja alles staat hetzelfde.
Ik had er laatst ook een paar extra in staan met een nul erachter. Deze zijn al wel verwijderd.
ik heb net een VM snapshot van gisteren terug gezet, maar ook dit verhelpt het probleem niet. Ik snap er echt helemaal niks van.
Heb je al in de log van NodeRed gekeken? Je kunt eventueel het log_level aanpassen (zie de Documentation tab voor NodeRed onder Supervisor)
Feel free to Buy me a coffee
@musicpixel
Ik heb eerder een log geplaatst.
Ik kan nog wel een log plaatsen met meer info. Welke logs moet ik erbij voegen dan? allemaal?
Zelfs een VM Snapshot terug zetten van 2 dagen helpt niet. Heel vreemd want ik weet 100 procent zeker dat het toen wel werkte.
Dus zelfs een Snapshot (wat volgens mij alles letterlijk 1 op 1 terug zet) helpt niet om dit probleem op te lossen.
Ik heb eerder een log geplaatst.
Ik kan nog wel een log plaatsen met meer info. Welke logs moet ik erbij voegen dan? allemaal?
Zelfs een VM Snapshot terug zetten van 2 dagen helpt niet. Heel vreemd want ik weet 100 procent zeker dat het toen wel werkte.
Dus zelfs een Snapshot (wat volgens mij alles letterlijk 1 op 1 terug zet) helpt niet om dit probleem op te lossen.
[ Voor 39% gewijzigd door Wachten... op 21-10-2021 16:05 ]
Als je dit kunt lezen, dan werkt mij Signature!
Dat eerdere log had ik even gemist, sorry. Welk log-level was dat? En wanneer had je de log uitgelezen? Direct na het starten van NodeRed? Of had je toen al geprobeerd een entity_id te zoeken? Weet niet wanneer NodeRed de cache vult met HA entityid's namelijk...Wachten... schreef op donderdag 21 oktober 2021 @ 16:01:
@musicpixel
Ik heb eerder een log geplaatst.
Ik kan nog wel een log plaatsen met meer info. Welke logs moet ik erbij voegen dan? allemaal?
Zelfs een VM Snapshot terug zetten van 2 dagen helpt niet. Heel vreemd want ik weet 100 procent zeker dat het toen wel werkte.
Dus zelfs een Snapshot (wat volgens mij alles letterlijk 1 op 1 terug zet) helpt niet om dit probleem op te lossen.
Valt me wel op dat er nogal wat errors zijn van Huejay (Hue Magic in NodeRed?). Ik gebruik deze overigens niet. HA kon zelf al de Hue lampen vinden met de HA Hue integration, dus ik benader ze op die manier.
Dat een snapshot van 2 dgn geleden het niet oplost lijkt te wijzen op iets anders dan een configuratie-probleem in HA/NodeRed...
Wat voor setup heb je? HA OS, met NodeRed als plugin?
Feel free to Buy me a coffee
volgens mij heeft iedere node een vakje "enabled", die je dus kunt uit zetten, soms handiger dan draadjes weghalenWachten... schreef op woensdag 20 oktober 2021 @ 15:02:
@Fleshi
Je moet dan gewoon even 1 'draadje' weghalen in je bestaande flow zodat die niet meer werkt. Dan heb je hem ook zo weer geactiveerd mocht je deze flow niet werkend krijgen.
@musicpixel @denuz
Ik heb het probleem (deels) gevonden. Het ligt dus bij mijn PC.
Blijk gebeurt er op een bepaald moment iets op mijn PC (ben er nog niet achter wanneer) en dan kan ik dus ineens niks meer vinden. Het probleem zit dus helemaal niet in Home Assistant of in NodeRed.
Zodra ik de PC opnieuw opstart, dan kan ik alles weer vinden. En even voor de duidelijkheid, HA draait niet op mijn PC, maar gewoon op de Synology NAS. Ik kwam tot deze ingeving omdat zelfs een snapshot van 2 dagen terug niet werkte. Ik wist echter zeker dat het toen nog wel werkte. Vervolgens ben ik op mijn mobiel gaan kijken, en daar kon hij wel alles vinden.
Zodra ik dit dus weer heb, dan moet ik mijn PC rebooten en dan werkt het weer. Ik heb het ook in andere browsers geprobeerd, want dacht eerst dat het enkel een probleem in Firefox was, maar in Chrome heb ik dit probleem ook.
Ik kan nu weer verder met mijn flow en ga even naar jullie oplossingen kijken.
@musicpixel Ik heb nog even gekeken naar die subflows, maar dat is niet echt iets voor mij. Wat dat betreft houd ik dan wel liever van een wat drukkere flow, maar dat ik het wel één op één uit kan lezen. Dat is precies de reden waarom ik (nog) niks doen met Link-in en Link-out nodes. Ze lijken me extreem handig, maar omdat ik het allemaal te weinig doe, raak ik het overzicht dan kwijt.
Ik wil dus graag direct in een flow kunnen zien wat er gebeurt.
Ik heb het probleem (deels) gevonden. Het ligt dus bij mijn PC.
Blijk gebeurt er op een bepaald moment iets op mijn PC (ben er nog niet achter wanneer) en dan kan ik dus ineens niks meer vinden. Het probleem zit dus helemaal niet in Home Assistant of in NodeRed.
Zodra ik de PC opnieuw opstart, dan kan ik alles weer vinden. En even voor de duidelijkheid, HA draait niet op mijn PC, maar gewoon op de Synology NAS. Ik kwam tot deze ingeving omdat zelfs een snapshot van 2 dagen terug niet werkte. Ik wist echter zeker dat het toen nog wel werkte. Vervolgens ben ik op mijn mobiel gaan kijken, en daar kon hij wel alles vinden.
Zodra ik dit dus weer heb, dan moet ik mijn PC rebooten en dan werkt het weer. Ik heb het ook in andere browsers geprobeerd, want dacht eerst dat het enkel een probleem in Firefox was, maar in Chrome heb ik dit probleem ook.
Ik kan nu weer verder met mijn flow en ga even naar jullie oplossingen kijken.
@musicpixel Ik heb nog even gekeken naar die subflows, maar dat is niet echt iets voor mij. Wat dat betreft houd ik dan wel liever van een wat drukkere flow, maar dat ik het wel één op één uit kan lezen. Dat is precies de reden waarom ik (nog) niks doen met Link-in en Link-out nodes. Ze lijken me extreem handig, maar omdat ik het allemaal te weinig doe, raak ik het overzicht dan kwijt.
Ik wil dus graag direct in een flow kunnen zien wat er gebeurt.
[ Voor 19% gewijzigd door Wachten... op 21-10-2021 22:41 ]
Als je dit kunt lezen, dan werkt mij Signature!
@denuz Soms vergeet ik wel eens hoe handig die input booleans kunnen zijn.
Ik heb het volgende gedaan:
Ik heb een input boolean gemaakt "kleine slaapt"
Als de camera kinderkamer aan staat en de lux lager is dan 20, dan gaat de input boolean aan.
Vervolgens heb ik de input boolean tussen de bestaande bewegingssensor flow gehangen:
Als er nu dus beweging wordt gedetecteerd, dan kijkt hij eerst of de input boolean "kleine slaapt" aan staat. Zo niet dan springt de lamp aan zoals oorspronkelijk ingesteld. Wordt er echter geconstateerd dat de input boolean wel aan staat, dan kijkt hij eerst nog of de deur open of dicht is, en aan de hand daarvan doet hij de lampen normaal aan of gedimd.
/f/image/Zw93AEN7IWHkWj4uEdI4Qwab.png?f=fotoalbum_large)
Zie ik nog iets over het hoofd, of heb ik dingen nog te omslachtig gedaan, of is dit hoe jij het dan ook zou doen? Ik ben overigens nog steeds benieuwd naar jouw andere oplossing waar je het eerder over had. Ik ben benieuwd of dat nog makkelijker en overzichtelijker is.
Ik heb het volgende gedaan:
Ik heb een input boolean gemaakt "kleine slaapt"
Als de camera kinderkamer aan staat en de lux lager is dan 20, dan gaat de input boolean aan.
Vervolgens heb ik de input boolean tussen de bestaande bewegingssensor flow gehangen:
Als er nu dus beweging wordt gedetecteerd, dan kijkt hij eerst of de input boolean "kleine slaapt" aan staat. Zo niet dan springt de lamp aan zoals oorspronkelijk ingesteld. Wordt er echter geconstateerd dat de input boolean wel aan staat, dan kijkt hij eerst nog of de deur open of dicht is, en aan de hand daarvan doet hij de lampen normaal aan of gedimd.
/f/image/Zw93AEN7IWHkWj4uEdI4Qwab.png?f=fotoalbum_large)
Zie ik nog iets over het hoofd, of heb ik dingen nog te omslachtig gedaan, of is dit hoe jij het dan ook zou doen? Ik ben overigens nog steeds benieuwd naar jouw andere oplossing waar je het eerder over had. Ik ben benieuwd of dat nog makkelijker en overzichtelijker is.
Als je dit kunt lezen, dan werkt mij Signature!
Kan je de helderheid niet meegeven als parameter bij het aanzetten van het licht?
Als dat kan, dan kan je de slaapdetectie een variabele laten zetten die de gewenste helderheid bevat. De overloop sensor activeert dan gewoon het licht met die gewenste helderheid (Overloop lamp aan <<variabele>>%).
Als dat kan, dan kan je de slaapdetectie een variabele laten zetten die de gewenste helderheid bevat. De overloop sensor activeert dan gewoon het licht met die gewenste helderheid (Overloop lamp aan <<variabele>>%).
Ik heb mijn docker container geupdate naar node-red 2.1.0.
Als ik nu bij de debug node wil klikken op complete msg object, dan gebeurt er niks. Expression is wel gewoon aan te klikken. Hebben meer mensen hier last van?
https://hub.docker.com/r/nodered/node-red
Edit, ik zit nu weer even op nodered/node-red:1.3.7-12 en daar werkt het weer wel gewoon.
Als ik nu bij de debug node wil klikken op complete msg object, dan gebeurt er niks. Expression is wel gewoon aan te klikken. Hebben meer mensen hier last van?
https://hub.docker.com/r/nodered/node-red
Edit, ik zit nu weer even op nodered/node-red:1.3.7-12 en daar werkt het weer wel gewoon.
[ Voor 16% gewijzigd door Dacuuu op 22-10-2021 14:07 ]
@denuz had het hier ook al over en heb wat Youtube videos bekeke. Ik weet alleen niet zo goed of het voor mij lekker gaat werken. Ik vindt het persoonlijk heel fijn dat ik echt per Node kan zien wat er gebeurd. Met de variable Node ga ik denk ik het overzicht kwijt raken. Ik moet er ook even goed induiken hoe ik dit dan toe zou moeten passen op mijn situatie. Wellicht als ik het één keer heb ingesteld, dat ik dan verkocht ben. De input boolean is in ieder geval extreem overzichtelijk en ik kan goed zien wat er allemaal gebeurt.GORby schreef op vrijdag 22 oktober 2021 @ 08:33:
Kan je de helderheid niet meegeven als parameter bij het aanzetten van het licht?
Als dat kan, dan kan je de slaapdetectie een variabele laten zetten die de gewenste helderheid bevat. De overloop sensor activeert dan gewoon het licht met die gewenste helderheid (Overloop lamp aan <<variabele>>%).
Ik heb overigens nog een compleet andere vraag:
Is er een mogelijkheid om een soort lichttemperatuur vast in te stellen binnen Home Assistant of NodeRed, zodat ik deze lichtsetting voor alle lampen kan gebruiken?
Ik kan wel scenes aanmaken, maar je moet dan specifiek lampen aangeven. Ik heb liever een optie waarbij ik een drietal lichttemperaturen heb ingesteld, en deze overal toe kan passen.
Als je dit kunt lezen, dan werkt mij Signature!
Daar komen de variabelen dan weer aan te pas. Je kan bijvoorbeeld een globale of flow variabele definiëren waar je de gewenste temperatuur in zet en dan deze waarde gebruiken voor al je lampen. Hier wordt de licht-temperatuur automatisch aangepast op basis van de stand van de zon.Wachten... schreef op vrijdag 22 oktober 2021 @ 16:33:
[...]
Ik heb overigens nog een compleet andere vraag:
Is er een mogelijkheid om een soort lichttemperatuur vast in te stellen binnen Home Assistant of NodeRed, zodat ik deze lichtsetting voor alle lampen kan gebruiken?
Ik kan wel scenes aanmaken, maar je moet dan specifiek lampen aangeven. Ik heb liever een optie waarbij ik een drietal lichttemperaturen heb ingesteld, en deze overal toe kan passen.
Je kan trouwens makkelijk de waarde van je variabelen zien in de Node-Red interface, dus je moet geen schrik hebben dat je daarmee het overzicht kwijt geraakt.
[ Voor 14% gewijzigd door GORby op 22-10-2021 17:00 . Reden: toevoeging ]
Net even aan het rommelen geweest met Config Nodes en global variabelen in een Call Service Node. Denk dat je hier wel wat mee kunt.Wachten... schreef op vrijdag 22 oktober 2021 @ 16:33:
[...]
Ik heb overigens nog een compleet andere vraag:
Is er een mogelijkheid om een soort lichttemperatuur vast in te stellen binnen Home Assistant of NodeRed, zodat ik deze lichtsetting voor alle lampen kan gebruiken?
Ik kan wel scenes aanmaken, maar je moet dan specifiek lampen aangeven. Ik heb liever een optie waarbij ik een drietal lichttemperaturen heb ingesteld, en deze overal toe kan passen.
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/5EuZp0U3zEK6ornQcmvUQsUU.jpg?f=user_large)
code:
1
| [{"id":"e58577188589b295","type":"config","z":"47c0408c7bc56509","name":"Lights Off Transition Time","properties":[{"p":"light_transition_off","pt":"global","to":"3","tot":"num"}],"active":true,"x":210,"y":120,"wires":[]},{"id":"74132a19382b89e2","type":"api-call-service","z":"47c0408c7bc56509","name":"Ikea Color ON","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.test_light_ikea_color","data":"{\"transition\": {{global.light_transition_on}}}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":380,"y":200,"wires":[[]]},{"id":"fa2be4c949e63150","type":"inject","z":"47c0408c7bc56509","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":160,"y":200,"wires":[["74132a19382b89e2"]]},{"id":"5fe97108b3768608","type":"api-call-service","z":"47c0408c7bc56509","name":"Ikea Color OFF","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.test_light_ikea_color","data":"{\"transition\": {{global.light_transition_off}}}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":380,"y":260,"wires":[[]]},{"id":"70948fe7938904a0","type":"inject","z":"47c0408c7bc56509","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":160,"y":260,"wires":[["5fe97108b3768608"]]},{"id":"dcfe8391d332c1ba","type":"config","z":"47c0408c7bc56509","name":"Lights On Transition Time","properties":[{"p":"light_transition_on","pt":"global","to":"0.5","tot":"num"}],"active":true,"x":210,"y":80,"wires":[]},{"id":"2065350e.86a40a","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}] |
Feel free to Buy me a coffee
Als je dit kunt lezen, dan werkt mij Signature!
@GORby & @musicpixel
Dit is denk ik de oplossing die je zoekt, als je een node open maakt en naar beneden scrolt zie je allemaal opties die je kunt proberen. Je kunt bijvoorbeeld ook langzaam laten dimmen, of langzaam van kleur veranderen.
Dit werkt trouwens niet bij alle lampen, dit moet je uitproberen
code:
1
| [{"id":"6d6f7041482cdf91","type":"api-call-service","z":"ac16171e.932bd8","name":"Eettafel lamp aan","server":"7a646b86.4b14f4","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.eettafel","data":"{\"kelvin\":\"3000\"}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":650,"y":270,"wires":[[]]},{"id":"7a646b86.4b14f4","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}] |
Dit is denk ik de oplossing die je zoekt, als je een node open maakt en naar beneden scrolt zie je allemaal opties die je kunt proberen. Je kunt bijvoorbeeld ook langzaam laten dimmen, of langzaam van kleur veranderen.
Dit werkt trouwens niet bij alle lampen, dit moet je uitproberen
Klopt, je kan dit per Node instellen, maar dat is niet wat @denuz, @musicpixel en ik bedoelen Ik heb dit namelijk zelf ook ingesteld bij een aantal Nodes, echter wil je dus min mogelijk hoeven zoeken naar een node en instellingen aanpassen.k_ers schreef op zaterdag 23 oktober 2021 @ 08:38:
@GORby & @musicpixel
code:
1 [{"id":"6d6f7041482cdf91","type":"api-call-service","z":"ac16171e.932bd8","name":"Eettafel lamp aan","server":"7a646b86.4b14f4","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.eettafel","data":"{\"kelvin\":\"3000\"}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":650,"y":270,"wires":[[]]},{"id":"7a646b86.4b14f4","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]
Dit is denk ik de oplossing die je zoekt, als je een node open maakt en naar beneden scrolt zie je allemaal opties die je kunt proberen. Je kunt bijvoorbeeld ook langzaam laten dimmen, of langzaam van kleur veranderen.
Dit werkt trouwens niet bij alle lampen, dit moet je uitproberen
Wat ik namelijk zoek is een soort scenes die je ook in de Hue app hebt met "ontspannen" "helder", "lezen", etc. en dat deze een bepaalde licht waarde hebben. Vervolgens wil ik iets van een input_select (dropdown) binnen HA met gebruiken met ochtend, middag, avond, nacht, en de lichtwaardes (lichtscenes) gebruiken bij deze dagindelingen.
Bijvoorbeeld zoiets als deze 4 waardes:
- {"brightness_pct":40,"transition":1} voor de ochtend
- {"brightness_pct":100,"transition":1} voor overdag
- {"brightness_pct":70,"transition":1} voor de avond
- {"brightness_pct":20,"transition":1} voor de nacht
[ Voor 7% gewijzigd door Wachten... op 23-10-2021 11:47 ]
Als je dit kunt lezen, dan werkt mij Signature!
In navolging op een eerdere post hier, ben ik begonnen om mijn Evohome te koppelen in Node-red, en de baby slaapkamer een flow mee te geven dat de temperatuur op bepaalde tijden gezet moet worden.
Onderstaande is een overzicht voor maandag/dinsdag/vrijdag. Woensdag, donderdag en het weekend komen er dus anders uit te zien (in totaal dus 3 verschillende flows voor 1 week).
Ik ben mij even hardop aan het afvragen of ik dit niet veel eenvoudiger/sneller/efficiënter kan instellen.
Onderstaande is een overzicht voor maandag/dinsdag/vrijdag. Woensdag, donderdag en het weekend komen er dus anders uit te zien (in totaal dus 3 verschillende flows voor 1 week).
Ik ben mij even hardop aan het afvragen of ik dit niet veel eenvoudiger/sneller/efficiënter kan instellen.
:fill(white):strip_exif()/f/image/3gdzDAn2ijovDVyIJjRINspt.png?f=user_large)
[ Voor 17% gewijzigd door prekz op 23-10-2021 12:39 ]
Mag ik vragen of jullie je echt altijd zo strikt houden aan de opstaan en naar bed tijden? Ziet er dan uit als behoorlijk gestructureerd (wat kan uiteraard)prekz schreef op zaterdag 23 oktober 2021 @ 12:36:
In navolging op een eerdere post hier, ben ik begonnen om mijn Evohome te koppelen in Node-red, en de baby slaapkamer een flow mee te geven dat de temperatuur op bepaalde tijden gezet moet worden.
Onderstaande is een overzicht voor maandag/dinsdag/vrijdag. Woensdag, donderdag en het weekend komen er dus anders uit te zien (in totaal dus 3 verschillende flows voor 1 week).
Ik ben mij even hardop aan het afvragen of ik dit niet veel eenvoudiger/sneller/efficiënter kan instellen.
[Afbeelding]
Al eens gekeken naar deze palette?
https://flows.nodered.org...d-contrib-light-scheduler
Wellicht is zoiets voor je.
Anders is bigtimer ook een enorm populaire palette
https://flows.nodered.org/node/node-red-contrib-bigtimer
Weet je hoe palettes werken (hoe je die toevoegd?)
[ Voor 6% gewijzigd door Wachten... op 23-10-2021 13:49 ]
Als je dit kunt lezen, dan werkt mij Signature!
Ik vraag me eerlijk gezegd af wat de reden is dat de temperatuur zo nauwkeurig geregeld moet worden in de babyslaapkamer. Is altijd 15 (of 16, of 17) graden niet gewoon goed?prekz schreef op zaterdag 23 oktober 2021 @ 12:36:
In navolging op een eerdere post hier, ben ik begonnen om mijn Evohome te koppelen in Node-red, en de baby slaapkamer een flow mee te geven dat de temperatuur op bepaalde tijden gezet moet worden.
Onderstaande is een overzicht voor maandag/dinsdag/vrijdag. Woensdag, donderdag en het weekend komen er dus anders uit te zien (in totaal dus 3 verschillende flows voor 1 week).
Ik ben mij even hardop aan het afvragen of ik dit niet veel eenvoudiger/sneller/efficiënter kan instellen.
Ook denk ik niet dat het binnen 2 uur 2 graden afkoelt in de kamer. Dus ook al zet je de temp van 17 naar 15 dan wordt het misschien 16 voordat je de verwarming weer aanzet op 17. Of je huis moet extreem tochtig zijn ;-)
Feel free to Buy me a coffee
Als je scenes wilt zoals in de Hue app zou ik het toch oplossen met Subflows. Je krijgt per kamer (of zone), en per scene een subflow. Dus bijv "Woonkamer Helder", "Woonkamer Ontspannen", "Toilet Dag", "Toilet Nacht", etc.Wachten... schreef op zaterdag 23 oktober 2021 @ 11:44:
[...]
Wat ik namelijk zoek is een soort scenes die je ook in de Hue app hebt met "ontspannen" "helder", "lezen", etc. en dat deze een bepaalde licht waarde hebben. Vervolgens wil ik iets van een input_select (dropdown) binnen HA met gebruiken met ochtend, middag, avond, nacht, en de lichtwaardes (lichtscenes) gebruiken bij deze dagindelingen.
Bijvoorbeeld zoiets als deze 4 waardes:
- {"brightness_pct":40,"transition":1} voor de ochtend
- {"brightness_pct":100,"transition":1} voor overdag
- {"brightness_pct":70,"transition":1} voor de avond
- {"brightness_pct":20,"transition":1} voor de nacht
In zo'n subflow stel je dan alle lampen in zoals je ze wilt hebben voor die scene.
Heb er even mee lopen spelen (voor 1 lamp) en dat ziet er dan zo uit:
SUBFLOW "scene Test Red 50", met in de node:
code:
1
| {"brightness_pct":"50", "transition":"0.1","rgb_color":[255,0,0]} |
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/fMuRSFxkMEDlNBiEEyrzWbTK.jpg?f=user_large)
SUBFLOW "scene Test White 50" met in de node:
code:
1
| {"kelvin":{{global.kelvin}},"brightness_pct":"50","transition":"0.1"} |
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/yo0jdqwGeVsEMjBfk8LyIZRm.jpg?f=user_large)
In het geval van de laatste subflow verwijs ik voor de kelvin instelling naar een global variabele die ik heb gezet met een config node, en aanroepen van de scene is gewoon de sublow node in je flow slepen:
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/pmEKOr1P2WIokhv90sondUKK.jpg?f=user_large)
Dit is de inhoud van de config node:
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/bx825sQXCE9ipU3ayd4a2h7y.jpg?f=user_large)
Config node is vooral handig voor het definieren van standaard waardes die je vaak gebruikt, zoals bijv transition time, standaard kleurwaardes, etc.
Wil je het geavanceerd doen, dan zou je nog meerdere scenes in 1 subflow kunnen stoppen en dan op basis van een input de juiste subscene kiezen. Dus een subflow voor Woonkamer en dan een input die "helder" of "ontspannen" kan zijn, waarna je met een switch in de sublow bepaalt welke scene gezet moet worden. Maar dat is m.i. minder overzichtelijk.
Feel free to Buy me a coffee
Ik gebruik naast een input select met Morning, Day, Evening en Night ook een input Boolean Sleepstate met Sleeping en Awake.Wachten... schreef op zaterdag 23 oktober 2021 @ 13:40:
[...]
Mag ik vragen of jullie je echt altijd zo strikt houden aan de opstaan en naar bed tijden? Ziet er dan uit als behoorlijk gestructureerd (wat kan uiteraard)
Bijna in alle voorwaarde gaat deze op Sleeping als we de audio of TV uitzetten (power onder een bepaalde waarde komt)
en op Awake als we na 06:00 de motion sensor in de badkamer triggeren of die van de woonkamer.
En dan kun je de nodige automations aan koppelen.
Ik heb bijvoorbeeld voor mijn dochter een wake-up light die gestructureerd door de weeks gaat maar niet in het weekend. En deze kan ik ook aan en uitzetten met een input boolean.
[ Voor 11% gewijzigd door d-vine op 23-10-2021 16:39 ]
Hoi,
Ik kom er niet uit. Ik krijg de luchtvochtigheid niet omgezet naar een waarde die ik kan meenemen in de hoogste vergelijking met CO2 en Humidity.
Ik heb hierboven mijn huidige Nodered programma neergezet. Ik heb 2 vragen.
1) Wie kan mij de juiste weg wijzen om ook te meten op luchtvochtigheid
2) Als de code sowieso verbeterd kan worden dan ben ik daar ook in geïnteresseerd.
Gr,
Andre
Ik kom er niet uit. Ik krijg de luchtvochtigheid niet omgezet naar een waarde die ik kan meenemen in de hoogste vergelijking met CO2 en Humidity.
code:
1
| [{"id":"ed25b410.cca7a8","type":"tab","label":"OHW","disabled":false,"info":""},{"id":"96761410.0aa278","type":"range","z":"ed25b410.cca7a8","minin":"550","maxin":"1200","minout":"20","maxout":"99","action":"clamp","round":true,"property":"co2","name":"% Vent","x":780,"y":440,"wires":[["d08cee75.234a8"]]},{"id":"d08cee75.234a8","type":"template","z":"ed25b410.cca7a8","name":"DMZ command","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{\"command\": \"switchlight\", \"idx\": 9, \"switchcmd\": \"Set Level\", \"level\": {{co2}} }","output":"str","x":940,"y":440,"wires":[["cb647152.26012"]]},{"id":"808a2f8d.61634","type":"json","z":"ed25b410.cca7a8","name":"","property":"payload","action":"","pretty":true,"x":1310,"y":460,"wires":[["854d1aac.159968"]]},{"id":"afc487ff.d517b8","type":"mqtt in","z":"ed25b410.cca7a8","name":"MQTT inp conn.","topic":"domoticz/out","qos":"0","datatype":"auto","broker":"28c9d0f4.a1c7e","x":80,"y":620,"wires":[["1b30c869.e1be58"]]},{"id":"1b30c869.e1be58","type":"json","z":"ed25b410.cca7a8","name":"","property":"payload","action":"","pretty":false,"x":230,"y":620,"wires":[["eb573979.9cdd88","d747631f.fff5b","4d8d2e29.9ce4c","b3fbe896.333c98","ba552cc9.4f0d5"]]},{"id":"6981efbb.8272b","type":"switch","z":"ed25b410.cca7a8","name":"Attic Vent Switch","property":"payload.nvalue","propertyType":"msg","rules":[{"t":"gte","v":"600","vt":"str"},{"t":"lt","v":"550","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":690,"y":640,"wires":[["3d578aa0.8fd086"],["5823001a.927bb"]]},{"id":"3d578aa0.8fd086","type":"change","z":"ed25b410.cca7a8","name":"Ventilatie open idx 408","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"command\": \"switchlight\", \"idx\": 408, \"switchcmd\": \"Off\" }","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":620,"wires":[["1901810b.c8358f"]]},{"id":"5823001a.927bb","type":"change","z":"ed25b410.cca7a8","name":"Ventilatie dicht idx 408","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"command\": \"switchlight\", \"idx\": 408, \"switchcmd\": \"On\" }","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":660,"wires":[["1901810b.c8358f"]]},{"id":"7bf0249c.19901c","type":"switch","z":"ed25b410.cca7a8","name":"Bedroom Vent Switch","property":"payload.nvalue","propertyType":"msg","rules":[{"t":"gte","v":"600","vt":"str"},{"t":"lt","v":"550","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":700,"y":720,"wires":[["bfaf7e3b.955da"],["3b7df9ff.0a04b6"]]},{"id":"bfaf7e3b.955da","type":"change","z":"ed25b410.cca7a8","name":"Ventilatie open idx 7","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"command\": \"switchlight\", \"idx\": 7, \"switchcmd\": \"On\" }","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":700,"wires":[["dfdfb2db.74d6c"]]},{"id":"3b7df9ff.0a04b6","type":"change","z":"ed25b410.cca7a8","name":"Ventilatie dicht idx 7","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"command\": \"switchlight\", \"idx\": 7, \"switchcmd\": \"Off\" }","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":740,"wires":[["dfdfb2db.74d6c"]]},{"id":"7bf6d5fe.cc29dc","type":"switch","z":"ed25b410.cca7a8","name":"Livingroom Vent Switch","property":"payload.nvalue","propertyType":"msg","rules":[{"t":"gt","v":"650","vt":"str"},{"t":"lte","v":"600","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":710,"y":800,"wires":[["dd18113b.4922b"],["45cc39c6.ff9048"]]},{"id":"dd18113b.4922b","type":"change","z":"ed25b410.cca7a8","name":"Ventilatie open idx 8","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"command\": \"switchlight\", \"idx\": 8, \"switchcmd\": \"On\" }","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":780,"wires":[["35d27b54.7daa04"]]},{"id":"45cc39c6.ff9048","type":"change","z":"ed25b410.cca7a8","name":"Ventilatie dicht idx 8","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"command\": \"switchlight\", \"idx\": 8, \"switchcmd\": \"Off\" }","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":820,"wires":[["35d27b54.7daa04"]]},{"id":"125f3116.044bef","type":"mqtt out","z":"ed25b410.cca7a8","name":"Domoticz MQTT output connection","topic":"domoticz/in","qos":"0","retain":"","broker":"28c9d0f4.a1c7e","x":1600,"y":680,"wires":[]},{"id":"eb573979.9cdd88","type":"switch","z":"ed25b410.cca7a8","name":"IDX 4 selectie","property":"payload.idx","propertyType":"msg","rules":[{"t":"eq","v":"4","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":460,"y":720,"wires":[["7bf0249c.19901c","f3bf6da3.3821f"]]},{"id":"b3fbe896.333c98","type":"switch","z":"ed25b410.cca7a8","name":"IDX 409 selectie","property":"payload.idx","propertyType":"msg","rules":[{"t":"eq","v":"409","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":460,"y":640,"wires":[["f56def23.ad3f9","6981efbb.8272b"]]},{"id":"d747631f.fff5b","type":"switch","z":"ed25b410.cca7a8","name":"IDX 1 selectie","property":"payload.idx","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":460,"y":800,"wires":[["a816bf5d.e0665","7bf6d5fe.cc29dc"]]},{"id":"f56def23.ad3f9","type":"change","z":"ed25b410.cca7a8","name":"store","rules":[{"t":"set","p":"co21","pt":"flow","to":"payload.nvalue","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":370,"y":380,"wires":[["9d7de9b7.a03c78"]]},{"id":"f3bf6da3.3821f","type":"change","z":"ed25b410.cca7a8","name":"store","rules":[{"t":"set","p":"co22","pt":"flow","to":"payload.nvalue","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":370,"y":440,"wires":[["9d7de9b7.a03c78"]]},{"id":"a816bf5d.e0665","type":"change","z":"ed25b410.cca7a8","name":"store","rules":[{"t":"set","p":"co23","pt":"flow","to":"payload.nvalue","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":370,"y":500,"wires":[["9d7de9b7.a03c78"]]},{"id":"3a9926c3.271a5a","type":"debug","z":"ed25b410.cca7a8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1530,"y":560,"wires":[]},{"id":"e44ca6ed.a29fc8","type":"comment","z":"ed25b410.cca7a8","name":"Ventilatie snelheid","info":"","x":1030,"y":400,"wires":[]},{"id":"72f9cb58.e54e74","type":"comment","z":"ed25b410.cca7a8","name":"Ventilatie Zones on/off","info":"","x":940,"y":560,"wires":[]},{"id":"4d8d2e29.9ce4c","type":"switch","z":"ed25b410.cca7a8","name":"IDX 42 selectie","property":"payload.idx","propertyType":"msg","rules":[{"t":"eq","v":"42","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":360,"y":180,"wires":[["4831ef4d.dc872"]]},{"id":"ef5ea713.b53778","type":"comment","z":"ed25b410.cca7a8","name":"Douche Remote Control","info":"","x":580,"y":120,"wires":[]},{"id":"dfdfb2db.74d6c","type":"rbe","z":"ed25b410.cca7a8","name":"Filter unnecessary msg","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1190,"y":720,"wires":[["125f3116.044bef","3a9926c3.271a5a"]]},{"id":"35d27b54.7daa04","type":"rbe","z":"ed25b410.cca7a8","name":"Filter unnecessary msg","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1190,"y":800,"wires":[["3a9926c3.271a5a","125f3116.044bef"]]},{"id":"7a0554e5.fe542c","type":"change","z":"ed25b410.cca7a8","name":"store","rules":[{"t":"set","p":"payload.level","pt":"msg","to":"85","tot":"num"},{"t":"set","p":"co24","pt":"msg","to":"85","tot":"num"},{"t":"set","p":"lvl1","pt":"msg","to":"85","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":770,"y":200,"wires":[["fe6d0731.fbc148","b5271979.bd4878"]]},{"id":"c520e550.3e7a78","type":"change","z":"ed25b410.cca7a8","name":"Hoogste kiezen","rules":[{"t":"set","p":"payload.level","pt":"flow","to":"$max([$flowContext(\"lvl1\"), $flowContext(\"lvl2\")])\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1240,"y":320,"wires":[["92978320.ca4a"]]},{"id":"a82f8ab6.972c48","type":"change","z":"ed25b410.cca7a8","name":"store","rules":[{"t":"set","p":"lvl1","pt":"flow","to":"payload.level","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1150,"y":200,"wires":[["c520e550.3e7a78"]]},{"id":"cb647152.26012","type":"change","z":"ed25b410.cca7a8","name":"store","rules":[{"t":"set","p":"lvl2","pt":"flow","to":"payload.level","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1090,"y":440,"wires":[["c520e550.3e7a78"]]},{"id":"92978320.ca4a","type":"traffic","z":"ed25b410.cca7a8","name":"Traffic Switch Douche","property_allow":"payload","filter_allow":"GO","ignore_case_allow":true,"negate_allow":false,"send_allow":false,"property_stop":"payload","filter_stop":"stop","ignore_case_stop":true,"negate_stop":false,"send_stop":false,"default_start":true,"differ":false,"x":1340,"y":380,"wires":[["808a2f8d.61634"]]},{"id":"fe6d0731.fbc148","type":"trigger","z":"ed25b410.cca7a8","name":"","op1":"{\"command\": \"switchlight\", \"idx\": 9, \"switchcmd\": \"Set Level\", \"level\": 80 }","op2":"Stop","op1type":"json","op2type":"str","duration":"250","extend":false,"overrideDelay":false,"units":"ms","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":960,"y":200,"wires":[["a82f8ab6.972c48"]]},{"id":"b5271979.bd4878","type":"trigger","z":"ed25b410.cca7a8","name":"","op1":"","op2":"GO","op1type":"str","op2type":"str","duration":"20","extend":false,"overrideDelay":false,"units":"min","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":950,"y":240,"wires":[["a82f8ab6.972c48"]]},{"id":"4831ef4d.dc872","type":"switch","z":"ed25b410.cca7a8","name":"Douche vent On/Off","property":"payload.nvalue","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"str"},{"t":"eq","v":"1","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":560,"y":180,"wires":[["da498f39.a8dcd"],["7a0554e5.fe542c"]]},{"id":"da498f39.a8dcd","type":"trigger","z":"ed25b410.cca7a8","name":"","op1":"Go","op2":"","op1type":"str","op2type":"str","duration":"250","extend":false,"overrideDelay":false,"units":"ms","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":960,"y":160,"wires":[["a82f8ab6.972c48"]]},{"id":"854d1aac.159968","type":"rbe","z":"ed25b410.cca7a8","name":"Filter unnecessary msg","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1190,"y":560,"wires":[["3a9926c3.271a5a","125f3116.044bef"]]},{"id":"1901810b.c8358f","type":"rbe","z":"ed25b410.cca7a8","name":"Filter unnecessary msg","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1190,"y":640,"wires":[["125f3116.044bef","3a9926c3.271a5a"]]},{"id":"ba552cc9.4f0d5","type":"switch","z":"ed25b410.cca7a8","name":"IDX 434 sel %Hum","property":"payload.idx","propertyType":"msg","rules":[{"t":"eq","v":"434","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":470,"y":580,"wires":[["ee8adc34.ba89f"]]},{"id":"eea78c4b.c00f8","type":"comment","z":"ed25b410.cca7a8","name":"Douche Hum Control","info":"","x":580,"y":280,"wires":[]},{"id":"a88aa09d.e0449","type":"debug","z":"ed25b410.cca7a8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1510,"y":140,"wires":[]},{"id":"b0b56d5a.bb0bd","type":"debug","z":"ed25b410.cca7a8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":710,"y":1000,"wires":[]},{"id":"ee8adc34.ba89f","type":"function","z":"ed25b410.cca7a8","name":"Svalue to data Humidity","func":"var data=msg.payload.svalue;\nvar temp=data.split(\";\");\nmsg.temperature=temp[0];\nmsg.humidity=temp[1];\nmsg.geenidee=temp[2];\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":430,"y":320,"wires":[["519ddf8.82bfe2"]]},{"id":"9d7de9b7.a03c78","type":"change","z":"ed25b410.cca7a8","name":"Hoogste kiezen","rules":[{"t":"set","p":"co2","pt":"msg","to":"$max([$flowContext(\"co21\"), $flowContext(\"co22\"), $flowContext(\"co23\")])","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":580,"y":440,"wires":[["96761410.0aa278"]]},{"id":"919cf60.8299208","type":"change","z":"ed25b410.cca7a8","name":"Flow Hum High","rules":[{"t":"set","p":"hum","pt":"flow","to":"1200","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":480,"y":940,"wires":[[]]},{"id":"ecd9b9fc.a9cd08","type":"change","z":"ed25b410.cca7a8","name":"Flow Hum Low","rules":[{"t":"set","p":"hum","pt":"flow","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":480,"y":1000,"wires":[[]]},{"id":"82115d64.a9f4b","type":"range","z":"ed25b410.cca7a8","minin":"50","maxin":"95","minout":"600","maxout":"1400","action":"clamp","round":true,"property":"humidity","name":"Change to CO2 range","x":820,"y":320,"wires":[["95d39cdd.2f3d7"]]},{"id":"bdfa274.88f15d8","type":"switch","z":"ed25b410.cca7a8","name":"Hum Selector On Off","property":"humidity","propertyType":"msg","rules":[{"t":"gte","v":"70","vt":"str"},{"t":"lt","v":"70","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":740,"y":940,"wires":[[],[]]},{"id":"519ddf8.82bfe2","type":"change","z":"ed25b410.cca7a8","name":"store","rules":[{"t":"set","p":"humidity","pt":"flow","to":"payload.level","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":630,"y":320,"wires":[["82115d64.a9f4b"]]},{"id":"5e448702.91f1a8","type":"change","z":"ed25b410.cca7a8","name":"Hoogste co2 kiezen + hum","rules":[{"t":"set","p":"co2","pt":"msg","to":"$max([$flowContext(\"co21\"), $flowContext(\"co22\"), $flowContext(\"co23\"), $flowContext(\"hum\")])\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":220,"y":940,"wires":[[]]},{"id":"95d39cdd.2f3d7","type":"change","z":"ed25b410.cca7a8","name":"store","rules":[{"t":"set","p":"humidity","pt":"flow","to":"payload.level","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1010,"y":320,"wires":[["a88aa09d.e0449"]]},{"id":"28c9d0f4.a1c7e","type":"mqtt-broker","name":"MQTTBrokerDomoticz","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","closeTopic":"","closeQos":"0","closeRetain":"false","closePayload":"","willTopic":"","willQos":"0","willRetain":"false","willPayload":""}] |
Ik heb hierboven mijn huidige Nodered programma neergezet. Ik heb 2 vragen.
1) Wie kan mij de juiste weg wijzen om ook te meten op luchtvochtigheid
2) Als de code sowieso verbeterd kan worden dan ben ik daar ook in geïnteresseerd.
Gr,
Andre
In ieder geval dank voor de lightscheduler, de bigtimer vind ik zelf wat lastiger, zal mij hierin nog eens verdiepen.Wachten... schreef op zaterdag 23 oktober 2021 @ 13:40:
[...]
Mag ik vragen of jullie je echt altijd zo strikt houden aan de opstaan en naar bed tijden? Ziet er dan uit als behoorlijk gestructureerd (wat kan uiteraard)
Al eens gekeken naar deze palette?
https://flows.nodered.org...d-contrib-light-scheduler
Wellicht is zoiets voor je.
Anders is bigtimer ook een enorm populaire palette
https://flows.nodered.org/node/node-red-contrib-bigtimer
Weet je hoe palettes werken (hoe je die toevoegd?)
Wat betreft striktheid, dat vind ik zelf ook een hele lastige. Ik had een vraag gesteld wat handig is m.b.t. de baby kamer. En daarbij werd eigenlijk aangegeven dat de kleine toch vaak rond dezelfde tijden naar bed gaat (en dit klopt voor ons ook wel). Maar je zult altijd uitzonderingen hebben.
Ik twijfel dus nog hoe ik hiermee om moet gaan. Gevoelsmatig neig ik naar een druksensor onder de matras. Maar dat is wel weer een behoorlijk gefreubel, waar ik op het moment weinig zin in heb. Omdat er geen kant en klare oplossing (lijkt) te zijn.
Ik wil mijn instellingen en thuis situatie wel delen.prekz schreef op zondag 24 oktober 2021 @ 00:05:
[...]
In ieder geval dank voor de lightscheduler, de bigtimer vind ik zelf wat lastiger, zal mij hierin nog eens verdiepen.
Wat betreft striktheid, dat vind ik zelf ook een hele lastige. Ik had een vraag gesteld wat handig is m.b.t. de baby kamer. En daarbij werd eigenlijk aangegeven dat de kleine toch vaak rond dezelfde tijden naar bed gaat (en dit klopt voor ons ook wel). Maar je zult altijd uitzonderingen hebben.
Ik twijfel dus nog hoe ik hiermee om moet gaan. Gevoelsmatig neig ik naar een druksensor onder de matras. Maar dat is wel weer een behoorlijk gefreubel, waar ik op het moment weinig zin in heb. Omdat er geen kant en klare oplossing (lijkt) te zijn.
Je kunt je ook afvragen in hoeverre je alles precies geautomatiseerd wilt hebben en proberen alles af te vangen op elke uitzondering die kunt optreden.
Ik draai stand-by diensten mijn vriendin zit in de zorg en we hebben niet altijd een standaard week schema
Ik heb ook een EvoHome en 2 kleine kinderen (5 & 2) en ook al kun je met HA alles schakelen zijn mijn schakeltijden van de vloerverwarming, en radiatoren ingesteld in EvoHome zelf.
Ik schakel wel alles aan/ uit van EvoHome op Home/Away status van mijn HA.
De bedtijden in de avond zijn voor onze kinderen rond 7 uur (soms een half uur eerder soms een half uur later) Het middag slaapje van de jongste draak is tussen 12 en 12.30
En aangezien ik niet voor elke radiator apart een schakel moment wilt hebben voor de CV probeer ik zoveel mogelijk alles samen te schakelen waar het eventueel kan.
Bij ons blijft de warmte wel even hangen na stoken dus om 18:00 gaan de verwarmingen van de badkamer en beide kinderkamers naar 19 graden en om 19:00 stop ik dit weer omdat later ze toch op bed liggen.
De babykamer heeft voor de nacht een minimum temperatuur van 18 graden
2 doordeweekse dagen en in het weekend gaat de babykamer ook naar 18 graden om 11:00 voor het middagslaapje en 12:00 uit (met minimum van 18 graden) en daarna pas weer aan voor de avond.
In de ochtend gaan de woonkamer en badkamer aan om 06:00 en beide uit om 07:30 of alleen de badkamer afhankelijk van weekenden of thuis dagen
Die enkele keer dat je een keer naast de gezette tijden zit kun je altijd nog handmatig even bijsturen mocht het echt te koud zijn in een kamer. Ik trigger wel de temperatuur van de babykamer als deze onder de 15 graden komt en laat een telegram bericht sturen voor het middag slaapje of avond in geval dat alles in huis out of sync loopt.
En zo kun je natuurlijk je eigen settings en tijden gaan hanteren
Uiteindelijk werkt dit het beste voor ons met de Home/Away schakeling is mijn ervaring.
@musicpixel @denuz
Ik ben een hele tijd bezig geweest om erachter te komen hoe ik het beste de config node, variable, of iets van een subflow moet toe passen in mijn situatie, maar ik kom er echt niet uit. Het wordt voor mij alleen maar onoverzichtelijker.
Ik heb even hier één situatie van bijvoorbeeld de overloop. Ik heb hiervoor 3 automations gemaakt voor overdag, s`avonds en in de nacht. Deze automations heb ik dus nu voor alles zo ingesteld. Het is wel overzichtelijk, maar als ik van alles lampen de helderheid en kelvin o.i.d. aan wil passen, dan moet ik dit voor alle automations doen. Daarnaast is het dus voor mij belangrijk dat ik in één node dingen aan kan passen zoals die config node o.i.d. Ik raak echter het overzicht kwijt en snap dus niet zo lekker hoe ik het dus niet toe moet passen in mijn situatie.
Hetzelfde wil ik dan voor de tijden. Ik heb nu iedere keer een node er tussen zitten met tijden wanneer een bepaalde automation iets moet doen. Als ik hierin dus dingen wil wijzigen, dan moet ik dat wederom voor alle automations doen.
Ik ben een hele tijd bezig geweest om erachter te komen hoe ik het beste de config node, variable, of iets van een subflow moet toe passen in mijn situatie, maar ik kom er echt niet uit. Het wordt voor mij alleen maar onoverzichtelijker.
Ik heb even hier één situatie van bijvoorbeeld de overloop. Ik heb hiervoor 3 automations gemaakt voor overdag, s`avonds en in de nacht. Deze automations heb ik dus nu voor alles zo ingesteld. Het is wel overzichtelijk, maar als ik van alles lampen de helderheid en kelvin o.i.d. aan wil passen, dan moet ik dit voor alle automations doen. Daarnaast is het dus voor mij belangrijk dat ik in één node dingen aan kan passen zoals die config node o.i.d. Ik raak echter het overzicht kwijt en snap dus niet zo lekker hoe ik het dus niet toe moet passen in mijn situatie.
Hetzelfde wil ik dan voor de tijden. Ik heb nu iedere keer een node er tussen zitten met tijden wanneer een bepaalde automation iets moet doen. Als ik hierin dus dingen wil wijzigen, dan moet ik dat wederom voor alle automations doen.
code:
1
| [{"id":"42ef12079fd3a52e","type":"server-state-changed","z":"46661ff43d92a420","name":"Overloop sensor wordt geactiveerd","server":"9b8bc642.fed038","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.bewegingssensor_overloop","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":240,"y":160,"wires":[["21f76a98fa0f199d"],["21f76a98fa0f199d"]]},{"id":"6055788b8070c74a","type":"ha-wait-until","z":"46661ff43d92a420","name":"Wacht voor 1 minuut","server":"9b8bc642.fed038","version":0,"outputs":2,"entityId":"binary_sensor.bewegingssensor_overloop","entityIdFilterType":"exact","property":"state","comparator":"is","value":"on","valueType":"str","timeout":"1","timeoutType":"num","timeoutUnits":"minutes","entityLocation":"","entityLocationType":"none","checkCurrentState":true,"blockInputOverrides":true,"x":1060,"y":220,"wires":[[],["f7bb408a2a2c1906"]]},{"id":"f7bb408a2a2c1906","type":"api-call-service","z":"46661ff43d92a420","name":"Overloop lamp uit","server":"9b8bc642.fed038","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.overloop_group","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1350,"y":220,"wires":[[]]},{"id":"3e091a7906b6ff47","type":"comment","z":"46661ff43d92a420","name":"Overloop sensor overdag","info":"","x":210,"y":100,"wires":[]},{"id":"21f76a98fa0f199d","type":"time-range-switch","z":"46661ff43d92a420","name":"tussen Sunrise & Sunset","lat":"52.12","lon":"4.65","startTime":"sunrise","endTime":"sunset","startOffset":0,"endOffset":0,"x":550,"y":160,"wires":[["3cc9f7d2e6f90466"],[]]},{"id":"2c3425bf45332d45","type":"server-state-changed","z":"46661ff43d92a420","name":"Overloop sensor wordt geactiveerd","server":"9b8bc642.fed038","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.bewegingssensor_overloop","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":240,"y":340,"wires":[["46d5bba331b56d61"],["46d5bba331b56d61"]]},{"id":"6061fdc49569871b","type":"ha-wait-until","z":"46661ff43d92a420","name":"Wacht voor 1 minuut","server":"9b8bc642.fed038","version":0,"outputs":2,"entityId":"binary_sensor.bewegingssensor_overloop","entityIdFilterType":"exact","property":"state","comparator":"is","value":"on","valueType":"str","timeout":"1","timeoutType":"num","timeoutUnits":"minutes","entityLocation":"","entityLocationType":"none","checkCurrentState":true,"blockInputOverrides":true,"x":1060,"y":400,"wires":[[],["f7f2c910f9dfe223"]]},{"id":"f7f2c910f9dfe223","type":"api-call-service","z":"46661ff43d92a420","name":"Overloop lamp uit","server":"9b8bc642.fed038","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.overloop_group","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1350,"y":400,"wires":[[]]},{"id":"d7d6a7c4acfe5af5","type":"comment","z":"46661ff43d92a420","name":"Overloop sensor avond","info":"","x":200,"y":280,"wires":[]},{"id":"46d5bba331b56d61","type":"time-range-switch","z":"46661ff43d92a420","name":"tussen Sunset & 00:00","lat":"52.12","lon":"4.65","startTime":"sunset","endTime":"00:00","startOffset":0,"endOffset":0,"x":540,"y":340,"wires":[["94f964e5f84c13a6"],[]]},{"id":"a03497a4aff2efd2","type":"api-call-service","z":"46661ff43d92a420","name":"Overloop lamp aan 60%","server":"9b8bc642.fed038","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.overloop_group","data":"{\"brightness_pct\":60,\"transition\":1}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1370,"y":340,"wires":[[]]},{"id":"94f964e5f84c13a6","type":"api-current-state","z":"46661ff43d92a420","name":"is lux lager dan 80?","server":"9b8bc642.fed038","version":2,"outputs":2,"halt_if":"80","halt_if_type":"num","halt_if_compare":"lt","entity_id":"sensor.bewegingssensor_overloop_lux","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":790,"y":340,"wires":[["a03497a4aff2efd2","6061fdc49569871b"],[]]},{"id":"3cc9f7d2e6f90466","type":"api-current-state","z":"46661ff43d92a420","name":"is lux lager dan 80?","server":"9b8bc642.fed038","version":2,"outputs":2,"halt_if":"80","halt_if_type":"num","halt_if_compare":"lt","entity_id":"sensor.bewegingssensor_overloop_lux","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":790,"y":160,"wires":[["6055788b8070c74a"],[]]},{"id":"ef76b0b88f380128","type":"server-state-changed","z":"46661ff43d92a420","name":"Overloop sensor wordt geactiveerd","server":"9b8bc642.fed038","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.bewegingssensor_overloop","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":240,"y":520,"wires":[["16d858eb82b746f8"],["16d858eb82b746f8"]]},{"id":"483a1cb4c6f750ab","type":"ha-wait-until","z":"46661ff43d92a420","name":"Wacht voor 1 minuut","server":"9b8bc642.fed038","version":0,"outputs":2,"entityId":"binary_sensor.bewegingssensor_overloop","entityIdFilterType":"exact","property":"state","comparator":"is","value":"on","valueType":"str","timeout":"1","timeoutType":"num","timeoutUnits":"minutes","entityLocation":"","entityLocationType":"none","checkCurrentState":true,"blockInputOverrides":true,"x":1060,"y":580,"wires":[[],["02154a7bb788e7f5"]]},{"id":"02154a7bb788e7f5","type":"api-call-service","z":"46661ff43d92a420","name":"Overloop lamp uit","server":"9b8bc642.fed038","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.overloop_group","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1350,"y":580,"wires":[[]]},{"id":"0bb4d993bfea886c","type":"comment","z":"46661ff43d92a420","name":"Overloop sensor nacht","info":"","x":200,"y":460,"wires":[]},{"id":"16d858eb82b746f8","type":"time-range-switch","z":"46661ff43d92a420","name":"tussen 00:01 & Sunrise","lat":"52.12","lon":"4.65","startTime":"00:01","endTime":"sunrise","startOffset":0,"endOffset":0,"x":550,"y":520,"wires":[["3af38f8f016ff4b2"],[]]},{"id":"53fd166f21ac6a90","type":"api-call-service","z":"46661ff43d92a420","name":"Overloop lamp aan 40%","server":"9b8bc642.fed038","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.overloop_group","data":"{\"brightness_pct\":40,\"transition\":1}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1370,"y":520,"wires":[[]]},{"id":"3af38f8f016ff4b2","type":"api-current-state","z":"46661ff43d92a420","name":"is lux lager dan 80?","server":"9b8bc642.fed038","version":2,"outputs":2,"halt_if":"80","halt_if_type":"num","halt_if_compare":"lt","entity_id":"sensor.bewegingssensor_overloop_lux","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":790,"y":520,"wires":[["53fd166f21ac6a90","483a1cb4c6f750ab"],[]]},{"id":"9b8bc642.fed038","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"cacheJson":true}] |
/f/image/4NbR3Qv6wo4jEYBdlfDj5wC8.png?f=fotoalbum_large)
[ Voor 100% gewijzigd door Wachten... op 25-10-2021 12:41 ]
Als je dit kunt lezen, dan werkt mij Signature!
@Wachten... Daar is de function-node voor uitgevonden 
Willekeurig voorbeeld van 1 van mijn nodes
Willekeurig voorbeeld van 1 van mijn nodes
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| var date = new Date(); var hour = parseInt(date.getHours()); if ( msg.payload === 'on' ) { msg.payload = {"state":"OFF","transition":0}; return [ msg ]; } else { // Van 22:00 tot 5:00 if (hour >= 22 || hour >= 0 && hour < 5){ msg.payload = {"state":"ON","transition":0,"brightness":50}; } else { msg.payload = {"state":"ON","transition":0,"brightness":166}; } } node.status({text: msg.payload.state}); return [ msg ] |
[ Voor 3% gewijzigd door lolgast op 25-10-2021 13:36 ]
Het probleem is alleen dat ik helemaal niks weet van JavaScript e.d. dus is het voor mij lastig om hierin te werken en dingen te begrijpen. Dat is heel de reden dat ik de nodes zo fijn vind, want ik kan letterlijk per node zien wat er gebeurd. Ik snap dat function nodes enorm fijn kunnen zijn hoor, maar voor mij gaat dit (ook wegens tijdgebrek) niet lukken ben ik banglolgast schreef op maandag 25 oktober 2021 @ 13:36:
@Wachten... Daar is de function-node voor uitgevonden
Willekeurig voorbeeld van 1 van mijn nodes
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 var date = new Date(); var hour = parseInt(date.getHours()); if ( msg.payload === 'on' ) { msg.payload = {"state":"OFF","transition":0}; return [ msg ]; } else { // Van 22:00 tot 5:00 if (hour >= 22 || hour >= 0 && hour < 5){ msg.payload = {"state":"ON","transition":0,"brightness":50}; } else { msg.payload = {"state":"ON","transition":0,"brightness":166}; } } node.status({text: msg.payload.state}); return [ msg ]
Als je dit kunt lezen, dan werkt mij Signature!
@Wachten... lolgast in "Node-RED - grafisch 'programmeren' (bijv. voor domotica)"
Die gedachte had ik ook
Mijn tip, laat het los, leer JS (heb ik ook moeten doen)
Die gedachte had ik ook
Ieders flows zijn verschillend, maar wat je voor jezelf moet bepalen is welke delen je wilt hergebruiken, dan wel makkelijk op 1 plaats wilt kunnen instellen.Wachten... schreef op maandag 25 oktober 2021 @ 12:38:
@musicpixel @denuz
Ik ben een hele tijd bezig geweest om erachter te komen hoe ik het beste de config node, variable, of iets van een subflow moet toe passen in mijn situatie, maar ik kom er echt niet uit. Het wordt voor mij alleen maar onoverzichtelijker.
Ik heb even hier één situatie van bijvoorbeeld de overloop. Ik heb hiervoor 3 automations gemaakt voor overdag, s`avonds en in de nacht. Deze automations heb ik dus nu voor alles zo ingesteld. Het is wel overzichtelijk, maar als ik van alles lampen de helderheid en kelvin o.i.d. aan wil passen, dan moet ik dit voor alle automations doen. Daarnaast is het dus voor mij belangrijk dat ik in één node dingen aan kan passen zoals die config node o.i.d. Ik raak echter het overzicht kwijt en snap dus niet zo lekker hoe ik het dus niet toe moet passen in mijn situatie.
Hetzelfde wil ik dan voor de tijden. Ik heb nu iedere keer een node er tussen zitten met tijden wanneer een bepaalde automation iets moet doen. Als ik hierin dus dingen wil wijzigen, dan moet ik dat wederom voor alle automations doen.
Bijvoorbeeld:
- Gebruik je bij iedere lamp dezelfde Kelvin waarde of Transition? -> Config Node
- Test je in iedere flow dezelfde time ranges -> Subflow
Function nodes zijn in veel gevallen ook mogelijk, maar probeer ik alleen te gebruiken als het niet anders kan, aangezien het er voor kan zorgen dat de flow minder goed leesbaar wordt.
Even checken voor jouw situatie. Klopt het dat je:
- In veel flows steeds dezelfde check doet op ochtend/avond/nacht? Met steeds dezelfde tijden?
- De transition voor elke lamp hetzelfde is?
- De helderheid voor elke lamp in elke flow hetzelfde is voor dag/avond/nacht?
Met betrekking tot dat laatste punt: Bij mij in huis is de helderheid sterk afhankelijk van de gebruikte lamp en de lokatie van de lamp. De helderheid van de lamp boven de trap wijkt bij mij dus af van de helderheid op de overloop. Daarom heb ik de helderheid dus niet in een config node opgeslagen. Zodra ik een "scene" meer dan 1 keer wil gebruiken, dan plaats ik deze in een subflow.
Zal straks even wat proberen.
Feel free to Buy me a coffee
Alvast even wat geprobeerd met het samenvoegen van de dagdelen in een subflow.
Ik ben begonnen met de dagdelen eruit te lichten en even met een inject en debug node te testen.
:strip_exif()/f/image/Y0snEX2m1pGecscNu2n1mw8f.jpg?f=fotoalbum_large)
Zoals je ziet heb ik er een extra optie bijgemaakt (17-18) omdat ik wilde zien wat het effect was. Tussen 17 en 18 uur komen er nu twee debug nodes uit, namelijk "overdag" en "17-18". Ik neem aan dat je weet hoe je debug nodes gebruikt en hoe je de resultaten daarvan moet bekijken?
In het blauwe vierkant (zie flow hierboven) staat het gedeelte dat ik heb omgezet in een SubFlow genaamd "Dagdeel":
:strip_exif()/f/image/UAH06FINNAEPTWFxtMXiKSqX.jpg?f=fotoalbum_large)
(De code van de subflow zit al in de code onder het volgende plaatje)
Deze subflow heeft 1 input node en 4 output nodes, voor elk van de dagdelen eentje. De change nodes zetten de msg.payload op de betreffende waarden.
En dit is hoe je de subflow nu kunt gebruiken in een andere flow. De verschillende debug nodes kun je vervangen door het aanzetten van de lampen voor dag, avond, nacht etc. en de inject node kun je natuurlijk vervangen door je motion sensor activatie.
:strip_exif()/f/image/pEs5Gqpu26kiiPIspoeIxNms.jpg?f=fotoalbum_large)
Bovenstaande code bevat ook al de volledige subflow Dagdeel, dus dit is eigenlijk de enige die je hoeft te importeren!
Klikken op de inject node geeft het volgende resultaat in het debug scherm (het is nu 17:50):
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/mHIMEWrh924VBKNyE7hFDhYf.jpg?f=user_large)
Nu eerst even eten en dan kijk ik nog even naar de scenes en config nodes.
Ik ben begonnen met de dagdelen eruit te lichten en even met een inject en debug node te testen.
:strip_exif()/f/image/Y0snEX2m1pGecscNu2n1mw8f.jpg?f=fotoalbum_large)
code:
1
| [{"id":"fd7a8c62869dc0a0","type":"time-range-switch","z":"b0dfefa28b4a2f43","name":"tussen Sunrise & Sunset","lat":"52.12","lon":"4.65","startTime":"sunrise","endTime":"sunset","startOffset":0,"endOffset":0,"x":490,"y":140,"wires":[["9d830b0f2c454b7f"],[]]},{"id":"b6d846669f0d4429","type":"time-range-switch","z":"b0dfefa28b4a2f43","name":"tussen Sunset & 00:00","lat":"52.12","lon":"4.65","startTime":"sunset","endTime":"00:00","startOffset":0,"endOffset":0,"x":480,"y":200,"wires":[["5eec1bb6d025aad4"],[]]},{"id":"4073a3d0f7efc480","type":"time-range-switch","z":"b0dfefa28b4a2f43","name":"tussen 00:01 & Sunrise","lat":"52.12","lon":"4.65","startTime":"00:01","endTime":"sunrise","startOffset":0,"endOffset":0,"x":490,"y":260,"wires":[["1c4dd8bceb27a53d"],[]]},{"id":"9d830b0f2c454b7f","type":"change","z":"b0dfefa28b4a2f43","name":"overdag","rules":[{"t":"set","p":"payload","pt":"msg","to":"overdag","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":720,"y":140,"wires":[["17fbd3713caaf59f"]]},{"id":"5eec1bb6d025aad4","type":"change","z":"b0dfefa28b4a2f43","name":"avond","rules":[{"t":"set","p":"payload","pt":"msg","to":"avond","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":200,"wires":[["17fbd3713caaf59f"]]},{"id":"1c4dd8bceb27a53d","type":"change","z":"b0dfefa28b4a2f43","name":"nacht","rules":[{"t":"set","p":"payload","pt":"msg","to":"nacht","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":260,"wires":[["17fbd3713caaf59f"]]},{"id":"3826d04f563f9fcf","type":"inject","z":"b0dfefa28b4a2f43","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":230,"y":200,"wires":[["fd7a8c62869dc0a0","b6d846669f0d4429","4073a3d0f7efc480","1a10375ada259c3e"]]},{"id":"17fbd3713caaf59f","type":"debug","z":"b0dfefa28b4a2f43","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1000,"y":200,"wires":[]},{"id":"1a10375ada259c3e","type":"time-range-switch","z":"b0dfefa28b4a2f43","name":"17-18","lat":"52.12","lon":"4.65","startTime":"17:00","endTime":"18:00","startOffset":0,"endOffset":0,"x":430,"y":320,"wires":[["3db22c25f75e8515"],[]]},{"id":"3db22c25f75e8515","type":"change","z":"b0dfefa28b4a2f43","name":"17-18","rules":[{"t":"set","p":"payload","pt":"msg","to":"17-18","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":320,"wires":[["17fbd3713caaf59f"]]}] |
Zoals je ziet heb ik er een extra optie bijgemaakt (17-18) omdat ik wilde zien wat het effect was. Tussen 17 en 18 uur komen er nu twee debug nodes uit, namelijk "overdag" en "17-18". Ik neem aan dat je weet hoe je debug nodes gebruikt en hoe je de resultaten daarvan moet bekijken?
In het blauwe vierkant (zie flow hierboven) staat het gedeelte dat ik heb omgezet in een SubFlow genaamd "Dagdeel":
:strip_exif()/f/image/UAH06FINNAEPTWFxtMXiKSqX.jpg?f=fotoalbum_large)
(De code van de subflow zit al in de code onder het volgende plaatje)
Deze subflow heeft 1 input node en 4 output nodes, voor elk van de dagdelen eentje. De change nodes zetten de msg.payload op de betreffende waarden.
En dit is hoe je de subflow nu kunt gebruiken in een andere flow. De verschillende debug nodes kun je vervangen door het aanzetten van de lampen voor dag, avond, nacht etc. en de inject node kun je natuurlijk vervangen door je motion sensor activatie.
:strip_exif()/f/image/pEs5Gqpu26kiiPIspoeIxNms.jpg?f=fotoalbum_large)
code:
1
| [{"id":"1ff5c21a37af21de","type":"subflow","name":"Dagdeel","info":"","category":"","in":[{"x":120,"y":240,"wires":[{"id":"c2cdf0b836510b5f"},{"id":"83b0e66fa69672a3"},{"id":"ef9611a80b2fcaa3"},{"id":"0308cb508e72a625"}]}],"out":[{"x":740,"y":160,"wires":[{"id":"0efd1a920cd09b07","port":0}]},{"x":740,"y":220,"wires":[{"id":"49c593864fcca65a","port":0}]},{"x":740,"y":280,"wires":[{"id":"bcdd24d0ba9ed096","port":0}]},{"x":740,"y":340,"wires":[{"id":"72a2f3886de57ab4","port":0}]}],"env":[],"meta":{},"color":"#DDAA99"},{"id":"c2cdf0b836510b5f","type":"time-range-switch","z":"1ff5c21a37af21de","name":"tussen Sunrise & Sunset","lat":"52.12","lon":"4.65","startTime":"sunrise","endTime":"sunset","startOffset":0,"endOffset":0,"x":350,"y":160,"wires":[["0efd1a920cd09b07"],[]]},{"id":"83b0e66fa69672a3","type":"time-range-switch","z":"1ff5c21a37af21de","name":"tussen Sunset & 00:00","lat":"52.12","lon":"4.65","startTime":"sunset","endTime":"00:00","startOffset":0,"endOffset":0,"x":340,"y":220,"wires":[["49c593864fcca65a"],[]]},{"id":"ef9611a80b2fcaa3","type":"time-range-switch","z":"1ff5c21a37af21de","name":"tussen 00:01 & Sunrise","lat":"52.12","lon":"4.65","startTime":"00:01","endTime":"sunrise","startOffset":0,"endOffset":0,"x":350,"y":280,"wires":[["bcdd24d0ba9ed096"],[]]},{"id":"0efd1a920cd09b07","type":"change","z":"1ff5c21a37af21de","name":"overdag","rules":[{"t":"set","p":"payload","pt":"msg","to":"overdag","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":580,"y":160,"wires":[[]]},{"id":"49c593864fcca65a","type":"change","z":"1ff5c21a37af21de","name":"avond","rules":[{"t":"set","p":"payload","pt":"msg","to":"avond","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":570,"y":220,"wires":[[]]},{"id":"bcdd24d0ba9ed096","type":"change","z":"1ff5c21a37af21de","name":"nacht","rules":[{"t":"set","p":"payload","pt":"msg","to":"nacht","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":570,"y":280,"wires":[[]]},{"id":"0308cb508e72a625","type":"time-range-switch","z":"1ff5c21a37af21de","name":"17-18","lat":"52.12","lon":"4.65","startTime":"17:00","endTime":"18:00","startOffset":0,"endOffset":0,"x":290,"y":340,"wires":[["72a2f3886de57ab4"],[]]},{"id":"72a2f3886de57ab4","type":"change","z":"1ff5c21a37af21de","name":"17-18","rules":[{"t":"set","p":"payload","pt":"msg","to":"17-18","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":570,"y":340,"wires":[[]]},{"id":"f6cdd7d8cfa50cbf","type":"subflow:1ff5c21a37af21de","z":"b0dfefa28b4a2f43","name":"","x":440,"y":560,"wires":[["73b3d85ac515fdbf"],["8b3b0c16916d46cf"],["28d3316bac58e63c"],["28daedc0db88fa01"]]},{"id":"395ae5554ebbdb17","type":"inject","z":"b0dfefa28b4a2f43","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":220,"y":560,"wires":[["f6cdd7d8cfa50cbf"]]},{"id":"73b3d85ac515fdbf","type":"debug","z":"b0dfefa28b4a2f43","name":"Dag-routine","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":670,"y":500,"wires":[]},{"id":"8b3b0c16916d46cf","type":"debug","z":"b0dfefa28b4a2f43","name":"Avond-routine","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":680,"y":540,"wires":[]},{"id":"28d3316bac58e63c","type":"debug","z":"b0dfefa28b4a2f43","name":"Nacht-routine","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":680,"y":580,"wires":[]},{"id":"28daedc0db88fa01","type":"debug","z":"b0dfefa28b4a2f43","name":"Overige situaties","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":690,"y":620,"wires":[]}] |
Bovenstaande code bevat ook al de volledige subflow Dagdeel, dus dit is eigenlijk de enige die je hoeft te importeren!
Klikken op de inject node geeft het volgende resultaat in het debug scherm (het is nu 17:50):
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/mHIMEWrh924VBKNyE7hFDhYf.jpg?f=user_large)
Nu eerst even eten en dan kijk ik nog even naar de scenes en config nodes.
Feel free to Buy me a coffee
Zo je bent flink bezig geweest.musicpixel schreef op maandag 25 oktober 2021 @ 17:52:
Alvast even wat geprobeerd met het samenvoegen van de dagdelen in een subflow.
Ik ben begonnen met de dagdelen eruit te lichten en even met een inject en debug node te testen.
[Afbeelding]
code:
1 [{"id":"fd7a8c62869dc0a0","type":"time-range-switch","z":"b0dfefa28b4a2f43","name":"tussen Sunrise & Sunset","lat":"52.12","lon":"4.65","startTime":"sunrise","endTime":"sunset","startOffset":0,"endOffset":0,"x":490,"y":140,"wires":[["9d830b0f2c454b7f"],[]]},{"id":"b6d846669f0d4429","type":"time-range-switch","z":"b0dfefa28b4a2f43","name":"tussen Sunset & 00:00","lat":"52.12","lon":"4.65","startTime":"sunset","endTime":"00:00","startOffset":0,"endOffset":0,"x":480,"y":200,"wires":[["5eec1bb6d025aad4"],[]]},{"id":"4073a3d0f7efc480","type":"time-range-switch","z":"b0dfefa28b4a2f43","name":"tussen 00:01 & Sunrise","lat":"52.12","lon":"4.65","startTime":"00:01","endTime":"sunrise","startOffset":0,"endOffset":0,"x":490,"y":260,"wires":[["1c4dd8bceb27a53d"],[]]},{"id":"9d830b0f2c454b7f","type":"change","z":"b0dfefa28b4a2f43","name":"overdag","rules":[{"t":"set","p":"payload","pt":"msg","to":"overdag","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":720,"y":140,"wires":[["17fbd3713caaf59f"]]},{"id":"5eec1bb6d025aad4","type":"change","z":"b0dfefa28b4a2f43","name":"avond","rules":[{"t":"set","p":"payload","pt":"msg","to":"avond","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":200,"wires":[["17fbd3713caaf59f"]]},{"id":"1c4dd8bceb27a53d","type":"change","z":"b0dfefa28b4a2f43","name":"nacht","rules":[{"t":"set","p":"payload","pt":"msg","to":"nacht","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":260,"wires":[["17fbd3713caaf59f"]]},{"id":"3826d04f563f9fcf","type":"inject","z":"b0dfefa28b4a2f43","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":230,"y":200,"wires":[["fd7a8c62869dc0a0","b6d846669f0d4429","4073a3d0f7efc480","1a10375ada259c3e"]]},{"id":"17fbd3713caaf59f","type":"debug","z":"b0dfefa28b4a2f43","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1000,"y":200,"wires":[]},{"id":"1a10375ada259c3e","type":"time-range-switch","z":"b0dfefa28b4a2f43","name":"17-18","lat":"52.12","lon":"4.65","startTime":"17:00","endTime":"18:00","startOffset":0,"endOffset":0,"x":430,"y":320,"wires":[["3db22c25f75e8515"],[]]},{"id":"3db22c25f75e8515","type":"change","z":"b0dfefa28b4a2f43","name":"17-18","rules":[{"t":"set","p":"payload","pt":"msg","to":"17-18","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":320,"wires":[["17fbd3713caaf59f"]]}]
Zoals je ziet heb ik er een extra optie bijgemaakt (17-18) omdat ik wilde zien wat het effect was. Tussen 17 en 18 uur komen er nu twee debug nodes uit, namelijk "overdag" en "17-18". Ik neem aan dat je weet hoe je debug nodes gebruikt en hoe je de resultaten daarvan moet bekijken?
In het blauwe vierkant (zie flow hierboven) staat het gedeelte dat ik heb omgezet in een SubFlow genaamd "Dagdeel":
[Afbeelding]
(De code van de subflow zit al in de code onder het volgende plaatje)
Deze subflow heeft 1 input node en 4 output nodes, voor elk van de dagdelen eentje. De change nodes zetten de msg.payload op de betreffende waarden.
En dit is hoe je de subflow nu kunt gebruiken in een andere flow. De verschillende debug nodes kun je vervangen door het aanzetten van de lampen voor dag, avond, nacht etc. en de inject node kun je natuurlijk vervangen door je motion sensor activatie.
[Afbeelding]
code:
1 [{"id":"1ff5c21a37af21de","type":"subflow","name":"Dagdeel","info":"","category":"","in":[{"x":120,"y":240,"wires":[{"id":"c2cdf0b836510b5f"},{"id":"83b0e66fa69672a3"},{"id":"ef9611a80b2fcaa3"},{"id":"0308cb508e72a625"}]}],"out":[{"x":740,"y":160,"wires":[{"id":"0efd1a920cd09b07","port":0}]},{"x":740,"y":220,"wires":[{"id":"49c593864fcca65a","port":0}]},{"x":740,"y":280,"wires":[{"id":"bcdd24d0ba9ed096","port":0}]},{"x":740,"y":340,"wires":[{"id":"72a2f3886de57ab4","port":0}]}],"env":[],"meta":{},"color":"#DDAA99"},{"id":"c2cdf0b836510b5f","type":"time-range-switch","z":"1ff5c21a37af21de","name":"tussen Sunrise & Sunset","lat":"52.12","lon":"4.65","startTime":"sunrise","endTime":"sunset","startOffset":0,"endOffset":0,"x":350,"y":160,"wires":[["0efd1a920cd09b07"],[]]},{"id":"83b0e66fa69672a3","type":"time-range-switch","z":"1ff5c21a37af21de","name":"tussen Sunset & 00:00","lat":"52.12","lon":"4.65","startTime":"sunset","endTime":"00:00","startOffset":0,"endOffset":0,"x":340,"y":220,"wires":[["49c593864fcca65a"],[]]},{"id":"ef9611a80b2fcaa3","type":"time-range-switch","z":"1ff5c21a37af21de","name":"tussen 00:01 & Sunrise","lat":"52.12","lon":"4.65","startTime":"00:01","endTime":"sunrise","startOffset":0,"endOffset":0,"x":350,"y":280,"wires":[["bcdd24d0ba9ed096"],[]]},{"id":"0efd1a920cd09b07","type":"change","z":"1ff5c21a37af21de","name":"overdag","rules":[{"t":"set","p":"payload","pt":"msg","to":"overdag","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":580,"y":160,"wires":[[]]},{"id":"49c593864fcca65a","type":"change","z":"1ff5c21a37af21de","name":"avond","rules":[{"t":"set","p":"payload","pt":"msg","to":"avond","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":570,"y":220,"wires":[[]]},{"id":"bcdd24d0ba9ed096","type":"change","z":"1ff5c21a37af21de","name":"nacht","rules":[{"t":"set","p":"payload","pt":"msg","to":"nacht","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":570,"y":280,"wires":[[]]},{"id":"0308cb508e72a625","type":"time-range-switch","z":"1ff5c21a37af21de","name":"17-18","lat":"52.12","lon":"4.65","startTime":"17:00","endTime":"18:00","startOffset":0,"endOffset":0,"x":290,"y":340,"wires":[["72a2f3886de57ab4"],[]]},{"id":"72a2f3886de57ab4","type":"change","z":"1ff5c21a37af21de","name":"17-18","rules":[{"t":"set","p":"payload","pt":"msg","to":"17-18","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":570,"y":340,"wires":[[]]},{"id":"f6cdd7d8cfa50cbf","type":"subflow:1ff5c21a37af21de","z":"b0dfefa28b4a2f43","name":"","x":440,"y":560,"wires":[["73b3d85ac515fdbf"],["8b3b0c16916d46cf"],["28d3316bac58e63c"],["28daedc0db88fa01"]]},{"id":"395ae5554ebbdb17","type":"inject","z":"b0dfefa28b4a2f43","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":220,"y":560,"wires":[["f6cdd7d8cfa50cbf"]]},{"id":"73b3d85ac515fdbf","type":"debug","z":"b0dfefa28b4a2f43","name":"Dag-routine","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":670,"y":500,"wires":[]},{"id":"8b3b0c16916d46cf","type":"debug","z":"b0dfefa28b4a2f43","name":"Avond-routine","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":680,"y":540,"wires":[]},{"id":"28d3316bac58e63c","type":"debug","z":"b0dfefa28b4a2f43","name":"Nacht-routine","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":680,"y":580,"wires":[]},{"id":"28daedc0db88fa01","type":"debug","z":"b0dfefa28b4a2f43","name":"Overige situaties","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":690,"y":620,"wires":[]}]
Bovenstaande code bevat ook al de volledige subflow Dagdeel, dus dit is eigenlijk de enige die je hoeft te importeren!
Klikken op de inject node geeft het volgende resultaat in het debug scherm (het is nu 17:50):
[Afbeelding]
Nu eerst even eten en dan kijk ik nog even naar de scenes en config nodes.
Ik ga ze eens even importeren en kijken of ik hierdoor wat beter snap wat alles doet.
Ik houd je zo even op de hoogte, maar bedankt voor de tijd en moeite die je erin steekt!
Oke ik heb inmiddels de dagdelen erin staan, daarvan snap ik nu volgens mij een beetje hoe je het bedoelt.
Maar als ik het goed begrijp, dan is de "change node" puur een node om een logische naam ergens aan te geven? Verder doet hij niks bijzonders toch? Het is enkel dat je nu in de debug kan zien dat ze de payload dag, avond en nacht krijgen?
Als je dit kunt lezen, dan werkt mij Signature!
Je hebt gelijk. Die change nodes zouden zelfs helemaal weg kunnen. Ik had in een eerdere versie namelijk de 4 change nodes uit laten komen in 1 output met dan in de aanroepende flow een switch node. En toen bedacht ik me dat die switch node er ook wel uit kon en ik gewoon 4 outputs kon maken in de subflow.Wachten... schreef op maandag 25 oktober 2021 @ 19:41:
[...]
Maar als ik het goed begrijp, dan is de "change node" puur een node om een logische naam ergens aan te geven? Verder doet hij niks bijzonders toch? Het is enkel dat je nu in de debug kan zien dat ze de payload dag, avond en nacht krijgen?
Voordeel dus van die subflow is dat je deze kunt opnemen in allerlei andere flows, en als je dan op een later moment toch de nacht wilt laten ingaan om 23:30 ipv middernacht, dan hoef je alleen de subflow aan te passen.
Feel free to Buy me a coffee
Oke duidelijk verhaal. Ik laat ze voor nu dan wel staan, want het is soms wel handig om gewoon logische benamingen te hebben. Dan weet ik ook direct een klein beetje wat je ermee kunt doen. Al voelt de change node nog steeds als een overbodige node voor mij. Wellicht dat ik er later anders over denk doordat ik er wat meer mee ga doen.musicpixel schreef op maandag 25 oktober 2021 @ 20:59:
[...]
Je hebt gelijk. Die change nodes zouden zelfs helemaal weg kunnen. Ik had in een eerdere versie namelijk de 4 change nodes uit laten komen in 1 output met dan in de aanroepende flow een switch node. En toen bedacht ik me dat die switch node er ook wel uit kon en ik gewoon 4 outputs kon maken in de subflow.
Voordeel dus van die subflow is dat je deze kunt opnemen in allerlei andere flows, en als je dan op een later moment toch de nacht wilt laten ingaan om 23:30 ipv middernacht, dan hoef je alleen de subflow aan te passen.
Als je dit kunt lezen, dan werkt mij Signature!
Okee... config nodes en scenes in subflows.
Ik ben begonnen met het definieren van een aantal config nodes. Dingen die globaal gelden voor ELKE flow krijgen een global.<naam> config variabele/node. (Als het alleen is voor de huidige flow kun je een flow.<naam> config variabele maken, maar dat heb ik hieronder nog niet gedaan. Misschien dat in jouw geval de lux waarde waar je op test afhankelijk is van de kamer en dan kun je hier een "flow" config node for gebruiken.
Zie https://nodered.org/docs/user-guide/context
De config nodes:
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/kSSNitiVIoFzFdSJkOTHFW2L.jpg?f=user_large)
Omdat ik de lampen sneller wil aan zetten dan uit, heb ik twee verschillende transitions: voor aan en voor uit.
Daarnaast leek het me wel leuk om overdag koeler licht te gebruiken dan in de avond. En 's nachts wilde ik rood licht zodat je niet meteen wakker bent.
Vervolgens even tijdelijk een rijtje gemaakt van de verschillende Lamp instellingen (scenes), welke ik later zal kopieren in de subflows for elke scene. In mijn geval heb ik 1 lamp per scene, maar dat kunnen er natuurlijk meer zijn.
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/Okh4LAdaAPesNXPrmv7A2GH8.jpg?f=user_large)
Vervolgens de 4 scenes gemaakt, met de gekopieerde nodes uit het test-lijstje hierboven (uitermate simpel met maar 1 lamp):
sc Kantoor Dag
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/l2hHC4w2pDAXKGSZTDEkFmB8.jpg?f=user_large)
{"brightness_pct":"100", "transition":{{global.light_transition_on}},"kelvin":{{global.kelvin_cold}}}
sc Kantoor Avond
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/Wleg3dw79pdmcBPTxJqhtzCT.jpg?f=user_large)
{"brightness_pct":"50","transition":{{global.light_transition_on}},"kelvin":{{global.kelvin_warm}}}
sc Kantoor Nacht
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/jdevpthqD0y1XajUL3ftaN85.jpg?f=user_large)
{"brightness_pct":"10", "transition":{{global.light_transition_on}},"rgb_color":{{global.color_night}}}
sc Kantoor Uit
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/bt9FyNi8lBsQTkACbJMGRtS6.jpg?f=user_large)
{"transition":{{global.light_transition_off}}}
Tussen de dubbele accolades {{ en }} is dus de verwijzing opgenomen naar de verschillende config nodes. Als ik nu bijvoorbeeld wil dat alle lichten in huis langzamer aan gaan, dan verhoog ik de waarde in de config node global.light_transition_on.
Hieronder alles samengevoegd met de Dagdeel subflow:
:strip_exif()/f/image/9f541WkM8dxBXWCl1YGokJ1M.jpg?f=fotoalbum_large)
(Dit zou incl de sublows moeten zijn)
Zoals je ziet heb ik ook een "Uit" scene gemaakt. Mocht je besluiten om 's nachts alle lampen in huis uit te doen met 1 knop, dan kun je een nieuwe subflow maken bijv "sc Huis Uit" welke alle andere "uit" subflows weer combineert en deze aanroepen bij een druk op de knop.
Ik ben begonnen met het definieren van een aantal config nodes. Dingen die globaal gelden voor ELKE flow krijgen een global.<naam> config variabele/node. (Als het alleen is voor de huidige flow kun je een flow.<naam> config variabele maken, maar dat heb ik hieronder nog niet gedaan. Misschien dat in jouw geval de lux waarde waar je op test afhankelijk is van de kamer en dan kun je hier een "flow" config node for gebruiken.
Zie https://nodered.org/docs/user-guide/context
De config nodes:
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/kSSNitiVIoFzFdSJkOTHFW2L.jpg?f=user_large)
code:
1
| [{"id":"e58577188589b295","type":"config","z":"47c0408c7bc56509","name":"Lights Off Transition Time","properties":[{"p":"light_transition_off","pt":"global","to":"0.3","tot":"num"}],"active":true,"x":210,"y":120,"wires":[]},{"id":"dcfe8391d332c1ba","type":"config","z":"47c0408c7bc56509","name":"Lights On Transition Time","properties":[{"p":"light_transition_on","pt":"global","to":"0.1","tot":"num"}],"active":true,"x":210,"y":80,"wires":[]},{"id":"e3312dc2c5de5b72","type":"config","z":"47c0408c7bc56509","name":"Kelvin Koud","properties":[{"p":"kelvin_cold","pt":"global","to":"4000","tot":"num"}],"active":true,"x":170,"y":160,"wires":[]},{"id":"92c6c62f742af2f0","type":"config","z":"47c0408c7bc56509","name":"Kelvin Warm","properties":[{"p":"kelvin_warm","pt":"global","to":"2700","tot":"num"}],"active":true,"x":170,"y":200,"wires":[]},{"id":"7a0b7861fc667208","type":"config","z":"47c0408c7bc56509","name":"Color Night","properties":[{"p":"color_night","pt":"global","to":"[255,0,0]","tot":"str"}],"active":true,"x":170,"y":240,"wires":[]},{"id":"ef18d2ed19271186","type":"comment","z":"47c0408c7bc56509","name":"0.1s","info":"","x":390,"y":80,"wires":[]},{"id":"d5f06a0df75bb04e","type":"comment","z":"47c0408c7bc56509","name":"0.3s","info":"","x":390,"y":120,"wires":[]},{"id":"28881153553e6e80","type":"comment","z":"47c0408c7bc56509","name":"4000K","info":"","x":310,"y":160,"wires":[]},{"id":"6fc9c9f3731e02fa","type":"comment","z":"47c0408c7bc56509","name":"2700K","info":"","x":310,"y":200,"wires":[]},{"id":"c03aec00e6f49102","type":"comment","z":"47c0408c7bc56509","name":"Red","info":"","x":310,"y":240,"wires":[]}] |
Omdat ik de lampen sneller wil aan zetten dan uit, heb ik twee verschillende transitions: voor aan en voor uit.
Daarnaast leek het me wel leuk om overdag koeler licht te gebruiken dan in de avond. En 's nachts wilde ik rood licht zodat je niet meteen wakker bent.
Vervolgens even tijdelijk een rijtje gemaakt van de verschillende Lamp instellingen (scenes), welke ik later zal kopieren in de subflows for elke scene. In mijn geval heb ik 1 lamp per scene, maar dat kunnen er natuurlijk meer zijn.
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/Okh4LAdaAPesNXPrmv7A2GH8.jpg?f=user_large)
code:
1
| [{"id":"6698762797312214","type":"inject","z":"47c0408c7bc56509","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":660,"y":80,"wires":[["703b618baa3e8e2f"]]},{"id":"703b618baa3e8e2f","type":"api-call-service","z":"47c0408c7bc56509","name":"Kantoorlamp ON Dag","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.test_light_ikea_color","data":"{\"brightness_pct\":\"100\", \"transition\":{{global.light_transition_on}},\"kelvin\":{{global.kelvin_cold}}}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":900,"y":80,"wires":[[]]},{"id":"906950efcccdef60","type":"inject","z":"47c0408c7bc56509","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":660,"y":200,"wires":[["30a5418626844819"]]},{"id":"5717140fa59cdeac","type":"inject","z":"47c0408c7bc56509","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":660,"y":320,"wires":[["db31c82d6e092267"]]},{"id":"db31c82d6e092267","type":"api-call-service","z":"47c0408c7bc56509","name":"Kantoorlamp ON Nacht","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.test_light_ikea_color","data":"{\"brightness_pct\":\"10\", \"transition\":{{global.light_transition_on}},\"rgb_color\":{{global.color_night}}}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":910,"y":320,"wires":[[]]},{"id":"85274a6feb3b4d9e","type":"inject","z":"47c0408c7bc56509","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":660,"y":440,"wires":[["55152c9aa43a7990"]]},{"id":"d8cde1dd0826b049","type":"comment","z":"47c0408c7bc56509","name":"100%, 4000K, 0.1s transition","info":"","x":920,"y":40,"wires":[]},{"id":"df84e731ae948557","type":"comment","z":"47c0408c7bc56509","name":"50%, 2700K, 0.1s transition","info":"","x":920,"y":160,"wires":[]},{"id":"5404ca13703fecc7","type":"comment","z":"47c0408c7bc56509","name":"10%, Red, 0.1s transition","info":"","x":910,"y":280,"wires":[]},{"id":"052552cd76790ecd","type":"comment","z":"47c0408c7bc56509","name":"Uit, 0.3s transition","info":"","x":890,"y":400,"wires":[]},{"id":"30a5418626844819","type":"api-call-service","z":"47c0408c7bc56509","name":"Kantoorlamp ON Avond","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.test_light_ikea_color","data":"{\"brightness_pct\":\"50\",\"transition\":{{global.light_transition_on}},\"kelvin\":{{global.kelvin_warm}}}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":910,"y":200,"wires":[[]]},{"id":"55152c9aa43a7990","type":"api-call-service","z":"47c0408c7bc56509","name":"Kantoorlamp OFF","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.test_light_ikea_color","data":"{\"transition\":{{global.light_transition_off}}}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":890,"y":440,"wires":[[]]},{"id":"2065350e.86a40a","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}] |
Vervolgens de 4 scenes gemaakt, met de gekopieerde nodes uit het test-lijstje hierboven (uitermate simpel met maar 1 lamp):
sc Kantoor Dag
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/l2hHC4w2pDAXKGSZTDEkFmB8.jpg?f=user_large)
{"brightness_pct":"100", "transition":{{global.light_transition_on}},"kelvin":{{global.kelvin_cold}}}
sc Kantoor Avond
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/Wleg3dw79pdmcBPTxJqhtzCT.jpg?f=user_large)
{"brightness_pct":"50","transition":{{global.light_transition_on}},"kelvin":{{global.kelvin_warm}}}
sc Kantoor Nacht
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/jdevpthqD0y1XajUL3ftaN85.jpg?f=user_large)
{"brightness_pct":"10", "transition":{{global.light_transition_on}},"rgb_color":{{global.color_night}}}
sc Kantoor Uit
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/bt9FyNi8lBsQTkACbJMGRtS6.jpg?f=user_large)
{"transition":{{global.light_transition_off}}}
Tussen de dubbele accolades {{ en }} is dus de verwijzing opgenomen naar de verschillende config nodes. Als ik nu bijvoorbeeld wil dat alle lichten in huis langzamer aan gaan, dan verhoog ik de waarde in de config node global.light_transition_on.
Hieronder alles samengevoegd met de Dagdeel subflow:
:strip_exif()/f/image/9f541WkM8dxBXWCl1YGokJ1M.jpg?f=fotoalbum_large)
code:
1
| [{"id":"bca342ae902ee0fc","type":"subflow","name":"sc Kantoor Uit","info":"","category":"","in":[{"x":120,"y":100,"wires":[{"id":"4990d9e059a30503"}]}],"out":[{"x":500,"y":100,"wires":[{"id":"4990d9e059a30503","port":0}]}],"env":[],"meta":{},"color":"#DDAA99"},{"id":"4990d9e059a30503","type":"api-call-service","z":"bca342ae902ee0fc","name":"Kantoorlamp OFF","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.test_light_ikea_color","data":"{\"transition\":{{global.light_transition_off}}}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":310,"y":100,"wires":[[]]},{"id":"ca70a78b29cb0d06","type":"subflow","name":"sc Kantoor Nacht","info":"","category":"","in":[{"x":160,"y":100,"wires":[{"id":"14784d05d87573a3"}]}],"out":[{"x":620,"y":100,"wires":[{"id":"14784d05d87573a3","port":0}]}],"env":[],"meta":{},"color":"#DDAA99"},{"id":"14784d05d87573a3","type":"api-call-service","z":"ca70a78b29cb0d06","name":"Kantoorlamp ON Nacht","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.test_light_ikea_color","data":"{\"brightness_pct\":\"10\", \"transition\":{{global.light_transition_on}},\"rgb_color\":{{global.color_night}}}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":390,"y":100,"wires":[[]]},{"id":"9d13daf8c7e0c5fe","type":"subflow","name":"sc Kantoor Avond","info":"","category":"","in":[{"x":120,"y":200,"wires":[{"id":"ed694baa23f992ff"}]}],"out":[{"x":560,"y":200,"wires":[{"id":"ed694baa23f992ff","port":0}]}],"env":[],"meta":{},"color":"#DDAA99"},{"id":"ed694baa23f992ff","type":"api-call-service","z":"9d13daf8c7e0c5fe","name":"Kantoorlamp ON Avond","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.test_light_ikea_color","data":"{\"brightness_pct\":\"50\",\"transition\":{{global.light_transition_on}},\"kelvin\":{{global.kelvin_warm}}}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":350,"y":200,"wires":[[]]},{"id":"793c47f707d56672","type":"subflow","name":"sc Kantoor Dag","info":"","category":"","in":[{"x":180,"y":120,"wires":[{"id":"c7a9f35a98b9428b"}]}],"out":[{"x":560,"y":120,"wires":[{"id":"c7a9f35a98b9428b","port":0}]}],"env":[],"meta":{},"color":"#DDAA99"},{"id":"c7a9f35a98b9428b","type":"api-call-service","z":"793c47f707d56672","name":"Kantoorlamp ON Dag","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.test_light_ikea_color","data":"{\"brightness_pct\":\"100\", \"transition\":{{global.light_transition_on}},\"kelvin\":{{global.kelvin_cold}}}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":360,"y":120,"wires":[[]]},{"id":"2065350e.86a40a","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true},{"id":"1ff5c21a37af21de","type":"subflow","name":"Dagdeel","info":"","category":"","in":[{"x":120,"y":240,"wires":[{"id":"c2cdf0b836510b5f"},{"id":"83b0e66fa69672a3"},{"id":"ef9611a80b2fcaa3"},{"id":"0308cb508e72a625"}]}],"out":[{"x":740,"y":160,"wires":[{"id":"0efd1a920cd09b07","port":0}]},{"x":740,"y":220,"wires":[{"id":"49c593864fcca65a","port":0}]},{"x":740,"y":280,"wires":[{"id":"bcdd24d0ba9ed096","port":0}]},{"x":740,"y":340,"wires":[{"id":"72a2f3886de57ab4","port":0}]}],"env":[],"meta":{},"color":"#DDAA99"},{"id":"c2cdf0b836510b5f","type":"time-range-switch","z":"1ff5c21a37af21de","name":"tussen Sunrise & Sunset","lat":"52.12","lon":"4.65","startTime":"sunrise","endTime":"sunset","startOffset":0,"endOffset":0,"x":350,"y":160,"wires":[["0efd1a920cd09b07"],[]]},{"id":"83b0e66fa69672a3","type":"time-range-switch","z":"1ff5c21a37af21de","name":"tussen Sunset & 00:00","lat":"52.12","lon":"4.65","startTime":"sunset","endTime":"00:00","startOffset":0,"endOffset":0,"x":340,"y":220,"wires":[["49c593864fcca65a"],[]]},{"id":"ef9611a80b2fcaa3","type":"time-range-switch","z":"1ff5c21a37af21de","name":"tussen 00:01 & Sunrise","lat":"52.12","lon":"4.65","startTime":"00:01","endTime":"sunrise","startOffset":0,"endOffset":0,"x":350,"y":280,"wires":[["bcdd24d0ba9ed096"],[]]},{"id":"0efd1a920cd09b07","type":"change","z":"1ff5c21a37af21de","name":"overdag","rules":[{"t":"set","p":"payload","pt":"msg","to":"overdag","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":580,"y":160,"wires":[[]]},{"id":"49c593864fcca65a","type":"change","z":"1ff5c21a37af21de","name":"avond","rules":[{"t":"set","p":"payload","pt":"msg","to":"avond","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":570,"y":220,"wires":[[]]},{"id":"bcdd24d0ba9ed096","type":"change","z":"1ff5c21a37af21de","name":"nacht","rules":[{"t":"set","p":"payload","pt":"msg","to":"nacht","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":570,"y":280,"wires":[[]]},{"id":"0308cb508e72a625","type":"time-range-switch","z":"1ff5c21a37af21de","name":"17-18","lat":"52.12","lon":"4.65","startTime":"17:00","endTime":"18:00","startOffset":0,"endOffset":0,"x":290,"y":340,"wires":[["72a2f3886de57ab4"],[]]},{"id":"72a2f3886de57ab4","type":"change","z":"1ff5c21a37af21de","name":"17-18","rules":[{"t":"set","p":"payload","pt":"msg","to":"17-18","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":570,"y":340,"wires":[[]]},{"id":"c52808d7b953fcf1","type":"subflow:1ff5c21a37af21de","z":"b0dfefa28b4a2f43","name":"","x":440,"y":780,"wires":[["f389b39e72817266"],["b468903be4eae598"],["9c549f1182b705ef"],[]]},{"id":"690f91727c94d2f8","type":"inject","z":"b0dfefa28b4a2f43","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":220,"y":780,"wires":[["c52808d7b953fcf1"]]},{"id":"f389b39e72817266","type":"subflow:793c47f707d56672","z":"b0dfefa28b4a2f43","name":"","x":700,"y":720,"wires":[[]]},{"id":"b468903be4eae598","type":"subflow:9d13daf8c7e0c5fe","z":"b0dfefa28b4a2f43","name":"","x":710,"y":760,"wires":[[]]},{"id":"9c549f1182b705ef","type":"subflow:ca70a78b29cb0d06","z":"b0dfefa28b4a2f43","name":"","x":700,"y":800,"wires":[[]]},{"id":"07d8a2fcb48cae8f","type":"inject","z":"b0dfefa28b4a2f43","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":220,"y":920,"wires":[["f7d611aec3f60b81"]]},{"id":"f7d611aec3f60b81","type":"subflow:bca342ae902ee0fc","z":"b0dfefa28b4a2f43","name":"","x":690,"y":920,"wires":[[]]}] |
(Dit zou incl de sublows moeten zijn)
Zoals je ziet heb ik ook een "Uit" scene gemaakt. Mocht je besluiten om 's nachts alle lampen in huis uit te doen met 1 knop, dan kun je een nieuwe subflow maken bijv "sc Huis Uit" welke alle andere "uit" subflows weer combineert en deze aanroepen bij een druk op de knop.
Feel free to Buy me a coffee
Dank voor je enorm uitgebreide reactie.musicpixel schreef op maandag 25 oktober 2021 @ 21:29:
Okee... config nodes en scenes in subflows.
Ik ben begonnen met het definieren van een aantal config nodes. Dingen die globaal gelden voor ELKE flow krijgen een global.<naam> config variabele/node. (Als het alleen is voor de huidige flow kun je een flow.<naam> config variabele maken, maar dat heb ik hieronder nog niet gedaan. Misschien dat in jouw geval de lux waarde waar je op test afhankelijk is van de kamer en dan kun je hier een "flow" config node for gebruiken.
Zie https://nodered.org/docs/user-guide/context
De config nodes:
[Afbeelding]
code:
1 [{"id":"e58577188589b295","type":"config","z":"47c0408c7bc56509","name":"Lights Off Transition Time","properties":[{"p":"light_transition_off","pt":"global","to":"0.3","tot":"num"}],"active":true,"x":210,"y":120,"wires":[]},{"id":"dcfe8391d332c1ba","type":"config","z":"47c0408c7bc56509","name":"Lights On Transition Time","properties":[{"p":"light_transition_on","pt":"global","to":"0.1","tot":"num"}],"active":true,"x":210,"y":80,"wires":[]},{"id":"e3312dc2c5de5b72","type":"config","z":"47c0408c7bc56509","name":"Kelvin Koud","properties":[{"p":"kelvin_cold","pt":"global","to":"4000","tot":"num"}],"active":true,"x":170,"y":160,"wires":[]},{"id":"92c6c62f742af2f0","type":"config","z":"47c0408c7bc56509","name":"Kelvin Warm","properties":[{"p":"kelvin_warm","pt":"global","to":"2700","tot":"num"}],"active":true,"x":170,"y":200,"wires":[]},{"id":"7a0b7861fc667208","type":"config","z":"47c0408c7bc56509","name":"Color Night","properties":[{"p":"color_night","pt":"global","to":"[255,0,0]","tot":"str"}],"active":true,"x":170,"y":240,"wires":[]},{"id":"ef18d2ed19271186","type":"comment","z":"47c0408c7bc56509","name":"0.1s","info":"","x":390,"y":80,"wires":[]},{"id":"d5f06a0df75bb04e","type":"comment","z":"47c0408c7bc56509","name":"0.3s","info":"","x":390,"y":120,"wires":[]},{"id":"28881153553e6e80","type":"comment","z":"47c0408c7bc56509","name":"4000K","info":"","x":310,"y":160,"wires":[]},{"id":"6fc9c9f3731e02fa","type":"comment","z":"47c0408c7bc56509","name":"2700K","info":"","x":310,"y":200,"wires":[]},{"id":"c03aec00e6f49102","type":"comment","z":"47c0408c7bc56509","name":"Red","info":"","x":310,"y":240,"wires":[]}]
Omdat ik de lampen sneller wil aan zetten dan uit, heb ik twee verschillende transitions: voor aan en voor uit.
Daarnaast leek het me wel leuk om overdag koeler licht te gebruiken dan in de avond. En 's nachts wilde ik rood licht zodat je niet meteen wakker bent.
Vervolgens even tijdelijk een rijtje gemaakt van de verschillende Lamp instellingen (scenes), welke ik later zal kopieren in de subflows for elke scene. In mijn geval heb ik 1 lamp per scene, maar dat kunnen er natuurlijk meer zijn.
[Afbeelding]
code:
1 [{"id":"6698762797312214","type":"inject","z":"47c0408c7bc56509","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":660,"y":80,"wires":[["703b618baa3e8e2f"]]},{"id":"703b618baa3e8e2f","type":"api-call-service","z":"47c0408c7bc56509","name":"Kantoorlamp ON Dag","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.test_light_ikea_color","data":"{\"brightness_pct\":\"100\", \"transition\":{{global.light_transition_on}},\"kelvin\":{{global.kelvin_cold}}}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":900,"y":80,"wires":[[]]},{"id":"906950efcccdef60","type":"inject","z":"47c0408c7bc56509","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":660,"y":200,"wires":[["30a5418626844819"]]},{"id":"5717140fa59cdeac","type":"inject","z":"47c0408c7bc56509","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":660,"y":320,"wires":[["db31c82d6e092267"]]},{"id":"db31c82d6e092267","type":"api-call-service","z":"47c0408c7bc56509","name":"Kantoorlamp ON Nacht","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.test_light_ikea_color","data":"{\"brightness_pct\":\"10\", \"transition\":{{global.light_transition_on}},\"rgb_color\":{{global.color_night}}}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":910,"y":320,"wires":[[]]},{"id":"85274a6feb3b4d9e","type":"inject","z":"47c0408c7bc56509","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":660,"y":440,"wires":[["55152c9aa43a7990"]]},{"id":"d8cde1dd0826b049","type":"comment","z":"47c0408c7bc56509","name":"100%, 4000K, 0.1s transition","info":"","x":920,"y":40,"wires":[]},{"id":"df84e731ae948557","type":"comment","z":"47c0408c7bc56509","name":"50%, 2700K, 0.1s transition","info":"","x":920,"y":160,"wires":[]},{"id":"5404ca13703fecc7","type":"comment","z":"47c0408c7bc56509","name":"10%, Red, 0.1s transition","info":"","x":910,"y":280,"wires":[]},{"id":"052552cd76790ecd","type":"comment","z":"47c0408c7bc56509","name":"Uit, 0.3s transition","info":"","x":890,"y":400,"wires":[]},{"id":"30a5418626844819","type":"api-call-service","z":"47c0408c7bc56509","name":"Kantoorlamp ON Avond","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.test_light_ikea_color","data":"{\"brightness_pct\":\"50\",\"transition\":{{global.light_transition_on}},\"kelvin\":{{global.kelvin_warm}}}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":910,"y":200,"wires":[[]]},{"id":"55152c9aa43a7990","type":"api-call-service","z":"47c0408c7bc56509","name":"Kantoorlamp OFF","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.test_light_ikea_color","data":"{\"transition\":{{global.light_transition_off}}}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":890,"y":440,"wires":[[]]},{"id":"2065350e.86a40a","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]
Vervolgens de 4 scenes gemaakt, met de gekopieerde nodes uit het test-lijstje hierboven (uitermate simpel met maar 1 lamp):
sc Kantoor Dag
[Afbeelding]
{"brightness_pct":"100", "transition":{{global.light_transition_on}},"kelvin":{{global.kelvin_cold}}}
sc Kantoor Avond
[Afbeelding]
{"brightness_pct":"50","transition":{{global.light_transition_on}},"kelvin":{{global.kelvin_warm}}}
sc Kantoor Nacht
[Afbeelding]
{"brightness_pct":"10", "transition":{{global.light_transition_on}},"rgb_color":{{global.color_night}}}
sc Kantoor Uit
[Afbeelding]
{"transition":{{global.light_transition_off}}}
Tussen de dubbele accolades {{ en }} is dus de verwijzing opgenomen naar de verschillende config nodes. Als ik nu bijvoorbeeld wil dat alle lichten in huis langzamer aan gaan, dan verhoog ik de waarde in de config node global.light_transition_on.
Hieronder alles samengevoegd met de Dagdeel subflow:
[Afbeelding]
code:
1 [{"id":"bca342ae902ee0fc","type":"subflow","name":"sc Kantoor Uit","info":"","category":"","in":[{"x":120,"y":100,"wires":[{"id":"4990d9e059a30503"}]}],"out":[{"x":500,"y":100,"wires":[{"id":"4990d9e059a30503","port":0}]}],"env":[],"meta":{},"color":"#DDAA99"},{"id":"4990d9e059a30503","type":"api-call-service","z":"bca342ae902ee0fc","name":"Kantoorlamp OFF","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.test_light_ikea_color","data":"{\"transition\":{{global.light_transition_off}}}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":310,"y":100,"wires":[[]]},{"id":"ca70a78b29cb0d06","type":"subflow","name":"sc Kantoor Nacht","info":"","category":"","in":[{"x":160,"y":100,"wires":[{"id":"14784d05d87573a3"}]}],"out":[{"x":620,"y":100,"wires":[{"id":"14784d05d87573a3","port":0}]}],"env":[],"meta":{},"color":"#DDAA99"},{"id":"14784d05d87573a3","type":"api-call-service","z":"ca70a78b29cb0d06","name":"Kantoorlamp ON Nacht","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.test_light_ikea_color","data":"{\"brightness_pct\":\"10\", \"transition\":{{global.light_transition_on}},\"rgb_color\":{{global.color_night}}}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":390,"y":100,"wires":[[]]},{"id":"9d13daf8c7e0c5fe","type":"subflow","name":"sc Kantoor Avond","info":"","category":"","in":[{"x":120,"y":200,"wires":[{"id":"ed694baa23f992ff"}]}],"out":[{"x":560,"y":200,"wires":[{"id":"ed694baa23f992ff","port":0}]}],"env":[],"meta":{},"color":"#DDAA99"},{"id":"ed694baa23f992ff","type":"api-call-service","z":"9d13daf8c7e0c5fe","name":"Kantoorlamp ON Avond","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.test_light_ikea_color","data":"{\"brightness_pct\":\"50\",\"transition\":{{global.light_transition_on}},\"kelvin\":{{global.kelvin_warm}}}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":350,"y":200,"wires":[[]]},{"id":"793c47f707d56672","type":"subflow","name":"sc Kantoor Dag","info":"","category":"","in":[{"x":180,"y":120,"wires":[{"id":"c7a9f35a98b9428b"}]}],"out":[{"x":560,"y":120,"wires":[{"id":"c7a9f35a98b9428b","port":0}]}],"env":[],"meta":{},"color":"#DDAA99"},{"id":"c7a9f35a98b9428b","type":"api-call-service","z":"793c47f707d56672","name":"Kantoorlamp ON Dag","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.test_light_ikea_color","data":"{\"brightness_pct\":\"100\", \"transition\":{{global.light_transition_on}},\"kelvin\":{{global.kelvin_cold}}}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":360,"y":120,"wires":[[]]},{"id":"2065350e.86a40a","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true},{"id":"1ff5c21a37af21de","type":"subflow","name":"Dagdeel","info":"","category":"","in":[{"x":120,"y":240,"wires":[{"id":"c2cdf0b836510b5f"},{"id":"83b0e66fa69672a3"},{"id":"ef9611a80b2fcaa3"},{"id":"0308cb508e72a625"}]}],"out":[{"x":740,"y":160,"wires":[{"id":"0efd1a920cd09b07","port":0}]},{"x":740,"y":220,"wires":[{"id":"49c593864fcca65a","port":0}]},{"x":740,"y":280,"wires":[{"id":"bcdd24d0ba9ed096","port":0}]},{"x":740,"y":340,"wires":[{"id":"72a2f3886de57ab4","port":0}]}],"env":[],"meta":{},"color":"#DDAA99"},{"id":"c2cdf0b836510b5f","type":"time-range-switch","z":"1ff5c21a37af21de","name":"tussen Sunrise & Sunset","lat":"52.12","lon":"4.65","startTime":"sunrise","endTime":"sunset","startOffset":0,"endOffset":0,"x":350,"y":160,"wires":[["0efd1a920cd09b07"],[]]},{"id":"83b0e66fa69672a3","type":"time-range-switch","z":"1ff5c21a37af21de","name":"tussen Sunset & 00:00","lat":"52.12","lon":"4.65","startTime":"sunset","endTime":"00:00","startOffset":0,"endOffset":0,"x":340,"y":220,"wires":[["49c593864fcca65a"],[]]},{"id":"ef9611a80b2fcaa3","type":"time-range-switch","z":"1ff5c21a37af21de","name":"tussen 00:01 & Sunrise","lat":"52.12","lon":"4.65","startTime":"00:01","endTime":"sunrise","startOffset":0,"endOffset":0,"x":350,"y":280,"wires":[["bcdd24d0ba9ed096"],[]]},{"id":"0efd1a920cd09b07","type":"change","z":"1ff5c21a37af21de","name":"overdag","rules":[{"t":"set","p":"payload","pt":"msg","to":"overdag","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":580,"y":160,"wires":[[]]},{"id":"49c593864fcca65a","type":"change","z":"1ff5c21a37af21de","name":"avond","rules":[{"t":"set","p":"payload","pt":"msg","to":"avond","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":570,"y":220,"wires":[[]]},{"id":"bcdd24d0ba9ed096","type":"change","z":"1ff5c21a37af21de","name":"nacht","rules":[{"t":"set","p":"payload","pt":"msg","to":"nacht","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":570,"y":280,"wires":[[]]},{"id":"0308cb508e72a625","type":"time-range-switch","z":"1ff5c21a37af21de","name":"17-18","lat":"52.12","lon":"4.65","startTime":"17:00","endTime":"18:00","startOffset":0,"endOffset":0,"x":290,"y":340,"wires":[["72a2f3886de57ab4"],[]]},{"id":"72a2f3886de57ab4","type":"change","z":"1ff5c21a37af21de","name":"17-18","rules":[{"t":"set","p":"payload","pt":"msg","to":"17-18","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":570,"y":340,"wires":[[]]},{"id":"c52808d7b953fcf1","type":"subflow:1ff5c21a37af21de","z":"b0dfefa28b4a2f43","name":"","x":440,"y":780,"wires":[["f389b39e72817266"],["b468903be4eae598"],["9c549f1182b705ef"],[]]},{"id":"690f91727c94d2f8","type":"inject","z":"b0dfefa28b4a2f43","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":220,"y":780,"wires":[["c52808d7b953fcf1"]]},{"id":"f389b39e72817266","type":"subflow:793c47f707d56672","z":"b0dfefa28b4a2f43","name":"","x":700,"y":720,"wires":[[]]},{"id":"b468903be4eae598","type":"subflow:9d13daf8c7e0c5fe","z":"b0dfefa28b4a2f43","name":"","x":710,"y":760,"wires":[[]]},{"id":"9c549f1182b705ef","type":"subflow:ca70a78b29cb0d06","z":"b0dfefa28b4a2f43","name":"","x":700,"y":800,"wires":[[]]},{"id":"07d8a2fcb48cae8f","type":"inject","z":"b0dfefa28b4a2f43","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":220,"y":920,"wires":[["f7d611aec3f60b81"]]},{"id":"f7d611aec3f60b81","type":"subflow:bca342ae902ee0fc","z":"b0dfefa28b4a2f43","name":"","x":690,"y":920,"wires":[[]]}]
(Dit zou incl de sublows moeten zijn)
Zoals je ziet heb ik ook een "Uit" scene gemaakt. Mocht je besluiten om 's nachts alle lampen in huis uit te doen met 1 knop, dan kun je een nieuwe subflow maken bijv "sc Huis Uit" welke alle andere "uit" subflows weer combineert en deze aanroepen bij een druk op de knop.
Het enige (waar ik al bang voor was) is dat je nu dus voor iedere lamp al die configuraties moet maken toch?
Ik heb hier circa 50 lampen en zou dus dan voor iedere lamp los 3x een automation moeten maken voor dag, avond en nacht.
Ik had gehoopt dat ik bij een "call service node" gewoon kon verwijzen naar zoiets als de dagdelen die je hebt gemaakt. Dus al is het avond, pak dan de instellingen van de avondverlichting etc. Desnoods direct deze settings verwerken in de "dagdelen" subfow.
Ik doel hier dus op een soort global.licht_overdag en global.licht_avond, maar blijkbaar kun je niet meerdere waardes in 1 config node stoppen zoals brightness, transition e.d.?
Misschien zit ik er naast, maar kun je bevestigen of het klopt wat ik zeg?
Als je dit kunt lezen, dan werkt mij Signature!
Hoe zijn de lampen verdeeld over je huis? Vast niet in 50 kamersWachten... schreef op maandag 25 oktober 2021 @ 21:50:
[...]
Dank voor je enorm uitgebreide reactie.
Het enige (waar ik al bang voor was) is dat je nu dus voor iedere lamp al die configuraties moet maken toch?
Ik heb hier circa 50 lampen en zou dus dan voor iedere lamp los 3x een automation moeten maken voor dag, avond en nacht.
Ik had gehoopt dat ik bij een "call service node" gewoon kon verwijzen naar zoiets als de dagdelen die je hebt gemaakt. Dus al is het avond, pak dan de instellingen van de avondverlichting etc. Desnoods direct deze settings verwerken in de "dagdelen" subfow.
Ik doel hier dus op een soort global.licht_overdag en global.licht_avond, maar blijkbaar kun je niet meerdere waardes in 1 config node stoppen zoals brightness, transition e.d.?
Misschien zit ik er naast, maar kun je bevestigen of het klopt wat ik zeg?
Je kunt natuurlijk meerdere lampen in 1 scene zetten, dus alle Woonkamer lampen bij elkaar bijvoorbeeld.
Je kende ook de Hue app toch? Hoe zou je het daar doen?
Ik zal er nog even verder over nadenken, ook over die meerdere waardes in een config node. Denk wel dat er een elegante oplossing is... maar voor vanavond is het even genoeg...

Feel free to Buy me a coffee
@Wachten...
Okee, even een update.
N.a.v. wat je hierboven schreef over die 50 lampen: ik vermoed dat je een standaard-instelling wilt maken (voor dag, avond, nacht, etc) en deze op elke lamp wilt kunnen toepassen. En die instelling wil je maar 1x hoeven definiëren. Klopt dat?
In ieder geval wilde ik dit voor mijzelf ook uitzoeken dus ben "even" aan het proberen geslagen. Eerst dacht ik dat een Change-node hiervoor geschikt zou zijn, dus dat hierin de instellingen voor alle lampen achter de Change-node konden worden bepaald. Helaas kreeg ik dat niet aan de praat MET verwijzingen naar global config variabelen in de JSON.
Na wat rondzoeken ben ik uitgekomen op een Template node, en is dit het resultaat:
:strip_exif()/f/image/yQkzYqpM5YhPsehiN4aJ6vwd.jpg?f=fotoalbum_large)
Met in de Template node het volgende:
:strip_exif()/f/image/I8sjQClRvhA4qK1GXxK4lzQT.jpg?f=fotoalbum_large)
Let op de blauw omcirkelde delen.
In de Call Service nodes voor de lampen heb ik de "data" JSON waarde leeg gelaten, want dit wordt nu vanuit de Template node ervoor aangeleverd.
En dit is wat je dus in je msg object wilt hebben:
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/49OoTmIBGaNvQwWC0xjNzDS6.jpg?f=user_large)
Vervolgens ben ik een stukje verder gegaan en heb de Template node in een Subflow geplaatst. Reden hiervoor is dat je zo niet de Template node op meerdere plekken moet kopieren en nog steeds met instellingen op meerdere plekken zit. Overigens is het me (nog) niet gelukt om een Config Node te gebruiken voor een volledige lijst met lamp instellingen (dus brightness, kelvin, transition etc allemaal in 1 Config Node)
De subflow "tpl Lights Day":
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/Nj5VQcYLyXKzVZYFNLxo6BQ5.jpg?f=user_large)
Aangepaste flow die net zo werkt als de eerste:
:strip_exif()/f/image/KUM3bynHJXFdOpwqjxJYS4nV.jpg?f=fotoalbum_large)
Zoals je ziet heb ik ook meteen de twee lampen samengevoegd in 1 Call Service Node door gewoon bij "Entity Id" meerdere lampen op te geven gescheiden door komma's.
Werkt beide even goed, maar vind persoonlijk een Node voor elke lamp beter leesbaar, zeker als je veel lampen hebt.
Helaas is het me nog niet gelukt om in één van de Call Service nodes zelf een waarde uit het template te overriden. Als ik daar iets in het "data" veld zet wordt dat gewoon genegeerd.
Hopelijk kun je hier ook iets mee.
Okee, even een update.
N.a.v. wat je hierboven schreef over die 50 lampen: ik vermoed dat je een standaard-instelling wilt maken (voor dag, avond, nacht, etc) en deze op elke lamp wilt kunnen toepassen. En die instelling wil je maar 1x hoeven definiëren. Klopt dat?
In ieder geval wilde ik dit voor mijzelf ook uitzoeken dus ben "even" aan het proberen geslagen. Eerst dacht ik dat een Change-node hiervoor geschikt zou zijn, dus dat hierin de instellingen voor alle lampen achter de Change-node konden worden bepaald. Helaas kreeg ik dat niet aan de praat MET verwijzingen naar global config variabelen in de JSON.
Na wat rondzoeken ben ik uitgekomen op een Template node, en is dit het resultaat:
:strip_exif()/f/image/yQkzYqpM5YhPsehiN4aJ6vwd.jpg?f=fotoalbum_large)
code:
1
| [{"id":"67452862be607970","type":"template","z":"47c0408c7bc56509","name":"Set light template Day","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{\n \"data\":\n {\n \"transition\": {{global.light_transition_on}},\n \"brightness_pct\": 50,\n \"kelvin\": {{global.kelvin_cold}}\n }\n} ","output":"json","x":400,"y":480,"wires":[["4b2f3aae9f3f18f6","621289cce887a6bc"]]},{"id":"4b2f3aae9f3f18f6","type":"api-call-service","z":"47c0408c7bc56509","name":"Kantoorlamp 1 ON","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.test_light_ikea_color","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":670,"y":480,"wires":[[]]},{"id":"e677491c23363b92","type":"inject","z":"47c0408c7bc56509","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":160,"y":480,"wires":[["67452862be607970"]]},{"id":"621289cce887a6bc","type":"api-call-service","z":"47c0408c7bc56509","name":"Kantoorlamp 2 ON","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.test_light_ikea_color_2","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":670,"y":520,"wires":[["261c0408a2966350"]]},{"id":"261c0408a2966350","type":"debug","z":"47c0408c7bc56509","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":900,"y":520,"wires":[]},{"id":"2065350e.86a40a","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}] |
Met in de Template node het volgende:
:strip_exif()/f/image/I8sjQClRvhA4qK1GXxK4lzQT.jpg?f=fotoalbum_large)
Let op de blauw omcirkelde delen.
In de Call Service nodes voor de lampen heb ik de "data" JSON waarde leeg gelaten, want dit wordt nu vanuit de Template node ervoor aangeleverd.
En dit is wat je dus in je msg object wilt hebben:
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/49OoTmIBGaNvQwWC0xjNzDS6.jpg?f=user_large)
Vervolgens ben ik een stukje verder gegaan en heb de Template node in een Subflow geplaatst. Reden hiervoor is dat je zo niet de Template node op meerdere plekken moet kopieren en nog steeds met instellingen op meerdere plekken zit. Overigens is het me (nog) niet gelukt om een Config Node te gebruiken voor een volledige lijst met lamp instellingen (dus brightness, kelvin, transition etc allemaal in 1 Config Node)
De subflow "tpl Lights Day":
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/Nj5VQcYLyXKzVZYFNLxo6BQ5.jpg?f=user_large)
Aangepaste flow die net zo werkt als de eerste:
:strip_exif()/f/image/KUM3bynHJXFdOpwqjxJYS4nV.jpg?f=fotoalbum_large)
code:
1
| [{"id":"82d267413b8a6597","type":"subflow","name":"tpl Lights Day","info":"","category":"","in":[{"x":120,"y":120,"wires":[{"id":"8fd15ddad40aa6b8"}]}],"out":[{"x":520,"y":120,"wires":[{"id":"8fd15ddad40aa6b8","port":0}]}],"env":[],"meta":{},"color":"#DDAA99"},{"id":"8fd15ddad40aa6b8","type":"template","z":"82d267413b8a6597","name":"Set light template Day","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{\n \"data\":\n {\n \"transition\": {{global.light_transition_on}},\n \"brightness_pct\": 50,\n \"kelvin\": {{global.kelvin_cold}}\n }\n}","output":"json","x":320,"y":120,"wires":[[]]},{"id":"d4322fc5ea534ad2","type":"api-call-service","z":"47c0408c7bc56509","name":"Kantoorlampen ALL ON","server":"2065350e.86a40a","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.test_light_ikea_color, light.test_light_ikea_color_2","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":650,"y":600,"wires":[[]]},{"id":"acb0748791fc7461","type":"inject","z":"47c0408c7bc56509","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":160,"y":600,"wires":[["df008e3b347e584a"]]},{"id":"df008e3b347e584a","type":"subflow:82d267413b8a6597","z":"47c0408c7bc56509","name":"","x":370,"y":600,"wires":[["d4322fc5ea534ad2"]]},{"id":"2065350e.86a40a","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}] |
Zoals je ziet heb ik ook meteen de twee lampen samengevoegd in 1 Call Service Node door gewoon bij "Entity Id" meerdere lampen op te geven gescheiden door komma's.
Werkt beide even goed, maar vind persoonlijk een Node voor elke lamp beter leesbaar, zeker als je veel lampen hebt.
Helaas is het me nog niet gelukt om in één van de Call Service nodes zelf een waarde uit het template te overriden. Als ik daar iets in het "data" veld zet wordt dat gewoon genegeerd.
Hopelijk kun je hier ook iets mee.
Feel free to Buy me a coffee
@musicpixel @Wachten...
Goed bezig!!
Je kan in de call service node ook direct gebruik maken van Json.
:fill(white):strip_exif()/f/image/1LiKVEv0ag3nmAEbUmsb8exc.png?f=user_large)
:fill(white):strip_exif()/f/image/iH7JFnjoAPN7fhCgAi0WymCd.png?f=user_large)
Indien je het veld data gebruikt in de payload dan wordt de instelling van de call service node overschreven.
Goed bezig!!
Je kan in de call service node ook direct gebruik maken van Json.
:fill(white):strip_exif()/f/image/1LiKVEv0ag3nmAEbUmsb8exc.png?f=user_large)
:fill(white):strip_exif()/f/image/iH7JFnjoAPN7fhCgAi0WymCd.png?f=user_large)
Indien je het veld data gebruikt in de payload dan wordt de instelling van de call service node overschreven.
:fill(white):strip_exif()/f/image/Dzz2J9HH8o9giDNe2KkHWgBX.png?f=user_large)
Als je 4 posts omhoog scrollt, zie je dat ik dat al deeddenuz schreef op dinsdag 26 oktober 2021 @ 23:40:
@musicpixel @Wachten...
Goed bezig!!
Je kan in de call service node ook direct gebruik maken van Json.
Wat @Wachten... echter wilde is een paar standaard instellingen (gebaseerd op dag/avond/nacht) die hij kon toepassen op elk van de 50 lampen.
Hoewel je met globals kunt werken in het data veld (JSON) van de Call Service node voor elke lamp, en dan de globals aanpassen op basis van dag/nacht/avond, ben je wel gelimiteerd tot de properties (brightness, color, transition, etc) die al vast in de Call Service node staan.
Tevens is het gebruik van globals een potentieel probleem. Globals zijn namelijk beschikbaar (en te wijzigen!) in ELKE flow.
Zolang je de globals met lampinstellingen alleen wijzigt op basis van dag/avond/nacht en deze tijden niet overlappen zal het goed gaan. Wil je echter andere lampinstellingen gaan gebruiken voor bijvoorbeeld "movie-night" en je overschrijft dan de globals, dan kunnen andere flows opeens van de movie-night instellingen gebruik gaan maken. Hou er ook rekening mee dat verschillende flows TEGELIJK/PARALLEL kunnen worden uitgevoerd. Het kan dus gebeuren dat beneden de lampen op movie-night gezet worden (flow 1), terwijl boven op het zelfde moment iemand de sensor op de overloop activeert die dag/nacht instellingen gebruikt (flow 2). Als in beide flows dan dezelfde globals worden gezet, dan is het maar net de vraag op welke waarden de globals worden gezet: die van movie-night of die van dag/nacht.
Mijn advies: gebruik globals spaarzaam, eigenlijk alleen voor waarden die altijd gelijk blijven, of maar op 1 plek worden ingesteld. Fouten zoeken wordt anders een nachtmerrie. Als je ook een flow-variabele kunt gebruiken is dat altijd beter.
Ik hoop dat de uitleg hierboven te volgen is, anders kan ik wel een voorbeeld maken.
Ik dacht inderdaad al zoiets gelezen te hebben laatst, thanks voor de bevestiging. Andere oplossing zoeken dus.Indien je het veld data gebruikt in de payload dan wordt de instelling van de call service node overschreven.
[Afbeelding]
Feel free to Buy me a coffee
Ik ben vanavond bezig met een node waar ik 2 vraagjes over heb, het gaat om de volgende:
/f/image/b8A7O9rq1Te6umgShFaK99Cq.png?f=fotoalbum_large)
.1 mij valt op dat als ik een complete deploy doe van alles. dat specifiek deze flow opnieuw gaat lopen. Ondanks dat de deursensor de status of heeft, gaat toch de lamp aan. en de timer lopen (dit zie je ook wel in het screenshot).
.2 Stel ik zet handmatig de verlichting aan. Omdat ik bijvoorbeeld onder de overkapping zit en de verlichting aan wil hebben. Hoe kan ik ervoor zorgen dat hij niet na 5 minuten uitgaat? Als de deur ineens open/dicht gaat?
/f/image/b8A7O9rq1Te6umgShFaK99Cq.png?f=fotoalbum_large)
.1 mij valt op dat als ik een complete deploy doe van alles. dat specifiek deze flow opnieuw gaat lopen. Ondanks dat de deursensor de status of heeft, gaat toch de lamp aan. en de timer lopen (dit zie je ook wel in het screenshot).
.2 Stel ik zet handmatig de verlichting aan. Omdat ik bijvoorbeeld onder de overkapping zit en de verlichting aan wil hebben. Hoe kan ik ervoor zorgen dat hij niet na 5 minuten uitgaat? Als de deur ineens open/dicht gaat?
@prekz Deel ook even de code van je flow. Dit kun je doen door de betreffende nodes te selecteren en vervolgens uit het menu rechtsboven export te kiezen.
Dan vervolgens hier plakken tussen [ code ] en [/ code] (zonder spaties dan), oftewel de "preformatted-text" optie uit de icoontjes balk als je je tekst hier op het forum tikt.
Dan vervolgens hier plakken tussen [ code ] en [/ code] (zonder spaties dan), oftewel de "preformatted-text" optie uit de icoontjes balk als je je tekst hier op het forum tikt.
Feel free to Buy me a coffee
@prekz
Maar weet je zeker welke status "off" heeft?
In mijn geval is dat namelijk als de deur "closed" of "dicht" is. Soms zijn de benamingen niet helemaal logisch. Wellicht dus dat het bij jou hetzelfde is, of juist andersom. en de deur dan ook daadwerkelijk ON, of OFF is (als je nog snapt wat ik bedoel). Ik denk dat je bedoeling is dat de lampen aan gaan zodra de deur open gaat toch? In dat geval zal je het waarschijnlijk de status ON moeten geven (ON is meestal open).
Je kunt de timer resetten met een inject node en een linked in en linked out node.
:fill(white):strip_exif()/f/image/0woa2M5VH6Fu1i50HVJpCJrb.png?f=user_large)
Deze koppel je dan aan de timer en bij de inject node zet je het volgende.
:fill(white):strip_exif()/f/image/lG2togwX20RPFMNgxy6HwoxQ.png?f=user_large)
Vervolgens kun je dit dan weer koppelen aan een input boolean. Dus als je de knop fysiek aandoet, dan gaat een input boolean "input_boolean.Buitenverlichting_handmatig" aan en je plaatst de input boolean dan weer tussen je bestaande motionsensor flow.
Dit is overigens het eerste wat in mij opkomt, maar misschien moet je de rest even afwachten. Er zijn hier andere jongens die vele malen handiger zijn dan ik en vaak betere ideeën hebben
Maar weet je zeker welke status "off" heeft?
In mijn geval is dat namelijk als de deur "closed" of "dicht" is. Soms zijn de benamingen niet helemaal logisch. Wellicht dus dat het bij jou hetzelfde is, of juist andersom. en de deur dan ook daadwerkelijk ON, of OFF is (als je nog snapt wat ik bedoel). Ik denk dat je bedoeling is dat de lampen aan gaan zodra de deur open gaat toch? In dat geval zal je het waarschijnlijk de status ON moeten geven (ON is meestal open).
Je kunt de timer resetten met een inject node en een linked in en linked out node.
:fill(white):strip_exif()/f/image/0woa2M5VH6Fu1i50HVJpCJrb.png?f=user_large)
Deze koppel je dan aan de timer en bij de inject node zet je het volgende.
:fill(white):strip_exif()/f/image/lG2togwX20RPFMNgxy6HwoxQ.png?f=user_large)
Vervolgens kun je dit dan weer koppelen aan een input boolean. Dus als je de knop fysiek aandoet, dan gaat een input boolean "input_boolean.Buitenverlichting_handmatig" aan en je plaatst de input boolean dan weer tussen je bestaande motionsensor flow.
Dit is overigens het eerste wat in mij opkomt, maar misschien moet je de rest even afwachten. Er zijn hier andere jongens die vele malen handiger zijn dan ik en vaak betere ideeën hebben
Als je dit kunt lezen, dan werkt mij Signature!
Nog dank voor je reactie.denuz schreef op dinsdag 26 oktober 2021 @ 23:40:
@musicpixel @Wachten...
Goed bezig!!
Je kan in de call service node ook direct gebruik maken van Json.
[Afbeelding][Afbeelding]
Indien je het veld data gebruikt in de payload dan wordt de instelling van de call service node overschreven.
[Afbeelding]
Deze (Javascript toch?) had ik al in mijn lampen staan inderdaad en dat werkte op zich wel, maar is wat lastig als je later in 1x alle lampen aan wilt passen. Zoals @musicpixel al aangaf, was ik meer op zoek naar een bepaalde "node" of anders instellingen zoals dus nu variabelen o.i.d., zodat lampen zelf weten in welke staat ze moeten aan de hand van de dagindeling.
Om even Hue als voorbeeld te nemen i.c.m. de Hue bridge
Voorheen toen ik nog de Hue bridge had, had iedere lamp standaard de volgende scenes (lampinstellingen)
- ontspannen
- lezen
- helder
- concentreren
- etc
Het liefst heb ik dus (denk ik) iets van een node die voor de call service komt, en dat ik dan kan kiezen uit een van de onderstaande 'scenes' en dat deze settings dan naar de lamp worden gestuurd.
- ontspannen
- lezen
- helder
- concentreren
- etc
Ik ben ondertussen met een hoop andere nodes bezig die jullie hebben aangekaart en die ik nog niet eerder had aangeraakt. Ik ben dus druk aan het knippen en plakken hier
Als je dit kunt lezen, dan werkt mij Signature!
Ja hij heeft zeker de status on en off, dit werkt ook allemaal.Wachten... schreef op woensdag 27 oktober 2021 @ 23:45:
@prekz
Maar weet je zeker welke status "off" heeft?
In mijn geval is dat namelijk als de deur "closed" of "dicht" is. Soms zijn de benamingen niet helemaal logisch. Wellicht dus dat het bij jou hetzelfde is, of juist andersom. en de deur dan ook daadwerkelijk ON, of OFF is (als je nog snapt wat ik bedoel). Ik denk dat je bedoeling is dat de lampen aan gaan zodra de deur open gaat toch? In dat geval zal je het waarschijnlijk de status ON moeten geven (ON is meestal open).
Je kunt de timer resetten met een inject node en een linked in en linked out node.
[Afbeelding]
Deze koppel je dan aan de timer en bij de inject node zet je het volgende.
[Afbeelding]
Vervolgens kun je dit dan weer koppelen aan een input boolean. Dus als je de knop fysiek aandoet, dan gaat een input boolean "input_boolean.Buitenverlichting_handmatig" aan en je plaatst de input boolean dan weer tussen je bestaande motionsensor flow.
Dit is overigens het eerste wat in mij opkomt, maar misschien moet je de rest even afwachten. Er zijn hier andere jongens die vele malen handiger zijn dan ik en vaak betere ideeën hebben
Alleen als ik de hele flow deploy start hij weer opnieuw, en gaat mijn lamp dus aan (terwijl mijn sensoren Off zijn).
Grootste nadeel met die input boolean, ik heb geen fysieke switch. Dus zal hem altijd (handmatig) via home-assistant aanzetten. Werkt zo'n input boolean dan ook? Of moet ik een automation maken en deze middels een knopje op mijn dashboard aftrappen, die dan en de lamp aanzet, en de input boolean zet?
Maar wil je dat de lamp aan gaat als de deur dicht is, of als deze open is. Als je namelijk deployed en alles waardes kloppen in die flow die je hebt. Dan is het op zich logisch dat hij gaat lopen. Je kunt nog wel een check doen VOOR je timer of de lamp al aanstaat of niet. Dit doe je met de current state node en vraag je of de lamp al aan of uit staat en hangt dan pas de actie eraan van de timer. (Snap je dit)? Sowieso altijd handig om te doen bij lampen om eerst te kijken of deze al aan of uit is. Dit elimineert het onnodig afmaken van een flow als je dat niet wilt.prekz schreef op donderdag 28 oktober 2021 @ 08:35:
[...]
Ja hij heeft zeker de status on en off, dit werkt ook allemaal.
Alleen als ik de hele flow deploy start hij weer opnieuw, en gaat mijn lamp dus aan (terwijl mijn sensoren Off zijn).
Met wat stuur jij de sensoren aan? (Wifi, zigbee, zwave?)Grootste nadeel met die input boolean, ik heb geen fysieke switch. Dus zal hem altijd (handmatig) via home-assistant aanzetten. Werkt zo'n input boolean dan ook? Of moet ik een automation maken en deze middels een knopje op mijn dashboard aftrappen, die dan en de lamp aanzet, en de input boolean zet?
Mijn eerste tip. Koppel wel iets van een schakelaar. Nu kan niemand anders, behalve jij deze acties uitvoeren. Erg onhandig dus (maar dat terzijde).
Wat is een input boolean (Jip en Janneke versie)
Ik heb het aan het begin ook niet goed begrepen wat het precies deed en wat je er mee kon, maar kan het daardoor nu wel goed uitleggen.
Als je een lamp toevoegd in HA, dan krijgt deze automatisch een aan/switch (een soort input boolean) dat zorgt ervoor dat je de lamp heel makkelijk aan en uit kan zetten in HA of ergens anders.
Veel andere dingen krijgen GEEN aan en uit switch (zeker automations niet) en kun je dus niet makkelijk bedienen in HA. Hier komen input booleans van pas. Lees even verder. dit alles komt zeker van pas bij automations.
Even een voorbeeld automation:
Als je niet verbonden bent met wifi, EN er is geen beweging gedetecteerd voor 10 minuten dan ben je waarschijnlijk niet thuis. En kan een input_boolean.away aan en een input_boolean.home uit. (Dus 2 'lichtswitches' met home en Away in je HA dashboard)
Als een van de waardes hierboven niet true is, dan, dan ben je dus wel thuis en kan de input boolean input_boolean.home aan en input_boolean.away uit (dus precies andersom) Je hebt dan nu een virtuele switch gemaakt in HA.
Deze beide input booleans (soort licht switches) kun je dan ook in HA zetten en kun je ze ook handmatig aan het uitzetten.
Ik zal het straks even iets meer verduidelijken met een voorbeeld. Maar zoals je misschien begrijpt kun je best gecompliceerde voorwaardes (automations) een input boolean geven.
Ik heb hier laatst een input boolean gemaakt waardoor ik weet of mijn kleine slaapt.
- Als lux 'kinderkamer' lager dan 20 is
- En camera kinderkamer staat aan
- En de deur zit dicht van de kinderkamer
- En de lamp op de kinderkamer is uit.
- Dan gaat een input_boolean.kleine_slaapt aan.
Ik zal het straks even wat beter omschrijven met een voorbeeld, maar type het even op mijn telefoon momenteel.
Als je dit kunt lezen, dan werkt mij Signature!
prekz schreef op woensdag 27 oktober 2021 @ 22:18:
Ik ben vanavond bezig met een node waar ik 2 vraagjes over heb, het gaat om de volgende:
[Afbeelding]
.1 mij valt op dat als ik een complete deploy doe van alles. dat specifiek deze flow opnieuw gaat lopen. Ondanks dat de deursensor de status of heeft, gaat toch de lamp aan. en de timer lopen (dit zie je ook wel in het screenshot).
.2 Stel ik zet handmatig de verlichting aan. Omdat ik bijvoorbeeld onder de overkapping zit en de verlichting aan wil hebben. Hoe kan ik ervoor zorgen dat hij niet na 5 minuten uitgaat? Als de deur ineens open/dicht gaat?
:strip_exif()/f/image/s87Ppy4AjwRIShpkT1jff7DI.jpg?f=fotoalbum_large)
In het screenshot hierboven zie je een checkbox "Ignore state change event when: current state equals previous state." Dit zal je probleem van 1) waarschijnlijk oplossen.
Wat mij verder opvalt in je flow, is dat de meest linkse node (die van de deursensor) maar één uitgang heeft (dat bolletje aan de rechterkant). Dat betekent dat hier zowel de "on" als de "off" overheen gaan. Kan zijn dat je dit wilt, maar anders dus even een check op de state er in opnemen.
Wat betreft punt 2: Ik zou wat meer moeten weten over welke verlichting je hebt in de tuin en hoe het precies zou moeten werken. Heb je bijvoorbeeld licht onder de overkapping waarvan je kunt checken of deze aan is en dan de loopverlichting aan laten? Of heb je alleen loopverlichting en moet dit aanblijven als je onder de overkapping zit.
Hoe zet je nu handmatig de verlichting aan? Via HA, of een schakelaar, of...
Dus beschrijf even wat de situatie is: welke lampen, welke schakelaars en sensors, en hoe het moet werken.
Feel free to Buy me a coffee
Afgelopen weekend dacht ik gevrijwaard te zijn geweest van de "wintertijd perikelen" met home assistant.
Vanochtend kwam ik er echter achter dat mijn lichten ineens niet om 6:30 aan gaan maar om 7:30.
Ik heb een node-red automation waarin een nachttijd is aangegeven van 0:50 t/m 6:30. Daarbinnen mag alleen een bewegingssensor een subset van de lichten aan triggeren (voor de mensen die de koelkast willen plunderen of niet kunnen slapen
). Daarbuiten gaan lampen aan op basis van een lux meter. Het was vanochtend om 7:30 nog te donker om de luxmeters te triggeren
/f/image/dkcxmalQTtHNwtg5fBafNS70.png?f=fotoalbum_large)
Maar ik zag ineens dat vanochtend (ik was al op, en de lampen waren aan vanwege de bewegingsmelder denk ik achteraf) dat de rest van de lampen aanging om precies 7:30. In de flow kan je dat ook zien: 7:30 worden de lampen aangezet. Op een lamp geklikt, die laat zien dat 7:30 de eerste keer is deze dag.
Zit hier iets niet goed met winter/zomertijd?
Vanochtend kwam ik er echter achter dat mijn lichten ineens niet om 6:30 aan gaan maar om 7:30.
Ik heb een node-red automation waarin een nachttijd is aangegeven van 0:50 t/m 6:30. Daarbinnen mag alleen een bewegingssensor een subset van de lichten aan triggeren (voor de mensen die de koelkast willen plunderen of niet kunnen slapen
/f/image/dkcxmalQTtHNwtg5fBafNS70.png?f=fotoalbum_large)
Maar ik zag ineens dat vanochtend (ik was al op, en de lampen waren aan vanwege de bewegingsmelder denk ik achteraf) dat de rest van de lampen aanging om precies 7:30. In de flow kan je dat ook zien: 7:30 worden de lampen aangezet. Op een lamp geklikt, die laat zien dat 7:30 de eerste keer is deze dag.
Zit hier iets niet goed met winter/zomertijd?
[ Voor 13% gewijzigd door oltk op 02-11-2021 08:12 ]
Voor het eerst bezig in Node-RED en ben al aardig ver gekomen. Echter, Switch off geeft een error dat er no connection is.. Terwijl ik hetzelfde doe als voor switch on.. Wat doe ik fout?
edit:
Switch on geeft dezelfde error, no connection. Wat doe ik fout?
Switch on geeft dezelfde error, no connection. Wat doe ik fout?
code:
1
| [{"id":"6ba666fd3bbed264","type":"bigtimer","z":"a7d770bf86bef5f8","outtopic":"","outpayload1":"","outpayload2":"","name":"Big Timer","comment":"Sunset until sunrise","lat":"53.026390","lon":"4.751650","starttime":"5004","endtime":"5003","starttime2":0,"endtime2":0,"startoff":0,"endoff":0,"startoff2":0,"endoff2":0,"offs":0,"outtext1":"On","outtext2":"off","timeout":1440,"sun":true,"mon":true,"tue":true,"wed":true,"thu":true,"fri":true,"sat":true,"jan":true,"feb":true,"mar":true,"apr":true,"may":true,"jun":true,"jul":true,"aug":true,"sep":true,"oct":true,"nov":true,"dec":true,"day1":0,"month1":0,"day2":0,"month2":0,"day3":0,"month3":0,"day4":0,"month4":0,"day5":0,"month5":0,"day6":0,"month6":0,"day7":0,"month7":0,"day8":0,"month8":0,"day9":0,"month9":0,"day10":0,"month10":0,"day11":0,"month11":0,"day12":0,"month12":0,"d1":0,"w1":0,"d2":0,"w2":0,"d3":0,"w3":0,"d4":0,"w4":0,"d5":0,"w5":0,"d6":0,"w6":0,"xday1":0,"xmonth1":0,"xday2":0,"xmonth2":0,"xday3":0,"xmonth3":0,"xday4":0,"xmonth4":0,"xday5":0,"xmonth5":0,"xday6":0,"xmonth6":0,"xday7":0,"xmonth7":0,"xday8":0,"xmonth8":0,"xday9":0,"xmonth9":0,"xday10":0,"xmonth10":0,"xday11":0,"xmonth11":0,"xday12":0,"xmonth12":0,"xd1":0,"xw1":0,"xd2":0,"xw2":0,"xd3":0,"xw3":0,"xd4":0,"xw4":0,"xd5":0,"xw5":0,"xd6":0,"xw6":0,"suspend":false,"random":false,"randon1":false,"randoff1":false,"randon2":false,"randoff2":false,"repeat":true,"atstart":true,"odd":false,"even":false,"x":160,"y":140,"wires":[[],[],["c3e6c9f413cc155c"]]},{"id":"c3e6c9f413cc155c","type":"switch","z":"a7d770bf86bef5f8","name":"switch","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":340,"y":180,"wires":[["6a2e71c27933034e"],["66716a0f71307080"]]},{"id":"6a2e71c27933034e","type":"api-call-service","z":"a7d770bf86bef5f8","name":"Licht aan","server":"dc6b31de.af019","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.voortuin_deur, light.voortuin_straat, light.tuin_nacht","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":510,"y":140,"wires":[[]]},{"id":"66716a0f71307080","type":"api-call-service","z":"a7d770bf86bef5f8","name":"Licht uit","server":"dc6b31de.af019","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.tuin_nacht, light.voortuin_deur, light.voortuin_straat","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":500,"y":220,"wires":[[]]},{"id":"dc6b31de.af019","type":"server","name":"Home Assistant","version":1,"legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}] |
/f/image/WHPJ5UalWHe3N16vdwT93sf2.png?f=fotoalbum_large)
Zie ik ook wel eens, meestal als het commando buiten de tijd valt oid.Boinkie schreef op dinsdag 2 november 2021 @ 08:41:
Voor het eerst bezig in Node-RED en ben al aardig ver gekomen. Echter, Switch off geeft een error dat er no connection is.. Terwijl ik hetzelfde doe als voor switch on.. Wat doe ik fout?
edit:
Switch on geeft dezelfde error, no connection. Wat doe ik fout?
code:
1 [{"id":"6ba666fd3bbed264","type":"bigtimer","z":"a7d770bf86bef5f8","outtopic":"","outpayload1":"","outpayload2":"","name":"Big Timer","comment":"Sunset until sunrise","lat":"53.026390","lon":"4.751650","starttime":"5004","endtime":"5003","starttime2":0,"endtime2":0,"startoff":0,"endoff":0,"startoff2":0,"endoff2":0,"offs":0,"outtext1":"On","outtext2":"off","timeout":1440,"sun":true,"mon":true,"tue":true,"wed":true,"thu":true,"fri":true,"sat":true,"jan":true,"feb":true,"mar":true,"apr":true,"may":true,"jun":true,"jul":true,"aug":true,"sep":true,"oct":true,"nov":true,"dec":true,"day1":0,"month1":0,"day2":0,"month2":0,"day3":0,"month3":0,"day4":0,"month4":0,"day5":0,"month5":0,"day6":0,"month6":0,"day7":0,"month7":0,"day8":0,"month8":0,"day9":0,"month9":0,"day10":0,"month10":0,"day11":0,"month11":0,"day12":0,"month12":0,"d1":0,"w1":0,"d2":0,"w2":0,"d3":0,"w3":0,"d4":0,"w4":0,"d5":0,"w5":0,"d6":0,"w6":0,"xday1":0,"xmonth1":0,"xday2":0,"xmonth2":0,"xday3":0,"xmonth3":0,"xday4":0,"xmonth4":0,"xday5":0,"xmonth5":0,"xday6":0,"xmonth6":0,"xday7":0,"xmonth7":0,"xday8":0,"xmonth8":0,"xday9":0,"xmonth9":0,"xday10":0,"xmonth10":0,"xday11":0,"xmonth11":0,"xday12":0,"xmonth12":0,"xd1":0,"xw1":0,"xd2":0,"xw2":0,"xd3":0,"xw3":0,"xd4":0,"xw4":0,"xd5":0,"xw5":0,"xd6":0,"xw6":0,"suspend":false,"random":false,"randon1":false,"randoff1":false,"randon2":false,"randoff2":false,"repeat":true,"atstart":true,"odd":false,"even":false,"x":160,"y":140,"wires":[[],[],["c3e6c9f413cc155c"]]},{"id":"c3e6c9f413cc155c","type":"switch","z":"a7d770bf86bef5f8","name":"switch","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":340,"y":180,"wires":[["6a2e71c27933034e"],["66716a0f71307080"]]},{"id":"6a2e71c27933034e","type":"api-call-service","z":"a7d770bf86bef5f8","name":"Licht aan","server":"dc6b31de.af019","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.voortuin_deur, light.voortuin_straat, light.tuin_nacht","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":510,"y":140,"wires":[[]]},{"id":"66716a0f71307080","type":"api-call-service","z":"a7d770bf86bef5f8","name":"Licht uit","server":"dc6b31de.af019","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"light.tuin_nacht, light.voortuin_deur, light.voortuin_straat","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":500,"y":220,"wires":[[]]},{"id":"dc6b31de.af019","type":"server","name":"Home Assistant","version":1,"legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]
[Afbeelding]
Ik werk voor de verlichting met lightscheduler, vind ik persoonlijk makkelijker werken.
Edit, krijg een afbeelding in windows 11 op de oude manier ff niet voor elkaar maar dit is de code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
| [ { "id": "c4e709ddfa822186", "type": "api-call-service", "z": "6f6248cad1c7cf71", "name": "Alle lichten aan", "server": "b08467d5.010fe8", "version": 3, "debugenabled": true, "service_domain": "light", "service": "turn_on", "entityId": "light.alle_verlichting", "data": "", "dataType": "jsonata", "mergecontext": "", "mustacheAltTags": false, "outputProperties": [], "queue": "none", "x": 500, "y": 760, "wires": [ [ "2b36ec6f3fe95f8a" ] ], "inputLabels": [ "ON" ], "icon": "node-red/light.svg" }, { "id": "13f5c744d970d57f", "type": "api-call-service", "z": "6f6248cad1c7cf71", "name": "Alle lichten uit", "server": "b08467d5.010fe8", "version": 3, "debugenabled": true, "service_domain": "light", "service": "turn_off", "entityId": "light.alle_verlichting", "data": "", "dataType": "jsonata", "mergecontext": "", "mustacheAltTags": false, "outputProperties": [], "queue": "none", "x": 500, "y": 800, "wires": [ [ "025dd9eac63fa62f" ] ], "inputLabels": [ "OFF" ], "icon": "node-red/light.svg" }, { "id": "2b36ec6f3fe95f8a", "type": "debug", "z": "6f6248cad1c7cf71", "name": "", "active": false, "tosidebar": true, "console": true, "tostatus": true, "complete": "payload", "targetType": "msg", "statusVal": "payload", "statusType": "auto", "x": 740, "y": 760, "wires": [] }, { "id": "025dd9eac63fa62f", "type": "debug", "z": "6f6248cad1c7cf71", "name": "", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 730, "y": 800, "wires": [] }, { "id": "7f932851b86462eb", "type": "light-scheduler", "z": "6f6248cad1c7cf71", "settings": "9973d7461ce905ae", "events": "[{\"start\":{\"dow\":1,\"mod\":360},\"end\":{\"dow\":1,\"mod\":480}},{\"start\":{\"dow\":2,\"mod\":360},\"end\":{\"dow\":2,\"mod\":480}},{\"start\":{\"dow\":3,\"mod\":360},\"end\":{\"dow\":3,\"mod\":480}},{\"start\":{\"dow\":4,\"mod\":360},\"end\":{\"dow\":4,\"mod\":480}},{\"start\":{\"dow\":5,\"mod\":360},\"end\":{\"dow\":5,\"mod\":480}},{\"start\":{\"dow\":6,\"mod\":420},\"end\":{\"dow\":6,\"mod\":600}},{\"start\":{\"dow\":0,\"mod\":420},\"end\":{\"dow\":0,\"mod\":600}},{\"start\":{\"dow\":6,\"mod\":960},\"end\":{\"dow\":0,\"mod\":0}},{\"start\":{\"dow\":0,\"mod\":0},\"end\":{\"dow\":0,\"mod\":60}},{\"start\":{\"dow\":6,\"mod\":0},\"end\":{\"dow\":6,\"mod\":60}},{\"start\":{\"dow\":0,\"mod\":960},\"end\":{\"dow\":1,\"mod\":0}},{\"start\":{\"dow\":1,\"mod\":960},\"end\":{\"dow\":1,\"mod\":1410}},{\"start\":{\"dow\":3,\"mod\":960},\"end\":{\"dow\":3,\"mod\":1410}},{\"start\":{\"dow\":4,\"mod\":960},\"end\":{\"dow\":4,\"mod\":1410}},{\"start\":{\"dow\":2,\"mod\":960},\"end\":{\"dow\":2,\"mod\":1410}},{\"start\":{\"dow\":5,\"mod\":960},\"end\":{\"dow\":5,\"mod\":1410}}]", "topic": "", "name": "Lampen aan op tijd", "onPayload": "ON", "onPayloadType": "str", "offPayload": "OFF", "offPayloadType": "str", "onlyWhenDark": true, "scheduleRndMax": "0", "sunElevationThreshold": "5", "sunShowElevationInStatus": true, "outputfreq": "output.statechange.startup", "x": 90, "y": 780, "wires": [ [ "e5ed6c2d60779a67" ] ] }, { "id": "e5ed6c2d60779a67", "type": "switch", "z": "6f6248cad1c7cf71", "name": "Zon op of onder", "property": "payload", "propertyType": "msg", "rules": [ { "t": "cont", "v": "ON", "vt": "str" }, { "t": "cont", "v": "OFF", "vt": "str" } ], "checkall": "true", "repair": true, "outputs": 2, "x": 300, "y": 780, "wires": [ [ "c4e709ddfa822186" ], [ "13f5c744d970d57f" ] ] }, { "id": "cf272769ea697503", "type": "comment", "z": "6f6248cad1c7cf71", "name": "Verlichting tijd/zon", "info": "", "x": 110, "y": 740, "wires": [] }, { "id": "b08467d5.010fe8", "type": "server", "name": "Home Assistant", "version": 1, "addon": true, "rejectUnauthorizedCerts": true, "ha_boolean": "y|yes|true|on|home|open", "connectionDelay": true, "cacheJson": true }, { "id": "9973d7461ce905ae", "type": "light-scheduler-settings", "name": "........", "latitude": "............", "longitude": "..........." } ] |
[ Voor 41% gewijzigd door Peet3kabo op 02-11-2021 18:52 ]
Thanks! Echter met light scheduler zie ik niet de optie om met zonsondergang en zonsopgang te werken. Dit is met Bigtimer makkelijk. Echter werkte vanochtend na wat prutsen het uitschakelen wel! Dus ik ga nu hopen dat het met zonsondergang ook eindelijk werkt.
Wil je altijd dezelfde tijd hebben, of wil je echt per dag verschillende waardes aangeven?Boinkie schreef op woensdag 3 november 2021 @ 09:15:
Thanks! Echter met light scheduler zie ik niet de optie om met zonsondergang en zonsopgang te werken. Dit is met Bigtimer makkelijk. Echter werkte vanochtend na wat prutsen het uitschakelen wel! Dus ik ga nu hopen dat het met zonsondergang ook eindelijk werkt.
Ik gebruik voor al mijn tijd gerelateerde dingen schedex, super simpel.
https://flows.nodered.org/node/node-red-contrib-schedex
Je voert jouw locatie in (latitude longitude) en kan dan gewoon sunrise en sunset invoeren of een tijd.
Je kunt dan ook nog een offset aangeven. Ik heb bijvoorbeeld voor lampen een offset van -30 (minuten zijn dat), omdat het altijd al eerder donker is dan de daadwerkelijke sunset.
Je hebt hier overigens ook nog andere opties voor zoals golden hour etc, maar heb me daar nooit in verdiept.
Als je dit kunt lezen, dan werkt mij Signature!
Zit er gewoon in hoor, ik werk namelijk ook gewoon met zon schema's.Boinkie schreef op woensdag 3 november 2021 @ 09:15:
Thanks! Echter met light scheduler zie ik niet de optie om met zonsondergang en zonsopgang te werken. Dit is met Bigtimer makkelijk. Echter werkte vanochtend na wat prutsen het uitschakelen wel! Dus ik ga nu hopen dat het met zonsondergang ook eindelijk werkt.
In de middag/avond gaat de verlichting aan als de zon +5 graden bereikt heeft.
In de ochtend gaat de verlichting alleen aan als de zon nog onder de +5 graden is, gaat uit op tijd of boven de +5 graden.
Werkt perfekt.
[ Voor 3% gewijzigd door Peet3kabo op 03-11-2021 17:38 ]
Elke dag andere tijden kan ook gewoon met light-scheduler, ik heb alleen weekends andere tijden dan doordeweeks maar elke dag is individueel in te stellen.Wachten... schreef op woensdag 3 november 2021 @ 12:32:
[...]
Wil je altijd dezelfde tijd hebben, of wil je echt per dag verschillende waardes aangeven?
Ik gebruik voor al mijn tijd gerelateerde dingen schedex, super simpel.
https://flows.nodered.org/node/node-red-contrib-schedex
Je voert jouw locatie in (latitude longitude) en kan dan gewoon sunrise en sunset invoeren of een tijd.
Je kunt dan ook nog een offset aangeven. Ik heb bijvoorbeeld voor lampen een offset van -30 (minuten zijn dat), omdat het altijd al eerder donker is dan de daadwerkelijke sunset.
Je hebt hier overigens ook nog andere opties voor zoals golden hour etc, maar heb me daar nooit in verdiept.
Ik probeer mij hier een gesproken melding te krijgen op de Google home.
Ik gebruik de onderstaande call service:
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/KCbaumaglz2iJWRIEgr9UJ2b.jpg?f=user_large)
Als ik die ga testen dan hoor ik de google home het bekende pling geluidje maken en dat was het dan ook.
Oftewel ik hoor geen tekst "lampen gaan uit"
Moet er nog iets extra's bij?
In de configuration.yaml van Home Assistant heb ik het onderstaande staan:
Ik gebruik de onderstaande call service:
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/KCbaumaglz2iJWRIEgr9UJ2b.jpg?f=user_large)
Als ik die ga testen dan hoor ik de google home het bekende pling geluidje maken en dat was het dan ook.
Oftewel ik hoor geen tekst "lampen gaan uit"
Moet er nog iets extra's bij?
In de configuration.yaml van Home Assistant heb ik het onderstaande staan:
code:
1
2
3
4
5
| tts: - platform: google_translate language: nl service_name: google_say base_url: http://xxx.xxx.x.xxx:8123 |
Roep je niet de verkeerde call service aan? Jij doet nu google_say. In de docs is de service google_translate_sayetienne001 schreef op donderdag 4 november 2021 @ 22:29:
Ik probeer mij hier een gesproken melding te krijgen op de Google home.
Ik gebruik de onderstaande call service:
[Afbeelding]
Als ik die ga testen dan hoor ik de google home het bekende pling geluidje maken en dat was het dan ook.
Oftewel ik hoor geen tekst "lampen gaan uit"
Moet er nog iets extra's bij?
In de configuration.yaml van Home Assistant heb ik het onderstaande staan:
code:
1 2 3 4 5 tts: - platform: google_translate language: nl service_name: google_say base_url: http://xxx.xxx.x.xxx:8123