Ik zag gisteren dat er een module was die een message stuurt bij het opstarten/initialiseren, wellicht dat dat dan een betere optie is? Dus schedex voor bij "gewoon" gebruik en daarnaast dan een "trigger" van die module wat je gebruikt i.p.v. die huidige inject node.ThinkPadd schreef op maandag 8 oktober 2018 @ 16:14:
[...]
Even door al het HASS > Node-RED geweld heen breken.... Of ben ik de enige die Node-RED zonder HASS gebruikt?
Ben hier nog eens mee bezig geweest. Had hem eerst simpel, door de schedex node een on/off te laten sturen. Nu iets aangepast, zodat hij wat bedrijfszekerder is.
Stel namelijk dat Node-RED uit stond en ik hem ná zonsondergang aanzette, dan zou het licht niet aan gaan (het omslagpunt is dan al geweest en de schedex node doet dan pas bij sunrise weer een actie uitsturen). Nu check ik elke 15min en laat de nodige actie uitvoeren
[Afbeelding]
code:
1 [{"id":"f6ac3650.9fd658","type":"schedex","z":"63eb3286.86effc","name":"","suspended":false,"lat":"jouwlat","lon":"jouwlon","ontime":"sunset","ontopic":"","onpayload":"ON","onoffset":"-10","onrandomoffset":0,"offtime":"sunrise","offtopic":"","offpayload":"OFF","offoffset":"-15","offrandomoffset":0,"mon":true,"tue":true,"wed":true,"thu":true,"fri":true,"sat":true,"sun":true,"x":380,"y":80,"wires":[["c513a2e5.e56cc8"]]},{"id":"f1d697cc.172548","type":"inject","z":"63eb3286.86effc","name":"@15m","topic":"","payload":"info","payloadType":"str","repeat":"900","crontab":"","once":false,"onceDelay":0.1,"x":220,"y":80,"wires":[["f6ac3650.9fd658"]]},{"id":"c513a2e5.e56cc8","type":"switch","z":"63eb3286.86effc","name":"Is sunset?","property":"payload.state","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":550,"y":80,"wires":[["b6f64923.426e4"],["3a365ccb.9b7014"]]},{"id":"b6f64923.426e4","type":"function","z":"63eb3286.86effc","name":"Turn on lights","func":"msg.payload = \"{\\\"scene\\\": \\\"idvanjouwhuescene\\\"}\";\nreturn msg;","outputs":1,"noerr":0,"x":740,"y":60,"wires":[["804b67a3.e37cb8"]]},{"id":"804b67a3.e37cb8","type":"http request","z":"63eb3286.86effc","name":"Send command to bridge","method":"PUT","ret":"txt","url":"http://192.168.6.20/api/JOUWAPIKEY/groups/3/action","tls":"","x":970,"y":80,"wires":[[]]},{"id":"3a365ccb.9b7014","type":"function","z":"63eb3286.86effc","name":"Turn off lights","func":"msg.payload = \"{\\\"on\\\": false}\";\nreturn msg;","outputs":1,"noerr":0,"x":740,"y":100,"wires":[["804b67a3.e37cb8"]]}]
Ik moet alleen even kijken hoe het nu gaat met de offset, wellicht is elk kwartier de boel draaien te traag en moet het vaker.
Even naar mijn eigen situatie kijkende: Dus deze toevoeging is gedaan voor het geval dat je Node-RED 30 seconde voor sunset herstart? Want langer duurt het niet om NR te herstarten toch?ThinkPadd schreef op maandag 8 oktober 2018 @ 16:14:
[...]
Even door al het HASS > Node-RED geweld heen breken.... Of ben ik de enige die Node-RED zonder HASS gebruikt?
Ben hier nog eens mee bezig geweest. Had hem eerst simpel, door de schedex node een on/off te laten sturen. Nu iets aangepast, zodat hij wat bedrijfszekerder is.
Stel namelijk dat Node-RED uit stond en ik hem ná zonsondergang aanzette, dan zou het licht niet aan gaan (het omslagpunt is dan al geweest en de schedex node doet dan pas bij sunrise weer een actie uitsturen). Nu check ik elke 15min en laat de nodige actie uitvoeren
[Afbeelding]
code:
1 [{"id":"f6ac3650.9fd658","type":"schedex","z":"63eb3286.86effc","name":"","suspended":false,"lat":"jouwlat","lon":"jouwlon","ontime":"sunset","ontopic":"","onpayload":"ON","onoffset":"-10","onrandomoffset":0,"offtime":"sunrise","offtopic":"","offpayload":"OFF","offoffset":"-15","offrandomoffset":0,"mon":true,"tue":true,"wed":true,"thu":true,"fri":true,"sat":true,"sun":true,"x":380,"y":80,"wires":[["c513a2e5.e56cc8"]]},{"id":"f1d697cc.172548","type":"inject","z":"63eb3286.86effc","name":"@15m","topic":"","payload":"info","payloadType":"str","repeat":"900","crontab":"","once":false,"onceDelay":0.1,"x":220,"y":80,"wires":[["f6ac3650.9fd658"]]},{"id":"c513a2e5.e56cc8","type":"switch","z":"63eb3286.86effc","name":"Is sunset?","property":"payload.state","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":550,"y":80,"wires":[["b6f64923.426e4"],["3a365ccb.9b7014"]]},{"id":"b6f64923.426e4","type":"function","z":"63eb3286.86effc","name":"Turn on lights","func":"msg.payload = \"{\\\"scene\\\": \\\"idvanjouwhuescene\\\"}\";\nreturn msg;","outputs":1,"noerr":0,"x":740,"y":60,"wires":[["804b67a3.e37cb8"]]},{"id":"804b67a3.e37cb8","type":"http request","z":"63eb3286.86effc","name":"Send command to bridge","method":"PUT","ret":"txt","url":"http://192.168.6.20/api/JOUWAPIKEY/groups/3/action","tls":"","x":970,"y":80,"wires":[[]]},{"id":"3a365ccb.9b7014","type":"function","z":"63eb3286.86effc","name":"Turn off lights","func":"msg.payload = \"{\\\"on\\\": false}\";\nreturn msg;","outputs":1,"noerr":0,"x":740,"y":100,"wires":[["804b67a3.e37cb8"]]}]
Ik moet alleen even kijken hoe het nu gaat met de offset, wellicht is elk kwartier de boel draaien te traag en moet het vaker.
Dat kan, maar het issue hoeft niet in Node-RED te zitten natuurlijk. De Hue bridge kan ook offline zijn.RobertMe schreef op maandag 8 oktober 2018 @ 16:57:
[...]
Ik zag gisteren dat er een module was die een message stuurt bij het opstarten/initialiseren, wellicht dat dat dan een betere optie is? Dus schedex voor bij "gewoon" gebruik en daarnaast dan een "trigger" van die module wat je gebruikt i.p.v. die huidige inject node.
In zekere zin heb je gelijk, maar de originele constructie was meer een 'one shot'. Zie ook mijn reactie hierboven, Node-RED hoeft niet perse het issue te zijn. Kan ook netwerkproblemen zijn, Hue bridge offline geweest etc. Ik maak het het liefst zo foolproof mogelijklolgast schreef op maandag 8 oktober 2018 @ 17:30:
[...]
Even naar mijn eigen situatie kijkende: Dus deze toevoeging is gedaan voor het geval dat je Node-RED 30 seconde voor sunset herstart? Want langer duurt het niet om NR te herstarten toch?
@ThinkPad Ik zit te denken. Je hebt ook een node, looptimer ofzoiets heet die. Dan kun je instellen dat de actie elke 5 minuten oid herhaalt moet worden, met een maximum van 5 (voorbeeld) keer. Misschien een mooiere oplossing?
Loop je overigens sowieso niet tegen het probleem aan dat als je de lampen zelf aanpast, dat ze nu dan weer elke 15 minuten worden aangepast naar de standaard scene (die je vanuit NR zet). Of controleert de funcion node eerst of de lampen al aan zijn?ThinkPadd schreef op maandag 8 oktober 2018 @ 18:48:
[...]
Dat kan, maar het issue hoeft niet in Node-RED te zitten natuurlijk. De Hue bridge kan ook offline zijn.
[...]
In zekere zin heb je gelijk, maar de originele constructie was meer een 'one shot'. Zie ook mijn reactie hierboven, Node-RED hoeft niet perse het issue te zijn. Kan ook netwerkproblemen zijn, Hue bridge offline geweest etc. Ik maak het het liefst zo foolproof mogelijk
En hoewel het een oplossing is, zou ik er zelf waarschijnlijk niet snel voor kiezen. O.a. gezien het mogelijke probleem hierboven. Maar denk dat de issues die het oplost (bridge offline, NR herstart) niet zo vaak voorkomen dat het nodig is.
Dan heb ik nog steeds het issue dat als Node-RED gestart wordt ná zonsondergang, er geen trigger komt?lolgast schreef op maandag 8 oktober 2018 @ 18:51:
@ThinkPad Ik zit te denken. Je hebt ook een node, looptimer ofzoiets heet die. Dan kun je instellen dat de actie elke 5 minuten oid herhaalt moet worden, met een maximum van 5 keer. Misschien een mooiere oplossing?
Is niet aan de orde, de buitenverlichting staat altijd op vaste helderheid.RobertMe schreef op maandag 8 oktober 2018 @ 18:52:
[...]
Loop je overigens sowieso niet tegen het probleem aan dat als je de lampen zelf aanpast, dat ze nu dan weer elke 15 minuten worden aangepast naar de standaard scene (die je vanuit NR zet). Of controleert de funcion node eerst of de lampen al aan zijn?
En hoewel het een oplossing is, zou ik er zelf waarschijnlijk niet snel voor kiezen. O.a. gezien het mogelijke probleem hierboven. Maar denk dat de issues die het oplost (bridge offline, NR herstart) niet zo vaak voorkomen dat het nodig is.
In mijn ervaring heb ik toch nog wel eens dat dat soort dingen optreden, beetje knullig als de buitenverlichting dan niet aan gaat. Is ook stukje anti-inbraakvoorziening
Ja dat is waar. Ik was alweer even vergeten dat dat de oorzaak van de ‘discussie’ wasThinkPadd schreef op maandag 8 oktober 2018 @ 18:55:
[...]
Dan heb ik nog steeds het issue dat als Node-RED gestart wordt ná zonsondergang, er geen trigger komt?
[...]
...

