Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

  • H143
  • Registratie: juli 2006
  • Laatst online: 07-04 06:29
Ik schakel dmv een humidity sensor en nodered mijn badkamerventilatie
Als de humidity boven de 75 komt gaat de ventilatie aangaan en wannneer deze onder de 68 komt weer uit

Nu resulteerd dit dat met vochtig weer de ventilatie telang aan of onbedoeld aan gaat en zat ik te denken om aan te laten gaan als het verschil groter dan 5% is in 1 minuut hij aan moet gaan en weer uit als hetbweer 5% lager is

  • césaar
  • Registratie: september 2006
  • Laatst online: 06-04 04:37
H143 schreef op woensdag 11 september 2019 @ 21:34:
Ik schakel dmv een humidity sensor en nodered mijn badkamerventilatie
Als de humidity boven de 75 komt gaat de ventilatie aangaan en wannneer deze onder de 68 komt weer uit

Nu resulteerd dit dat met vochtig weer de ventilatie telang aan of onbedoeld aan gaat en zat ik te denken om aan te laten gaan als het verschil groter dan 5% is in 1 minuut hij aan moet gaan en weer uit als hetbweer 5% lager is
Dus je vraagt hoe dit te doen? Ik zou er een delay node instoppen en aan de uitvoer van die node terug laten controleren via een switch node met twee outputs, waarbij message payload > en message payload <.
Mocht je toevallig het daadwerkelijke aan/uitschakelen/vochtigheid uitlezen via Home Assistant laten lopen, dan zou je ook gebruik kunnen maken van een 'wait unil' node in NR, met een timeout erop. Dan monitort HA na het inschakelen in die node de vochtigheid en als de gewenste waarde bereikt is, gaat hij door in de sequence. En als de ingestelde timeout-waarde bereikt is ook.

  • z1rconium
  • Registratie: augustus 2014
  • Laatst online: 03-04 20:10
Gebruikt hier iemand NR icm The Things Network ? De TTN nodes lijken er na een aantal uur mee op te houden, maar zie dat de github repo recentelijk naar archived is gezet. Vraag me af of dit nog wel goed werkt.

  • ThinkPad
  • Registratie: juni 2005
  • Nu online

ThinkPad

Moderator Duurzame Energie & Domotica
@H143 Wat is precies je vraag/probleem? Op Tweakers waarderen we het als iemand laat zien dat hij er zelf al energie in heeft gestopt. Het topic is niet bedoeld als 'afhaalbalie' voor een kant-en-klare oplossing.

Gas besparen door CV-tuning | Elektriciteit besparen
Geen (Domoticz) vragen via privébericht die ook via het forum kunnen a.u.b.


  • Yucon
  • Registratie: december 2000
  • Laatst online: 12:49

Yucon

*broem*

z1rconium schreef op maandag 16 september 2019 @ 10:10:
Gebruikt hier iemand NR icm The Things Network ? De TTN nodes lijken er na een aantal uur mee op te houden, maar zie dat de github repo recentelijk naar archived is gezet. Vraag me af of dit nog wel goed werkt.
Het zou wel goed moeten werken. Ik gebruik (als gebruiker) een dashboard dat hierop gebaseerd is en dat draait op dit moment zonder problemen. Er komt gewoon data binnen.

  • CerielTjuh
  • Registratie: juni 2001
  • Laatst online: 12-03 22:31
Sinds een aantal weken heb ik een raar fenomeen in NR. Zo lang ik een actieve browser sessie open laat staan werkt mijn badkamer schakeling perfect, maar als ik een tijdje wacht (of de laptop sluit) dan stopt hij met werken en ik kom er maar niet achter waardoor het komt.

Node Red haalt de sensor informatie via een palette plugin op (Nefit Easy Api) en kijkt dan of de CV langer aan is dan 6 minuten met de status warm water. Afhankelijk daarvan zet hij de afzuiging aan.
Parallel hieraan heb ik een ZWAVE button op de badkamer om het handmatig te doen, als hij "niet reageert" doet die het ook niet terwijl de rest allemaal op zwave wel werkt.

De rolluiken b.v. gaan op tijdschakeling ook via NR en die doen het dan wel weer in dezelfde periode.
Qua analyse heb ik al van alles geprobeerd (zonder HA api, direct via http get, zonder zwave en met zigbee). Krijg er even niets zinnigs meer uit om verder te proberen.

Iemand een tip?

  • z1rconium
  • Registratie: augustus 2014
  • Laatst online: 03-04 20:10
Yucon schreef op maandag 16 september 2019 @ 10:52:
[...]

Het zou wel goed moeten werken. Ik gebruik (als gebruiker) een dashboard dat hierop gebaseerd is en dat draait op dit moment zonder problemen. Er komt gewoon data binnen.
Ok, ik hou het in het gaten, het kan ook andere oorzaken hebben.
CerielTjuh schreef op maandag 16 september 2019 @ 15:56:
Sinds een aantal weken heb ik een raar fenomeen in NR. Zo lang ik een actieve browser sessie open laat staan werkt mijn badkamer schakeling perfect, maar als ik een tijdje wacht (of de laptop sluit) dan stopt hij met werken en ik kom er maar niet achter waardoor het komt.
Wat zegt node-red-log ? NR zelf blijft wel draaien ?

De nefit plugin heeft nog een openstaand issue, er is een fork met een update voor gemaakt.
Weet uiteraard niet of dit je probleem is.

[Voor 25% gewijzigd door z1rconium op 16-09-2019 16:25]


  • CerielTjuh
  • Registratie: juni 2001
  • Laatst online: 12-03 22:31
Buiten de debug nodes die ik heb gebruikt zie ik nergens in mijn docker logging van de NR.
Omdat het probleem ook is met die zwave controller denk ik niet dat het de Nefit nodes zijn die issues veroorzaken. De Node Red instance draait wel nog gewoon achter de schermen want de timers (middels big timers) doen het wel gewoon.
z1rconium schreef op maandag 16 september 2019 @ 16:25:
[...]

Ok, ik hou het in het gaten, het kan ook andere oorzaken hebben.


[...]

Wat zegt node-red-log ? NR zelf blijft wel draaien ?

De nefit plugin heeft nog een openstaand issue, er is een fork met een update voor gemaakt.
Weet uiteraard niet of dit je probleem is.

  • z1rconium
  • Registratie: augustus 2014
  • Laatst online: 03-04 20:10
CerielTjuh schreef op maandag 16 september 2019 @ 20:02:
Buiten de debug nodes die ik heb gebruikt zie ik nergens in mijn docker logging van de NR.

[...]
Node-red in docker, ben er geen fan van, maar goed je kunt in de container het log bekijken:

code:
1
2
docker exec -it <containernaam> sh
journalctl -f -n 25 -u nodered -o cat


Dan krijg je het log van node-red te zien, probeer het probleem te reproduceren en misschien dat het log een hint kan geven.

  • CerielTjuh
  • Registratie: juni 2001
  • Laatst online: 12-03 22:31
Excuses als het een 1:1 gesprek wordt hier, waarom geen fan van de docker opzet?
Draai het geheel op een NUC met alle andere docker containers voor mijn home domotica.
z1rconium schreef op maandag 16 september 2019 @ 20:15:
[...]


Node-red in docker, ben er geen fan van, maar goed je kunt in de container het log bekijken:

code:
1
2
docker exec -it <containernaam> sh
journalctl -f -n 25 -u nodered -o cat


Dan krijg je het log van node-red te zien, probeer het probleem te reproduceren en misschien dat het log een hint kan geven.

  • z1rconium
  • Registratie: augustus 2014
  • Laatst online: 03-04 20:10
CerielTjuh schreef op maandag 16 september 2019 @ 20:21:
Excuses als het een 1:1 gesprek wordt hier, waarom geen fan van de docker opzet?
Draai het geheel op een NUC met alle andere docker containers voor mijn home domotica.
[...]
Voor sommige nodes heb je een compiler nodig, die word er niet bij geleverd, op zo'n moment moet je een eigen docker(-compose) file maken met de node er in, of de compiler erbij. Daarnaast de limitaties met serial port of netwerk porten die je handmatig moet toevoegen zodra je ze nodig hebt.

In het begin ook in een container gedraaid maar liep snel tegen deze dingen op.

Native merk je verder niets van, het is gewoon node.js app, met zijn eigen directory met de flows en node_modules er in, je kunt makkelijker het log inzien en sneller updaten (ik draai de beta versie). Ik ben fan van docker maar voor deze programmas (NR, mqtt) zie ik het voordeel niet.

  • Yoki1985
  • Registratie: augustus 2007
  • Laatst online: 03-04 11:44
z1rconium schreef op maandag 16 september 2019 @ 21:21:
[...]

Voor sommige nodes heb je een compiler nodig, die word er niet bij geleverd, op zo'n moment moet je een eigen docker(-compose) file maken met de node er in, of de compiler erbij. Daarnaast de limitaties met serial port of netwerk porten die je handmatig moet toevoegen zodra je ze nodig hebt.

In het begin ook in een container gedraaid maar liep snel tegen deze dingen op.

Native merk je verder niets van, het is gewoon node.js app, met zijn eigen directory met de flows en node_modules er in, je kunt makkelijker het log inzien en sneller updaten (ik draai de beta versie). Ik ben fan van docker maar voor deze programmas (NR, mqtt) zie ik het voordeel niet.
Het probleem van je poorten kan je oplossen door network:host te gebruiken. Dan zit de docker gewoon in je netwerk en hoef je de poorten niet te mappen
@CerielTjuh Kun je de flow eens posten? Als de rest van je zwave wel door blijft draaien moet er bijna wel een node in de weg zitten.

Ik heb van de week ook weer wat zitten hobbyen. Het is een WiP en hij kan absoluut beter/simpeler, maar voor nu doet hij wat hij moet doenhttps://images.lolgast.nl/uploads/big/11bc3c7194122739421f90e65c6c9b05.png
Ik hou regelmatig de tweedekansjes van een specifieke productgroep in de gaten op de Coolblue, maar vaak vergat ik het een tijd en dan mis je waarschijnlijk een hoop kanshebbers. Dus ik dacht, dat kan slimmer. Bovenstaande controleert elk uur de resultaten van de mijn productgroep + aangevinkte opties (eerste http request). Die zet hij onder elkaar waarna ik de combinatie van alle resultaten in de RBE node gooi en controleer op wijzigingen. Zijn er geen wijzigingen, houdt het op. Zijn die er wel, dan wordt elk resultaat doorgestuurd met daar in, type/model, van- naar prijs en de link naar advertentie.

Wat ik nog wil veranderen: Als er nu voorheen 4 resultaten waren en er wordt er 1 verkocht, dan ziet de RBE dat als een wijziging en krijg ik 3 artikelen doorgestuurd. Die ken ik natuurlijk al. Dus daar moet ik iets op verzinnen. Eigenlijk moet er gewoon iets komen die altijd alleen maar de nieuwe productie doorstuurt. Maar ik was moe en zoals ik zei, dit werkt nu :+

  • CerielTjuh
  • Registratie: juni 2001
  • Laatst online: 12-03 22:31
Dit is de flow waar het mis mee gaat:

NRfull

Ik heb ook al geprobeerd om de link nodes niet te gebruiken, maar dat maakt geen verschil.

[Voor 18% gewijzigd door CerielTjuh op 17-09-2019 22:10]

@CerielTjuh
Eigenlijk valt of staat alles dus met die switches via de HA koppeling. Wat voor device is dat en is die via HA services nog wel te besturen op het moment dat de flow niet meer functioneert?

  • Kaspers
  • Registratie: juni 2004
  • Laatst online: 03-04 17:51
z1rconium schreef op maandag 16 september 2019 @ 20:15:
Node-red in docker, ben er geen fan van, maar goed je kunt in de container het log bekijken:

code:
1
2
docker exec -it <containernaam> sh
journalctl -f -n 25 -u nodered -o cat


Dan krijg je het log van node-red te zien, probeer het probleem te reproduceren en misschien dat het log een hint kan geven.
Dat is wel heel erg omslachtig ;):

Vanaf de docker host:

code:
1
docker-compose logs -f -t --tail=500



Ik ben overigens wel fan :>.

  • z1rconium
  • Registratie: augustus 2014
  • Laatst online: 03-04 20:10
Kaspers schreef op woensdag 18 september 2019 @ 20:58:
[...]


Dat is wel heel erg omslachtig ;):

Vanaf de docker host:

code:
1
docker-compose logs -f -t --tail=500



Ik ben overigens wel fan :>.
Dan krijg je het log van de container, niet van node red, tenzij de compose hier in voorziet.

Leuk dat je wel fan bent maar het voegt niet zoveel toe en het is eerder omslachtig, los van de beperkingen.

  • RobertMe
  • Registratie: maart 2009
  • Laatst online: 12:47
z1rconium schreef op woensdag 18 september 2019 @ 21:24:
[...]

Dan krijg je het log van de container, niet van node red, tenzij de compose hier in voorziet.

Leuk dat je wel fan bent maar het voegt niet zoveel toe en het is eerder omslachtig, los van de beperkingen.
Gaat gewoon goed hoor, of in ieder geval voor mij. Het log van de container is de output van het proces dat door Docker wordt gestart, oftewel: nodered.
@z1rconium Het voegt voor mij juist heel veel toe.
- Niet afhankelijk van 1 host door docker swarms
- Update met problemen in +/- 10 seconde van rollback voorzien
- Centrale data locatie met data van al mijn applicaties

Ik heb ooit ook wel eens lopen klootviolen omdat ik eigenlijk een lokaal bestand wilde uitlezen via een node maar dat kon niet doordat NR in een container draait. Na lang en creatief denken kwam ik toen op een veel efficiëntere en logischere flow uit.

  • MrBarBarian
  • Registratie: oktober 2003
  • Laatst online: 12:42
Ik wil graag de waterdruk in mijn CV-ketel in de gaten houden, omdat ik weet dat deze langzaam terug loopt.

Ik heb Node-Red en Openthem draaient.. alleen weet iemand de msgtype voor de water druk (CH water pressure) of het msg.topic?

Dit is mijn setup btw:

code:
1
[{"id":"93613fe6.89297","type":"tab","label":"OpenTherm","disabled":false,"info":""},{"id":"151d2d03.3afaf3","type":"function","z":"93613fe6.89297","name":"trim","func":"var newMsg = { payload: msg.payload.length };\n\nmsg.payload = msg.payload.toString().substr(0,9);\n\n\nreturn msg;","outputs":1,"noerr":0,"x":315,"y":654.7000732421875,"wires":[["9240b37f.8b3a1"]]},{"id":"a1aab6f3.287548","type":"tcp in","z":"93613fe6.89297","name":"","server":"client","host":"192.168.0.140","port":"23","datamode":"stream","datatype":"buffer","newline":"","topic":"","base64":false,"x":105,"y":664,"wires":[["151d2d03.3afaf3"]]},{"id":"11aab045.6fad8","type":"switch","z":"93613fe6.89297","name":"read ack/write ack/else","property":"msgtype","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"},{"t":"eq","v":"1","vt":"num"},{"t":"eq","v":"4","vt":"num"},{"t":"eq","v":"5","vt":"num"},{"t":"eq","v":"7","vt":"num"},{"t":"else"}],"checkall":"true","repair":false,"outputs":6,"x":524,"y":604,"wires":[[],["aafd6c7b.7cafe"],["aafd6c7b.7cafe"],["aafd6c7b.7cafe"],[],[]]},{"id":"9240b37f.8b3a1","type":"otgwdec","z":"93613fe6.89297","name":"","x":324,"y":580,"wires":[["11aab045.6fad8"]]},{"id":"aafd6c7b.7cafe","type":"openthermdec","z":"93613fe6.89297","name":"","x":644,"y":852,"wires":[["caf65558.ed61c8"]]},{"id":"caf65558.ed61c8","type":"switch","z":"93613fe6.89297","name":"Route to MQTT","property":"topic","propertyType":"msg","rules":[{"t":"eq","v":"room/setpoint","vt":"str"},{"t":"eq","v":"dhw/temp","vt":"str"},{"t":"eq","v":"slave/status/dhw","vt":"str"},{"t":"eq","v":"slave/status/flame","vt":"str"},{"t":"eq","v":"control/setpoint","vt":"str"},{"t":"eq","v":"room/temp","vt":"str"}],"checkall":"true","repair":false,"outputs":6,"x":794.5,"y":601,"wires":[["c6e41f8.11b9ee"],["79f7cc17.820164"],["6d1388b3.393de8"],["bc757cb0.ead5c"],["84620d23.5b358"],["73bc940.fda056c"]]},{"id":"bc757cb0.ead5c","type":"change","z":"93613fe6.89297","name":"Create message and topic | DHW","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload","tot":"msg"},{"t":"set","p":"topic","pt":"msg","to":"Home/opentherm/dhw","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1161.5,"y":656,"wires":[["1f199e05.6afbf2"]]},{"id":"fbcaa82b.40ebd8","type":"mqtt out","z":"93613fe6.89297","name":"Publish MQTT message","topic":"","qos":"","retain":"","broker":"8fd19949.3328b8","x":2045.5,"y":803,"wires":[]},{"id":"6d1388b3.393de8","type":"change","z":"93613fe6.89297","name":"Create message and topic | Flame","rules":[{"t":"set","p":"topic","pt":"msg","to":"Home/opentherm/flame","tot":"str"},{"t":"set","p":"payload","pt":"msg","to":"payload","tot":"msg"},{"t":"set","p":"measurement","pt":"msg","to":"flame","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1159.5,"y":591,"wires":[["d03ec751.559218","7f9131be.2402f"]]},{"id":"1f199e05.6afbf2","type":"rbe","z":"93613fe6.89297","name":"Block unless value changes","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1606.5,"y":821,"wires":[["fbcaa82b.40ebd8"]]},{"id":"d03ec751.559218","type":"rbe","z":"93613fe6.89297","name":"Block unless value changes","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1603.5,"y":766,"wires":[["fbcaa82b.40ebd8"]]},{"id":"84620d23.5b358","type":"change","z":"93613fe6.89297","name":"Create message and topic | Control Setpoint","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload","tot":"msg"},{"t":"set","p":"topic","pt":"msg","to":"Home/opentherm/crlsetpoint","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1189.5,"y":716,"wires":[["5f7c14ee.b3a93c"]]},{"id":"5f7c14ee.b3a93c","type":"rbe","z":"93613fe6.89297","name":"Block unless value changes","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1652.5,"y":876,"wires":[["fbcaa82b.40ebd8"]]},{"id":"79f7cc17.820164","type":"change","z":"93613fe6.89297","name":"Create message and topic | DHW Temp","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload","tot":"msg"},{"t":"set","p":"topic","pt":"msg","to":"Home/opentherm/dhwtemp","tot":"str"},{"t":"set","p":"measurement","pt":"msg","to":"dhwtemp","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1182.5,"y":511,"wires":[["530b4268.7a5c3c","7f9131be.2402f"]]},{"id":"530b4268.7a5c3c","type":"rbe","z":"93613fe6.89297","name":"Block unless value changes","func":"deadband","gap":"1","start":"","inout":"out","property":"payload","x":1646.5,"y":664,"wires":[["fbcaa82b.40ebd8"]]},{"id":"c6e41f8.11b9ee","type":"change","z":"93613fe6.89297","name":"Create message and topic | Room Setpoint","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload","tot":"msg"},{"t":"set","p":"topic","pt":"msg","to":"Home/opentherm/rmsetpoint","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1199.5,"y":433,"wires":[["faa95616.e4c9a8"]]},{"id":"faa95616.e4c9a8","type":"rbe","z":"93613fe6.89297","name":"Block unless value changes","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1643.5,"y":598,"wires":[["fbcaa82b.40ebd8"]]},{"id":"73bc940.fda056c","type":"change","z":"93613fe6.89297","name":"Create message and topic | Room Temp","rules":[{"t":"set","p":"payload","pt":"msg","to":"room.temp","tot":"msg"},{"t":"set","p":"topic","pt":"msg","to":"Home/opentherm/rmtemp","tot":"str"},{"t":"set","p":"measurement","pt":"msg","to":"roomtemp","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1185.5,"y":770,"wires":[["2940184b.764d18","7f9131be.2402f"]]},{"id":"2940184b.764d18","type":"rbe","z":"93613fe6.89297","name":"Block unless value changes","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1647.5,"y":951,"wires":[["fbcaa82b.40ebd8"]]},{"id":"7f9131be.2402f","type":"influxdb out","z":"93613fe6.89297","influxdb":"609dac5b.cae0e4","name":"","measurement":"","precision":"","retentionPolicy":"","x":1729.5,"y":304,"wires":[]},{"id":"8fd19949.3328b8","type":"mqtt-broker","z":"","name":"Hass","broker":"192.168.0.221","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"609dac5b.cae0e4","type":"influxdb","z":"","hostname":"127.0.0.1","port":"8086","protocol":"http","database":"node_red","name":"Node Red","usetls":false,"tls":""}]

iRacing Profiel


  • z1rconium
  • Registratie: augustus 2014
  • Laatst online: 03-04 20:10
lolgast schreef op woensdag 18 september 2019 @ 23:09:
@z1rconium Het voegt voor mij juist heel veel toe.
- Niet afhankelijk van 1 host door docker swarms
- Update met problemen in +/- 10 seconde van rollback voorzien
- Centrale data locatie met data van al mijn applicaties

Ik heb ooit ook wel eens lopen klootviolen omdat ik eigenlijk een lokaal bestand wilde uitlezen via een node maar dat kon niet doordat NR in een container draait. Na lang en creatief denken kwam ik toen op een veel efficiëntere en logischere flow uit.
Ik heb het niet over docker zelf, docker/kubernetes/etc containers zijn fantastisch, precies wat je zegt version/rollbacks en platform agnostisch (tot op zekere hoogte).

Als ik node-red in een docker draai en ik heb avahi, ffmpeg nodig of iets wat uit /dev (zoals usb,serial, bt) moet komen, dan kan je daar aardig zoet mee zijn om het aan de praat te krijgen, of je maakt een nieuwe dockerfile/compose, wat op zijn beurt weer voeten in de aarde heeft.

Daarom draai ik het native (op linux) dan verdwijnen dat soort dingen als sneeuw voor de zon.

  • z1rconium
  • Registratie: augustus 2014
  • Laatst online: 03-04 20:10
MrBarBarian schreef op donderdag 19 september 2019 @ 10:25:
Ik wil graag de waterdruk in mijn CV-ketel in de gaten houden, omdat ik weet dat deze langzaam terug loopt.

Ik heb Node-Red en Openthem draaient.. alleen weet iemand de msgtype voor de water druk (CH water pressure) of het msg.topic?

Dit is mijn setup btw:

code:
1
[{"id":"93613fe6.89297","type":"tab","label":"OpenTherm","disabled":false,"info":""},{"id":"151d2d03.3afaf3","type":"function","z":"93613fe6.89297","name":"trim","func":"var newMsg = { payload: msg.payload.length };\n\nmsg.payload = msg.payload.toString().substr(0,9);\n\n\nreturn msg;","outputs":1,"noerr":0,"x":315,"y":654.7000732421875,"wires":[["9240b37f.8b3a1"]]},{"id":"a1aab6f3.287548","type":"tcp in","z":"93613fe6.89297","name":"","server":"client","host":"192.168.0.140","port":"23","datamode":"stream","datatype":"buffer","newline":"","topic":"","base64":false,"x":105,"y":664,"wires":[["151d2d03.3afaf3"]]},{"id":"11aab045.6fad8","type":"switch","z":"93613fe6.89297","name":"read ack/write ack/else","property":"msgtype","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"},{"t":"eq","v":"1","vt":"num"},{"t":"eq","v":"4","vt":"num"},{"t":"eq","v":"5","vt":"num"},{"t":"eq","v":"7","vt":"num"},{"t":"else"}],"checkall":"true","repair":false,"outputs":6,"x":524,"y":604,"wires":[[],["aafd6c7b.7cafe"],["aafd6c7b.7cafe"],["aafd6c7b.7cafe"],[],[]]},{"id":"9240b37f.8b3a1","type":"otgwdec","z":"93613fe6.89297","name":"","x":324,"y":580,"wires":[["11aab045.6fad8"]]},{"id":"aafd6c7b.7cafe","type":"openthermdec","z":"93613fe6.89297","name":"","x":644,"y":852,"wires":[["caf65558.ed61c8"]]},{"id":"caf65558.ed61c8","type":"switch","z":"93613fe6.89297","name":"Route to MQTT","property":"topic","propertyType":"msg","rules":[{"t":"eq","v":"room/setpoint","vt":"str"},{"t":"eq","v":"dhw/temp","vt":"str"},{"t":"eq","v":"slave/status/dhw","vt":"str"},{"t":"eq","v":"slave/status/flame","vt":"str"},{"t":"eq","v":"control/setpoint","vt":"str"},{"t":"eq","v":"room/temp","vt":"str"}],"checkall":"true","repair":false,"outputs":6,"x":794.5,"y":601,"wires":[["c6e41f8.11b9ee"],["79f7cc17.820164"],["6d1388b3.393de8"],["bc757cb0.ead5c"],["84620d23.5b358"],["73bc940.fda056c"]]},{"id":"bc757cb0.ead5c","type":"change","z":"93613fe6.89297","name":"Create message and topic | DHW","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload","tot":"msg"},{"t":"set","p":"topic","pt":"msg","to":"Home/opentherm/dhw","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1161.5,"y":656,"wires":[["1f199e05.6afbf2"]]},{"id":"fbcaa82b.40ebd8","type":"mqtt out","z":"93613fe6.89297","name":"Publish MQTT message","topic":"","qos":"","retain":"","broker":"8fd19949.3328b8","x":2045.5,"y":803,"wires":[]},{"id":"6d1388b3.393de8","type":"change","z":"93613fe6.89297","name":"Create message and topic | Flame","rules":[{"t":"set","p":"topic","pt":"msg","to":"Home/opentherm/flame","tot":"str"},{"t":"set","p":"payload","pt":"msg","to":"payload","tot":"msg"},{"t":"set","p":"measurement","pt":"msg","to":"flame","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1159.5,"y":591,"wires":[["d03ec751.559218","7f9131be.2402f"]]},{"id":"1f199e05.6afbf2","type":"rbe","z":"93613fe6.89297","name":"Block unless value changes","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1606.5,"y":821,"wires":[["fbcaa82b.40ebd8"]]},{"id":"d03ec751.559218","type":"rbe","z":"93613fe6.89297","name":"Block unless value changes","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1603.5,"y":766,"wires":[["fbcaa82b.40ebd8"]]},{"id":"84620d23.5b358","type":"change","z":"93613fe6.89297","name":"Create message and topic | Control Setpoint","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload","tot":"msg"},{"t":"set","p":"topic","pt":"msg","to":"Home/opentherm/crlsetpoint","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1189.5,"y":716,"wires":[["5f7c14ee.b3a93c"]]},{"id":"5f7c14ee.b3a93c","type":"rbe","z":"93613fe6.89297","name":"Block unless value changes","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1652.5,"y":876,"wires":[["fbcaa82b.40ebd8"]]},{"id":"79f7cc17.820164","type":"change","z":"93613fe6.89297","name":"Create message and topic | DHW Temp","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload","tot":"msg"},{"t":"set","p":"topic","pt":"msg","to":"Home/opentherm/dhwtemp","tot":"str"},{"t":"set","p":"measurement","pt":"msg","to":"dhwtemp","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1182.5,"y":511,"wires":[["530b4268.7a5c3c","7f9131be.2402f"]]},{"id":"530b4268.7a5c3c","type":"rbe","z":"93613fe6.89297","name":"Block unless value changes","func":"deadband","gap":"1","start":"","inout":"out","property":"payload","x":1646.5,"y":664,"wires":[["fbcaa82b.40ebd8"]]},{"id":"c6e41f8.11b9ee","type":"change","z":"93613fe6.89297","name":"Create message and topic | Room Setpoint","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload","tot":"msg"},{"t":"set","p":"topic","pt":"msg","to":"Home/opentherm/rmsetpoint","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1199.5,"y":433,"wires":[["faa95616.e4c9a8"]]},{"id":"faa95616.e4c9a8","type":"rbe","z":"93613fe6.89297","name":"Block unless value changes","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1643.5,"y":598,"wires":[["fbcaa82b.40ebd8"]]},{"id":"73bc940.fda056c","type":"change","z":"93613fe6.89297","name":"Create message and topic | Room Temp","rules":[{"t":"set","p":"payload","pt":"msg","to":"room.temp","tot":"msg"},{"t":"set","p":"topic","pt":"msg","to":"Home/opentherm/rmtemp","tot":"str"},{"t":"set","p":"measurement","pt":"msg","to":"roomtemp","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1185.5,"y":770,"wires":[["2940184b.764d18","7f9131be.2402f"]]},{"id":"2940184b.764d18","type":"rbe","z":"93613fe6.89297","name":"Block unless value changes","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1647.5,"y":951,"wires":[["fbcaa82b.40ebd8"]]},{"id":"7f9131be.2402f","type":"influxdb out","z":"93613fe6.89297","influxdb":"609dac5b.cae0e4","name":"","measurement":"","precision":"","retentionPolicy":"","x":1729.5,"y":304,"wires":[]},{"id":"8fd19949.3328b8","type":"mqtt-broker","z":"","name":"Hass","broker":"192.168.0.221","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"609dac5b.cae0e4","type":"influxdb","z":"","hostname":"127.0.0.1","port":"8086","protocol":"http","database":"node_red","name":"Node Red","usetls":false,"tls":""}]