Maar staat NR zo vaak uit dan? Want als je NR herstart ná de sunset zou de verlichting al aan moeten zijn en als je hem ervoor herstart moet het zoals gezegd wel heel precies vlak voor sunset zijn. Sowieso duurt de event een minuut lang, dus als NR gedurende de minuut van sunset opstart dan triggert hij alsnog.
En dan zou die looptimer dus voldoende moeten zijn
Begrijp me niet verkeerd, ik doe dingen ook graag foolproof, maar ik kan mezelf nog niet overtuigen om het ook over te nemen
[ Voor 3% gewijzigd door lolgast op 08-10-2018 19:03 ]
Anoniem: 477788
Ik vind het juist wel een elegante oplossing, simpel en doeltreffend. Uiteraard is het niet handig als je ‘handmatig’ tussen scenes wisselt. Als dat niet aan de orde is zie ik eigen geen reden om niet zo op te lossen.
Ik zou alleen die schedex eruit halen en de daylight sensor van de bridge uitlezen en de switch node met de aan/uit nodes vervangen door een function node, maar dat heeft met voorkeur te maken en niet zozeer met de oplossing.
NeeThinkPadd schreef op maandag 8 oktober 2018 @ 16:14:
[...]
Even door al het HASS > Node-RED geweld heen breken.... Of ben ik de enige die Node-RED zonder HASS gebruikt?
Voor wat betreft een restart:Anoniem: 477788 schreef op maandag 10 september 2018 @ 17:17:
[...]
Als je NodeRED hebt draaien zet je langzaam (of snel) zaken over van Home Assistant naar NodeRED en .. verwijder je Home Assistantwant die heb je dan waarschijnlijk niet meer nodig.
Precies wat ik ook dacht. Maar als ik NR persé iets wil laten doen/checken na een restart dan gebruik ik de 'startup-trigger' node.lolgast schreef op maandag 8 oktober 2018 @ 19:01:
[...]
Maar staat NR zo vaak uit dan? Want als je NR herstart ná de sunset zou de verlichting al aan moeten zijn
Zelf gebruik ik bigtimer in combinatie met Node Red.ThinkPadd schreef op maandag 8 oktober 2018 @ 16:14:
[...]
Even door al het HASS > Node-RED geweld heen breken.... Of ben ik de enige die Node-RED zonder HASS gebruikt?
Ben hier nog eens mee bezig geweest. Had hem eerst simpel, door de schedex node een on/off te laten sturen. Nu iets aangepast, zodat hij wat bedrijfszekerder is.
Stel namelijk dat Node-RED uit stond en ik hem ná zonsondergang aanzette, dan zou het licht niet aan gaan (het omslagpunt is dan al geweest en de schedex node doet dan pas bij sunrise weer een actie uitsturen). Nu check ik elke 15min en laat de nodige actie uitvoeren
[Afbeelding]
Ik moet alleen even kijken hoe het nu gaat met de offset, wellicht is elk kwartier de boel draaien te traag en moet het vaker.
Dit vind ik wel een uitgebreide timer.
Heb er wel wat issues in het begin mee gehad maar het werkt nu wel fijn.
Ben bang dat het ook komt door mijn onervarenheid.
Ik heb het nu thuis werken met de voor- en achterlampen waarbij de achterlampen alleen aangaan wanneer we thuis zijn, en uitgaan wanneer we weg gaan. (aanwezigheid op MAC adres via router)
Dit ook in combinatie met zonsondergang en dergelijke.
@ThinkPad Bigtimer kan je ook instellen om na deployen een keer output te laten geven, dan zit je altijd goed.
27x320Wp LG | 7.4 kW W/W warmtepomp | 2024 Model 3 Performance+FSD | 2019 Zoë 40kWh Star Wars edition
Anoniem: 477788
@thespeed @Tassadar32
Wat missen jullie dan in de 'bestaande' timer? Ik heb zelf nog geen andere timer nodig gehad dan de 'standaard' (de inject node).
Kan me zelf ook zo geen reden indenken waarom ik een andere timer nodig zou hebben dan de standaard dus ben erg benieuwd waarvoor jullie hem dan gebruiken.
Wat missen jullie dan in de 'bestaande' timer? Ik heb zelf nog geen andere timer nodig gehad dan de 'standaard' (de inject node).
Kan me zelf ook zo geen reden indenken waarom ik een andere timer nodig zou hebben dan de standaard dus ben erg benieuwd waarvoor jullie hem dan gebruiken.
@Anoniem: 477788 Bigtimer kan je laten afgaan op bepaalde tijden, met random afwijking, bepaalde dagen van de week, zonsopkomst/ondergang etc.
27x320Wp LG | 7.4 kW W/W warmtepomp | 2024 Model 3 Performance+FSD | 2019 Zoë 40kWh Star Wars edition
Anoniem: 477788
Ik zie echt niet in waarom je een flow wilt starten op een specifiek tijdstip/zonsondergang, vs elke x seconden/minuten. Er valt wat te zeggen voor het starten van een flow bij het opstarten van NR, maar dat kan met de standaard timer ook.Tassadar32 schreef op dinsdag 9 oktober 2018 @ 13:05:
@Anoniem: 477788 Bigtimer kan je laten afgaan op bepaalde tijden, met random afwijking, bepaalde dagen van de week, zonsopkomst/ondergang etc.
Ik zou de voorwaarden logica (bijvoorbeeld is de zon onder, of is het tussen x-uur en y-uur) of wat voor voorwaarde dan ook los van de timer zien. Mijn inziens worden je flows daar veel robuuster van, just omdat je niet afhankelijk bent van een specifiek tijdstip.
Maar goed, ieder zijn eigen oplossing. Is ook het voordeel van NodeRED.
Zoals ThinkPad hierboven had, met buitenverlichting, is al iets waarbij je de flow wil starten bij zonsopkomst/zonsondergang. Daarnaast heb ik hier ook creatieve dingen gelezen als "doe 's avonds altijd wat sfeerverlichting aan in de keuken, totdat iemand binnen loopt en verhoog dan de helderheid". Dat zijn voorbeelden van dingen die je triggert op basis van zonsopkomst/zonsondergang. En uiteraard kun je dat ook doen (in combinatie) met een lux sensor. Maar vraag is of je vervolgens met slecht weer overdag alsnog de buitenverlichting aan wilt doen, bv. Lijkt mij toch dat je overdag iets op de energie wilt sparen en dus hoogstens 30 minuten voor zonsondergang of whatever.Anoniem: 477788 schreef op dinsdag 9 oktober 2018 @ 13:45:
[...]
Ik zie echt niet in waarom je een flow wilt starten op een specifiek tijdstip/zonsondergang, vs elke x seconden/minuten. Er valt wat te zeggen voor het starten van een flow bij het opstarten van NR, maar dat kan met de standaard timer ook.
Ik zou de voorwaarden logica (bijvoorbeeld is de zon onder, of is het tussen x-uur en y-uur) of wat voor voorwaarde dan ook los van de timer zien. Mijn inziens worden je flows daar veel robuuster van, just omdat je niet afhankelijk bent van een specifiek tijdstip.
Maar goed, ieder zijn eigen oplossing. Is ook het voordeel van NodeRED.
Maar zoals ThinkPad het nu oploste is bigtimer (of schedex) weer niet nodig, als je elke X minuten triggert en dan een time range node erachter hangt om te filteren (en ook de time range node heeft ondersteuning voor zonsopkomst, zonsondergang etc).
Met 'time range node' doel je op deze ? Die moet ik net als de schedex apart installeren. De schedex gebruik ik overigens ook precies op die manier nu. Ik stop er een 'info' payload in, daarmee spuugt de schedex de tijden e.d. uit en ook de state, die overeenkomt met de status van sunset.RobertMe schreef op dinsdag 9 oktober 2018 @ 14:09:
[...]
Maar zoals ThinkPad het nu oploste is bigtimer (of schedex) weer niet nodig, als je elke X minuten triggert en dan een time range node erachter hangt om te filteren (en ook de time range node heeft ondersteuning voor zonsopkomst, zonsondergang etc).
Wel een leuke discussie trouwens, grappig om ieders standpunt te zien
Die bedoel ik inderdaad.
Volgens mij ging de discussie over "de standaard inject node is goed genoeg, want waarom zou je iets met sunset/sundown doen". Maar daar zijn dus wel een aantal voorbeelden van, zoals dus in jouw geval de tuinverlichting schakelen. Of je het vervolgens met de time range switch of bigtimer of schedex oplost maakt niet veel uit. Triggeren/switchen/... op basis van "de zon is op" / "is de zon op" is iets wat vaker voor kan komen/meerdere use cases heeft.Die moet ik net als de schedex apart installeren. De schedex gebruik ik overigens ook precies op die manier nu. Ik stop er een 'info' payload in, daarmee spuugt de schedex de tijden e.d. uit en ook de state, die overeenkomt met de status van sunset.
Inderdaad, gelukkig zijn er ook meerdere wegen die naar Rome leiden waardoor er voor ieder wat wils is.Wel een leuke discussie trouwens, grappig om ieders standpunt te zien
Anoniem: 477788
Niet helemaal. Maar dat kan aan mijn manier van uitleggen/vragen gelegen hebben. Ik zie het nut van een timer met zonopkomst/zonsondergang niet.RobertMe schreef op dinsdag 9 oktober 2018 @ 15:56:
[...]
Volgens mij ging de discussie over "de standaard inject node is goed genoeg, want waarom zou je iets met sunset/sundown doen". Maar daar zijn dus wel een aantal voorbeelden van, zoals dus in jouw geval de tuinverlichting schakelen. Of je het vervolgens met de time range switch of bigtimer of schedex oplost maakt niet veel uit. Triggeren/switchen/... op basis van "de zon is op" / "is de zon op" is iets wat vaker voor kan komen/meerdere use cases heeft.
Globaal gezien werken mijn flows het volgende:
[ bepaal de gewenste stand ] -> [ bepaal welke wijzigingen er nodig zijn ] -> [ voer wijzigingen uit ]
Als we het voorbeeld van @ThinkPad nemen, zou ik dus het volgende hebben:
- bepalen of de lamp aan of uit moet staan (aan de hand van lux, zon stand of iets anders)
- bepalen of ik de lamp aan/uit moeten zetten, aan de hand van de huidige stand van de lamp wat ik zal opvragen bij de Hue Bridge.
- stuur het verzoek om de lamp in de juiste stand te zetten naar de Hue Bridge
Wat er dan ook gebeurd, vaak buiten mijn invloed zoals een internet hiccup op het verkeerde moment, heeft dan geen invloed op mijn flow (nou ja.. tot de volgende keer dat hij draait).
Mijn inziens maak je met dit soort constructies je flows en indirect dus je gehele oplossing veel robuuster dan met een specifieke timer die op een gezette tijd draait. Al vergt het wel meer (denk)werk.
Inmiddels heb ik wat dingen kunnen omzetten van Home Assistant naar Node-red. Loop nu alleen toch een tweetal dingen aan:
1. Ik heb nu een flow gemaakt waarmee de keukenlamp aan gaat als ik ga werken. Rond 06.30 kom ik in de keuken en moet dus de lamp uit gaan. Zodra ik naar het werk ben, moet de lamp weer uit. Dit geldt hetzelfde voor m'n vriendin. Echter blijven we nu constant de melding krijgen dat de keukenlamp uit gaat. Ik vermoed door de 5 minuten timer?

2. Hoe kan ik dit het beste vereenvoudigen? De actie, deur / raam, open / dicht is namelijk altijd hetzelfde. Alleen wil ik een bericht van welke raam of deur open of dicht gaat. Heeft iemand hier een duidelijk voorbeeld van? Vind dit namelijk erg omslachtig. Vooral omdat ik inmiddels 16 deur / raam sensoren heb, waardoor het niet meer overzichtelijk is.
1. Ik heb nu een flow gemaakt waarmee de keukenlamp aan gaat als ik ga werken. Rond 06.30 kom ik in de keuken en moet dus de lamp uit gaan. Zodra ik naar het werk ben, moet de lamp weer uit. Dit geldt hetzelfde voor m'n vriendin. Echter blijven we nu constant de melding krijgen dat de keukenlamp uit gaat. Ik vermoed door de 5 minuten timer?

2. Hoe kan ik dit het beste vereenvoudigen? De actie, deur / raam, open / dicht is namelijk altijd hetzelfde. Alleen wil ik een bericht van welke raam of deur open of dicht gaat. Heeft iemand hier een duidelijk voorbeeld van? Vind dit namelijk erg omslachtig. Vooral omdat ik inmiddels 16 deur / raam sensoren heb, waardoor het niet meer overzichtelijk is.

@Thoit Je kan subflows maken om complexe logica die je herhaalt te hergebruiken. Ook kan je de melding baseren op de info uit de originele msg. Alles na de HA change node kan je dan hetzelfde laten. Ook kan je dan alle triggers aan een enkele flow koppelen.
27x320Wp LG | 7.4 kW W/W warmtepomp | 2024 Model 3 Performance+FSD | 2019 Zoë 40kWh Star Wars edition
@Thoit, voor wat betreft probleem nr 2, je kan in die 1e node meerdere deuren/ramen laten monitoren in slechts 1 node. Je kan er bij entity ID namelijk meerdere intypen, gescheiden door een komma, bijv. 'binary_sensor.voordeur,binary_sensor.schuurdeur,binary_sensor.achterdeur'.
En dan kan je evt. ook nog bij 'halt if state' 'off' intypen, zodat enkel het open gaan van deuren de sequence in gang zet. Welke deur precies open gegegaan is, staat in 'msg.topic'.
Klein dingetje om op te letten (er vanuitgaande dat je Xiaomi gebruikt), is dat de state ook 'unavailable' kan zijn. Ik heb als 2e node daarom nog een switch node om te kijken of de state 'on' of 'unavailable' is. Dat laatste kan overigens ook interessant zijn om een aparte melding van te krijgen, om een beeld te krijgen van hoe vaak dat gebeurt.
En dan kan je evt. ook nog bij 'halt if state' 'off' intypen, zodat enkel het open gaan van deuren de sequence in gang zet. Welke deur precies open gegegaan is, staat in 'msg.topic'.
Klein dingetje om op te letten (er vanuitgaande dat je Xiaomi gebruikt), is dat de state ook 'unavailable' kan zijn. Ik heb als 2e node daarom nog een switch node om te kijken of de state 'on' of 'unavailable' is. Dat laatste kan overigens ook interessant zijn om een aparte melding van te krijgen, om een beeld te krijgen van hoe vaak dat gebeurt.
[ Voor 11% gewijzigd door DeadMetal op 11-10-2018 18:22 ]
Mijn kennis is onvoldoende om precies te snappen wat je nu allemaal bedoeldTassadar32 schreef op donderdag 11 oktober 2018 @ 13:32:
@Thoit Je kan subflows maken om complexe logica die je herhaalt te hergebruiken. Ook kan je de melding baseren op de info uit de originele msg. Alles na de HA change node kan je dan hetzelfde laten. Ook kan je dan alle triggers aan een enkele flow koppelen.
Meerdere apparaten in de eerste nodes deed die niks mee. Heb vanalles geprobeerd met haakjes maar er gebeurde niks helaas. De Halt if state off heb ik inmiddels toegevoegd. Ik kan alleen een msg payload terugvindenDeadMetal schreef op donderdag 11 oktober 2018 @ 16:01:
@Thoit, voor wat betreft probleem nr 2, je kan in die 1e node meerdere deuren/ramen laten monitoren in slechts 1 node. Je kan er bij entity ID namelijk meerdere intypen, gescheiden door een komma, bijv. 'binary_sensor.voordeur,binary_sensor.schuurdeur,binary_sensor.achterdeur'.
En dan kan je evt. ook nog bij 'halt if state' 'off' intypen, zodat enkel het open gaan van deuren de sequence in gang zet. Welke deur precies open gegegaan is, staat in 'msg.topic'.
Klein dingetje om op te letten (er vanuitgaande dat je Xiaomi gebruikt), is dat de state ook 'unavailable' kan zijn. Ik heb als 2e node daarom nog een switch node om te kijken of de state 'on' of 'unavailable' is. Dat laatste kan overigens ook interessant zijn om een aparte melding van te krijgen, om een beeld te krijgen van hoe vaak dat gebeurt.
De rode nodes in dit screenshot zijn subflows:Thoit schreef op vrijdag 12 oktober 2018 @ 07:54:
Mijn kennis is onvoldoende om precies te snappen wat je nu allemaal bedoeldHeb je een voorbeeld toevallig?

en dit is de inhoud van de subflow 'Voordeur':