In de code van node zie je dit:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Class 1: Control and Status Information
                  0:  [ function(v) { return [convBit(HB(v) & 1  ), "master/status/ch"                                 ] },
                        function(v) { return [convBit(HB(v) & 2  ), "master/status/dhw"                                ] },
                        function(v) { return [convBit(HB(v) & 4  ), "master/status/cooling"                            ] },
                        function(v) { return [convBit(HB(v) & 8  ), "master/status/otc"                                ] },
                        function(v) { return [convBit(HB(v) & 16 ), "master/status/ch2"                                ] },
                        function(v) { return [convBit(HB(v) & 32 ), "master/status/summer_mode"                        ] },
                        function(v) { return [convBit(HB(v) & 64 ), "master/status/dhw_blocking"                       ] },
                        function(v) { return [convBit(LB(v) & 1  ), "slave/status/fault"                               ] },
                        function(v) { return [convBit(LB(v) & 2  ), "slave/status/ch"                                  ] },
                        function(v) { return [convBit(LB(v) & 4  ), "slave/status/dhw"                                 ] },
                        function(v) { return [convBit(LB(v) & 8  ), "slave/status/flame"                               ] },
                        function(v) { return [convBit(LB(v) & 16 ), "slave/status/cooling"                             ] },
                        function(v) { return [convBit(LB(v) & 32 ), "slave/status/ch2"                                 ] },
                        function(v) { return [convBit(LB(v) & 64 ), "slave/status/diagnostic"                          ] },
                        function(v) { return [convBit(LB(v) & 128), "slave/status/electricity_prod"                    ] } ],
                  1: [  function(v) { return [convF88(   v       ), "control/setpoint"                                 ] } ],
                  5: [  function(v) { return [convBit(HB(v) & 1  ), "fault/service_request"                            ] },
                        function(v) { return [convBit(HB(v) & 2  ), "fault/lockout_reset"                              ] },
                        function(v) { return [convBit(HB(v) & 4  ), "fault/low_water_pressure"                         ] },
                        function(v) { return [convBit(HB(v) & 8  ), "fault/gas_flame"                                  ] },
                        function(v) { return [convBit(HB(v) & 16 ), "fault/air_pressure"                               ] },
                        function(v) { return [convBit(HB(v) & 32 ), "fault/water_overtemp"                             ] },
                        function(v) { return [convU8 (LB(v)      ), "fault/oem_code"                                   ] } ],
                  8: [  function(v) { return [convF88(   v       ), "control/setpoint2"                                ] } ],



Is dit wat je bedoeld ?

  • MrBarBarian
  • Registratie: oktober 2003
  • Laatst online: 12:42
For sure, thanks! :)

iRacing Profiel


  • Kaspers
  • Registratie: juni 2004
  • Laatst online: 03-04 17:51
z1rconium schreef op donderdag 19 september 2019 @ 11:00:
[...]of je maakt een nieuwe dockerfile/compose, wat op zijn beurt weer voeten in de aarde heeft.
Dat geeft mij juist ontzettend veel flexibiliteit. Als hier iets onverwachts gebeurt binnen mijn domotica flows, dan is 't een kwestie van m'n telefoon pakken, ssh opzetten naar mijn docker host, en met docker-compose een tail van de logs uitvragen, en ik zie meteen op basis van welke triggers welke functies zijn uitgevoerd. Zet je al je services in 1 compose file, dan wordt dit al wat minder overzichtelijk inderdaad. Ieder heeft z'n voorkeur natuurlijk.

  • RobertMe
  • Registratie: maart 2009
  • Laatst online: 12:47
Kaspers schreef op vrijdag 20 september 2019 @ 11:09:
[...]


Dat geeft mij juist ontzettend veel flexibiliteit. Als hier iets onverwachts gebeurt binnen mijn domotica flows, dan is 't een kwestie van m'n telefoon pakken, ssh opzetten naar mijn docker host, en met docker-compose een tail van de logs uitvragen, en ik zie meteen op basis van welke triggers welke functies zijn uitgevoerd. Zet je al je services in 1 compose file, dan wordt dit al wat minder overzichtelijk inderdaad. Ieder heeft z'n voorkeur natuurlijk.
Bij docker-compose kun je ook nog een service naam meegeven. Ik heb o.a. node-red en home assistant in een docker-compose.yaml staan en kan met docker-compose log nodered gewoon de specifieke logs van Node-Red opvragen. Uiteraard ook aan te vullen met --tail, --follow etc.

  • CerielTjuh
  • Registratie: juni 2001
  • Laatst online: 12-03 22:31
Het is een zwave power plug en via HA is hij dan wel nog gewoon te besturen. Het stomme is dat via een Zigbee remote (die ik via NR uitlees middels de plugin) kan dan ook de plug niet besturen. Je hebt me wel aan het denken gezet. Tegelijk met het aanzetten van de plug stuur ik ook een bericht naar mijn push app, maar die komt ook niet aan. Kan het zijn dat NR teveel info moet verwerken?
lolgast schreef op woensdag 18 september 2019 @ 08:21:
@CerielTjuh
Eigenlijk valt of staat alles dus met die switches via de HA koppeling. Wat voor device is dat en is die via HA services nog wel te besturen op het moment dat de flow niet meer functioneert?
@CerielTjuh Zitten al je automations in NR of gebeurd een deel nog via HA? Ik dacht dat alleen deze automation het niet deed na een tijdje?

Ik weet natuurlijk niet op wat voor NUC je draait, maar het zou me verbazen dat NR dit niet aan zou kunnen. Ik heb inmiddels pagina’s vol in NR en alles werkt altijd :)

  • pelt
  • Registratie: december 2006
  • Laatst online: 05-04 15:51
Ik ben net begonnen met Home Assistant en direct ook meteen begonnen met Node Red. Ik heb wat tutorials gelezen etc, maar er verandert relatief veel in korte tijd in zowel HA als in NR, dus ik weet niet echt waar ik bepaalde zaken moeten zoeken/vragen. Dus excuses als het een 'domme' vraag is en ik de verkeerde termen gebruik. Dat gezegd hebbende:

Ik heb een hele simpele flow. Als motion sensor beweging detecteert zet dan lamp aan. Als 3 minuten geen motion meer is doe dan lamp uit. Maar ik zou graag willen dat de flow stopt als de lamp al aan staat.

Ik zie in wat tutorials dat er een "Halt if" optie moet zijn in de "events state" node(?), maar of ik doe iets fout of zie iets over het hoofd want deze optie ontbreekt bij mij.

JSON:
1
[{"id":"76a1f58b.7f477c","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"65a71fa5.23e6f","type":"server-state-changed","z":"76a1f58b.7f477c","name":"Berging sensor","server":"e0914d48.a334b","version":1,"entityidfilter":"binary_sensor.motion_sensor_158d00035037d2","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"x":120,"y":100,"wires":[["bdb1462.26790b8"]]},{"id":"bdb1462.26790b8","type":"switch","z":"76a1f58b.7f477c","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":290,"y":100,"wires":[["d2fe8c1.0e1907"],["66ece2.8ce9532"]]},{"id":"4a17d4.3ede582c","type":"api-call-service","z":"76a1f58b.7f477c","name":"","server":"e0914d48.a334b","version":1,"service_domain":"light","service":"turn_on","entityId":"light.15680460c44f33a77a33","data":"{   \"entity_id\": \"light.15680460c44f33a77a33\" }","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":650,"y":60,"wires":[[]]},{"id":"318a69a9.65aa46","type":"api-call-service","z":"76a1f58b.7f477c","name":"","server":"e0914d48.a334b","version":1,"service_domain":"light","service":"turn_off","entityId":"light.15680460c44f33a77a33","data":"{   \"entity_id\": \"light.15680460c44f33a77a33\" }","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":630,"y":200,"wires":[[]]},{"id":"66ece2.8ce9532","type":"stoptimer","z":"76a1f58b.7f477c","duration":"3","units":"Minute","payloadtype":"num","payloadval":"0","name":"","x":440,"y":160,"wires":[["318a69a9.65aa46"],[]]},{"id":"d2fe8c1.0e1907","type":"api-current-state","z":"76a1f58b.7f477c","name":"Licht al aan?","server":"e0914d48.a334b","version":1,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"light.15680460c44f33a77a33","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":470,"y":60,"wires":[["4a17d4.3ede582c"],[]]},{"id":"e0914d48.a334b","type":"server","z":"","name":"Home Assistant"}]



https://i.imgur.com/msnxAeX.png

Edit: het probleem heb ik inmiddels simpel opgelost, door alleen string te trekken naar volgende node als 'lamp aan' false is, maar mijn vraag blijft staan... Waar is de Halt if optie?

[Voor 92% gewijzigd door pelt op 22-09-2019 22:08]


  • Tsurany
  • Registratie: juni 2006
  • Niet online
pelt schreef op zondag 22 september 2019 @ 21:48:
Edit: het probleem heb ik inmiddels simpel opgelost, door alleen string te trekken naar volgende node als 'lamp aan' false is, maar mijn vraag blijft staan... Waar is de Halt if optie?
Ik weet niet wat precies bedoeld wordt met de "Half if" optie maar wat ik in zulke gevallen doe is een flow variable gebruiken. Deze waarde kan je met een function vastzetten en dan elke keer tegen controleren. Idealiter zet je elke keer bij motion een nieuwe timeout value en check je elke 10 seconden tegen deze value of het licht uit kan.

  • pelt
  • Registratie: december 2006
  • Laatst online: 05-04 15:51
Tsurany schreef op zondag 22 september 2019 @ 22:21:
[...]

Ik weet niet wat precies bedoeld wordt met de "Half if" optie maar wat ik in zulke gevallen doe is een flow variable gebruiken. Deze waarde kan je met een function vastzetten en dan elke keer tegen controleren. Idealiter zet je elke keer bij motion een nieuwe timeout value en check je elke 10 seconden tegen deze value of het licht uit kan.
Thanks. Onder andere in deze tutorial zie ik de optie terugkomen met bijbehorend screenshot:
https://i1.wp.com/diyfuturism.com/wp-content/uploads/2017/12/Screen-Shot-2017-12-14-at-8.33.30-PM.png
https://diyfuturism.com/i...ting-with-home-assistant/
Als je 'halt if' invult, krijgt de node 2 uitgangen in plaats van 1. Een bericht gaat via de onderste uitgang indien de msg.payload dezelfde waarde heeft als wat bij 'halt if' is ingevuld.

  • Troetelbeer
  • Registratie: juni 2018
  • Laatst online: 01-04 16:34
Een vraagje...

Ik heb in HA van mijn Google Agenda afspraken een sensor gemaakt. Dus ik zie nu in HA wat mijn volgende afspraak is en als die voorbij is zie ik weer de eerstvolgende.

Nu wil ik in Node-Red een flow maken dat ik de avond van tevoren een reminder/notificatie krijg via mijn Google Home(spraak dus). Echter, ik zou niet weten hoe.

Ik weet dus niet hoe ik een tijd moet instellen voor een event dat nog moet plaatsvinden...

Iemand anders wel?

Believe. Imagine. Create.


  • Thoit
  • Registratie: februari 2015
  • Laatst online: 12:48
Troetelbeer schreef op dinsdag 24 september 2019 @ 19:15:
Een vraagje...

Ik heb in HA van mijn Google Agenda afspraken een sensor gemaakt. Dus ik zie nu in HA wat mijn volgende afspraak is en als die voorbij is zie ik weer de eerstvolgende.

Nu wil ik in Node-Red een flow maken dat ik de avond van tevoren een reminder/notificatie krijg via mijn Google Home(spraak dus). Echter, ik zou niet weten hoe.

Ik weet dus niet hoe ik een tijd moet instellen voor een event dat nog moet plaatsvinden...

Iemand anders wel?
Je kan een inject-node gebruiken en een specifiek tijdstip instellen: https://nodered.org/docs/user-guide/nodes

  • Troetelbeer
  • Registratie: juni 2018
  • Laatst online: 01-04 16:34
Het is me al gelukt! :)

Believe. Imagine. Create.

Mooie milestone voor Node-RED vandaag, versie 1.0 is uitgebracht
https://nodered.org/blog/2019/09/30/version-1-0-released

  • pelt
  • Registratie: december 2006
  • Laatst online: 05-04 15:51
Vrij simpele vraag, maar ik krijg het niet gegoogled. Hoe kan ik een variable zoals de huidige tijd in de data van een node krijgen? Met HA kan je bijvoorbeeld onderstaande gebruiken voor een Telegram notify:
code:
1
{"message":"Er is aangebeld om *{{states('sensor.time_date')}}*"}



Maar hoe doe ik datzelfde bij NR? Of waar moet ik op Googlen?

[Voor 3% gewijzigd door pelt op 01-10-2019 22:10]


  • Milmoor
  • Registratie: januari 2000
  • Laatst online: 12:36

Milmoor

Footsteps and pictures.

pelt schreef op dinsdag 1 oktober 2019 @ 22:07:
Vrij simpele vraag, maar ik krijg het niet gegoogled. Hoe kan ik een variable zoals de huidige tijd in de data van een node krijgen? Met HA kan je bijvoorbeeld onderstaande gebruiken voor een Telegram notify:
code:
1
{"message":"Er is aangebeld om *{{states('sensor.time_date')}}*"}



Maar hoe doe ik datzelfde bij NR? Of waar moet ik op Googlen?
Jsonata: https://docs.jsonata.org/date-time

Bijvoorbeeld via de Change node en daarmee msg.date-time vullen via de Jsonata optie.

Rekeningrijden is onvermijdelijk, uitstel is struisvogelpolitiek.

@pelt De belangrijkste vraag: Waarom wil je de tijd in de notificatie? De notificatie zelf heeft toch een timestamp?
In berichten die ik vanuit NR naar Telegram stuur, zet ik ook altijd expliciet de tijd in het bericht. Een enkele keer komt hij nog wel eens vertraagd aan, dus dan is het handig om te zien wanneer hij verstuurd werd.

  • Tsurany
  • Registratie: juni 2006
  • Niet online
Je wilt altijd de timestamp nemen van het event, is dat niet mogelijk dan zo snel mogelijk na het optreden van dat event. De vraag is dus wat je trigger is, hebben we het over een MQTT message uit een ander systeem of een sensor rechtstreeks aangesloten op Node-RED?
In het geval van een MQTT message wil je de timestamp al in de message zetten zodat, zelfs als dit bericht vertraagt is, de timestamp wel juist is. Gaat het om een sensor dan is de vertraging zo minimaal dat je wel met een timestamp functie af kan.

Dan is het simpelweg een kwestie van de volgende code bovenin je script zetten:
var timestamp = Date.now();
Dan heb je de variabele timestamp die je verder in je message kan integreren via onderstaande functie:

code:
1
2
3
4
var timestamp = Date.now();
var MsgText = "Er is aangebeld om ";
var newMsg = { payload: MsgText.concat(timestamp); };
return newMsg;



Bovenstaande code onder voorbehoud, heb zelf geen Node-RED bij de hand om het fatsoenlijk te testen. Maar hier moet je een eind mee komen denk ik.

  • pelt
  • Registratie: december 2006
  • Laatst online: 05-04 15:51
Dank allen. Ik heb nog geen ervaring met het werken met variabelen en functies in NR. Ik ga er dit weekend mee aan de slag.

  • Tsurany
  • Registratie: juni 2006
  • Niet online
pelt schreef op woensdag 2 oktober 2019 @ 10:38:
Dank allen. Ik heb nog geen ervaring met het werken met variabelen en functies in NR. Ik ga er dit weekend mee aan de slag.
Tsurany in "Slimme meter uitlezen via P1-poort"

Ik heb daar een flow in staan met aardig wat functies inclusief flow variabelen. Onderaan de post staat de source code waarmee je de flow in Node-RED kan importeren. Wellicht interessant om eens door te nemen qua inspiratie?

https://tweakers.net/ext/f/Rvdg16pUlvuzeRuMEYLtYk02/full.png

  • pelt
  • Registratie: december 2006
  • Laatst online: 05-04 15:51
Ben ik weer met een simpele vraag, waar ik de hele avond mee hebben zitten klooien, maar het niet werkend heb gekregen. Ik heb een 'slimme' stekker op mij afwasmachine. Doel is om bijv. een berichtje te sturen als deze klaar is. In HA kan je vrij makkelijk in stellen dat een bepaalde state x minuten een bepaalde waarde moet hebben.

In mijn geval wil ik zoiets doen: "als afwasmachine < 8W voor 2 minuten" of "als afwasmachine < 8W en na twee minuten nog steeds < 8W" stuur me dan een berichtje.

Het moet volgens mij mogelijk zijn met een stop-timer, maar ik krijg het maar niet voor mekaar...

  • Tsurany
  • Registratie: juni 2006
  • Niet online
@pelt hoe komt je data binnen? Een simpele gedachte vanuit mijn kant is het verbruik omzetten naar een boolean, dus als verbruik boven 8 watt dan is het true, anders false. Vervolgens heb je een flow variabele waar die waarde naar weggeschreven wordt incl timestamp wanneer deze voor het laatst gewijzigd is. In je flow, die je elke X seconden laat draaien, controleer je dan of de huidige status nu false is en de laatste keer dat de status naar false gewijzigd is meer dan 2 minuten geleden is.

Dan weet je dus dat hij al twee minuten lang elke X seconden gecontroleerd is en nooit boven de 8 watt uitgekomen is, dan zal hij wel klaar zijn.

  • Kaspers
  • Registratie: juni 2004
  • Laatst online: 03-04 17:51
Iemand die de deconz conbee2 stick in gebruik heeft en de
node-red-contrib-deconz plugin werkend heeft gekregen in NR?

https://i.imgur.com/d1wLtak.png

Ik krijg de 'magic' API key generation maar niet voor elkaar. Heb nu handmatig een key aangemaakt met de REST api, dat werkt opzich prima met de deconz-event node, maar 't wordt pas echt leuk met de deconz-input node, maar daar krijg ik de device-list maar niet gefetched.

  • stefve1
  • Registratie: januari 2010
  • Laatst online: 07-04 22:39
Iemand aub die even kan kijken of dit eenvoudiger kan?
Ik ben nog maar net begonnen met NodeRed en ik wil graag zou weinig mogelijk nodes gebruiken om het overzichtelijk te houden.

https://i.imgur.com/vy1OJAV.png

Ik wil kijken of de status van persoon 1 of persoon 2 van 'home' naar 'not_home' gaat of omgekeerd.
Opzich zou dit denk ik eenvoudiger kunnen als de trigger node de 'entity ID' kan meekrijgen van de vorige node.

[Voor 16% gewijzigd door stefve1 op 07-10-2019 11:50]


  • Tsurany
  • Registratie: juni 2006
  • Niet online
Dat moet toch met een enkele function node kunnen? Wat is de output die uit de state_changed node komt?

  • Troetelbeer
  • Registratie: juni 2018
  • Laatst online: 01-04 16:34
stefve1 schreef op maandag 7 oktober 2019 @ 11:49:
Iemand aub die even kan kijken of dit eenvoudiger kan?
Ik ben nog maar net begonnen met NodeRed en ik wil graag zou weinig mogelijk nodes gebruiken om het overzichtelijk te houden.

[Afbeelding]

Ik wil kijken of de status van persoon 1 of persoon 2 van 'home' naar 'not_home' gaat of omgekeerd.
Opzich zou dit denk ik eenvoudiger kunnen als de trigger node de 'entity ID' kan meekrijgen van de vorige node.
Gebruik je HA? In HA kun zelf kun je het simpel zien :+

Believe. Imagine. Create.


  • stefve1
  • Registratie: januari 2010
  • Laatst online: 07-04 22:39
Troetelbeer schreef op maandag 7 oktober 2019 @ 13:15:
[...]


Gebruik je HA? In HA kun zelf kun je het simpel zien :+
Tsurany schreef op maandag 7 oktober 2019 @ 12:25:
Dat moet toch met een enkele function node kunnen? Wat is de output die uit de state_changed node komt?
Ik gebruik de volgende NodeRed flow: https://bonani.tech/makin...-binary-node-red-version/

Het probleem is dat ik in HA verschillende zones heb (bv eentje voor het werk). Wanneer ik op mijn werk vertrek, gaat HA mijn state aanpassen van Work naar 'not_home'. Dit geeft het probleem dat deze flow denkt dat ik net thuis vertrokken ben. Met bovenstaande flow wil ik dus kijken of persoon 1 of 2 net thuis aankomt of net thuis vertrekt.
Even uit m'n hoofd, stuur eens de 'complete msg object' naar een debug node. Waarschijnlijk kan je ergens de old_state of iets dergelijks inzien. Daar kan je dan in een switch-node op filteren zodat de actie die jij wilt uitvoeren enkel plaatsvindt als de vorige state 'home' was.

  • stefve1
  • Registratie: januari 2010
  • Laatst online: 07-04 22:39
DeadMetal schreef op maandag 7 oktober 2019 @ 13:33:
Even uit m'n hoofd, stuur eens de 'complete msg object' naar een debug node. Waarschijnlijk kan je ergens de old_state of iets dergelijks inzien. Daar kan je dan in een switch-node op filteren zodat de actie die jij wilt uitvoeren enkel plaatsvindt als de vorige state 'home' was.
Bedankt, weer wat bijgeleerd! Dit scheelt mij 3 nodes, en het werkt perfect!

  • Pimmetje651
  • Registratie: oktober 2001
  • Laatst online: 10:48
Het is begonnen, de migratie van Domoticz naar HASsio, met daarbij Node-RED .
Nu ben ik dus aan het prullen, en loop tegen een aantal vragen aan, die ik met blockly's in domoticz zo op wist te pakken / lossen, maar nu toch even al een tijdje naar aan het zoeken ben geweest .
Heb een flow gemaakt :
https://i.postimg.cc/2yWCHgMF/flow1.jpg

en heb een sensor gemaakt : iemand thuis, die als status afgeeft : True of False .
Deze probeerde ik in een "current state" toevoegen, maar krijg het niet werkende :
https://i.postimg.cc/zDHDXRvb/CS1.jpg
en als flow:
https://i.postimg.cc/mDJbyTXg/flow2.jpg

maar de flow loopt/ werkt niet , rara wat doe ik verkeerd ?

Ook vraag ik me af of ik een % kan afgeven op een dimmer.
Zoals in de bovenste flow te zien is er een "call service" met : lamp hal aan maar daar zit geen dim % in. Maar hoe moet ik dat wel doen :o

[Voor 4% gewijzigd door Pimmetje651 op 10-10-2019 22:10. Reden: resize plaatjes]

Its'nice 2be important, but it's more important 2be nice


  • Troetelbeer
  • Registratie: juni 2018
  • Laatst online: 01-04 16:34
Pimmetje651 schreef op donderdag 10 oktober 2019 @ 22:03:
Het is begonnen, de migratie van Domoticz naar HASsio, met daarbij Node-RED .
Nu ben ik dus aan het prullen, en loop tegen een aantal vragen aan, die ik met blockly's in domoticz zo op wist te pakken / lossen, maar nu toch even al een tijdje naar aan het zoeken ben geweest .
Heb een flow gemaakt :
[Afbeelding]

en heb een sensor gemaakt : iemand thuis, die als status afgeeft : True of False .
Deze probeerde ik in een "current state" toevoegen, maar krijg het niet werkende :
[Afbeelding]
en als flow:
[Afbeelding]

maar de flow loopt/ werkt niet , rara wat doe ik verkeerd ?

Ook vraag ik me af of ik een % kan afgeven op een dimmer.
Zoals in de bovenste flow te zien is er een "call service" met : lamp hal aan maar daar zit geen dim % in. Maar hoe moet ik dat wel doen :o
Ik zou het zo doen:
https://i.ibb.co/Httv808/flow.jpg

https://i.ibb.co/sQDNY2H/current.jpg

https://i.ibb.co/Mh3RRtn/switch.jpg

Ja/Nee kan dus ook True/False zijn...

Believe. Imagine. Create.

Je hebt die 2e node (switch node) tegenwoordig niet perse meer nodig. In de eerste node zou je bij de if-state een waarde kunnen invullen. De node krijgt dan een 2e uitgang. Een bericht gaat via de bovenste uitgang als de waarde de ingestelde waarde is. En anders gaat hij via de 2e uitgang.

Bij true/false wel altijd goed opletten of je met een boolean of een string te maken hebt (dat kan je via een debug node zien). In het geval van een boolean klik je op dat 'a-z' knopje (bovenste screenshot) en verander je dat in 'boolean' en selecteer je vervolgens true of false.

  • Troetelbeer
  • Registratie: juni 2018
  • Laatst online: 01-04 16:34
DeadMetal schreef op zaterdag 12 oktober 2019 @ 08:26:
Je hebt die 2e node (switch node) tegenwoordig niet perse meer nodig. In de eerste node zou je bij de if-state een waarde kunnen invullen. De node krijgt dan een 2e uitgang. Een bericht gaat via de bovenste uitgang als de waarde de ingestelde waarde is. En anders gaat hij via de 2e uitgang.

Bij true/false wel altijd goed opletten of je met een boolean of een string te maken hebt (dat kan je via een debug node zien). In het geval van een boolean klik je op dat 'a-z' knopje (bovenste screenshot) en verander je dat in 'boolean' en selecteer je vervolgens true of false.
Ja, je hebt gelijk...Maar was het zo gewend :9

Believe. Imagine. Create.


  • Troetelbeer
  • Registratie: juni 2018
  • Laatst online: 01-04 16:34
@Pimmetje651 Wat betreft je dim vraag...Bij de call service node zie je onderaan in het configuratie scherm van die node allemaal opties staan wat je kunt toepassen: transition, rgb_color, color_name, brightness_pct enz.

Bij het kopje "Data" kun je dat vervolgens invullen in json code:


code:
1
{"brightness_pct":jouwgetal}



Edit: screenshot toegevoegd...

https://i.ibb.co/D8MSQMJ/call.jpg

[Voor 11% gewijzigd door Troetelbeer op 12-10-2019 11:24]

Believe. Imagine. Create.

Ik ben er vandaag achter gekomen dat er geen reden is om de v8 tag van de oude nodered Docker image te gebruiken als je homeassistant websockets gebruikt :+ Die setup draai ik echt al maanden..

Ik ben dus eindelijk over naar de nieuwe nodered image

[Voor 13% gewijzigd door lolgast op 14-10-2019 09:55]


  • Tsurany
  • Registratie: juni 2006
  • Niet online
Ik kwam er met Node-RED 1.0 achter dat mijn Modbus plugin niet meer werkte, hij gaf geen errors maar leverde ook geen output meer. Dat kost toch aardig wat uren aan logging als je dat niet op tijd opmerkt.
Tip voor iedereen dus, check even of je plugins wel goed werken na een upgrade naar 1.0.

Ik zit voorlopig nog op de oude versie aangezien de plugin author geen tijd heeft voor een update.

  • CerielTjuh
  • Registratie: juni 2001
  • Laatst online: 12-03 22:31
Ik ook en sindsdien werkt mijn badkamer schakeling weer zoals het heurtt :)
lolgast schreef op maandag 14 oktober 2019 @ 09:53:
Ik ben er vandaag achter gekomen dat er geen reden is om de v8 tag van de oude nodered Docker image te gebruiken als je homeassistant websockets gebruikt :+ Die setup draai ik echt al maanden..

Ik ben dus eindelijk over naar de nieuwe nodered image

  • RobertMe
  • Registratie: maart 2009
  • Laatst online: 12:47
Zo te zien is er ook een nieuw image: nodered/node-red, deze bevat ook als enige de 1.0 release. nodered/node-red-docker komt dus te vervallen en blijft steken op de 0.20 release.

Zelf zojuist de switch gemaakt. Wat ik wel even moest doen was de rechten van de bind-mounted data directory aanpassen. Deze moet nu 1000:1000 zijn en was bij mij 1001:1001.

  • Dacuuu
  • Registratie: maart 2009
  • Laatst online: 13:01
Wat is nu de simpelste manier om een current state op te slaan? Wat ik bijv wil:

Sla current state van een lamp op (brightness) vervolgens brightness omlaag, en dan weer terug naar de brightness van stap 1.

Ik vind wel wat voorbeelden online, maar daar loop ik op spaak. Sommige HA nodes uit de voorbeelden zijn verleden tijd etc.

Mijn Youtube reviews: https://www.youtube.com/user/BartjuhB/videos


  • Tsurany
  • Registratie: juni 2006
  • Niet online
Een flow variable werkt prima.

  • Dacuuu
  • Registratie: maart 2009
  • Laatst online: 13:01
Iets te kort door de bocht met mijn node-red skills. :+

Met deze flow krijg ik een brightness getal er uit, maar als ik dan vervolgens de change node gebruik om data.attributes.brightness naar een andere variable krijg ik geen brightness getal uitput meer, maar een undefined.


code:
1
[{"id":"79b4b0a6.a8567","type":"api-current-state","z":"fc8ee7ad.8c2438","name":"Ledstrip","server":"1997c54b.5ff4fb","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"light.ledstrip","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":347.60000228881836,"y":276.00000381469727,"wires":[["2077e515.f1bfba"]]},{"id":"2077e515.f1bfba","type":"debug","z":"fc8ee7ad.8c2438","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"data.attributes.brightness","targetType":"msg","x":653,"y":276.00000381469727,"wires":[]},{"id":"2d2ed3d.86bc22c","type":"inject","z":"fc8ee7ad.8c2438","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":142.60000228881836,"y":276.00000381469727,"wires":[["79b4b0a6.a8567"]]},{"id":"1997c54b.5ff4fb","type":"server","z":"","name":"Home Assistant","legacy":false,"hassio":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true}]



https://i.imgur.com/LWJFmrN.png

Mijn Youtube reviews: https://www.youtube.com/user/BartjuhB/videos


  • BounceCloud
  • Registratie: juni 2007
  • Nu online
lolgast schreef op dinsdag 17 september 2019 @ 19:53:
@CerielTjuh Kun je de flow eens posten? Als de rest van je zwave wel door blijft draaien moet er bijna wel een node in de weg zitten.

Ik heb van de week ook weer wat zitten hobbyen. Het is een WiP en hij kan absoluut beter/simpeler, maar voor nu doet hij wat hij moet doen[Afbeelding]
Ik hou regelmatig de tweedekansjes van een specifieke productgroep in de gaten op de Coolblue, maar vaak vergat ik het een tijd en dan mis je waarschijnlijk een hoop kanshebbers. Dus ik dacht, dat kan slimmer. Bovenstaande controleert elk uur de resultaten van de mijn productgroep + aangevinkte opties (eerste http request). Die zet hij onder elkaar waarna ik de combinatie van alle resultaten in de RBE node gooi en controleer op wijzigingen. Zijn er geen wijzigingen, houdt het op. Zijn die er wel, dan wordt elk resultaat doorgestuurd met daar in, type/model, van- naar prijs en de link naar advertentie.