Ik ben benieuwd waarom je ervoor gekozen hebt om de mqtt berichten uit te lezen in node-red.DeadMetal schreef op zaterdag 15 september 2018 @ 21:06:
Werkt fantastisch![]()
[Afbeelding]
Het kan overigens nog iets makkelijker (zie screenshot), door niet de normale mqtt node te gebruiken, maar door module mqtt-json te installeren. Die vervangt de json string in de payload door een json object, en kan zelfs meteen de hele payload vervangen door 1 subelement in de payload, dus dan heb je de regex niet meer nodig.
1e node leest inkomende berichten op zigbee2mqtt/~~~[whatever], zet payload om naar json object en vervangt de hele payload door het 'contact' element (maakt de sensor contact met de magneet). 2e node = switch node, die verwijdert zigbee2mqtt uit de topic naam zodat alleen de naam van de deur overblijft, en vervangt de payload door leesbare namen (open en dicht ipv false en true).
Het fake inject element is om te zien of een 'voordeur dicht' bericht erdoorheen zou komen terwijl de voordeur al dicht zat, is niet het geval.
Ik laat ze uitlezen in HA, en heb in mijn node-red flows de bekende home-assistant "changed-state event" node hangen. Dit geeft me de mogelijkheid om ook de vorige state van een sensor uit te lezen, want die houdt HA netjes bij.
Zie je voordelen bij het uitlezen van de mqtt berichten door NR ipv HA?
Omdat je dan de afhankelijkheid van HA wegneemtKaspers schreef op zaterdag 13 oktober 2018 @ 12:09:
[...]
Ik ben benieuwd waarom je ervoor gekozen hebt om de mqtt berichten uit te lezen in node-red.
Ik laat ze uitlezen in HA, en heb in mijn node-red flows de bekende home-assistant "changed-state event" node hangen. Dit geeft me de mogelijkheid om ook de vorige state van een sensor uit te lezen, want die houdt HA netjes bij.
Zie je voordelen bij het uitlezen van de mqtt berichten door NR ipv HA?
De afhankelijkheid met HA ja, en omdat de stabiliteit van mijn PI en de koppeling tussen NR en HA op dat moment te wensen overliet, maar dat lijkt verholpen. Momenteel heb ik nog steeds de setup die @Kaspers noemt in gebruik, HA leest de MQTT-berichten uit, NR leert de status van HA.
Gisteren kwam mijn nieuwe module met externe antenne voor zigbee2mqtt binnen, hopelijk heeft die wel voldoende bereik voor alle sensoren in huis (de usb-stick heeft dat niet, de Xiaomi gateway wel). Als dat goed werkt, ga ik toch nog eens kijken of ik dit met enkel NR kan oplossen. En inderdaad, de huidige status vergelijken met de vorige status kan nuttig zijn. Maar aangezien NR de bestaande/oude status al zou kunnen weten/onthouden, is daar vast wel wat op te verzinnen.
Gisteren kwam mijn nieuwe module met externe antenne voor zigbee2mqtt binnen, hopelijk heeft die wel voldoende bereik voor alle sensoren in huis (de usb-stick heeft dat niet, de Xiaomi gateway wel). Als dat goed werkt, ga ik toch nog eens kijken of ik dit met enkel NR kan oplossen. En inderdaad, de huidige status vergelijken met de vorige status kan nuttig zijn. Maar aangezien NR de bestaande/oude status al zou kunnen weten/onthouden, is daar vast wel wat op te verzinnen.
[ Voor 14% gewijzigd door DeadMetal op 13-10-2018 16:10 ]
Je kunt natuurlijk altijd de nieuwe status in een flow variable zetten als "oude waarde". Dus bv een change node met 2 stappen. Eerst Set msg.old = flow.oldFoo en dan Set flow.oldFoo = msg.payload. Uiteraard krijg je dan wel een overvloed aan extra context variabelen. Daardoor kan het weer interessant worden om een custom node ervoor te gebruiken/maken.DeadMetal schreef op zaterdag 13 oktober 2018 @ 15:56:
Maar aangezien NR de bestaande/oude status al zou kunnen weten/onthouden, is daar vast wel wat op te verzinnen.
edit:
Bij custom node dacht ik dus eerst aan zelf een module maken. Maar ik denk dat het zelfs kan met een sub flow die alleen een change node bevat. Flow context is voor subflows ook weer apart. Dus dan krijg je ook niet zo'n berg aan context variabelen. Alhoewel ik niet durf te zeggen of elke instantie/gebruik van een subflow (node) ook zijn eigen context heeft of dat die weer gedeeld is.
Bij custom node dacht ik dus eerst aan zelf een module maken. Maar ik denk dat het zelfs kan met een sub flow die alleen een change node bevat. Flow context is voor subflows ook weer apart. Dus dan krijg je ook niet zo'n berg aan context variabelen. Alhoewel ik niet durf te zeggen of elke instantie/gebruik van een subflow (node) ook zijn eigen context heeft of dat die weer gedeeld is.
Zelf heb ik gisteren een startje gemaakt om een module te maken voor Denon Heos (mijn versterker heeft dit). En programmeren voor Node-RED is vrij eenvoudig (in ieder geval voor mij als programmeur. Ken JavaScript wel, maar nog nooit gewerkt met NodeJS).
[ Voor 18% gewijzigd door RobertMe op 13-10-2018 18:36 ]
Idealiter zou ik inderdaad een module hebben waarin je objecten kan definiëren (voordeur, achterdeur, etc) die de mogelijkheid biedt om een waarde in op te slaan of uit te lezen, maar die kan ik niet vinden. Tenzij je daarvoor een externe database wilt gebruiken maar dat is onnodig complex.
Ik ga het waarschijnlijk oplossen zoals jij zegt: voor het overschrijven van de waarde van de variabele, eerst de bestaande waarde uitlezen en in de msg opslaan.
Ik ga het waarschijnlijk oplossen zoals jij zegt: voor het overschrijven van de waarde van de variabele, eerst de bestaande waarde uitlezen en in de msg opslaan.
Welke module met externe antenne heb je binnen gekregen?DeadMetal schreef op zaterdag 13 oktober 2018 @ 15:56:
Gisteren kwam mijn nieuwe module met externe antenne voor zigbee2mqtt binnen, hopelijk heeft die wel voldoende bereik voor alle sensoren in huis (de usb-stick heeft dat niet, de Xiaomi gateway wel). Als dat goed werkt, ga ik toch nog eens kijken of ik dit met enkel NR kan oplossen. En inderdaad, de huidige status vergelijken met de vorige status kan nuttig zijn. Maar aangezien NR de bestaande/oude status al zou kunnen weten/onthouden, is daar vast wel wat op te verzinnen.
Anoniem: 188103
Ik probeer mijn httpstatic folder te activeren in mijn settings.js file, maar bij het surfen naar het adres krijg ik steeds: Cannot GET /public.
De public map werd aangemaakt en staat in /home/pi/.node-red/public
De regel in de settingsfile werd dus naar deze locatie aangepast en ge-uncommented.
Ik weet niet wat ik fout doe...
De pi herstarten na het veranderen geeft geen resultaat.
De public map werd aangemaakt en staat in /home/pi/.node-red/public
De regel in de settingsfile werd dus naar deze locatie aangepast en ge-uncommented.
Ik weet niet wat ik fout doe...
De pi herstarten na het veranderen geeft geen resultaat.
Hier ook. Persoonlijk zie ik de toevoeging van HASS niet, mijn doel is automatiseren en niet echt een overzicht met knopjes die ik aan/uit kan zetten. Automatiseren vind ik met NR makkelijker. Uit/aan zetten doe ik met homekit als het niet automatisch is gegaan. Prachtig stuk software vind ik en werkt als een malle.ThinkPadd schreef op maandag 8 oktober 2018 @ 16:14:
[...]
Even door al het HASS > Node-RED geweld heen breken.... Of ben ik de enige die Node-RED zonder HASS gebruikt?
Voor die schedex heb je geen inject node nodig, dat is een beetje het doel van die node, scheduled zelf op de tijden die meegeeft. Als je daar iets heen stuurt, dan is dat per definitie true/on (tenzij off). dus overschrijf je de schedule:had hem eerst simpel, door de schedex node een on/off te laten sturen. Nu iets aangepast, zodat hij wat bedrijfszekerder is.
De info inspector heeft vaak belangrijke informatieOn:
Triggers manual on mode and causes Schedex to emit the configured on event. Manual mode is reset when the next on or off time is reached
Maar (deze discussie heb ik op vorige pagina's al gevoerdz1rconium schreef op maandag 15 oktober 2018 @ 22:21:
[...]
Voor die schedex heb je geen inject node nodig, dat is een beetje het doel van die node, scheduled zelf op de tijden die meegeeft. Als je daar iets heen stuurt, dan is dat per definitie true/on (tenzij off). dus overschrijf je de schedule:
[...]
De info inspector heeft vaak belangrijke informatie
OopsThinkPadd schreef op dinsdag 16 oktober 2018 @ 10:16:
[...]
Maar (deze discussie heb ik op vorige pagina's al gevoerd) dan loop ik er tegen aan dat hij volgens mij na een herstart van Node-RED geen trigger afgeeft (het trigger moment is dan al geweest immers) + als ik een netwerkhikje heb (Hue bridge niet bereikbaar), dan triggert hij, maar gaat de verlichting bijv. niet aan. De huidige oplossing vind ik wat bedrijfszekerder.
Voor het storen van wat key/values is json-db-node-red handig, de waardes haal je elke x seconden op, kun je de boel persistent mee maken. Ook voor een herstart van je device/node-red
Misschien heb je die json-db module sinds 0.19 helemaal niet meer nodig, via een configuratie-aanpassing kan NR de status van al zijn variabelen namelijk op disk in plaats van in het geheugen opslaan. Dan wordt het bewaard na een reboot. Zie 'persistent context':
https://nodered.org/blog/2018/08/14/version-0-19-released
https://nodered.org/blog/2018/08/14/version-0-19-released
@jossie67 als die Zigbee-module goed blijkt te werken met verbeterd bereik, kom ik er uitgebreid op terugjossie67 schreef op zaterdag 13 oktober 2018 @ 22:08:
[...]
Welke module met externe antenne heb je binnen gekregen?
[ Voor 21% gewijzigd door DeadMetal op 16-10-2018 12:53 ]
//offtopic welke heb je besteld? En geeft dit duidelijke verbetering ? Net zo simpel te flashen ?DeadMetal schreef op zaterdag 13 oktober 2018 @ 15:56:
Gisteren kwam mijn nieuwe module met externe antenne voor zigbee2mqtt binnen, hopelijk heeft die wel voldoende bereik voor alle sensoren in huis (de usb-stick heeft dat niet, de Xiaomi gateway wel).
EDIT : Sorry, vraag is net gesteld

[ Voor 4% gewijzigd door MarFan op 16-10-2018 15:33 ]
Pana WC12H9E8 / 1000L
ik probeer al de hele middag mijn ikea led lights aanzetten in NR dmv zigbee2mqtt

ik kom maar geen stap verder, ik weet het format moet json zijn. Maar dat lukt volgens mij niet helemaal
wie helpt mij een beetje in de goede richting

code:
1
| [{"id":"57077902.fd17e8","type":"mqtt out","z":"c0c442ed.f6466","name":"Ikeabedlights","topic":"zigbee2mqtt/IkeaLedbed_jos/set","qos":"","retain":"","broker":"3da4d2c3.4bf8fe","x":730,"y":180,"wires":[]},{"id":"3722a942.095486","type":"inject","z":"c0c442ed.f6466","name":"On","topic":"zigbee2mqtt/IkeaLedbed_jos","payload":"{\"state\": \"ON\"}","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":170,"y":140,"wires":[["57077902.fd17e8"]]},{"id":"71a2f5ae.5735dc","type":"inject","z":"c0c442ed.f6466","name":"Off","topic":"","payload":"{\"brightness\": 100, \"color\": \"warm\"}","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":170,"y":180,"wires":[["57077902.fd17e8"]]},{"id":"a1fe9e7e.9aec9","type":"debug","z":"c0c442ed.f6466","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":720,"y":300,"wires":[]},{"id":"7dc054ca.444dfc","type":"mqtt in","z":"c0c442ed.f6466","name":"IkeaBed_jos","topic":"zigbee2mqtt/IkeaLedbed_jos/set","qos":"2","broker":"3da4d2c3.4bf8fe","x":160,"y":300,"wires":[["a1fe9e7e.9aec9"]]},{"id":"8cc5d447.201f68","type":"inject","z":"c0c442ed.f6466","name":"100 Warm","topic":"","payload":"{\"brightness\": 100, \"color\": \"warm\"}","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":180,"y":220,"wires":[["57077902.fd17e8"]]},{"id":"3da4d2c3.4bf8fe","type":"mqtt-broker","z":"","name":"local","broker":"localhost","port":"1883","clientid":"","usetls":false,"verifyservercert":true,"compatmode":false,"keepalive":"15","cleansession":true,"birthTopic":"","birthQos":"0","birthRetain":null,"birthPayload":"","closeTopic":"","closePayload":"","willTopic":"","willQos":"0","willRetain":null,"willPayload":""}] |
ik kom maar geen stap verder, ik weet het format moet json zijn. Maar dat lukt volgens mij niet helemaal
wie helpt mij een beetje in de goede richting
[ Voor 86% gewijzigd door jossie67 op 17-10-2018 14:11 ]
@jossie67 Waarschijnlijk heeft het er mee te maken welk commando er verwacht wordt om de lampen in te schakelen.
Verder: Je hoeft niet in JSON te sturen
Je kunt gewoon 'ON' sturen, als dat is waar de lampen naar luisteren. Ik stuur bijvoorbeeld gewoon true/false boolean waardes. Werkt prima
Verder: Je hoeft niet in JSON te sturen
Je kan een service aftrappen "Turn on" met als data de entiteit. Bij mij bijv. {"entity_id": "light.ikea_of_sweden_tradfri_bulb_e27_w_opal_1000lm_fecc191d_1" }jossie67 schreef op woensdag 17 oktober 2018 @ 14:08:
ik probeer al de hele middag mijn ikea led lights aanzetten in NR dmv zigbee2mqtt
[Afbeelding]
code:
1 [{"id":"57077902.fd17e8","type":"mqtt out","z":"c0c442ed.f6466","name":"Ikeabedlights","topic":"zigbee2mqtt/IkeaLedbed_jos/set","qos":"","retain":"","broker":"3da4d2c3.4bf8fe","x":730,"y":180,"wires":[]},{"id":"3722a942.095486","type":"inject","z":"c0c442ed.f6466","name":"On","topic":"zigbee2mqtt/IkeaLedbed_jos","payload":"{\"state\": \"ON\"}","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":170,"y":140,"wires":[["57077902.fd17e8"]]},{"id":"71a2f5ae.5735dc","type":"inject","z":"c0c442ed.f6466","name":"Off","topic":"","payload":"{\"brightness\": 100, \"color\": \"warm\"}","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":170,"y":180,"wires":[["57077902.fd17e8"]]},{"id":"a1fe9e7e.9aec9","type":"debug","z":"c0c442ed.f6466","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":720,"y":300,"wires":[]},{"id":"7dc054ca.444dfc","type":"mqtt in","z":"c0c442ed.f6466","name":"IkeaBed_jos","topic":"zigbee2mqtt/IkeaLedbed_jos/set","qos":"2","broker":"3da4d2c3.4bf8fe","x":160,"y":300,"wires":[["a1fe9e7e.9aec9"]]},{"id":"8cc5d447.201f68","type":"inject","z":"c0c442ed.f6466","name":"100 Warm","topic":"","payload":"{\"brightness\": 100, \"color\": \"warm\"}","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":180,"y":220,"wires":[["57077902.fd17e8"]]},{"id":"3da4d2c3.4bf8fe","type":"mqtt-broker","z":"","name":"local","broker":"localhost","port":"1883","clientid":"","usetls":false,"verifyservercert":true,"compatmode":false,"keepalive":"15","cleansession":true,"birthTopic":"","birthQos":"0","birthRetain":null,"birthPayload":"","closeTopic":"","closePayload":"","willTopic":"","willQos":"0","willRetain":null,"willPayload":""}]
ik kom maar geen stap verder, ik weet het format moet json zijn. Maar dat lukt volgens mij niet helemaal
wie helpt mij een beetje in de goede richting
@Thoit wat jij schrijft klinkt alsof je met HA wilt communiceren ("turn_on")? Terwijl @jossie67 het zonder HA maar met Zigbee2MQTT lijkt te doen. Ik weet het antwoord helaas niet, ik gebruik Zigbee2MQTT enkel om binnenkomende signalen af te handelen (sensoren, knoppen), niet om juist vanuit NR weer commando's terug te sturen.
[ Voor 3% gewijzigd door DeadMetal op 18-10-2018 13:24 ]
Klopt ik wil automations afhandelen in NR, uiteindelijk wil ik een wakeup-light van makenDeadMetal schreef op donderdag 18 oktober 2018 @ 13:24:
@Thoit wat jij schrijft klinkt alsof je met HA wilt communiceren ("turn_on")? Terwijl @jossie67 het zonder HA maar met Zigbee2MQTT lijkt te doen. Ik weet het antwoord helaas niet, ik gebruik Zigbee2MQTT enkel om binnenkomende signalen af te handelen (sensoren, knoppen), niet om juist vanuit NR weer commando's terug te sturen.
Klopt, je hebt gelijk. Ik praat met NR inderdaad tegen HA aan.DeadMetal schreef op donderdag 18 oktober 2018 @ 13:24:
@Thoit wat jij schrijft klinkt alsof je met HA wilt communiceren ("turn_on")? Terwijl @jossie67 het zonder HA maar met Zigbee2MQTT lijkt te doen. Ik weet het antwoord helaas niet, ik gebruik Zigbee2MQTT enkel om binnenkomende signalen af te handelen (sensoren, knoppen), niet om juist vanuit NR weer commando's terug te sturen.
Als je tegen HA aan kunt praten dan zou ik 't zo aanpakken:Thoit schreef op donderdag 18 oktober 2018 @ 15:32:
Klopt, je hebt gelijk. Ik praat met NR inderdaad tegen HA aan.

code:
1
| [{"id":"a4b68e74.605f68","type":"change","z":"461b614f.07468","name":"set vars","rules":[{"t":"delete","p":"payload","pt":"msg"},{"t":"set","p":"payload.data.entity_id","pt":"msg","to":"light.Ikeabedlights","tot":"str"},{"t":"set","p":"payload.service","pt":"msg","to":"turn_on","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1440,"y":2280,"wires":[["cd772388.e5497"]]},{"id":"106b7c7a.7dc99c","type":"change","z":"461b614f.07468","name":"set vars","rules":[{"t":"delete","p":"payload","pt":"msg"},{"t":"set","p":"payload.data.entity_id","pt":"msg","to":"light.Ikeabedlights","tot":"str"},{"t":"set","p":"payload.service","pt":"msg","to":"turn_off","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1440,"y":2340,"wires":[["cd772388.e5497"]]},{"id":"2570c333.41d014","type":"change","z":"461b614f.07468","name":"set vars","rules":[{"t":"delete","p":"payload","pt":"msg"},{"t":"set","p":"payload.data.entity_id","pt":"msg","to":"light.Ikeabedlights","tot":"str"},{"t":"set","p":"payload.service","pt":"msg","to":"turn_on","tot":"str"},{"t":"set","p":"payload.data.color","pt":"msg","to":"warm","tot":"str"},{"t":"set","p":"payload.data.brightness_pct","pt":"msg","to":"100","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1440,"y":2400,"wires":[["cd772388.e5497"]]},{"id":"46a6aa25.ffedfc","type":"inject","z":"461b614f.07468","name":"On","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":1270,"y":2280,"wires":[["a4b68e74.605f68"]]},{"id":"c442b9aa.d5282","type":"inject","z":"461b614f.07468","name":"Off","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":1270,"y":2340,"wires":[["106b7c7a.7dc99c"]]},{"id":"464f2736.eb6558","type":"inject","z":"461b614f.07468","name":"100 Warm","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":1280,"y":2400,"wires":[["2570c333.41d014"]]},{"id":"cd772388.e5497","type":"api-call-service","z":"461b614f.07468","name":"","server":"3bd348bb.eea7d","service_domain":"light","service":"","data":"","mergecontext":"","x":1620,"y":2340,"wires":[[]]},{"id":"3bd348bb.eea7d","type":"server","z":"","name":"Home Assistant","url":"http://localhost:8123","pass":"YPjuAMygdaqHORpl4vDGqGFv"}] |
Voor Zigbee2MQTT lijkt het wel met JSON te moeten:lolgast schreef op woensdag 17 oktober 2018 @ 18:34:
@jossie67 Waarschijnlijk heeft het er mee te maken welk commando er verwacht wordt om de lampen in te schakelen.
Verder: Je hoeft niet in JSON te sturenJe kunt gewoon 'ON' sturen, als dat is waar de lampen naar luisteren. Ik stuur bijvoorbeeld gewoon true/false boolean waardes. Werkt prima
https://github.com/Koenkk...e#zigbee2mqttdevice_idset
@jossie67, bij die inject nodes, verander het icoontje 'a-z' (links van je getypte tekst '{"state": "ON"}' eens in '{} JSON'. Want het is nu een string. Hopelijk is dat de truuk.
[ Voor 3% gewijzigd door DeadMetal op 18-10-2018 19:10 ]
Thanks, voor de tip. Ben weer wat verder gekomenDeadMetal schreef op donderdag 18 oktober 2018 @ 19:09:
[...]
Voor Zigbee2MQTT lijkt het wel met JSON te moeten:
https://github.com/Koenkk...e#zigbee2mqttdevice_idset
@jossie67, bij die inject nodes, verander het icoontje 'a-z' (links van je getypte tekst '{"state": "ON"}' eens in '{} JSON'. Want het is nu een string. Hopelijk is dat de truuk.
code:
1
| [{"id":"e73beb03.285848","type":"inject","z":"c0c442ed.f6466","name":"On 50","topic":"","payload":"{\"state\":\"ON\",\"brightness\":100,\"color_temp\":325}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":165,"y":188,"wires":[["e74ac21f.68574"]]},{"id":"a299b9e2.3f0918","type":"inject","z":"c0c442ed.f6466","name":"Off","topic":"","payload":"{\"state\":\"OFF\"}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":170,"y":300,"wires":[["e74ac21f.68574"]]},{"id":"e74ac21f.68574","type":"mqtt out","z":"c0c442ed.f6466","name":"Ikealed","topic":"zigbee2mqtt/IkeaLed/set","qos":"","retain":"","broker":"3da4d2c3.4bf8fe","x":720,"y":140,"wires":[]},{"id":"4086fc9.3a85604","type":"inject","z":"c0c442ed.f6466","name":"On 100","topic":"","payload":"{\"state\":\"ON\",\"brightness\":254,\"color_temp\":325}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":162,"y":144,"wires":[["e74ac21f.68574"]]},{"id":"976619fc.07d6f8","type":"inject","z":"c0c442ed.f6466","name":"On 25","topic":"","payload":"{\"state\":\"ON\",\"brightness\":50,\"color_temp\":325}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":170,"y":240,"wires":[["e74ac21f.68574"]]},{"id":"3da4d2c3.4bf8fe","type":"mqtt-broker","z":"","name":"local","broker":"localhost","port":"1883","clientid":"","usetls":false,"verifyservercert":true,"compatmode":false,"keepalive":"15","cleansession":true,"birthTopic":"","birthQos":"0","birthRetain":null,"birthPayload":"","closeTopic":"","closePayload":"","willTopic":"","willQos":"0","willRetain":null,"willPayload":""}] |
Zijn er hier mensen die de friendly name van een device meesturen in een iOS bericht? Wat ik namelijk wil is bijv. de melding welke lamp aan is. Hierdoor zou ik veel minder in de flow nodig hebben en is het overzichtelijker.
Huidige bericht is bijv: {"title": "Verlichting", "message": "Lamp aan"}
Wat ik zou willen is: {"title": "Verlichting", "message": "<friendly name> Lamp aan"}
Ik dacht dat je het tussen {{}} moest zetten, met verschillende haakjes geprobeerd, maar krijg het helaas niet voor elkaar.
Huidige bericht is bijv: {"title": "Verlichting", "message": "Lamp aan"}
Wat ik zou willen is: {"title": "Verlichting", "message": "<friendly name> Lamp aan"}
Ik dacht dat je het tussen {{}} moest zetten, met verschillende haakjes geprobeerd, maar krijg het helaas niet voor elkaar.
Ja dat kan, maar dat moet je in een template node doen, zie mijn uitleg hier:
DeadMetal in "Node-RED - grafisch 'programmeren' (bijv. voor domotica)"
DeadMetal in "Node-RED - grafisch 'programmeren' (bijv. voor domotica)"
Top, ga er mee spelen vanavondDeadMetal schreef op vrijdag 19 oktober 2018 @ 08:44:
Ja dat kan, maar dat moet je in een template node doen, zie mijn uitleg hier:
DeadMetal in "Node-RED - grafisch 'programmeren' (bijv. voor domotica)"
Hoi allen,
vrij nieuw hier, maar wel al een tijdje aan het spelen met Domotica/Raspberry/Node-red. De vraag waar ik mee in mijn hoofd zit, maar vooralsnog nergens 100% duidelijkheid over heb gevonden;
Kan Node-Red niet een volledige vervanging zijn voor HomeAssistant/Domoticz/OpenHAB? Door middel van modules zijn er allerlei API's te importeren en je kan er ook een dashboard mee aanmaken. Ik zie dan niet perse meerwaarde in HomeAssistant/OpenHAB?
vrij nieuw hier, maar wel al een tijdje aan het spelen met Domotica/Raspberry/Node-red. De vraag waar ik mee in mijn hoofd zit, maar vooralsnog nergens 100% duidelijkheid over heb gevonden;
Kan Node-Red niet een volledige vervanging zijn voor HomeAssistant/Domoticz/OpenHAB? Door middel van modules zijn er allerlei API's te importeren en je kan er ook een dashboard mee aanmaken. Ik zie dan niet perse meerwaarde in HomeAssistant/OpenHAB?
Ja dat kan, Voor mijn is HA meer de front-end
Alles wat naar MQTT kan gaan zet ik over,
NR zorgt voor alle automations, maar ook de intergratie met Alex en Google Home
Alles wat naar MQTT kan gaan zet ik over,
NR zorgt voor alle automations, maar ook de intergratie met Alex en Google Home
Inmiddels weer een stuk verder gekomen. Het volgende werkt nu:

Hiermee krijg ik dus netjes een melding van welke deur open is. In plaats van een losse melding en trigger te maken per sensor.

Heb het ook uitgebreid met aanwezigheid check, alleen krijg ik dan nog 2 outputs. Ook dit moet ik morgen even testen, hoe het bericht op de telefoon door komt.
In de functie staat:
In de notify service staat:
Hier heb ik lang naar gezocht, dus voor degene die het ook willen gebruiken, doe er je voordeel mee.

Hiermee krijg ik dus netjes een melding van welke deur open is. In plaats van een losse melding en trigger te maken per sensor.

Heb het ook uitgebreid met aanwezigheid check, alleen krijg ik dan nog 2 outputs. Ook dit moet ik morgen even testen, hoe het bericht op de telefoon door komt.
In de functie staat:
code:
1
2
3
4
5
6
7
8
9
10
11
| const friendlyName = msg.data.new_state.attributes.friendly_name; node.status({text: friendlyName}); return { "payload": { "data": { "message": friendlyName + " uit" } } } return msg ; |
In de notify service staat:
code:
1
| {"title": "Lamp", "message": "node.status"} |
Hier heb ik lang naar gezocht, dus voor degene die het ook willen gebruiken, doe er je voordeel mee.
Weekje geleden een discussie/gesprek gehad met een collega, die had een Sonoff tussen een koelkast geplaatst. Vanuit daar kregen we het over verbruik, en dan met name de mogelijke toename van het verbruik van die dingen naarmate ze ouder worden. Dus, ik ben gaan klooien met een sensor die ik al heb, die zit tussen mijn server. Geen idee waarom, ik had stekkers over (is een Z-Wave device)
Nu heb ik het volgende
Ik hoop dat bovenstaande goed genoeg uit de duim is gezogen om rekening te houden met de wisselende hoog-/laag-tarieven van de elektra. Nu nog een paar Sonoff POW's kopen en tussen de koelkast/vriezer hangen. Dan hoop ik te kunnen detecteren wanneer die apparaten hen efficiëntie verliezen
Nu heb ik het volgende
JavaScript:
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
| let objDate = new Date(); let day = objDate.getDay(); let hours = objDate.getHours(); let minutes = objDate.getMinutes(); let kwh = Number(msg.payload.data.state); let kwhdal = context.get('kwhdal'); let kwhpiek = context.get('kwhpiek'); let kostendal = context.get('kostendal'); let kostenpiek = context.get('kostenpiek'); let first = context.get("microserver.first.kwh"); let daltarief = 0.19308; let piektarief = 0.19840; if(hours === 0 && minutes === 0){ first = kwh; context.set("microserver.first.kwh", first); } else { if(first === undefined) { first = kwh; context.set("microserver.first.kwh", first); } } if (day >= 1 && day <= 5) { if(hours <= 7){ context.set('kwhpiek', 0); context.set('kostenpiek', 0); context.set('kwhdal', kwh - first); context.set('kostendal', kwhdal * daltarief); } else if (hours >= 8 && hours <= 21){ context.set('kwhpiek', kwh - first - kwhdal); context.set('kostenpiek', kwhpiek * piektarief); } else { context.set('kwhdal', kwh - first - kwhpiek); context.set('kostendal', kwhdal * daltarief); } } else { context.set('kostenpiek', 0); context.set('kwhpiek', 0); context.set('kwhdal', kwh - first); context.set('kostendal', kwhdal * daltarief); } kwhdal = context.get('kwhdal'); kostendal = context.get('kostendal'); kwhpiek = context.get('kwhpiek'); kostenpiek = context.get('kostenpiek'); msg.payload = (kostenpiek + kostendal).toFixed(2); node.status({text:"€ " + msg.payload}); return msg; |

Ik hoop dat bovenstaande goed genoeg uit de duim is gezogen om rekening te houden met de wisselende hoog-/laag-tarieven van de elektra. Nu nog een paar Sonoff POW's kopen en tussen de koelkast/vriezer hangen. Dan hoop ik te kunnen detecteren wanneer die apparaten hen efficiëntie verliezen
[ Voor 10% gewijzigd door lolgast op 20-10-2018 15:11 . Reden: Was het weekend vergeten :/ ]
Deze: https://www.dx.com/p/webe...s-module-w-antenna-429601jossie67 schreef op zaterdag 13 oktober 2018 @ 22:08:
[...]
Welke module met externe antenne heb je binnen gekregen?
Maar helaas is het bereik nog steeds minder dan m'n Xiaomi Gateway (die op dezelfde plek hangt). Geen succes dus, terwijl het flashen en aansluiten lastiger is dan de usb-stick.
@lolgast
Een eventueel efficiëntie verlies relateer je toch aan het kWh-gebruik bij een bepaalde omgevingstemperatuur en niet aan de kosten (hoog/laag tarief)? - De omgevingstemperatuur (tijdens het jaar) speelt en significantere rol dan een eventuele veroudering/efficiëntie verliezen. - Ik heb dit over 4 jaren bij een koelkast(keuken) en een vrieskast(voorraadshok) gemeten (per dag/maand/jaar). Een toename van de jaarverbruiken heb ik niet vast kunnen stellen.Ik hoop dat bovenstaande goed genoeg uit de duim is gezogen om rekening te houden met de wisselende hoog-/laag-tarieven van de elektra. Nu nog een paar Sonoff POW's kopen en tussen de koelkast/vriezer hangen. Dan hoop ik te kunnen detecteren wanneer die apparaten hen efficiëntie verliezen
Nobody is perfeckt - But who wants to be Nobody? - Vrijwillig Energycoach Fiat LUXus! - Some Insights
Ja dat had ik me ook al bedacht nadat ik bijna klaar was. Maar ik was wel lekker bezig dus ben maar door gegaan.dunklefaser schreef op zondag 21 oktober 2018 @ 12:41:
@lolgast
[...]
Een eventueel efficiëntie verlies relateer je toch aan het kWh-gebruik bij een bepaalde omgevingstemperatuur en niet aan de kosten (hoog/laag tarief)? - De omgevingstemperatuur (tijdens het jaar) speelt en significantere rol dan een eventuele veroudering/efficiëntie verliezen. - Ik heb dit over 4 jaren bij een koelkast(keuken) en een vrieskast(voorraadshok) gemeten (per dag/maand/jaar). Een toename van de jaarverbruiken heb ik niet vast kunnen stellen.
Heb het nu maar gebruikt om te kunnen zien wat de kosten zijn per apparaat. Omdat het kan
In Node-RED kijk ik of mijn TV aan staat op basis van het energie verbruik (gemeten met een Fibaro Wall Plug). Alleen blijkt deze soms "rare" waardes te rapporteren. Of in ieder geval, als de TV uit staat wil deze soms nog vanalles doen waardoor het stroom verbruik hoog blijft. Daarom heb ik nu ingesteld dat de TV aan is vanaf 60 Watt, en dat leek goed te gaan, maar nu blijkt dat de wall plug soms voor een seconde een waarde van net onder die 60 Watt rapporteert (terwijl de TV gewoon aan is, en niet eens met veel donker beeld). De gerapporteerde waardes wil ik daarom wat "afvlakken". Daarvoor kwam ik nu de smooth node tegen. Maar deze heeft nogal een aantal opties (mogelijke "smoothings"). Daarom vraag ik me af of anderen hier deze node inzetten voor soortgelijke doeleinden.
Daarnaast ben ik ook "bang" dat het soms weer kan zijn dat de waarde te weinig veranderd. Bv verbruik is om en nabij de 100W als de TV aan is, vervolgens gaat de TV uit, en is het verbruik meteen 0W. Dan heb je dus bv een set van 95, 100, 105, 100, 105, 0. Gemiddelde is dan 84, en dus nog steeds "TV aan".
Als mogelijke work-a-round zou je bij change van verbruik deze in een context variable kunnen zetten en deze bv via een inject die elke seconde repeat deze context variable naar de smooth node sturen en daarop reageren. Maar dat is natuurlijk ook niet echt ideaal.
Daarnaast ben ik ook "bang" dat het soms weer kan zijn dat de waarde te weinig veranderd. Bv verbruik is om en nabij de 100W als de TV aan is, vervolgens gaat de TV uit, en is het verbruik meteen 0W. Dan heb je dus bv een set van 95, 100, 105, 100, 105, 0. Gemiddelde is dan 84, en dus nog steeds "TV aan".
Als mogelijke work-a-round zou je bij change van verbruik deze in een context variable kunnen zetten en deze bv via een inject die elke seconde repeat deze context variable naar de smooth node sturen en daarop reageren. Maar dat is natuurlijk ook niet echt ideaal.
@RobertMe Ik herken je probleem niet met de Fibaro plug, maar wat is je uiteindelijke doel van de monitoring? Log je het ergens naartoe of zitten er acties aan verbonden?
Zitten inderdaad acties aan verbonden. Bij het aan zijn van de TV wordt een andere Hue scene ingeschakeld, nu krijg je dus een fancy flikker effect. Als de waarde dus heel even onder die 60W dropt wisselt de Hue scene heel snel. De smooth node wil ik dan dus inzetten om de "pieken" eruit te halen en meer naar een globaal verbruik te gaan. Maar dan dus zonder dat het mogelijk (te) lang duurt voordat het gemiddelde is bijgewerkt. Voordeel nu (zonder smoothing) is dat de boel dus meteen reageert als de TV aan (of uit) gaat. Na smoothing zou ik dat het liefst dus willen behouden. Vertraging van 2, 3 seconden maakt uiteraard niet uit, maar het moet niet te lang gaan worden.lolgast schreef op zondag 21 oktober 2018 @ 18:47:
@RobertMe Ik herken je probleem niet met de Fibaro plug, maar wat is je uiteindelijke doel van de monitoring? Log je het ergens naartoe of zitten er acties aan verbonden?
Ik bedoel overigens niet dat het perse een probleem met de Wall Plug is, kan uiteraard ook dat de TV heel even een lager verbruik geeft.
@RobertMe Ik ben bang dat die smooth node je in de weg gaat zitten wanneer je de tv uitschakelt. Heb je al naar de parameters van de wall plug gekeken? Misschien dat daar de oplossing zit? https://manuals.fibaro.co.../FGWPEF-102-EN-A-v2.1.pdf, vanaf pagina 13.
Als tijdelijke tussenstap, om je leven draaglijker te maken
Misschien een idee om de Hue scene een transitie van bijvoorbeeld 15 seconden te geven, zodat de overgangen niet zo direct zijn?
Als tijdelijke tussenstap, om je leven draaglijker te maken
@RobertMe Ik denk dat de 'rbe'-node is wat je zoekt: https://www.npmjs.com/package/node-red-node-rbe
Daarin kun je blokkeren, tenzij <x>. Eén van de opties is bijv. dat het minimaal zoveel % moet verschillen, anders laat hij de waarde niet door.
En anders een function node met daarin stukje code waarin je telt hoe vaak hij <60W is en dan pas na 3x het bericht doorzetten?
Volgens mij heeft @Anoniem: 477788 in het verleden dit ook eens gehad met een Fibaro plug. Misschien dat hij nog iets weet.
Daarin kun je blokkeren, tenzij <x>. Eén van de opties is bijv. dat het minimaal zoveel % moet verschillen, anders laat hij de waarde niet door.
En anders een function node met daarin stukje code waarin je telt hoe vaak hij <60W is en dan pas na 3x het bericht doorzetten?
Volgens mij heeft @Anoniem: 477788 in het verleden dit ook eens gehad met een Fibaro plug. Misschien dat hij nog iets weet.
[ Voor 13% gewijzigd door ThinkPad op 21-10-2018 19:14 ]
Anoniem: 477788
@RobertMe
Ik had dat soort ellende met een Aeon Labs schakelaar. Die gaf ook af en toe een rare meting.
Ik zou een function node pakken en daarin een teller vasthouden en een aan/uit status.
Elk bericht met wattage boven de 60: teller +1, state = aan
Elk bericht met een wattage onder de 60: teller -1
Als teller = 0, state = uit.
Die state geef je dan elk bericht door als payload en je zult een min 0 en max toe moeten passen op te teller. Elke 15 seconden controleren met een max van 8, dan moet de meting zo'n 2 minuten onder 60w blijven en dan verandert de state naar uit.
Ik zou zoiets proberen. Ben je minder afhankelijk van de waarde, omdat je hem in essentie wat afvlakt. Ik gebruik een zelfde constructie voor een wasmachine klaar melding en de aansturing van mijn MV. Al gaat deze op een CO2 meting, het idee is het zelfde.
Ik had dat soort ellende met een Aeon Labs schakelaar. Die gaf ook af en toe een rare meting.
Ik zou een function node pakken en daarin een teller vasthouden en een aan/uit status.
Elk bericht met wattage boven de 60: teller +1, state = aan
Elk bericht met een wattage onder de 60: teller -1
Als teller = 0, state = uit.
Die state geef je dan elk bericht door als payload en je zult een min 0 en max toe moeten passen op te teller. Elke 15 seconden controleren met een max van 8, dan moet de meting zo'n 2 minuten onder 60w blijven en dan verandert de state naar uit.
Ik zou zoiets proberen. Ben je minder afhankelijk van de waarde, omdat je hem in essentie wat afvlakt. Ik gebruik een zelfde constructie voor een wasmachine klaar melding en de aansturing van mijn MV. Al gaat deze op een CO2 meting, het idee is het zelfde.
Ik weet niet zeker of ik het helemaal begrijp. Maar als ik het goed heb gaat dit toch niet (goed) werken? Als de TV aan staat schommelt het gebruik de hele tijd, dus dan heb je elke minuut of zo een update die dus 60W+ is en dus elke keer die teller +1 doet. Maar als ik de TV dan uit zet schommelt het gebruik natuurlijk een stuk minder, dus duurt het ook langer voordat de teller weer op 0 staat. Dus bv 10 minuten TV aan heeft als resultaat dat die teller op +10 staat, maar aangezien de TV als die uit staat een minder schommelend verbruik heeft kan het zomaar een half uur duren voordat de teller weer op 0 staat.Anoniem: 477788 schreef op zondag 21 oktober 2018 @ 20:35:
@RobertMe
Ik had dat soort ellende met een Aeon Labs schakelaar. Die gaf ook af en toe een rare meting.
Ik zou een function node pakken en daarin een teller vasthouden en een aan/uit status.
Elk bericht met wattage boven de 60: teller +1, state = aan
Elk bericht met een wattage onder de 60: teller -1
Als teller = 0, state = uit.
Die state geef je dan elk bericht door als payload en je zult een min 0 en max toe moeten passen op te teller. Elke 15 seconden controleren met een max van 8, dan moet de meting zo'n 2 minuten onder 60w blijven en dan verandert de state naar uit.
Ik zou zoiets proberen. Ben je minder afhankelijk van de waarde, omdat je hem in essentie wat afvlakt. Ik gebruik een zelfde constructie voor een wasmachine klaar melding en de aansturing van mijn MV. Al gaat deze op een CO2 meting, het idee is het zelfde.
Anoniem: 477788
Je zult uiteraard met de tellers en hoe vaak je meet moeten spelen, maar meestal werkt de oplossing vrij goed voor het meten van stroomverbruik om te bepalen of iets aan of uit staat.RobertMe schreef op maandag 22 oktober 2018 @ 07:49:
[...]
Ik weet niet zeker of ik het helemaal begrijp. Maar als ik het goed heb gaat dit toch niet (goed) werken? Als de TV aan staat schommelt het gebruik de hele tijd, dus dan heb je elke minuut of zo een update die dus 60W+ is en dus elke keer die teller +1 doet. Maar als ik de TV dan uit zet schommelt het gebruik natuurlijk een stuk minder, dus duurt het ook langer voordat de teller weer op 0 staat. Dus bv 10 minuten TV aan heeft als resultaat dat die teller op +10 staat, maar aangezien de TV als die uit staat een minder schommelend verbruik heeft kan het zomaar een half uur duren voordat de teller weer op 0 staat.
Het is voor mij lastig te bepalen, omdat ik niet weet wat je TV precies doet als je die aan het uit zet. Meestal doe ik ongeveer het volgende:
Je begint met het bepalen van wat is aan en wat is uit..Stel boven de 60W is aan, en onder de 40W is uit. Vervolgens bepaal je wat je fout marge moet zijn. Stel dat bij uitzetten hij nog een minuut schommelt. Dan zou ik waarschijnlijk kiezen voor elke 15 seconden controleren, met een teller max 6. Uiteraard moet de sensor dat ondersteunen.
Dan wordt de TV trigger uit gezet +/- 1.5 minuut na het daadwerkelijke uitzetten. De vraag is uiteraard ben je daarmee geholpen. Voor 'triggeren' van 'iets dat snel moet reageren' is stroommeting vaak niet de beste keuze.
Heb je geen andere mogelijkheid om op te vangen wat de TV aan het doen is? Is het een smart TV die je kunt pingen bijv?
Ik heb een Logitech Harmony universele afstandsbediening, de hub daarvan lees ik uit met Node-RED. Hij spuugt uit welke activiteit er wordt opgestart, op basis daar van laat ik de verlichting dimmen als de TV aan gaat (en weer op fel als TV weer uit gaat).
Ik heb een Logitech Harmony universele afstandsbediening, de hub daarvan lees ik uit met Node-RED. Hij spuugt uit welke activiteit er wordt opgestart, op basis daar van laat ik de verlichting dimmen als de TV aan gaat (en weer op fel als TV weer uit gaat).
Goed punt inderdaad voor het op een andere manier uitlepelen van die informatie. Eerst had ik alleen een Athom Homey maar de LG app daarvoor was niet echt geweldig en reageerde ook niet tot heel slecht op aan/uit gaan van de TV. Nu ik ook Home Assistant en Node-RED heb moet ik dus nog maar eens opnieuw kijken naar een netwerk gebaseerde oplossing
Dus dank heren voor mij herinneren dat de wall plug niet de beste oplossing is. Deze week dus maar even uitzoeken wat de mogelijkheden met Node-RED en/of Home Assistant zijn.
Anoniem: 477788
Ik denk dat het best mogelijk is met de stroom meting, ik zou dat gewoon proberen. Je hebt dat immers toch al (hardware technisch).RobertMe schreef op maandag 22 oktober 2018 @ 08:23:
Goed punt inderdaad voor het op een andere manier uitlepelen van die informatie. Eerst had ik alleen een Athom Homey maar de LG app daarvoor was niet echt geweldig en reageerde ook niet tot heel slecht op aan/uit gaan van de TV. Nu ik ook Home Assistant en Node-RED heb moet ik dus nog maar eens opnieuw kijken naar een netwerk gebaseerde oplossingDus dank heren voor mij herinneren dat de wall plug niet de beste oplossing is. Deze week dus maar even uitzoeken wat de mogelijkheden met Node-RED en/of Home Assistant zijn.
Je zult in NodeRED misschien wat extra moeten trucen, maar dat is juist leuk. Als je in de scene overgang dan nog iets van een transitie stopt valt het misschien niet eens op dat hij een keer iets fouts doet.
Ik zou het gewoon proberen met wat je nu hebt.
Heb nog een keer jullie hulp nodig.. Ik heb een functie gemaakt waarbij in het bericht de naam van het device komt. Hiermee kan ik in de event state bijv. alle deur sensoren invoeren, en hoef dus niet losse event states hiervan te maken.
Zodra ik van melding aan naar het bericht ga, gaat het goed. Dan geeft hij netjes "Wasmachine switch uit" aan. Echter wil ik alleen het bericht krijgen als ik niet thuis ben. Echter is dan uiteindelijk de output, not_home en het bericht. Hoe kan ik ervoor zorgen dat het bericht alleen wordt: <friendly name device> + uit dus bijv. "Wasmachine switch uit"
Zodra ik van melding aan naar het bericht ga, gaat het goed. Dan geeft hij netjes "Wasmachine switch uit" aan. Echter wil ik alleen het bericht krijgen als ik niet thuis ben. Echter is dan uiteindelijk de output, not_home en het bericht. Hoe kan ik ervoor zorgen dat het bericht alleen wordt: <friendly name device> + uit dus bijv. "Wasmachine switch uit"

In die 'thuis?' node moet 'override topic' en 'override payload' NIET aangevinkt staan.
Dan gaat het goed.
Althans, gebruik je module 'node-red-contrib-home-assistant-websocket'? Andere (oudere) varianten van de HA-module hebben een bug dat de payload altijd overschreven wordt.
Hoe je overstapt op de websocket-variant heb ik eerder hier beschreven:
DeadMetal in "Node-RED - grafisch 'programmeren' (bijv. voor domotica)"
Ik begrijp alleen niet helemaal waarom je wasmachine in de groep 'lampen' zit, of heeft je wasmachine een ingebouwd lampje
Dan gaat het goed.
Althans, gebruik je module 'node-red-contrib-home-assistant-websocket'? Andere (oudere) varianten van de HA-module hebben een bug dat de payload altijd overschreven wordt.
Hoe je overstapt op de websocket-variant heb ik eerder hier beschreven:
DeadMetal in "Node-RED - grafisch 'programmeren' (bijv. voor domotica)"
Ik begrijp alleen niet helemaal waarom je wasmachine in de groep 'lampen' zit, of heeft je wasmachine een ingebouwd lampje
[ Voor 18% gewijzigd door DeadMetal op 26-10-2018 15:33 ]
Had ik al geprobeerd, overrides staan uit na de function. Maar toch krijg ik de not_home output mee. Reden dat dit erin staat, is omdat ik de lampen momenteel niet gekoppeld heb omdat ik problemen met mijn Zigbee stick heb. Met deze switch kan ik eenvoudig de flow triggerenDeadMetal schreef op vrijdag 26 oktober 2018 @ 15:32:
In die 'thuis?' node moet 'override topic' en 'override payload' NIET aangevinkt staan.
Dan gaat het goed.
Althans, gebruik je module 'node-red-contrib-home-assistant-websocket'? Andere (oudere) varianten van de HA-module hebben een bug dat de payload altijd overschreven wordt.
Ik begrijp alleen niet helemaal waarom je wasmachine in de groep 'lampen' zit, of heeft je wasmachine een ingebouwd lampje
En welke HA-module gebruik je? Dan denk ik dat het daaraan ligt.
Wat je ook kan doen is de payload ergens opslaan voordat je de 'thuis?' node aanroept. Bijv. met een change-node waarbij je dan doet 'set msg.apparaat to msg.payload'. Dan heb je de waarde in msg.apparaat gestopt en wordt de waarde niet overschreven.
Wat je ook kan doen is de payload ergens opslaan voordat je de 'thuis?' node aanroept. Bijv. met een change-node waarbij je dan doet 'set msg.apparaat to msg.payload'. Dan heb je de waarde in msg.apparaat gestopt en wordt de waarde niet overschreven.
Ik gebruik de addon van Hassio, of wat bedoel je precies?DeadMetal schreef op vrijdag 26 oktober 2018 @ 16:30:
En welke HA-module gebruik je? Dan denk ik dat het daaraan ligt.
Wat je ook kan doen is de payload ergens opslaan voordat je de 'thuis?' node aanroept. Bijv. met een change-node waarbij je dan doet 'set msg.apparaat to msg.payload'. Dan heb je de waarde in msg.apparaat gestopt en wordt de waarde niet overschreven.
Node-RED kun je uitbreiden met additionele "modules" die dan weer nodes toevoegen. Standaard kun je HA dan ook niet gebruiken in Node-RED maar moet je daarvoor zo'n module installeren. Bij Hassio zal die uiteraard standaard al geïnstalleerd zijn. Maar waarschijnlijk is dat nog de originele module, en die bevat een bug waardoor zowel de "Override payload" als "Override topic" opties niet werken/genegeerd worden. Welke modules je geïnstalleerd hebt (en dus welke HA module je geïnstalleerd hebt) kun je zien door in het menu (van Node-RED) te kiezen voor "Manage palette". Als je dus de node-red-contrib-home-assistant module geïnstalleerd hebt is dat de oude.Thoit schreef op zaterdag 27 oktober 2018 @ 08:12:
[...]
Ik gebruik de addon van Hassio, of wat bedoel je precies?
De websocket module is wel een verademing. Ben sinds vorige week aan het overstappen van HA naar Nodered. Ik had een vertraging van 1-2 sec voordat het licht aanging met de "node-red-contrib-home-assistant" module.DeadMetal schreef op vrijdag 26 oktober 2018 @ 15:32:
Althans, gebruik je module 'node-red-contrib-home-assistant-websocket'?
Hoe je overstapt op de websocket-variant heb ik eerder hier beschreven:
DeadMetal in "Node-RED - grafisch 'programmeren' (bijv. voor domotica)"
Met de websocket module lijkt de response nog sneller dan in HA!
/origineel bericht verwijderd. Ik dacht dat NR niet goed omging met de overgang naar wintertijd, maar alles blijkt prima te werken.
[ Voor 192% gewijzigd door DeadMetal op 28-10-2018 06:48 ]
Hi, toch weer jullie hulp nodig
Het wordt weer kouder en dus staat de verwarming weer aan.
Maar soms zetten we ook even de tuindeur open en dan vergeten we natuurlijk dan om de verwarming dat uit de zetten.
Nu heb ik een xiaomi deur sensor en een gerooted Toon
Als de deur open is is de status On , deur dicht is de status Off
Nu dacht ik als de deur van On naar Off gaat, stuur ik de status van Toon, naar de een virtuel Toon, sensor
En gaat de deur van Off naar On, dan stuur ik de status van de virtuele Toon sensor naar de Toon
Maar het lukt mij al niet om dvm een inject de status van de Toon te veranderen

Het wordt weer kouder en dus staat de verwarming weer aan.
Maar soms zetten we ook even de tuindeur open en dan vergeten we natuurlijk dan om de verwarming dat uit de zetten.
Nu heb ik een xiaomi deur sensor en een gerooted Toon
Als de deur open is is de status On , deur dicht is de status Off
Nu dacht ik als de deur van On naar Off gaat, stuur ik de status van Toon, naar de een virtuel Toon, sensor
En gaat de deur van Off naar On, dan stuur ik de status van de virtuele Toon sensor naar de Toon
Maar het lukt mij al niet om dvm een inject de status van de Toon te veranderen

code:
1
| [{"id":"6b8cd1ff.24911","type":"server-state-changed","z":"df8b72d1.11132","name":"Toon Status","server":"fe98b923.370738","entityidfilter":" climate.toon_thermostat","entityidfiltertype":"substring","haltifstate":"","x":150,"y":940,"wires":[["9ca9ebf8.826358"]]},{"id":"148bba12.99ac36","type":"debug","z":"df8b72d1.11132","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":850,"y":1060,"wires":[]},{"id":"5dde1865.279ca8","type":"link in","z":"df8b72d1.11132","name":"Tuindeur","links":["cde73f26.7d0d4"],"x":135,"y":1060,"wires":[["9ca9ebf8.826358"]]},{"id":"9ca9ebf8.826358","type":"function","z":"df8b72d1.11132","name":"","func":"\nreturn msg;","outputs":1,"noerr":0,"x":490,"y":1000,"wires":[["6ce3b57d.0bc96c"]]},{"id":"8fa23ec0.e096","type":"mqtt in","z":"df8b72d1.11132","name":"Toonvirtueel","topic":"house/toonvirtuel/status","qos":"2","broker":"3da4d2c3.4bf8fe","x":150,"y":1000,"wires":[["148bba12.99ac36"]]},{"id":"6ce3b57d.0bc96c","type":"mqtt out","z":"df8b72d1.11132","name":"","topic":"house/toonvirtuel/status","qos":"","retain":"","broker":"3da4d2c3.4bf8fe","x":890,"y":1000,"wires":[]},{"id":"e17cb570.db40e8","type":"api-call-service","z":"df8b72d1.11132","name":" climate.toon_thermostat","server":"fe98b923.370738","service_domain":"climate","service":"set_operation_mode","data":"{\"entity_id\":\" climate.toon_thermostat\"}","mergecontext":"","x":890,"y":940,"wires":[[]]},{"id":"9122d149.0ce7f","type":"inject","z":"df8b72d1.11132","name":"Comfort","topic":"","payload":"\"Comfort\"","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":490,"y":820,"wires":[["e17cb570.db40e8"]]},{"id":"6531b7fd.f20398","type":"comment","z":"df8b72d1.11132","name":"Toon / Tuindeur open","info":"Comfort\nHome\nSleep\nAway\nHoliday","x":180,"y":840,"wires":[]},{"id":"fe98b923.370738","type":"server","z":"","name":"Home Assistant 35","url":"http://192.168.10.35:8123","pass":"Z3B0J02018"},{"id":"3da4d2c3.4bf8fe","type":"mqtt-broker","z":"","name":"local","broker":"localhost","port":"1883","clientid":"","usetls":false,"verifyservercert":true,"compatmode":false,"keepalive":"15","cleansession":true,"birthTopic":"","birthQos":"0","birthRetain":null,"birthPayload":"","closeTopic":"","closePayload":"","willTopic":"","willQos":"0","willRetain":null,"willPayload":""}] |
[ Voor 67% gewijzigd door jossie67 op 28-10-2018 15:37 . Reden: plaatje en code geplaats ]
Hoe verander je normaal de status? Zelf maak ik gebruik van Tado, daarvoor heb ik het volgende gemaakt:jossie67 schreef op zondag 28 oktober 2018 @ 15:35:
Hi, toch weer jullie hulp nodig
Het wordt weer kouder en dus staat de verwarming weer aan.
Maar soms zetten we ook even de tuindeur open en dan vergeten we natuurlijk dan om de verwarming dat uit de zetten.
Nu heb ik een xiaomi deur sensor en een gerooted Toon
Als de deur open is is de status On , deur dicht is de status Off
Nu dacht ik als de deur van On naar Off gaat, stuur ik de status van Toon, naar de een virtuel Toon, sensor
En gaat de deur van Off naar On, dan stuur ik de status van de virtuele Toon sensor naar de Toon
Maar het lukt mij al niet om dvm een inject de status van de Toon te veranderen
[Afbeelding: Tuin_toon]
code:
1 [{"id":"6b8cd1ff.24911","type":"server-state-changed","z":"df8b72d1.11132","name":"Toon Status","server":"fe98b923.370738","entityidfilter":" climate.toon_thermostat","entityidfiltertype":"substring","haltifstate":"","x":150,"y":940,"wires":[["9ca9ebf8.826358"]]},{"id":"148bba12.99ac36","type":"debug","z":"df8b72d1.11132","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":850,"y":1060,"wires":[]},{"id":"5dde1865.279ca8","type":"link in","z":"df8b72d1.11132","name":"Tuindeur","links":["cde73f26.7d0d4"],"x":135,"y":1060,"wires":[["9ca9ebf8.826358"]]},{"id":"9ca9ebf8.826358","type":"function","z":"df8b72d1.11132","name":"","func":"\nreturn msg;","outputs":1,"noerr":0,"x":490,"y":1000,"wires":[["6ce3b57d.0bc96c"]]},{"id":"8fa23ec0.e096","type":"mqtt in","z":"df8b72d1.11132","name":"Toonvirtueel","topic":"house/toonvirtuel/status","qos":"2","broker":"3da4d2c3.4bf8fe","x":150,"y":1000,"wires":[["148bba12.99ac36"]]},{"id":"6ce3b57d.0bc96c","type":"mqtt out","z":"df8b72d1.11132","name":"","topic":"house/toonvirtuel/status","qos":"","retain":"","broker":"3da4d2c3.4bf8fe","x":890,"y":1000,"wires":[]},{"id":"e17cb570.db40e8","type":"api-call-service","z":"df8b72d1.11132","name":" climate.toon_thermostat","server":"fe98b923.370738","service_domain":"climate","service":"set_operation_mode","data":"{\"entity_id\":\" climate.toon_thermostat\"}","mergecontext":"","x":890,"y":940,"wires":[[]]},{"id":"9122d149.0ce7f","type":"inject","z":"df8b72d1.11132","name":"Comfort","topic":"","payload":"\"Comfort\"","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":490,"y":820,"wires":[["e17cb570.db40e8"]]},{"id":"6531b7fd.f20398","type":"comment","z":"df8b72d1.11132","name":"Toon / Tuindeur open","info":"Comfort\nHome\nSleep\nAway\nHoliday","x":180,"y":840,"wires":[]},{"id":"fe98b923.370738","type":"server","z":"","name":"Home Assistant 35","url":"http://192.168.10.35:8123","pass":"Z3B0J02018"},{"id":"3da4d2c3.4bf8fe","type":"mqtt-broker","z":"","name":"local","broker":"localhost","port":"1883","clientid":"","usetls":false,"verifyservercert":true,"compatmode":false,"keepalive":"15","cleansession":true,"birthTopic":"","birthQos":"0","birthRetain":null,"birthPayload":"","closeTopic":"","closePayload":"","willTopic":"","willQos":"0","willRetain":null,"willPayload":""}]

Ramen op is: climate -> set operation mode -> off bijv.
Daarom wil ik eerste de status weg schrijven naar een virtuel device.Thoit schreef op maandag 29 oktober 2018 @ 07:29:
[...]
Hoe verander je normaal de status? Zelf maak ik gebruik van Tado, daarvoor heb ik het volgende gemaakt:
[Afbeelding]
Ramen op is: climate -> set operation mode -> off bijv.
Dus stel de deur gaat open en de Toon staat op "Home" dan wil stuur ik de waarde "Home" eerst naar een device sturen en dan de Toon op "Away"zetten. Als de deur weer dicht gaat dan wil ik de vorige waarde , die staat in mijn virtuel device, weer terug sturen naar mijn Toon, in dit geval "Home"
In de zomer staat mijn Toon altijd op "Away".
In jou geval gaat de verwarming ook aan in de zomer als je raam gaat dicht.
Met je specifieke vraag kan ik je niet helpen. Maar een oude status kun je ook bijhouden in Node-RED door gebruik te maken van de flow en global context variabelen. Flow variabelen zijn zoals de naam al doen vermoeden per flow waar globale variabelen in alle flows beschikbaar zijn. Enige dingetje is dat deze variabelen kunnen komen te vervallen bij een restart (of mogelijk zelfs redeploy?). Maar ik weet ook niet hoe HA daarmee omgaat bij virtuele devices, of die de oude status behouden.jossie67 schreef op maandag 29 oktober 2018 @ 10:39:
[...]
Daarom wil ik eerste de status weg schrijven naar een virtuel device.
Dus stel de deur gaat open en de Toon staat op "Home" dan wil stuur ik de waarde "Home" eerst naar een device sturen en dan de Toon op "Away"zetten. Als de deur weer dicht gaat dan wil ik de vorige waarde , die staat in mijn virtuel device, weer terug sturen naar mijn Toon, in dit geval "Home"
In de zomer staat mijn Toon altijd op "Away".
In jou geval gaat de verwarming ook aan in de zomer als je raam gaat dicht.
Met een config-aanpassing kan NR de waarde van variabelen ook na een herstart onthouden. Zie
DeadMetal in "Node-RED - grafisch 'programmeren' (bijv. voor domotica)"
DeadMetal in "Node-RED - grafisch 'programmeren' (bijv. voor domotica)"
Klopt, en heb ik zelf ook ingesteld. Maar ik ben even aan het twijfelen of dat alleen voor global of ook voor flow variabelen gold.DeadMetal schreef op maandag 29 oktober 2018 @ 11:41:
Met een config-aanpassing kan NR de waarde van variabelen ook na een herstart onthouden. Zie
DeadMetal in "Node-RED - grafisch 'programmeren' (bijv. voor domotica)"
Daarnaast kun je in combinatie met HA en dan specifiek de websocket module ook ervoor kiezen om de variabele te setten middels die optie om meteen de waarde te sturen bij deployment (Output Initially / On Deploy). Als NR dan opstart, of als je een deploy doet, stuurt die node dus meteen een message met de huidige status.
Die geldt ook voor context variabeleRobertMe schreef op maandag 29 oktober 2018 @ 11:53:
[...]
Klopt, en heb ik zelf ook ingesteld. Maar ik ben even aan het twijfelen of dat alleen voor global of ook voor context variabelen gold.
Daarnaast kun je in combinatie met HA en dan specifiek de websocket module ook ervoor kiezen om de variabele te setten middels die optie om meteen de waarde te sturen bij deployment (Output Initially / On Deploy). Als NR dan opstart, of als je een deploy doet, stuurt die node dus meteen een message met de huidige status.
Ik zag die optie ja, maar snap het nut ervan nog niet helemaal. Ik bedoel: als HA herstart, zal na zijn herstart de waarde nog hetzelfde zijn (bijv: lamp staat aan) of HA is de status even kwijt (vaak het geval bij deur/raamsensoren die enkel eens in de zoveel tijd hun status doorsturen zonder dat er iets open/dicht gedaan wordt).RobertMe schreef op maandag 29 oktober 2018 @ 11:53:
Als NR dan opstart, of als je een deploy doet, stuurt die node dus meteen een message met de huidige status.
Maar NR heeft zijn acties al uitgevoerd toen er daadwerkelijk iets moest gebeuren. En mogelijk weet NR op dat moment dus zelfs beter dan HA wat de echte status is.
In welke gevallen heb jij iets aan die functionaliteit?
Voordeel wat het kan hebben is juist als NR langer uit zou zijn geweest waardoor de status van de (opgeslagen) context variables dus niet meer overeen komt met de status in HA.DeadMetal schreef op maandag 29 oktober 2018 @ 12:01:
[...]
Ik zag die optie ja, maar snap het nut ervan nog niet helemaal. Ik bedoel: als HA herstart, zal na zijn herstart de waarde nog hetzelfde zijn (bijv: lamp staat aan) of HA is de status even kwijt (vaak het geval bij deur/raamsensoren die enkel eens in de zoveel tijd hun status doorsturen zonder dat er iets open/dicht gedaan wordt).
Maar NR heeft zijn acties al uitgevoerd toen er daadwerkelijk iets moest gebeuren. En mogelijk weet NR op dat moment dus zelfs beter dan HA wat de echte status is.
In welke gevallen heb jij iets aan die functionaliteit?
Use case waarbij het wel handig zou kunnen zijn is om bv een rbe te initialiseren, of andere nodes die iets met een status doen die niet direct met de context variabelen werken.
Zelf heb ik het in ieder geval bij een aantal nodes aan staan. Maar ik durf niet meer te zeggen welke en met welk doel
De verwarming gaat alleen aan als het te koud is volgens de ingestelde temperatuur. Dan maakt het toch niet uit of het zomer of winter is? Desnoods disable je de flow als het zomer is als je dat storend vind, of past de flow aan naar status away als de raam open gaat.jossie67 schreef op maandag 29 oktober 2018 @ 10:39:
[...]
Daarom wil ik eerste de status weg schrijven naar een virtuel device.
Dus stel de deur gaat open en de Toon staat op "Home" dan wil stuur ik de waarde "Home" eerst naar een device sturen en dan de Toon op "Away"zetten. Als de deur weer dicht gaat dan wil ik de vorige waarde , die staat in mijn virtuel device, weer terug sturen naar mijn Toon, in dit geval "Home"
In de zomer staat mijn Toon altijd op "Away".
In jou geval gaat de verwarming ook aan in de zomer als je raam gaat dicht.
Van het weekend ook maar eens overgegaan van de 'legacy' homeassistant palette naar de websocket versie. Was nog lastiger dan ik dacht vanuit de Docker container, maar het is gelukt 
Ik heb er trouwens nog geen voordeel uit gevonden..
Ik heb er trouwens nog geen voordeel uit gevonden..
De schedex-module gaat helaas niet helemaal goed om met de overgang naar de wintertijd. Op de 1e dag nadat de wintertijd is ingegaan (zondagavond in mijn geval) schakelt hij een uur te laat de lampen aan. Daarna berekent hij opnieuw wanneer hij de volgende keer weer aan moet gaan (voor maandagavond) en vanaf dat moment heeft hij wel weer het juiste schema te pakken.
Ik zie dat dat ooit ook al eens gerapporteerd is, maar ik geloof dat er niet echt meer ontwikkeld wordt aan de module: https://github.com/biddst...contrib-schedex/issues/11
@lolgast : de toegevoegde waarde is bijv. extra info in NR zichtbaar bij de nodes, stabielere verbinding met HA (viel bij mij nog wel eens weg), bugfixes en de mogelijkheid tot authenticatie via een key i.p.v. api-password (die t.z.t. uit HA verwijderd lijkt te gaan worden). En simpelweg het feit dat deze weer goed onderhouden wordt.
Ik zie dat dat ooit ook al eens gerapporteerd is, maar ik geloof dat er niet echt meer ontwikkeld wordt aan de module: https://github.com/biddst...contrib-schedex/issues/11
@lolgast : de toegevoegde waarde is bijv. extra info in NR zichtbaar bij de nodes, stabielere verbinding met HA (viel bij mij nog wel eens weg), bugfixes en de mogelijkheid tot authenticatie via een key i.p.v. api-password (die t.z.t. uit HA verwijderd lijkt te gaan worden). En simpelweg het feit dat deze weer goed onderhouden wordt.
bronNode-RED for Hassio v1.0.0 is out! 🎉 Now uses WebSockets and stays connected after HA restarts! You can now log in with your @home_assistant account 🔐, and much more!
Voor wie Node-RED gebruikt in combinatie met de HASS.io versie van Home Assistant (ik niet),
zie: https://community.home-as...de-red/55023/414?u=frenck voor uitleg hoe je kan upgraden naar die nieuwe websocket module voor de verbinding tussen HA en NR.
@lolgast , doel je op deze module?: https://github.com/zachow...-home-assistant-websocketlolgast schreef op maandag 29 oktober 2018 @ 13:47:
Van het weekend ook maar eens overgegaan van de 'legacy' homeassistant palette naar de websocket versie. Was nog lastiger dan ik dacht vanuit de Docker container, maar het is gelukt
Ik heb er trouwens nog geen voordeel uit gevonden..
En wat was er lastig aan in het geval van Docker?
Heb je de module er trouwens eerst naast gezet, en vervolgens al je nodes vervangen?
Je kunt niet beide modules naast elkaar installeren. Dit omdat ze beiden dezelfde node namen gebruiken. Dit maakt de nieuwe dus ook een drop-in replacement van de oude.Kaspers schreef op dinsdag 30 oktober 2018 @ 19:02:
[...]
@lolgast , doel je op deze module?: https://github.com/zachow...-home-assistant-websocket
En wat was er lastig aan in het geval van Docker?
Heb je de module er trouwens eerst naast gezet, en vervolgens al je nodes vervangen?
Dat is ook waarom je de instructies die @DeadMetal al eerder heeft beschreven moet volgen. NR stoppen, huidige module verwijderen, en dan de nieuwe installeren en dan weer NR starten. Extra complexiteit bij gebruik van Docker is dat je de npm remove en npm install ook vanuit Docker moet doen. Dit omdat je mogelijk 'gewoon' geen NPM hebt, of een andere versie, of geen rechten tot de node_modules map, of....
Ja die module inderdaad.Kaspers schreef op dinsdag 30 oktober 2018 @ 19:02:
[...]
@lolgast , doel je op deze module?: https://github.com/zachow...-home-assistant-websocket
En wat was er lastig aan in het geval van Docker?
Heb je de module er trouwens eerst naast gezet, en vervolgens al je nodes vervangen?
Wat het (voor mij althans) moeilijk maakte, was dat je in de Docker container niet kunt zeggen 'stop service nodered' oid, want al die commands zijn uit de image gesloopt. En ik gok dat als je het al voor elkaar krijgt, de container stopt omdat de image zo is gemaakt dat hij draait op het proces van Node-RED.
Wat ik heb gedaan is:
- back-up gemaakt van mijn flows.json (let ook op de rechten)
- alle HA nodes verwijderd
- homeassistant palette verwijderd via de webUI
- homeassistant-websocket geïnstalleerd via de webUI
- Node-RED herstart
- flows.json hersteld (inclusief de rechten zoals die voorheen stonden)
- Node-RED herstart
Toen werkte uiteindelijk alles
Als ik het mij goed herinner heb ik toen via docker-compose run nodered /bin/sh een shell geopend, zonder dat Node-RED wordt gestart. Vervolgens daarin naar de juiste map navigeren en met npm remove en npm install gewisseld. Uiteraard wel eerst even de container starten om niet "dubbel" te draaien.lolgast schreef op woensdag 31 oktober 2018 @ 07:25:
[...]
Ja die module inderdaad.
Wat het (voor mij althans) moeilijk maakte, was dat je in de Docker container niet kunt zeggen 'stop service nodered' oid, want al die commands zijn uit de image gesloopt. En ik gok dat als je het al voor elkaar krijgt, de container stopt omdat de image zo is gemaakt dat hij draait op het proces van Node-RED.
Wat ik heb gedaan is:
- back-up gemaakt van mijn flows.json (let ook op de rechten)
- alle HA nodes verwijderd
- homeassistant palette verwijderd via de webUI
- homeassistant-websocket geïnstalleerd via de webUI
- Node-RED herstart
- flows.json hersteld (inclusief de rechten zoals die voorheen stonden)
- Node-RED herstart
Toen werkte uiteindelijk alles
Gisteren heb ik even snel een koppeling tussen Home Assistant en Google Assistant opgezet. Daarna vroeg ik mij uiteraard af of er ook een koppeling voor GA en Node-RED is, en daarvoor blijken inderdaad 2* modules te bestaan (eigenlijk 3, maar eentje is een fork om het over HTTP verkeer toe te staan i.p.v. HTTPS). Iemand die daar ervaring mee heeft?
Apparaten aansturen zal uiteraard niet gaan omdat Node-RED niet direct met apparaten werkt. Maar interactie via spraak zou via Node-RED dan weer wel kunnen (input node die de gesproken tekst output voor verwerking etc).
Apparaten aansturen zal uiteraard niet gaan omdat Node-RED niet direct met apparaten werkt. Maar interactie via spraak zou via Node-RED dan weer wel kunnen (input node die de gesproken tekst output voor verwerking etc).
Ik heb geen ervaring met Google Assistant. Heb het wel eens werkend proberen te krijgen in combinatie met HA, maar het wilde niet lukken. Inmiddels ben ik verder gevorderd met NR zodat steeds meer dingen automatisch gaan, en betwijfel ik of ik überhaupt iets met voice control zou willen.
Gebruikt iemand de 'poll state' node van de HA-module? Ik probeer het nut daarvan te ontdekken. Waarom zou je elke X-minuten om de status gaan vragen (en je dus mogelijk minuten later pas ontdekt dat er iets gebeurd is), als je ook gewoon realtime een statusverandering via de 'events: state' node binnen kan krijgen?
De node lijkt ook niet goed te werken, als ik 'output on changed' activeer, krijg ik toch bij elke nieuwe poll-actie een nieuw bericht in de sequence, terwijl de status ongewijzigd is.
De node lijkt ook niet goed te werken, als ik 'output on changed' activeer, krijg ik toch bij elke nieuwe poll-actie een nieuw bericht in de sequence, terwijl de status ongewijzigd is.
Ik gebruik hem, voor een paar dingen. Ben nu even niet thuis en weet uit mijn hoofd niet precies welke flows, maar kom ik later vandaag even op terug. Was wel handig toen vond ikDeadMetal schreef op zaterdag 3 november 2018 @ 09:48:
Gebruikt iemand de 'poll state' node van de HA-module? Ik probeer het nut daarvan te ontdekken. Waarom zou je elke X-minuten om de status gaan vragen (en je dus mogelijk minuten later pas ontdekt dat er iets gebeurd is), als je ook gewoon realtime een statusverandering via de 'events: state' node binnen kan krijgen?![]()
De node lijkt ook niet goed te werken, als ik 'output on changed' activeer, krijg ik toch bij elke nieuwe poll-actie een nieuw bericht in de sequence, terwijl de status ongewijzigd is.
@ThinkPadd: wil je beschrijven hoe je de Youless uitleest? Het enige wat me tot nu toe is gelukt is wat temperatuur sensoren, geknoopt aan een paar ESP8266 modules, via mqtt -> NodeRed naar een influx database te schrijven en die vervolgens in Grafana uit te lezen. Dat heb ik nu wel redelijk onder de knie. Ik wil mijn Youless op dezelfde registreren, maar kom er niet uitThinkPadd schreef op maandag 10 september 2018 @ 12:38:
Leuk topicVind het zelf wel een handige tool/applicatie. Was voorheen vaak wel knutselen met Bash/Python scripts om bepaalde zaken aan elkaar te knopen. Met Node-RED gaat dat toch een stuk eenvoudiger merk ik. Ook is het duidelijker te volgen wat er gebeurt.
<knip>
......
Een andere flow bereken ik m'n bruto elektriciteitsverbruik mee. Omdat ik zonnepanelen heb kan ik het verbruik niet goed meer uitlezen uit m'n slimme meter. Bij veel zon wordt die namelijk negatief. Dat is natuurlijk gunstig, maar ik was daardoor wel kwijt wat de apparatuur in huis nou daadwerkelijk gebruikt. Met twee stuks merk: YouLess en wat logica kan ik het nu alsnog berekenen en naar InfluxDB sturen. Met Grafana maak ik daar dan weer een grafiek van.
[Afbeelding]
33 x ET Solar 270Wp = 8910Wp @ SMA Sunny TriPower STP 8000TL-20 Live: PVOutput
Op deze manier:Aegle schreef op zondag 4 november 2018 @ 22:41:
[...]
@ThinkPad: wil je beschrijven hoe je de Youless uitleest? Het enige wat me tot nu toe is gelukt is wat temperatuur sensoren, geknoopt aan een paar ESP8266 modules, via mqtt -> NodeRed naar een influx database te schrijven en die vervolgens in Grafana uit te lezen. Dat heb ik nu wel redelijk onder de knie. Ik wil mijn Youless op dezelfde registreren, maar kom er niet uit.
JSON:
1
| [{"id":"d19103ac.0195","type":"http request","z":"774afe0a.1e21a","name":"LS110 Actual Watt","method":"GET","ret":"obj","url":"http://192.168.6.26/a?f=j","tls":"","x":370,"y":240,"wires":[["5f8cfb3.9d09f04"]]},{"id":"9dee166.bb764e8","type":"http request","z":"774afe0a.1e21a","name":"LS120 Actual Watt","method":"GET","ret":"obj","url":"http://192.168.6.28/a?f=j","tls":"","x":370,"y":300,"wires":[["c13fd8c4.c2d788"]]},{"id":"b98af705.8bd0d8","type":"inject","z":"774afe0a.1e21a","name":"@10s","topic":"","payload":"","payloadType":"date","repeat":"10","crontab":"","once":false,"onceDelay":0.1,"x":160,"y":260,"wires":[["d19103ac.0195","9dee166.bb764e8"]]},{"id":"eaf773ea.48301","type":"function","z":"774afe0a.1e21a","name":"Verbruik berekenen","func":"var zon = msg.payload.ls110.pwr;\nvar p1 = msg.payload.ls120.pwr;\nvar bruto_verbruik = parseFloat(p1 + zon);\n\nmsg.payload = bruto_verbruik;\n\nvar status = {\n text: 'Bruto: ' + bruto_verbruik + ' W',\n};\nnode.status(status);\n\n\nif (bruto_verbruik > 0) {\n return msg;\n} \n\n\n","outputs":1,"noerr":0,"x":850,"y":260,"wires":[["3a948b7e.c39394","267bb526.13fa2a","2dd3ebe6.ab5bb4"]]},{"id":"a63a6ebb.54596","type":"join","z":"774afe0a.1e21a","name":"","mode":"auto","build":"string","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":690,"y":260,"wires":[["eaf773ea.48301"]]},{"id":"5f8cfb3.9d09f04","type":"function","z":"774afe0a.1e21a","name":"Joiner","func":"msg.parts = {\n\n id: 'yl',\n index: 1,\n count: 2,\n type: 'object',\n key: 'ls110'\n}\n\nvar status = {\n fill: ((msg.payload.pwr < 1) ? 'red' : ('green')), \n shape: 'dot', \n text: msg.payload.pwr + ' W',\n};\nnode.status(status);\n\nreturn msg;","outputs":1,"noerr":0,"x":530,"y":240,"wires":[["a63a6ebb.54596"]]},{"id":"c13fd8c4.c2d788","type":"function","z":"774afe0a.1e21a","name":"Joiner","func":"msg.parts = {\n\n id: 'yl',\n index: 3,\n count: 2,\n type: 'object',\n key: 'ls120'\n}\n\nvar status = {\n fill: ((msg.payload.pwr < 0) ? 'green' : ('yellow')), \n shape: 'dot', \n text: msg.payload.pwr + ' W',\n};\nnode.status(status);\n\nreturn msg;","outputs":1,"noerr":0,"x":530,"y":300,"wires":[["a63a6ebb.54596"]]},{"id":"3a948b7e.c39394","type":"mqtt out","z":"774afe0a.1e21a","name":"","topic":"/power/calc_consumption","qos":"","retain":"","broker":"2ecabb24.4750d4","x":1090,"y":220,"wires":[]},{"id":"267bb526.13fa2a","type":"influxdb out","z":"774afe0a.1e21a","influxdb":"47ea6dea.fc1f84","name":"","measurement":"bruto_verbruik","precision":"","retentionPolicy":"","x":1140,"y":300,"wires":[]},{"id":"565a8339.50c63c","type":"comment","z":"774afe0a.1e21a","name":"Actuele bruto verbruik berekenen","info":"","x":190,"y":200,"wires":[]},{"id":"2dd3ebe6.ab5bb4","type":"ui_text","z":"774afe0a.1e21a","group":"5c3fd7e6.d42658","order":0,"width":0,"height":0,"name":"","label":"Bruto verbruik","format":"{{msg.payload}} W","layout":"row-left","x":1060,"y":380,"wires":[]},{"id":"2ecabb24.4750d4","type":"mqtt-broker","z":"","name":"","broker":"192.168.8.14","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"47ea6dea.fc1f84","type":"influxdb","z":"","hostname":"192.168.8.10","port":"8086","protocol":"http","database":"stroom","name":"","usetls":false,"tls":"abc0910e.2b64"},{"id":"5c3fd7e6.d42658","type":"ui_group","z":"","name":"Ventilatie","tab":"724cce2d.08897","disp":true,"width":"6","collapse":false},{"id":"abc0910e.2b64","type":"tls-config","z":"","name":"","cert":"","key":"","ca":"","certname":"","keyname":"","caname":"","verifyservercert":false},{"id":"724cce2d.08897","type":"ui_tab","z":"","name":"Home","icon":"dashboard"}] |

De YouLess LS110 meet de bruto productie van m'n zonnepanelen, de LS120 hangt aan de P1-poort van m'n slimme meter.
Het gaat overigens puur om het actuele verbruik ('Watt'). De meterstanden laat ik mijzelf elke maand mailen en vul ik dan in op een Excel-sheet. Daarvoor kun je http://ipyouless/e?f=j gebruiken, daar staan de meterstanden van elk P1-telwerk in.
Tijd voor nog een praktijk voorbeeldje. Niet dat hij spannend is, maar ik vond hem wel goed bedacht van mijzelf. En soms is een soortgelijk voorbeeld voldoende om anderen weer na te laten denken om iets handigs te bouwen 
Ik heb mijn 3D printer achter een Sonoff POW hangen. Op die manier kan ik het verbruik monitoren en de printer vanaf afstand aan/uit zetten. Hij staat op zolder, dus op die manier kan ik hem al laten verwarmen voordat ik naar boven moet en daar sta te wachten.
Ik heb ook OctoPrint een stukje software op bijvoorbeeld een RPi om via USB je 3D printer te kunnen besturen.
Waar ik al een tijdje geregeld tegen aanliep is dat de printer natuurlijk geregeld uit gaat maar OctoPrint blijft gewoon aanstaan. Als ik de printer aanzet moet ik eerst handmatig in OctoPrint op connect drukken. En dat zou niet nodig moeten zijn
Dus zie hier:
Als de Sonoff uit-/aangezet wordt, stuur ik een bericht naar de API van OctoPrint om de printer te (dis)connecten
Ik heb mijn 3D printer achter een Sonoff POW hangen. Op die manier kan ik het verbruik monitoren en de printer vanaf afstand aan/uit zetten. Hij staat op zolder, dus op die manier kan ik hem al laten verwarmen voordat ik naar boven moet en daar sta te wachten.
Ik heb ook OctoPrint een stukje software op bijvoorbeeld een RPi om via USB je 3D printer te kunnen besturen.
Waar ik al een tijdje geregeld tegen aanliep is dat de printer natuurlijk geregeld uit gaat maar OctoPrint blijft gewoon aanstaan. Als ik de printer aanzet moet ik eerst handmatig in OctoPrint op connect drukken. En dat zou niet nodig moeten zijn

Bedankt @ThinkPad! Ik heb het aan de gang met een Youless LS110 die bedraad mijn S0-kWh meter uitleest voor de PV-installatie
. Tot nu toe schreef die alleen naar PVoutput.
Uiteindelijk probeer ik één geintegreerde "HMI" te maken d.m.v. Grafana waar alle data die ik verzamel zichtbaar gemaakt kan worden. Grafana leest die vanuit Influx databases. Ik ben weer een stapje verder
.
Uiteindelijk probeer ik één geintegreerde "HMI" te maken d.m.v. Grafana waar alle data die ik verzamel zichtbaar gemaakt kan worden. Grafana leest die vanuit Influx databases. Ik ben weer een stapje verder
33 x ET Solar 270Wp = 8910Wp @ SMA Sunny TriPower STP 8000TL-20 Live: PVOutput
Misschien nuttig voor iemand hier. Mijn RPI is helaas niet volledig stabiel, en wil ik home automation verder uitbreiden, dan moet dat eerst wat robuuster worden. Een onderdeel daarvan is sneller doorhebben dat er iets mis is.
Wat ik nu heb gedaan, is via uptimerobot.com (gratis) monitoren of mijn HA nog in de lucht is. Zo nee, dan krijg ik een mailtje en een Telegram-bericht.
Daarnaast is ook de verbinding tussen NR en HA cruciaal. Dit probeerde ik eerst op te lossen door een 'poll state' node, met de gedachte: als die geen waarde kan ophalen, dan kan ik daar iets mee in NR. Maar helaas, als hij 'disconnected' is, dan wordt die hele sequence gewoon niet gestart.
Tweede gedachte was via een inject node -> 'current state' node een waarde bij HA op te halen. Maar ook dat ging niet: als de verbinding verbroken is, dan gebruikt de node gewoon de laatst bekende waarde, in plaats van dat je 'null' of 'error' zou zien of iets dergelijks.
Poging 3 was juist gebruik maken van het feit dat de waarde gelijk is gebleven, terwijl je vanuit HA een nieuwe waarde zou verwachten. Is de waarde gelijk gebleven, dan lukte het dus niet om contact op te nemen met HA. In HA heb ik daarom een uptime sensor toegevoegd, die aangeeft hoeveel minuten HA al actief is. Als NR die waarde elke 2 minuten ophaalt, dan kan het (bij een goede verbinding tussen beide) onmogelijk zo zijn dat de waarde hetzelfde is als wat 2 minuten eerder in NR bekend was.
HA configuration.yaml:
En in NR vervolgens:

Code (versimpeld):
Cruciaal is natuurlijk wel dat je in NR iets hebt wat jou een notificatie kan sturen, terwijl sommigen dat normaal gesproken wellicht (nog) via HA hebben lopen. Ik gebruik Telegram, maar je kan ook een e-mail laten sturen door NR etc.
Wat ik nu heb gedaan, is via uptimerobot.com (gratis) monitoren of mijn HA nog in de lucht is. Zo nee, dan krijg ik een mailtje en een Telegram-bericht.
Daarnaast is ook de verbinding tussen NR en HA cruciaal. Dit probeerde ik eerst op te lossen door een 'poll state' node, met de gedachte: als die geen waarde kan ophalen, dan kan ik daar iets mee in NR. Maar helaas, als hij 'disconnected' is, dan wordt die hele sequence gewoon niet gestart.
Tweede gedachte was via een inject node -> 'current state' node een waarde bij HA op te halen. Maar ook dat ging niet: als de verbinding verbroken is, dan gebruikt de node gewoon de laatst bekende waarde, in plaats van dat je 'null' of 'error' zou zien of iets dergelijks.
Poging 3 was juist gebruik maken van het feit dat de waarde gelijk is gebleven, terwijl je vanuit HA een nieuwe waarde zou verwachten. Is de waarde gelijk gebleven, dan lukte het dus niet om contact op te nemen met HA. In HA heb ik daarom een uptime sensor toegevoegd, die aangeeft hoeveel minuten HA al actief is. Als NR die waarde elke 2 minuten ophaalt, dan kan het (bij een goede verbinding tussen beide) onmogelijk zo zijn dat de waarde hetzelfde is als wat 2 minuten eerder in NR bekend was.
HA configuration.yaml:
YAML:
1
2
3
4
| sensor: - platform: uptime name: Uptime in minuten unit_of_measurement: minutes |
En in NR vervolgens:

Code (versimpeld):
code:
1
| [{"id":"563ba6cc.f23fe8","type":"inject","z":"8799ecfc.352fc8","name":"","topic":"","payload":"","payloadType":"date","repeat":"120","crontab":"","once":false,"onceDelay":0.1,"x":140,"y":1650,"wires":[[]]},{"id":"321ffa3a.6b060e","type":"template","z":"8799ecfc.352fc8","name":"Bericht maken","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"\"NR is de verbinding met HA kwijt\"","output":"json","x":980,"y":1650,"wires":[["7c1b13d.247d7ec"]]},{"id":"c4b8fa5f.e8b33","type":"comment","z":"8799ecfc.352fc8","name":"Verbinding met HA monitoren","info":"","x":160,"y":1610,"wires":[]},{"id":"e04afe35.47e2b8","type":"function","z":"8799ecfc.352fc8","name":"Nieuwe waarde bekend?","func":"newmsg = {};\nvar uptime_nieuw = Math.floor(msg.payload);\nvar uptime_oud = flow.get(\"uptime\");\n\nvar verschil = uptime_nieuw - uptime_oud;\n\nif(uptime_nieuw != uptime_oud)\n{\n //nieuwe uptime waarde verkregen, opslaan\n flow.set(\"uptime\", uptime_nieuw);\n newmsg.payload = \"goed\";\n}\nelse\n{\n //de uptime waarde is nog steeds hetzelfde, dus de waarde kon niet bij Home Assistant opgehaald worden\n newmsg.payload = \"fout\";\n}\n\nreturn newmsg;","outputs":1,"noerr":0,"x":480,"y":1650,"wires":[["36752965.0c4e7e"]]},{"id":"36752965.0c4e7e","type":"switch","z":"8799ecfc.352fc8","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"fout","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":660,"y":1650,"wires":[["4e0d3af8.da796c"]]},{"id":"4e0d3af8.da796c","type":"delay","z":"8799ecfc.352fc8","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"hour","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":800,"y":1650,"wires":[["321ffa3a.6b060e"]]},{"id":"7c1b13d.247d7ec","type":"debug","z":"8799ecfc.352fc8","name":"Plaats hier een node die jou een notificatie stuurt...","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":1280,"y":1650,"wires":[]},{"id":"defea01a.fa85d8","type":"comment","z":"8799ecfc.352fc8","name":"leesmij...","info":"Zet hier nog een Home Assistant 'current state' node tussen","x":290,"y":1650,"wires":[]}] |
Cruciaal is natuurlijk wel dat je in NR iets hebt wat jou een notificatie kan sturen, terwijl sommigen dat normaal gesproken wellicht (nog) via HA hebben lopen. Ik gebruik Telegram, maar je kan ook een e-mail laten sturen door NR etc.