Wat ik nog wil veranderen: Als er nu voorheen 4 resultaten waren en er wordt er 1 verkocht, dan ziet de RBE dat als een wijziging en krijg ik 3 artikelen doorgestuurd. Die ken ik natuurlijk al. Dus daar moet ik iets op verzinnen. Eigenlijk moet er gewoon iets komen die altijd alleen maar de nieuwe productie doorstuurt. Maar ik was moe en zoals ik zei, dit werkt nu :+
Zou je je flow eens kunnen delen? :) Leuke toepassing van Node-RED buiten de gebruikelijke domotica en ik ben wel benieuwd hoe je dat gedaan hebt. _/-\o_

  • schumi2004
  • Registratie: februari 2004
  • Laatst online: 13:14

schumi2004

PSN = whocarez-

Wie kan me op weg helpen met een Xiaomi Button in Node-Red?

Welke node moet je nu gebruiken als je gebruik wilt maken van click, double click en shake states etc?
Ik wil gewoon single click en light aan, niet zo spannend lijkt me.

Button is gekoppeld in Hass.io middels zigbee2mqtt en ik zie ook de button clicks in zigbee2mqtt log maar als ik vervolgens deze button als debug toevoeg in Node-Red zie ik helemaal niets,

Ik maak dan een debug setup met event all en debug node. En debug met event state voor de specifieke actie laad ook geen debug informatie zien.

  • Dacuuu
  • Registratie: maart 2009
  • Laatst online: 13:01
schumi2004 schreef op zondag 20 oktober 2019 @ 13:08:
Wie kan me op weg helpen met een Xiaomi Button in Node-Red?

Welke node moet je nu gebruiken als je gebruik wilt maken van click, double click en shake states etc?
Ik wil gewoon single click en light aan, niet zo spannend lijkt me.

Button is gekoppeld in Hass.io middels zigbee2mqtt en ik zie ook de button clicks in zigbee2mqtt log maar als ik vervolgens deze button als debug toevoeg in Node-Red zie ik helemaal niets,

Ik maak dan een debug setup met event all en debug node. En debug met event state voor de specifieke actie laad ook geen debug informatie zien.
Welke knop heb je?

Zo gebruik ik de ronde drukknop van xiaomi (WXKG01LM)

code:
1
[{"id":"217d7e9d.75dc22","type":"switch","z":"fa98f545.910958","name":"Switch","property":"payload.event.entity_id","propertyType":"msg","rules":[{"t":"eq","v":"binary_sensor.switch_158d00033efd0a","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":329.99999618530273,"y":178.00000190734863,"wires":[["3882c167.698aee"]]},{"id":"aaaefce2.eb868","type":"server-events","z":"fa98f545.910958","name":"","server":"1997c54b.5ff4fb","event_type":"","x":317.1999816894531,"y":111.00000190734863,"wires":[["217d7e9d.75dc22"]]},{"id":"3882c167.698aee","type":"switch","z":"fa98f545.910958","name":"click type","property":"payload.event.click_type","propertyType":"msg","rules":[{"t":"eq","v":"single","vt":"str"},{"t":"eq","v":"double","vt":"str"},{"t":"eq","v":"hold","vt":"str"},{"t":"eq","v":"long_click_press","vt":"str"},{"t":"eq","v":"long_click_release","vt":"str"}],"checkall":"true","repair":false,"outputs":5,"x":330.5999755859375,"y":297.00000381469727,"wires":[[],[],[],[],[]]},{"id":"1997c54b.5ff4fb","type":"server","z":"","name":"Home Assistant","legacy":false,"hassio":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true}]



En dan heb ik nog een Aqara double switch (WXKG02LM) die ik zo aanstuur.

code:
1
[{"id":"22fb7e09.8e7ac2","type":"server-events","z":"810a4f91.db194","name":"Xiaomi 2 drukschakelaar","server":"1997c54b.5ff4fb","event_type":"xiaomi_aqara.click","x":171.60000610351562,"y":195.00000286102295,"wires":[["d1e7b94d.698a08"]]},{"id":"d1e7b94d.698a08","type":"switch","z":"810a4f91.db194","name":"Switch","property":"payload.event.entity_id","propertyType":"msg","rules":[{"t":"eq","v":"binary_sensor.wall_switch_left_158d0001e069ce","vt":"str"},{"t":"eq","v":"binary_sensor.wall_switch_right_158d0001e069ce","vt":"str"},{"t":"eq","v":"binary_sensor.wall_switch_both_158d0001e069ce","vt":"str"}],"checkall":"true","repair":false,"outputs":3,"x":390.00000762939453,"y":198.00000286102295,"wires":[[],[],[]]},{"id":"1997c54b.5ff4fb","type":"server","z":"","name":"Home Assistant","legacy":false,"hassio":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true}]



Ik ben zeker geen expert op nodered gebied, maar het werkt zo. :+

https://www.home-assistan...nary_sensor.xiaomi_aqara/

Mijn Youtube reviews: https://www.youtube.com/user/BartjuhB/videos


  • schumi2004
  • Registratie: februari 2004
  • Laatst online: 13:14

schumi2004

PSN = whocarez-

Ik heb deze: WXKG12LM

Om een of andere reden snap ik de logica niet van Node Red. Zoek me elke keer een slag in de ronde om iets werkend te krijgen.

Bedankt voor je voorbeelden, vanavond eens proberen.

  • kmf
  • Registratie: november 2000
  • Niet online
schumi2004 schreef op zondag 20 oktober 2019 @ 13:08:
Wie kan me op weg helpen met een Xiaomi Button in Node-Red?

Welke node moet je nu gebruiken als je gebruik wilt maken van click, double click en shake states etc?
Ik wil gewoon single click en light aan, niet zo spannend lijkt me.

Button is gekoppeld in Hass.io middels zigbee2mqtt en ik zie ook de button clicks in zigbee2mqtt log maar als ik vervolgens deze button als debug toevoeg in Node-Red zie ik helemaal niets,

Ik maak dan een debug setup met event all en debug node. En debug met event state voor de specifieke actie laad ook geen debug informatie zien.
Er zijn meerdere wegen die naar rome leiden. Dat is het voordeel en nadeel.

Ik zelf gebruik de interne nodes. Namelijk de switch node

en dan wel zo.
https://i.ibb.co/0XhY71M/Screenshot-2019-10-20-15-25-43.png
afbeeeldingen


Deze wordt weer gevoed door mqtt node. Dus volledig buiten andere domotica systemen om.

One thing's certain: the iPad seriously increases toilet time.


  • schumi2004
  • Registratie: februari 2004
  • Laatst online: 13:14

schumi2004

PSN = whocarez-

kmf schreef op zondag 20 oktober 2019 @ 15:27:
<knip>

Deze wordt weer gevoed door mqtt node. Dus volledig buiten andere domotica systemen om.
Die switch die snap ik nog wel maar hoe ziet dan zo'n MQTT node eruit?
Ben niet op mijn plek dus kan niet zelf zoeken.

Ik heb meestal het probleem met de input nodes, switchen etc erna kom ik wel redelijk mee weg.

  • kmf
  • Registratie: november 2000
  • Niet online
schumi2004 schreef op zondag 20 oktober 2019 @ 15:45:
[...]

Die switch die snap ik nog wel maar hoe ziet dan zo'n MQTT node eruit?
Ben niet op mijn plek dus kan niet zelf zoeken.

Ik heb meestal het probleem met de input nodes, switchen etc erna kom ik wel redelijk mee weg.
zo:

https://i.ibb.co/BcCNyHb/Screenshot-2019-10-20-15-47-59.png

Een fout waar ik elke keer in trap, is de output op automatic houden ipv parsed json object.


Protip: installeer mqtt explorer om al je mqtt berichten te zien. inclusief topicpad. Die kan je zo kopieren en gebruiken in node red.

[Voor 11% gewijzigd door kmf op 20-10-2019 15:50]

One thing's certain: the iPad seriously increases toilet time.

BounceCloud schreef op zondag 20 oktober 2019 @ 11:46:
[...]


Zou je je flow eens kunnen delen? :) Leuke toepassing van Node-RED buiten de gebruikelijke domotica en ik ben wel benieuwd hoe je dat gedaan hebt. _/-\o_
Natuurlijk:
JSON:
1
[{"id":"2fc4d23c.09631e","type":"traffic","z":"50f6e1f4.30c2d","name":"","property_allow":"payload","filter_allow":"allow","ignore_case_allow":false,"negate_allow":false,"send_allow":false,"property_stop":"payload","filter_stop":"block","ignore_case_stop":false,"negate_stop":false,"send_stop":false,"default_start":false,"differ":false,"x":877.7778015136719,"y":1827.7778015136719,"wires":[["a8e126df.1515d"]]},{"id":"43b05294.f79724","type":"delay","z":"50f6e1f4.30c2d","name":"","pauseType":"delay","timeout":"2","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":650,"y":1760,"wires":[["2fc4d23c.09631e"]]},{"id":"a8e126df.1515d","type":"change","z":"50f6e1f4.30c2d","name":"","rules":[{"t":"set","p":"type","pt":"msg","to":"$.payload.title","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":870,"y":1900,"wires":[["2bc00780.7f13b8"]]},{"id":"db33c6cc.8a3ea8","type":"trigger","z":"50f6e1f4.30c2d","op1":"","op2":"","op1type":"nul","op2type":"pay","duration":"3","extend":false,"units":"s","reset":"","bytopic":"all","name":"","x":677.7778015136719,"y":1827.7778015136719,"wires":[["2fc4d23c.09631e"]]},{"id":"9d9e6440.16a468","type":"change","z":"50f6e1f4.30c2d","name":"allow","rules":[{"t":"set","p":"payload","pt":"msg","to":"allow","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":667.7778015136719,"y":1877.7778015136719,"wires":[["2fc4d23c.09631e"]]},{"id":"844cf10.d26b69","type":"html","z":"50f6e1f4.30c2d","name":"kanshebbers","property":"payload","outproperty":"payload","tag":".product__titles a","ret":"attr","as":"multi","x":340,"y":1760,"wires":[["8990a37.b0dd9e","43b05294.f79724"]]},{"id":"2bc00780.7f13b8","type":"http request","z":"50f6e1f4.30c2d","name":"","method":"GET","ret":"txt","paytoqs":false,"url":"https://www.coolblue.nl{{{payload.href}}}","tls":"","proxy":"","authType":"","x":930,"y":1950,"wires":[["5362edcb.b6c71c"]]},{"id":"1ed452b7.c4d595","type":"change","z":"50f6e1f4.30c2d","name":"block","rules":[{"t":"set","p":"payload","pt":"msg","to":"block","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":517.7778015136719,"y":1797.7778015136719,"wires":[["db33c6cc.8a3ea8"]]},{"id":"67391623.ecd4e8","type":"rbe","z":"50f6e1f4.30c2d","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":517.7778015136719,"y":1837.7778015136719,"wires":[["9d9e6440.16a468"]]},{"id":"e0b89686.a77f18","type":"http request","z":"50f6e1f4.30c2d","name":"","method":"GET","ret":"txt","paytoqs":false,"url":"https://www.coolblue.nl/vaatwassers/inbouw/geintegreerde-vaatwassers/tweedekans/energieklasse:a+++/bestekvoorziening:lade","tls":"","proxy":"","authType":"","x":260,"y":1700,"wires":[["b3cdd059.fd2ef8","844cf10.d26b69"]]},{"id":"8990a37.b0dd9e","type":"join","z":"50f6e1f4.30c2d","name":"","mode":"custom","build":"string","property":"payload.href","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"1","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":350,"y":1830,"wires":[["1ed452b7.c4d595","67391623.ecd4e8"]]},{"id":"5362edcb.b6c71c","type":"html","z":"50f6e1f4.30c2d","name":"prijzen","property":"payload","outproperty":"payload","tag":".grid-section-xs--gap-4 > .sales-price.js-sales-price","ret":"text","as":"single","x":1000,"y":2000,"wires":[["e7bbcdbb.83a8f"]]},{"id":"b3cdd059.fd2ef8","type":"html","z":"50f6e1f4.30c2d","name":"aantal","property":"payload","outproperty":"payload","tag":".filtered-search__result-count-number","ret":"html","as":"single","x":460,"y":1700,"wires":[[]]},{"id":"8690137d.ed58c","type":"inject","z":"50f6e1f4.30c2d","name":"1 hour","topic":"","payload":"","payloadType":"date","repeat":"3600","crontab":"","once":false,"onceDelay":0.1,"x":70,"y":1700,"wires":[["e0b89686.a77f18"]]},{"id":"e7bbcdbb.83a8f","type":"change","z":"50f6e1f4.30c2d","name":"regex prijzen","rules":[{"t":"set","p":"payload","pt":"msg","to":"$.payload[0].$replace(/^\\D+/,\"\")","tot":"jsonata"},{"t":"set","p":"payload","pt":"msg","to":"$.payload.$replace(/\\D+/,\"\\n\").$match(/\\d+/)","tot":"jsonata"},{"t":"set","p":"nieuwprijs","pt":"msg","to":"$.payload[0].match","tot":"jsonata"},{"t":"set","p":"aanbieding","pt":"msg","to":"$.payload[1].match","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1070,"y":2050,"wires":[["bd072428.34c8b8"]]},{"id":"bd072428.34c8b8","type":"function","z":"50f6e1f4.30c2d","name":"","func":"msg.payload = \"Type: \" + msg.type + \"\\nPrijs: Van €\" + msg.nieuwprijs + \" voor €\" + msg.aanbieding + \"\\nLink: \" + msg.responseUrl;\nreturn msg;","outputs":1,"noerr":0,"x":1240,"y":2050,"wires":[["f7a4a396.049fb8"]]},{"id":"4ed446bd.f2a0d8","type":"comment","z":"50f6e1f4.30c2d","name":"Coolblue Tweedekansjes","info":"","x":170,"y":1660,"wires":[]}]


De beste manier om een goed filter in te stellen bij Coolblue is door niet meteen naar Tweedekansjes te gaan, maar naar de normale producten. Dan kun je vervolgens links bovenin kiezen voor Tweedekanjes. Op die manier behoudt je de filters. Kies alle filters die je noodzakelijk vind en kopieer die URL naar de tweede node.

Ik heb er sinds mijn post geen tijd meer in gestoken, ben inmiddels geslaagd voor een vaatwasser :+

  • Dacuuu
  • Registratie: maart 2009
  • Laatst online: 13:01
schumi2004 schreef op zondag 20 oktober 2019 @ 15:45:
[...]

Die switch die snap ik nog wel maar hoe ziet dan zo'n MQTT node eruit?
Ben niet op mijn plek dus kan niet zelf zoeken.

Ik heb meestal het probleem met de input nodes, switchen etc erna kom ik wel redelijk mee weg.
Ik weet niet op elke zigbee hub jij je knop aangesloten hebt, maar je hebt niks aan de MQTT node als je een originele Xiaomi hub hebt. Die heb ik dus. Wellicht dat dat wel werkt met de Zigbee2MQTT module.

Verder gebruik ik volgende addons:
node-red-contrib-home-assistant-websocket (zodat Home assistant en nodered samen kunnen babbelen)

En ja, soms vind ik nodered heel logisch, en soms hopelijk moeilijk. O-)

[Voor 5% gewijzigd door Dacuuu op 20-10-2019 17:18]

Mijn Youtube reviews: https://www.youtube.com/user/BartjuhB/videos


  • Troetelbeer
  • Registratie: juni 2018
  • Laatst online: 01-04 16:34
schumi2004 schreef op zondag 20 oktober 2019 @ 13:08:
Wie kan me op weg helpen met een Xiaomi Button in Node-Red?

Welke node moet je nu gebruiken als je gebruik wilt maken van click, double click en shake states etc?
Ik wil gewoon single click en light aan, niet zo spannend lijkt me.

Button is gekoppeld in Hass.io middels zigbee2mqtt en ik zie ook de button clicks in zigbee2mqtt log maar als ik vervolgens deze button als debug toevoeg in Node-Red zie ik helemaal niets,

Ik maak dan een debug setup met event all en debug node. En debug met event state voor de specifieke actie laad ook geen debug informatie zien.
Heb je in Node-Red de "node-red-contrib-home-assistant-websocket" palette geinstalleerd? Zo ja, dit is hoe ik het heb gedaan met een events all en fire event node:

https://i.ibb.co/jhjVKFr/flow2.jpg

https://i.ibb.co/LkwxPV1/click.jpg

https://i.ibb.co/rQsSbxz/event.jpg

Believe. Imagine. Create.


  • schumi2004
  • Registratie: februari 2004
  • Laatst online: 13:14

schumi2004

PSN = whocarez-

Troetelbeer schreef op zondag 20 oktober 2019 @ 17:50:
[...]


Heb je in Node-Red de "node-red-contrib-home-assistant-websocket" palette geinstalleerd? Zo ja, dit is hoe ik het heb gedaan met een events all en fire event node:
Ik vermoed van wel want heb via HassIO Mosquitto addon installed en NodeRed dus denk dat dat er wel ingebakken zit maar zal zo controleren.

Eerst ff systeem terug naar normaal zien te krijgen.

Zag deze meldingen in de log.
19-10-20 15:50:47 INFO (MainThread) [hassio.api.proxy] Home Assistant WebSocket API request running
19-10-20 15:51:10 INFO (MainThread) [hassio.api.proxy] Home Assistant WebSocket API error: Received message 8:0 is not WSMsgType.TEXT
19-10-20 15:51:10 INFO (MainThread) [hassio.api.proxy] Home Assistant WebSocket API connection is closed
19-10-20 15:51:15 INFO (MainThread) [hassio.api.proxy] Home Assistant WebSocket API request initialize
19-10-20 15:51:15 INFO (MainThread) [hassio.api.proxy] WebSocket access from a0d7b954_nodered
En heb nu bij een eerder werkende flow (wat nagenoeg een kopie van een ander is) deze meldingen:
"Call-Service attempted without connection to server."
Wordt er een beetje debiel van zo.

  • Troetelbeer
  • Registratie: juni 2018
  • Laatst online: 01-04 16:34
schumi2004 schreef op zondag 20 oktober 2019 @ 18:03:
[...]

Ik vermoed van wel want heb via HassIO Mosquitto addon installed en NodeRed dus denk dat dat er wel ingebakken zit maar zal zo controleren.
Nee dus ;) Het is iets wat je apart moet installeren binnen Node-Red. Node-Red heeft verschillende palettes die je kunt installeren binnen Node-Red. Alleen de Node-Red addon installeren in Hass.io is dus niet voldoende.

MQTT staat hier overigens even helemaal los van. Je moet gewoon de "node-red-contrib-home-assistant-websocket" palette installeren binnen Node-Red en vervolgens in Node-Red in je events all node de entity id ingeven, zoals in mijn screenshot. Vervolgens in de fire event aangeven welk event (single, long, double etc.) je wilt gebruiken.

Die events all en fire events nodes krijg je dus pas na installatie van die palette, dan zie je ze links in je rijtje van nodes verschijnen 8)

[Voor 8% gewijzigd door Troetelbeer op 20-10-2019 18:36]

Believe. Imagine. Create.


  • Dacuuu
  • Registratie: maart 2009
  • Laatst online: 13:01
Troetelbeer schreef op zondag 20 oktober 2019 @ 17:50:
[...]


Heb je in Node-Red de "node-red-contrib-home-assistant-websocket" palette geinstalleerd? Zo ja, dit is hoe ik het heb gedaan met een events all en fire event node:

[Afbeelding]

[Afbeelding]

[Afbeelding]
Jij doet het weer anders als ik :9 Maar hoe ga jij de knoppen uit elkaar houden als je meerdere xiaomi knoppen hebt?

Mijn Youtube reviews: https://www.youtube.com/user/BartjuhB/videos


  • Troetelbeer
  • Registratie: juni 2018
  • Laatst online: 01-04 16:34
Dacuuu schreef op zondag 20 oktober 2019 @ 19:24:
[...]


Jij doet het weer anders als ik :9 Maar hoe ga jij de knoppen uit elkaar houden als je meerdere xiaomi knoppen hebt?
Die krijgen allemaal een eigen id, net als mijn sensoren. Je kunt die gewoon namen geven...

Believe. Imagine. Create.


  • Dacuuu
  • Registratie: maart 2009
  • Laatst online: 13:01
Troetelbeer schreef op zondag 20 oktober 2019 @ 20:50:
[...]


Die krijgen allemaal een eigen id, net als mijn sensoren. Je kunt die gewoon namen geven...
Dan heb ik het nog niet goed door, zoals ik het nu zie (maar verbeter me aub :) )

Op je 1e plaatje van deze post: Troetelbeer in "Node-RED - grafisch 'programmeren' (bijv. voor domotica)"

Je vangt het event xiaomi_aqara.click af, maar de name "Toggle PC" is toch alleen het label in NodeRed? en meerdere verschillende xiaomi knoppen gebruiken xiaomi_aqara.click, hoe weet je dan welke knop je hebt ingedrukt als je er meerdere in huis hebt?

Mijn Youtube reviews: https://www.youtube.com/user/BartjuhB/videos


  • schumi2004
  • Registratie: februari 2004
  • Laatst online: 13:14

schumi2004

PSN = whocarez-

Troetelbeer schreef op zondag 20 oktober 2019 @ 18:34:
[...]


Nee dus ;) Het is iets wat je apart moet installeren binnen Node-Red. Node-Red heeft verschillende palettes die je kunt installeren binnen Node-Red. Alleen de Node-Red addon installeren in Hass.io is dus niet voldoende.

MQTT staat hier overigens even helemaal los van. Je moet gewoon de "node-red-contrib-home-assistant-websocket" palette installeren binnen Node-Red en vervolgens in Node-Red in je events all node de entity id ingeven, zoals in mijn screenshot. Vervolgens in de fire event aangeven welk event (single, long, double etc.) je wilt gebruiken.

Die events all en fire events nodes krijg je dus pas na installatie van die palette, dan zie je ze links in je rijtje van nodes verschijnen 8)
Klaarblijkelijk had ik pallet node-red-contrib-home-assistant-websocket al installed staan.
De errors lijken nu groten deels ook weg.
Ik ga weer even opnieuw beginnen.

Dank voor de input allen.

  • Troetelbeer
  • Registratie: juni 2018
  • Laatst online: 01-04 16:34
Dacuuu schreef op maandag 21 oktober 2019 @ 08:12:
[...]


Dan heb ik het nog niet goed door, zoals ik het nu zie (maar verbeter me aub :) )

Op je 1e plaatje van deze post: Troetelbeer in "Node-RED - grafisch 'programmeren' (bijv. voor domotica)"

Je vangt het event xiaomi_aqara.click af, maar de name "Toggle PC" is toch alleen het label in NodeRed? en meerdere verschillende xiaomi knoppen gebruiken xiaomi_aqara.click, hoe weet je dan welke knop je hebt ingedrukt als je er meerdere in huis hebt?
Kijk eens, mooi in Hass.io een eigen id en friendly name :)

https://i.ibb.co/HT37hjF/aqaraswitch.jpg

Believe. Imagine. Create.


  • Dacuuu
  • Registratie: maart 2009
  • Laatst online: 13:01
Troetelbeer schreef op maandag 21 oktober 2019 @ 13:22:
[...]


Kijk eens, mooi in Hass.io een eigen id en friendly name :)

[Afbeelding]
Ah het is in NR meer dan slechts een tekst label. Bedankt voor je reactie. O+

Mijn Youtube reviews: https://www.youtube.com/user/BartjuhB/videos


  • Dacuuu
  • Registratie: maart 2009
  • Laatst online: 13:01
Troetelbeer schreef op zondag 20 oktober 2019 @ 17:50:
[...]


Heb je in Node-Red de "node-red-contrib-home-assistant-websocket" palette geinstalleerd? Zo ja, dit is hoe ik het heb gedaan met een events all en fire event node:

[Afbeelding]

[Afbeelding]

[Afbeelding]
Ik kom er toch nog even op terug. Ik wil jou manier even namaken maar het lukt toch nog niet helemaal.
Ik kan namelijk alles invoeren, en het maakt bij mij niks uit. Hij reageert gewoon op het event "xiaomi_aqara.click"
https://i.imgur.com/LIWh7ur.png

Mijn fire event node ziet er ook iets anders uit dan die van jou.
https://i.imgur.com/QjaHMd9.png

https://i.imgur.com/yEM7lUe.png

Mijn Youtube reviews: https://www.youtube.com/user/BartjuhB/videos


  • Troetelbeer
  • Registratie: juni 2018
  • Laatst online: 01-04 16:34
Ja, bij mij reageert die ook op het event...Dat is namelijk hoe Hass.io het intergreert. Wat lukt dan niet?

Believe. Imagine. Create.


Acties:
  • +3Henk 'm!
  • Pinned

  • BounceCloud
  • Registratie: juni 2007
  • Nu online
Ik liep vanmorgen voor het eerst sinds tijden weer eens tegen een bekend First World Problem aan: het leed dat autoruit krabben heet. :P Een waar FWP als je naar je werk wilt en eerst nog minuten in die kou staat te krabben.

Nu heb ik op een Pi Home Assistant en Node-RED draaien en heb ik een elektrische auto. Voordeel van een elektrische auto is dat die zichzelf kunnen voorverwarmen uit hun accu-pakket. Die voorverwarming (klimatisering) is met een API die aan HA gekoppeld zit te bedienen. Dus ik dacht vanmorgen: Tjaka! Dit FWP ga ik eens met Node-RED tackelen.

Even een kort stukje theorie over autoruiten die bevriezen: dat gebeurt alleen onder bepaalde omstandigheden. Een autoruit bevriest alleen als de temperatuur nabij of onder het vriespunt ligt, de luchtvochtigheid hoog is en de windsnelheid relatief kalm is. Wat de precieze waarden en verhoudingen zijn kon ik niet 1-2-3 vinden, dus heb ik bij het KNMI de weerdata van afgelopen nacht van het dichtstbijzijnde meetstation opgevraagd. Dat gaf mij ruwweg een idee van wat de waarden kunnen zijn.

Met die data in de hand heb ik een v0.1 autoruit-krabben flow gemaakt in Node-RED. Ik ben geen professioneel IT'er, dus wellicht is de flow onnodig complex: heb je ideeën om de flow makkelijker te maken: deel ze! :)

De flow:
https://i.imgur.com/6AFmKgo.png

De uitleg van de flow:
(1) Een timestamp tussen 23:00 en 07:00 start elke 30 minuten de flow. Ik gebruik twee nodes: één voor 23:00 - 00:00 en één voor 00:00 - 07:00. Kreeg het niet met één node voor elkaar;
(2) Een current-state node haalt het actuele weer op voor mijn thuislocatie en zet dit in een message object;
(3) Uit dit object haal ik met 3 change-nodes de voor mij relevante waarden: de actuele temperatuur, luchtvochtigheid en windsnelheid;
(4) Met 3 split-nodes check ik of de actuele waarden binnen de ideale-autoruit-bevries waarden vallen;
(5) Omdat aan alle 3 de voorwaarden voldaan moet zijn om ijs aangroei op ramen te krijgen, tel ik hoeveel payload-berichten er binnen zijn gekomen. Minder dan 3 betekent: geen ijs-aangroei (in theorie). Alle 3 betekent: potentieel ijs-aangroei weer en dat betekent: actie ondernemen.
(6) Een switch-node kijkt hoeveel waarden de counter-node (nr. 5) heeft geteld. We willen alleen dat hij bij alle 3 de waarden doorgaat, dus daar kijkt hij ook naar;
(7) Als alle 3 de voorwaarden in-range liggen, veranderd een change-node de payload in 'allow' zodat het stoplicht uit 8 dit begrijpt;
(.8) Het stoplicht geeft de payload weer als hij een 'allow' krijgt uit node 7. Krijgt hij een andere payload, dan laat hij niets door. Andere payload betekent: er is niet aan alle 3 de ijs-aangroei voorwaarden voldaan;
(9) Aangezien het een v0.1 is, heb ik met een template-node een simpel bericht in elkaar geknutseld die mij verteld dat ik de autoruiten moet krabben. Daarnaast haalt hij uit de payload de temperatuur, luchtvochtigheid en windsnelheid op zodat ik kan zien welke waarden er vannacht geweest zijn. Als mijn autoruit niet bevroren is: weet ik dat die waarden mogelijk buiten het bereik liggen;
(10) De pushover-node stuurt de template uit node 9 naar mijn telefoon.

Onderin (de nodes delay 10s, reset) ben ik vergeten te nummeren. Deze resetten 10 seconden na het start van de flow de counter. Anders loopt de counter steeds verder op en krijg je dus altijd een positieve melding, ongeacht aan hoeveel voorwaarden is voldaan. Wij willen alleen een melding als alle 3 de voorwaarden tegelijkertijd 'waar' zijn.

Het idee van de template/pushover node is dat ik de komende tijd eerst op basis van de pushover-meldingen kijk of de ijs-aangroei inderdaad heeft plaatsgevonden. Zo kan ik het bereik van de ideale ijs-aangroei waarden nog wat fine-tunen.

Mocht ik het bereik van die waarden gefinetuned hebben, dan is het tijd voor v0.2 van de flow waarin ik naast een notificatie ook een call-service node inzet om de klimatisatie in de elektrische auto aan te zetten..

  • stefve1
  • Registratie: januari 2010
  • Laatst online: 07-04 22:39
Ik heb de volgende Nodered Flow gemaakt. Deze kijkt naar de status van een Hue group (Door gebruik van MagicHue), en zal deze vervolgens opslaan in een variabele.

Dit werkt perfect als ik op de inject druk, maar het probleem is dat deze ook een update stuurt wanneer ik de lamp in de Hue app op mijn gsm aanzet.

Dat laatste wil ik voorkomen, ik wil dus dat de status enkel in de variabele komt te staan wanneer ik op inject druk.

Is dit mogelijk?

https://preview.redd.it/qzj1vqrvguv31.png?width=795&format=png&auto=webp&s=117b80ee70b18457d9e1fe8cd5d400e4918c40fb

  • devastator83
  • Registratie: januari 2012
  • Laatst online: 19-03 21:37
Hoe gaan jullie om met het testen van jullie flows ?

Ik heb best wel complexe flows, en die zou ik graag automatisch onder test brengen, Nu doe ik het door daar waar ik sensor input vereis, parallel een MQTT node toe te voegen. Hetzelfde met output.

Dan injecteer ik dus een aantal MQTT payloads in de flow met python, and check het resultaat dat via MQTT dan weer binnenkomt. Volgens mij moeten er betere manieren bestaan :-)

  • Dacuuu
  • Registratie: maart 2009
  • Laatst online: 13:01
BounceCloud schreef op woensdag 30 oktober 2019 @ 23:30:
Ik liep vanmorgen voor het eerst sinds tijden weer eens tegen een bekend First World Problem aan: het leed dat autoruit krabben heet. :P Een waar FWP als je naar je werk wilt en eerst nog minuten in die kou staat te krabben.

Nu heb ik op een Pi Home Assistant en Node-RED draaien en heb ik een elektrische auto. Voordeel van een elektrische auto is dat die zichzelf kunnen voorverwarmen uit hun accu-pakket. Die voorverwarming (klimatisering) is met een API die aan HA gekoppeld zit te bedienen. Dus ik dacht vanmorgen: Tjaka! Dit FWP ga ik eens met Node-RED tackelen.

Even een kort stukje theorie over autoruiten die bevriezen: dat gebeurt alleen onder bepaalde omstandigheden. Een autoruit bevriest alleen als de temperatuur nabij of onder het vriespunt ligt, de luchtvochtigheid hoog is en de windsnelheid relatief kalm is. Wat de precieze waarden en verhoudingen zijn kon ik niet 1-2-3 vinden, dus heb ik bij het KNMI de weerdata van afgelopen nacht van het dichtstbijzijnde meetstation opgevraagd. Dat gaf mij ruwweg een idee van wat de waarden kunnen zijn.

Met die data in de hand heb ik een v0.1 autoruit-krabben flow gemaakt in Node-RED. Ik ben geen professioneel IT'er, dus wellicht is de flow onnodig complex: heb je ideeën om de flow makkelijker te maken: deel ze! :)

De flow:
[Afbeelding]

De uitleg van de flow:
(1) Een timestamp tussen 23:00 en 07:00 start elke 30 minuten de flow. Ik gebruik twee nodes: één voor 23:00 - 00:00 en één voor 00:00 - 07:00. Kreeg het niet met één node voor elkaar;
(2) Een current-state node haalt het actuele weer op voor mijn thuislocatie en zet dit in een message object;
(3) Uit dit object haal ik met 3 change-nodes de voor mij relevante waarden: de actuele temperatuur, luchtvochtigheid en windsnelheid;
(4) Met 3 split-nodes check ik of de actuele waarden binnen de ideale-autoruit-bevries waarden vallen;
(5) Omdat aan alle 3 de voorwaarden voldaan moet zijn om ijs aangroei op ramen te krijgen, tel ik hoeveel payload-berichten er binnen zijn gekomen. Minder dan 3 betekent: geen ijs-aangroei (in theorie). Alle 3 betekent: potentieel ijs-aangroei weer en dat betekent: actie ondernemen.
(6) Een switch-node kijkt hoeveel waarden de counter-node (nr. 5) heeft geteld. We willen alleen dat hij bij alle 3 de waarden doorgaat, dus daar kijkt hij ook naar;
(7) Als alle 3 de voorwaarden in-range liggen, veranderd een change-node de payload in 'allow' zodat het stoplicht uit 8 dit begrijpt;
(.8) Het stoplicht geeft de payload weer als hij een 'allow' krijgt uit node 7. Krijgt hij een andere payload, dan laat hij niets door. Andere payload betekent: er is niet aan alle 3 de ijs-aangroei voorwaarden voldaan;
(9) Aangezien het een v0.1 is, heb ik met een template-node een simpel bericht in elkaar geknutseld die mij verteld dat ik de autoruiten moet krabben. Daarnaast haalt hij uit de payload de temperatuur, luchtvochtigheid en windsnelheid op zodat ik kan zien welke waarden er vannacht geweest zijn. Als mijn autoruit niet bevroren is: weet ik dat die waarden mogelijk buiten het bereik liggen;
(10) De pushover-node stuurt de template uit node 9 naar mijn telefoon.

Onderin (de nodes delay 10s, reset) ben ik vergeten te nummeren. Deze resetten 10 seconden na het start van de flow de counter. Anders loopt de counter steeds verder op en krijg je dus altijd een positieve melding, ongeacht aan hoeveel voorwaarden is voldaan. Wij willen alleen een melding als alle 3 de voorwaarden tegelijkertijd 'waar' zijn.

Het idee van de template/pushover node is dat ik de komende tijd eerst op basis van de pushover-meldingen kijk of de ijs-aangroei inderdaad heeft plaatsgevonden. Zo kan ik het bereik van de ideale ijs-aangroei waarden nog wat fine-tunen.

Mocht ik het bereik van die waarden gefinetuned hebben, dan is het tijd voor v0.2 van de flow waarin ik naast een notificatie ook een call-service node inzet om de klimatisatie in de elektrische auto aan te zetten..
Heel erg vet dit :o Ben benieuwd hoe het uit pakt..
Kan je de flow eens delen? Dan maak ik een push bericht zodat ik weet of ik moet krabben of niet. :9 :P

Mijn Youtube reviews: https://www.youtube.com/user/BartjuhB/videos


  • tomdh76
  • Registratie: maart 2015
  • Laatst online: 12:06
Ik heb homeassistant vrij goed werken maar 1 ding wat niet lukte was mijn dru open haard aansturen.

Tot ik deze https://community.openhab...-oh2-nodered-modbus/53876

zag van @Snoekieboe . Dank daarvoor!

Snoekieboe gebruikt echter openhab en ik heb het gepoogd te integreren in home assistant om niet openhab ook nog te gaan leren. Home assistant yaml vond ik al best moeilijk en node red vind ik nog moeilijker om te begrijpen.

Uiteindelijk is dit het resultaat:

In home assistant config heb ik het volgende gezet


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#openhaard
input_select:
  drucontrol:
    name: Dru control
    options: 
      - "OFF"
      - "ECO"
      - "COMFORT"
input_text:
  drustatus:
    name: Status DRU fireplace
    initial: Some
  druroomtemp:
    name: Temperature DRU fireplace
    initial: 15
  drurssidfgt:
    name: RSSI DFGT
    initial: 1
  drurssigateway:
    name: RSSI  Gateway
    initial: 1
  drufault:
    name: Fault
    initial: ds




In node red:



code:
1
[{"id":"f7a2f708.5a4e48","type":"modbus-read","z":"57b27d1b.16f004","name":"DRU_Status","topic":"","showStatusActivities":true,"logIOActivities":false,"showErrors":true,"unitid":"2","dataType":"HoldingRegister","adr":"40203","quantity":"1","rate":"10","rateUnit":"s","delayOnStart":false,"startDelayTime":"","server":"2ed1d669.4e523a","useIOFile":false,"ioFile":"","useIOForPayload":false,"x":214,"y":60,"wires":[[],["67dd28ab.6e6578"]]},{"id":"67dd28ab.6e6578","type":"change","z":"57b27d1b.16f004","name":"","rules":[{"t":"move","p":"payload.data[0]","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":464,"y":60,"wires":[["a57bae3d.a2f3e"]]},{"id":"a57bae3d.a2f3e","type":"api-call-service","z":"57b27d1b.16f004","name":"DruStatus","server":"1d1be924.0329f7","version":1,"debugenabled":false,"service_domain":"input_text","service":"set_value","entityId":"input_text.drustatus","data":"{\"value\":{{payload}}}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1000,"y":60,"wires":[[]]},{"id":"2ed1d669.4e523a","type":"modbus-client","z":"","name":"DRU","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"tcpHost":"192.168.2.12","tcpPort":"502","tcpType":"DEFAULT","serialPort":"/dev/ttyUSB0","serialType":"RTU-BUFFERD","serialBaudrate":"19200","serialDatabits":"8","serialStopbits":"1","serialParity":"even","serialConnectionDelay":"200","unit_id":"1","commandDelay":"500","clientTimeout":"1000","reconnectTimeout":"2000"},{"id":"1d1be924.0329f7","type":"server","z":"","name":"Home Assistant","legacy":false,"hassio":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]





code:
1
[{"id":"b26387e6.b756a8","type":"comment","z":"57b27d1b.16f004","name":"Run predefined program - 100% flame height to ecowave comfort","info":"","x":364,"y":980,"wires":[]},{"id":"d9927486.3697c8","type":"switch","z":"57b27d1b.16f004","name":"Evaluate DruControl State","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"COMFORT","vt":"str"},{"t":"eq","v":"ECO","vt":"str"},{"t":"eq","v":"OFF","vt":"str"}],"checkall":"true","repair":false,"outputs":3,"x":430,"y":1060,"wires":[["f5a7f25b.e9ce3"],["a622d26a.49b8c"],["6410654c.8806dc"]]},{"id":"1830d2bd.1baacd","type":"switch","z":"57b27d1b.16f004","name":"Evaluate DruStatus","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"15424","vt":"str"},{"t":"neq","v":"15424","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":994,"y":960,"wires":[["16cf5c52.521b94"],["6d4abcc0.eb9414"]]},{"id":"c2d7d88.70cbf28","type":"switch","z":"57b27d1b.16f004","name":"Evaluate DruStatus","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"15424","vt":"num"},{"t":"neq","v":"15424","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":994,"y":1060,"wires":[["c3989f71.12cb3"],["7a69563f.e8bf78"]]},{"id":"cdf10470.b227f8","type":"switch","z":"57b27d1b.16f004","name":"Evaluate DruStatus","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"15424","vt":"num"},{"t":"neq","v":"15424","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":994,"y":1200,"wires":[[],["de48f2c7.600ea"]]},{"id":"5de44339.12cfdc","type":"modbus-write","z":"57b27d1b.16f004","name":"40200","showStatusActivities":true,"showErrors":true,"unitid":"2","dataType":"HoldingRegister","adr":"40200","quantity":"1","server":"2ed1d669.4e523a","x":2474,"y":1020,"wires":[[],[]]},{"id":"e033c4e0.6d6398","type":"comment","z":"57b27d1b.16f004","name":"Action register","info":"","x":2504,"y":980,"wires":[]},{"id":"de48f2c7.600ea","type":"change","z":"57b27d1b.16f004","name":"Turn DRU OFF","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1224,"y":1200,"wires":[["5de44339.12cfdc"]]},{"id":"16cf5c52.521b94","type":"change","z":"57b27d1b.16f004","name":"Turn DRU ON (all burners)","rules":[{"t":"set","p":"payload","pt":"msg","to":"101","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1254,"y":880,"wires":[["5de44339.12cfdc","3dee4beb.951424"]]},{"id":"3dee4beb.951424","type":"delay","z":"57b27d1b.16f004","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":1304,"y":920,"wires":[["aafce51b.630c48"]]},{"id":"2ce6f610.63015a","type":"modbus-write","z":"57b27d1b.16f004","name":"40201","showStatusActivities":true,"showErrors":true,"unitid":"2","dataType":"HoldingRegister","adr":"40201","quantity":"1","server":"2ed1d669.4e523a","x":2474,"y":1100,"wires":[[],[]]},{"id":"b9d0436.1fc5ac","type":"comment","z":"57b27d1b.16f004","name":"Flame Height register","info":"","x":2524,"y":1060,"wires":[]},{"id":"aafce51b.630c48","type":"change","z":"57b27d1b.16f004","name":"Set Flame Height to 100%","rules":[{"t":"set","p":"payload","pt":"msg","to":"100","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1544,"y":880,"wires":[["2ce6f610.63015a","c262f496.e89aa8"]]},{"id":"c262f496.e89aa8","type":"delay","z":"57b27d1b.16f004","name":"","pauseType":"delay","timeout":"10","timeoutUnits":"minutes","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":1594,"y":940,"wires":[["2000fa72.64d0d6"]]},{"id":"2000fa72.64d0d6","type":"change","z":"57b27d1b.16f004","name":"Activate EcoWave","rules":[{"t":"set","p":"payload","pt":"msg","to":"105","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1814,"y":880,"wires":[["5de44339.12cfdc","9cbf5e57.f3dc5"]]},{"id":"77f3012b.ab0ae","type":"modbus-write","z":"57b27d1b.16f004","name":"40420","showStatusActivities":true,"showErrors":true,"unitid":"2","dataType":"HoldingRegister","adr":"40420","quantity":"1","server":"2ed1d669.4e523a","x":2474,"y":1180,"wires":[[],[]]},{"id":"c084492f.2eaed8","type":"comment","z":"57b27d1b.16f004","name":"Eco Wave interval time","info":"","x":2524,"y":1140,"wires":[]},{"id":"9cbf5e57.f3dc5","type":"delay","z":"57b27d1b.16f004","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":1844,"y":920,"wires":[["45eb9634.5b7348"]]},{"id":"45eb9634.5b7348","type":"change","z":"57b27d1b.16f004","name":"Set EcoWave interval","rules":[{"t":"set","p":"payload","pt":"msg","to":"15","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":2064,"y":880,"wires":[["77f3012b.ab0ae","6207c377.44c78c"]]},{"id":"6207c377.44c78c","type":"delay","z":"57b27d1b.16f004","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":2104,"y":920,"wires":[["5d1b1cf6.919994"]]},{"id":"5d1b1cf6.919994","type":"function","z":"57b27d1b.16f004","name":"Startup Values","func":"msg.payload = { value:[2569,3340,3854,3342,2572,1801,773,514,1027,2054], \n'fc': 16, \n'unitid': 2, \n'address': 40421, \n'quantity': 10 } \nreturn msg","outputs":1,"noerr":0,"x":2504,"y":1260,"wires":[["4b5958e9.3fd888"]]},{"id":"4b5958e9.3fd888","type":"modbus-flex-write","z":"57b27d1b.16f004","name":"test flex write","showStatusActivities":true,"showErrors":true,"server":"2ed1d669.4e523a","x":2750,"y":1300,"wires":[[],[]]},{"id":"8b5f6d3a.aee4b","type":"comment","z":"57b27d1b.16f004","name":"Eco Wave Scene - Comfort","info":"","x":2544,"y":1220,"wires":[]},{"id":"f0acfe61.64aa2","type":"comment","z":"57b27d1b.16f004","name":"Eco Wave Scene - Eco","info":"","x":2524,"y":1300,"wires":[]},{"id":"c3989f71.12cb3","type":"change","z":"57b27d1b.16f004","name":"Turn DRU ON (all burners)","rules":[{"t":"set","p":"payload","pt":"msg","to":"101","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1254,"y":1060,"wires":[["cc925fff.7fbc2","5de44339.12cfdc"]]},{"id":"cc925fff.7fbc2","type":"delay","z":"57b27d1b.16f004","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":1340,"y":1100,"wires":[["29c541c.2a89ebe"]]},{"id":"29c541c.2a89ebe","type":"change","z":"57b27d1b.16f004","name":"Set Flame Height to 100%","rules":[{"t":"set","p":"payload","pt":"msg","to":"100","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1544,"y":1060,"wires":[["b337aafa.c05488","2ce6f610.63015a"]]},{"id":"b337aafa.c05488","type":"delay","z":"57b27d1b.16f004","name":"","pauseType":"delay","timeout":"10","timeoutUnits":"minutes","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":1594,"y":1120,"wires":[["879cc06c.e7302"]]},{"id":"879cc06c.e7302","type":"change","z":"57b27d1b.16f004","name":"Activate EcoWave","rules":[{"t":"set","p":"payload","pt":"msg","to":"105","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1814,"y":1060,"wires":[["3dda3013.a4a7b","5de44339.12cfdc"]]},{"id":"3dda3013.a4a7b","type":"delay","z":"57b27d1b.16f004","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":1844,"y":1100,"wires":[["5f49980.5e73b68"]]},{"id":"5f49980.5e73b68","type":"change","z":"57b27d1b.16f004","name":"Set EcoWave interval","rules":[{"t":"set","p":"payload","pt":"msg","to":"15","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":2064,"y":1060,"wires":[["8924c62.715fe38","77f3012b.ab0ae"]]},{"id":"8924c62.715fe38","type":"delay","z":"57b27d1b.16f004","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":2104,"y":1100,"wires":[["45e2eca6.3c38b4"]]},{"id":"6d4abcc0.eb9414","type":"change","z":"57b27d1b.16f004","name":"reset delay","rules":[{"t":"set","p":"reset","pt":"msg","to":"clear","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1214,"y":960,"wires":[["2000fa72.64d0d6","b337aafa.c05488","c262f496.e89aa8"]]},{"id":"7a69563f.e8bf78","type":"change","z":"57b27d1b.16f004","name":"reset delay","rules":[{"t":"set","p":"reset","pt":"msg","to":"clear","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1214,"y":1140,"wires":[["879cc06c.e7302","c262f496.e89aa8","b337aafa.c05488"]]},{"id":"45e2eca6.3c38b4","type":"function","z":"57b27d1b.16f004","name":"Startup Values","func":"msg.payload = { value:[1797,2312,2569,2313,1800,1029,259,257,513,1283], \n'fc': 16, \n'unitid': 2, \n'address': 40421, \n'quantity': 10 } \nreturn msg","outputs":1,"noerr":0,"x":2504,"y":1340,"wires":[["4b5958e9.3fd888"]]},{"id":"6f6bdf77.27ae6","type":"trigger-state","z":"57b27d1b.16f004","name":"","server":"1d1be924.0329f7","entityid":"input_select.drucontrol","entityidfiltertype":"exact","debugenabled":false,"constraints":[],"constraintsmustmatch":"all","outputs":3,"customoutputs":[{"outputId":"3d7agvzqfb4","messageType":"default","messageValue":"","messageValueType":"json","comparatorPropertyType":"always","comparatorPropertyValue":"","comparatorType":"is","comparatorValue":""}],"outputinitially":false,"state_type":"str","x":140,"y":1080,"wires":[["d9927486.3697c8"],[],[]]},{"id":"f5a7f25b.e9ce3","type":"api-current-state","z":"57b27d1b.16f004","name":"","server":"1d1be924.0329f7","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"input_text.drustatus","state_type":"num","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":780,"y":1000,"wires":[["1830d2bd.1baacd"]]},{"id":"a622d26a.49b8c","type":"api-current-state","z":"57b27d1b.16f004","name":"","server":"1d1be924.0329f7","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"input_text.drustatus","state_type":"num","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":720,"y":1100,"wires":[["c2d7d88.70cbf28"]]},{"id":"6410654c.8806dc","type":"api-current-state","z":"57b27d1b.16f004","name":"","server":"1d1be924.0329f7","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"input_text.drustatus","state_type":"num","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":740,"y":1200,"wires":[["cdf10470.b227f8"]]},{"id":"2ed1d669.4e523a","type":"modbus-client","z":"","name":"DRU","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"tcpHost":"192.168.2.12","tcpPort":"502","tcpType":"DEFAULT","serialPort":"/dev/ttyUSB0","serialType":"RTU-BUFFERD","serialBaudrate":"19200","serialDatabits":"8","serialStopbits":"1","serialParity":"even","serialConnectionDelay":"200","unit_id":"1","commandDelay":"500","clientTimeout":"1000","reconnectTimeout":"2000"},{"id":"1d1be924.0329f7","type":"server","z":"","name":"Home Assistant","legacy":false,"hassio":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]



Dit werkt redelijk goed.

Wat me nog niet goed gaat :

om status van de open haard in home assistant te laten zien. In de "snoekieboe"code zit een Translate modbus to string waarin een code wordt omgezet in een tekst. Bij mijn openhaard is code 15424 bijvoorbeeld OFF. Als ik echter een getal naar een string converteer via die node krijg ik een fout melding: Extra keys not allowed. Ik heb al gekeken op home assistant forum waar deze foutmelding vaker wordt gemeld maar een oplossing zie ik niet. Als ik de node debug zie ik dat de payload wel wordt doorgeven maar elke letter lijkt apart te worden doorgestuurd in de data : dus iets als '1' "O" '2' "F" 3 "F".

Weet iemand hoe je een getal naar string kan doorsturen in node voor homeassistant?
@tomdh76 Daar is de change-node voor toch?
https://i.imgur.com/Vq5xhw2.png

  • tomdh76
  • Registratie: maart 2015
  • Laatst online: 12:06
Dat dacht ik ook maar dan krijg ik een error:

Call-service API error. Error Message: extra keys not allowed @ data['0']

Als ik de home assistant node debug zie ik:

msg :
object
domain: "input_text"
service: "set_value"
data: object
0: "{"
1: """
2: "v"
3: "a"
4: "l"
5: "u"
6: "e"
7: """
8: ":"
9: "O"
10: "F"
11: "F"
12: "}"
entity_id: "input_text.drustatus"


Dus hij ziet wel de payload (off) maar maakt er op de 1 of andere manier verschillende letters van
@tomdh76 Zet er anders eens de JSON parser tussen en kies bij action 'Always convert to JSON String'

  • tomdh76
  • Registratie: maart 2015
  • Laatst online: 12:06
Nee dat lijkt ook niet te werken, nog steeds "Call-service API error. Error Message: extra keys not allowed @ data['0']"

Als ik een debug node zet na de translate to string node zie ik dit:

msg : Object
object
payload: "OFF"
values: array[1]
0: 15424
input: object
topic: "polling"
from: "DRU_Status"
payload: object
queueNumber: 0
queueUnit: 2
queueUnitId: 2
_msgid: "a35ff008.50072"

Zou het probleem zitten in het feit dat er een "values: array[1]
0: 15424" meegestuurd wordt? En dat dan de home assistant service input_text in de war raakt?
Ik zou denken als ik 15424 transformeer in de payload naar off dat 15424 verdwijnt? Ik ben echt een beginner in node red dus excuses als ik domme dingen zeg...

edit: als ik met change node de values weghaal blijft het probleem.

[Voor 4% gewijzigd door tomdh76 op 02-11-2019 11:03]


  • tomdh76
  • Registratie: maart 2015
  • Laatst online: 12:06
Ik heb het denk ik opgelost:

Ik heb een template node gebruikt waarbij ik msg.payload naar {{payload}} omzet en dit dan in plain text doorstuur.


code:
1
[{"id":"f7a2f708.5a4e48","type":"modbus-read","z":"57b27d1b.16f004","name":"DRU_Status","topic":"","showStatusActivities":true,"logIOActivities":false,"showErrors":true,"unitid":"2","dataType":"HoldingRegister","adr":"40203","quantity":"1","rate":"10","rateUnit":"s","delayOnStart":false,"startDelayTime":"","server":"2ed1d669.4e523a","useIOFile":false,"ioFile":"","useIOForPayload":false,"x":214,"y":60,"wires":[[],["67dd28ab.6e6578"]]},{"id":"67dd28ab.6e6578","type":"change","z":"57b27d1b.16f004","name":"","rules":[{"t":"move","p":"payload.data[0]","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":464,"y":60,"wires":[["3c7f904e.cac1c"]]},{"id":"a57bae3d.a2f3e","type":"api-call-service","z":"57b27d1b.16f004","name":"DruStatus","server":"1d1be924.0329f7","version":1,"debugenabled":false,"service_domain":"input_text","service":"set_value","entityId":"input_text.drustatus","data":"{\"value\": \"{{payload}}\"}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1060,"y":60,"wires":[[]]},{"id":"3c7f904e.cac1c","type":"change","z":"57b27d1b.16f004","name":"Translate modbus to string","rules":[{"t":"change","p":"payload","pt":"msg","from":"15424","fromt":"num","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":720,"y":60,"wires":[["8cf7dedd.07ce4"]]},{"id":"8cf7dedd.07ce4","type":"template","z":"57b27d1b.16f004","name":"format it","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{{payload}}","output":"str","x":920,"y":60,"wires":[["a57bae3d.a2f3e"]]},{"id":"2ed1d669.4e523a","type":"modbus-client","z":"","name":"DRU","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"tcpHost":"192.168.2.12","tcpPort":"502","tcpType":"DEFAULT","serialPort":"/dev/ttyUSB0","serialType":"RTU-BUFFERD","serialBaudrate":"19200","serialDatabits":"8","serialStopbits":"1","serialParity":"even","serialConnectionDelay":"200","unit_id":"1","commandDelay":"500","clientTimeout":"1000","reconnectTimeout":"2000"},{"id":"1d1be924.0329f7","type":"server","z":"","name":"Home Assistant","legacy":false,"hassio":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]



Als ik het doorstuur als JSON krijg ik een error: Unexpected token O in JSON at position 0.

  • Dacuuu
  • Registratie: maart 2009
  • Laatst online: 13:01
tomdh76 schreef op zaterdag 2 november 2019 @ 13:33:
Ik heb het denk ik opgelost:

Ik heb een template node gebruikt waarbij ik msg.payload naar {{payload}} omzet en dit dan in plain text doorstuur.


code:
1
[{"id":"f7a2f708.5a4e48","type":"modbus-read","z":"57b27d1b.16f004","name":"DRU_Status","topic":"","showStatusActivities":true,"logIOActivities":false,"showErrors":true,"unitid":"2","dataType":"HoldingRegister","adr":"40203","quantity":"1","rate":"10","rateUnit":"s","delayOnStart":false,"startDelayTime":"","server":"2ed1d669.4e523a","useIOFile":false,"ioFile":"","useIOForPayload":false,"x":214,"y":60,"wires":[[],["67dd28ab.6e6578"]]},{"id":"67dd28ab.6e6578","type":"change","z":"57b27d1b.16f004","name":"","rules":[{"t":"move","p":"payload.data[0]","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":464,"y":60,"wires":[["3c7f904e.cac1c"]]},{"id":"a57bae3d.a2f3e","type":"api-call-service","z":"57b27d1b.16f004","name":"DruStatus","server":"1d1be924.0329f7","version":1,"debugenabled":false,"service_domain":"input_text","service":"set_value","entityId":"input_text.drustatus","data":"{\"value\": \"{{payload}}\"}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1060,"y":60,"wires":[[]]},{"id":"3c7f904e.cac1c","type":"change","z":"57b27d1b.16f004","name":"Translate modbus to string","rules":[{"t":"change","p":"payload","pt":"msg","from":"15424","fromt":"num","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":720,"y":60,"wires":[["8cf7dedd.07ce4"]]},{"id":"8cf7dedd.07ce4","type":"template","z":"57b27d1b.16f004","name":"format it","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{{payload}}","output":"str","x":920,"y":60,"wires":[["a57bae3d.a2f3e"]]},{"id":"2ed1d669.4e523a","type":"modbus-client","z":"","name":"DRU","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"tcpHost":"192.168.2.12","tcpPort":"502","tcpType":"DEFAULT","serialPort":"/dev/ttyUSB0","serialType":"RTU-BUFFERD","serialBaudrate":"19200","serialDatabits":"8","serialStopbits":"1","serialParity":"even","serialConnectionDelay":"200","unit_id":"1","commandDelay":"500","clientTimeout":"1000","reconnectTimeout":"2000"},{"id":"1d1be924.0329f7","type":"server","z":"","name":"Home Assistant","legacy":false,"hassio":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]



Als ik het doorstuur als JSON krijg ik een error: Unexpected token O in JSON at position 0.
Niet direct voor jou nuttig, maar ik had zoiets ook met een Home assistant node.. toen heb ik de state type op number gezet, toen werkte het voor mij.

https://i.imgur.com/zvwUnWD.png

Mijn Youtube reviews: https://www.youtube.com/user/BartjuhB/videos


  • Thoit
  • Registratie: februari 2015
  • Laatst online: 12:48
Hallo,

Ik wil mijn Tado een beetje helpen en met Home Assistant eerder de verwarming uit / aan zetten. Ik heb in Home Assistant een entity genaamd climate.woonkamer. Daaronder hangen onder andere de waardes temperature en current_temperature. Dit zijn echter onderliggende waardes van de entity. Hoe kan ik deze waardes uitlezen? Als ik namelijk de status van climate.woonkamer ophaal geeft hij alleen de status van climate.woonkamer weer (logisch).

Als ik debug aan zet en het pad kopieer dan geeft hij het volgende pad weer: [0].data.event.new_state.attributes.temperature dit zet ik vervolgens in de trigger state node, met substring optie aan, maar ik krijg de waarde niet uitgelezen. Iemand een idee hoe ik de onderliggende waardes kan uitlezen?

  • Troetelbeer
  • Registratie: juni 2018
  • Laatst online: 01-04 16:34
Thoit schreef op maandag 4 november 2019 @ 07:49:
Hallo,

Ik wil mijn Tado een beetje helpen en met Home Assistant eerder de verwarming uit / aan zetten. Ik heb in Home Assistant een entity genaamd climate.woonkamer. Daaronder hangen onder andere de waardes temperature en current_temperature. Dit zijn echter onderliggende waardes van de entity. Hoe kan ik deze waardes uitlezen? Als ik namelijk de status van climate.woonkamer ophaal geeft hij alleen de status van climate.woonkamer weer (logisch).

Als ik debug aan zet en het pad kopieer dan geeft hij het volgende pad weer: [0].data.event.new_state.attributes.temperature dit zet ik vervolgens in de trigger state node, met substring optie aan, maar ik krijg de waarde niet uitgelezen. Iemand een idee hoe ik de onderliggende waardes kan uitlezen?
https://www.home-assistant.io/integrations/template/

Believe. Imagine. Create.


  • Thoit
  • Registratie: februari 2015
  • Laatst online: 12:48
Die ken ik, maar ik wil het rechtstreeks in NR kunnen aanspreken. Ik wil zo weinig mogelijk dingen dubbel doen.

  • Troetelbeer
  • Registratie: juni 2018
  • Laatst online: 01-04 16:34
@Thoit Of het rechtsreeks in NR kan, weet ik niet...

Edit:

Kijk hier eens naar: https://diyfuturism.com/i...ons-in-node-red/#more-374

[Voor 101% gewijzigd door Troetelbeer op 04-11-2019 12:18]

Believe. Imagine. Create.


  • Thoit
  • Registratie: februari 2015
  • Laatst online: 12:48
Het is inmiddels gelukt door een function aan te maken. De code hiervoor is:

code:
1
2
3
4
5
6
7
8
9
10
var msgtelaag = { payload:"TeLaag" };
var msgtehoog = { payload:"TeHoog" };

if ((msg.data.attributes.temperature) > (msg.data.attributes.current_temperature)) {
    node.status({text: "Temp te laag"});
    return msgtelaag;
} else {
    node.status({text: "Temp te hoog"});
    return msgtehoog;
}

Pagina: 1 ... 8 9 10 Laatste


Apple iPhone 11 Microsoft Xbox Series X LG OLED C9 Google Pixel 4 CES 2020 Samsung Galaxy S20 4G Sony PlayStation 5 Nintendo Switch Lite

'14 '15 '16 '17 2018

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2020 Hosting door True