• Langerakpc
  • Registratie: juli 2014
  • Laatst online: 20:43
Ik heb een flow gemaakt waar ik op basis van mijn alarm op de telefoon een lamp aan gaat. dit moet omdat ik de kinderen moet voeden en door mijn wekker heen slaap.

Loop alleen tegen het probleem aan dat als ik de wekker instel (gebeurd hele dag door) dat de lamp direct aan gaat.

Hier wil ik een filter maken die puur kijkt naar de tijd dat de wekker ook af moet gaan en niet de tijd wanneer ik hem instel.

code:
1
[{"id":"645cfaf4.09e004","type":"tab","label":"Grote slaapkamer","disabled":false,"info":""},{"id":"42638f94.3068d","type":"server-state-changed","z":"645cfaf4.09e004","name":"Next Alarm","server":"9b8bc642.fed038","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.telefoon_peter_volgende_alarm","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":120,"y":180,"wires":[["67e424f.65cb4dc"]]},{"id":"67e424f.65cb4dc","type":"function","z":"645cfaf4.09e004","name":"10 seconden later ","func":"var alarmepoch = msg.data.new_state.attributes[\"Time in Milliseconds\"];\nvar myepoch = new Date().getTime();\n\n\n// multiply by 1000 because delay node expects milliseconds\n\nvar difference = (alarmepoch-myepoch-10*60*1000);\n\n// to reduce decimal places (optional)\ndifference = parseFloat(difference.toFixed(1));\n\nif(msg.payload == \"unavailable\")\nmsg.payload = false;\nelse if(difference > 0)\nmsg={\"payload\":true, \"delay\":difference};\n\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":410,"y":180,"wires":[["67e38a0f.2d49bc"]]},{"id":"8cf4f417.4d8788","type":"delay","z":"645cfaf4.09e004","name":"Delay","pauseType":"delayv","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":390,"y":120,"wires":[[]]},{"id":"67e38a0f.2d49bc","type":"function","z":"645cfaf4.09e004","name":"","func":"msg.payload = \"LAmp werkt op alarm\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":820,"y":180,"wires":[["f35f77eb.6a29d"]]},{"id":"f35f77eb.6a29d","type":"api-call-service","z":"645cfaf4.09e004","name":"android peter","server":"d9097700.945788","version":1,"debugenabled":false,"service_domain":"notify","service":"mobile_app_telefoon_peter","entityId":"","data":"{\"message\":\"{{payload}}\"}","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":1000,"y":180,"wires":[[]]},{"id":"f93f96fb.e39cd8","type":"comment","z":"645cfaf4.09e004","name":"Hier moet een filter komen dat als ik een alarm instel niet gelijk een signaal weg gaat","info":"","x":310,"y":260,"wires":[]},{"id":"f6098dda.c38358","type":"comment","z":"645cfaf4.09e004","name":"Test of de flow werkt dmv bericht","info":"","x":890,"y":260,"wires":[]},{"id":"9b8bc642.fed038","type":"server","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"cacheJson":true},{"id":"d9097700.945788","type":"server","name":"Home Assistant","legacy":false,"addon":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]


Hebben jullie enig idee?
Heb niet super veel kaas gegeten nog van NR

  • MBgek
  • Registratie: mei 2011
  • Laatst online: 16:58
Langerakpc schreef op maandag 26 april 2021 @ 12:06:
Ik heb een flow gemaakt waar ik op basis van mijn alarm op de telefoon een lamp aan gaat. dit moet omdat ik de kinderen moet voeden en door mijn wekker heen slaap.

Loop alleen tegen het probleem aan dat als ik de wekker instel (gebeurd hele dag door) dat de lamp direct aan gaat.

Hier wil ik een filter maken die puur kijkt naar de tijd dat de wekker ook af moet gaan en niet de tijd wanneer ik hem instel.

code:
1
[{"id":"645cfaf4.09e004","type":"tab","label":"Grote slaapkamer","disabled":false,"info":""},{"id":"42638f94.3068d","type":"server-state-changed","z":"645cfaf4.09e004","name":"Next Alarm","server":"9b8bc642.fed038","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.telefoon_peter_volgende_alarm","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":120,"y":180,"wires":[["67e424f.65cb4dc"]]},{"id":"67e424f.65cb4dc","type":"function","z":"645cfaf4.09e004","name":"10 seconden later ","func":"var alarmepoch = msg.data.new_state.attributes[\"Time in Milliseconds\"];\nvar myepoch = new Date().getTime();\n\n\n// multiply by 1000 because delay node expects milliseconds\n\nvar difference = (alarmepoch-myepoch-10*60*1000);\n\n// to reduce decimal places (optional)\ndifference = parseFloat(difference.toFixed(1));\n\nif(msg.payload == \"unavailable\")\nmsg.payload = false;\nelse if(difference > 0)\nmsg={\"payload\":true, \"delay\":difference};\n\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":410,"y":180,"wires":[["67e38a0f.2d49bc"]]},{"id":"8cf4f417.4d8788","type":"delay","z":"645cfaf4.09e004","name":"Delay","pauseType":"delayv","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":390,"y":120,"wires":[[]]},{"id":"67e38a0f.2d49bc","type":"function","z":"645cfaf4.09e004","name":"","func":"msg.payload = \"LAmp werkt op alarm\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":820,"y":180,"wires":[["f35f77eb.6a29d"]]},{"id":"f35f77eb.6a29d","type":"api-call-service","z":"645cfaf4.09e004","name":"android peter","server":"d9097700.945788","version":1,"debugenabled":false,"service_domain":"notify","service":"mobile_app_telefoon_peter","entityId":"","data":"{\"message\":\"{{payload}}\"}","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":1000,"y":180,"wires":[[]]},{"id":"f93f96fb.e39cd8","type":"comment","z":"645cfaf4.09e004","name":"Hier moet een filter komen dat als ik een alarm instel niet gelijk een signaal weg gaat","info":"","x":310,"y":260,"wires":[]},{"id":"f6098dda.c38358","type":"comment","z":"645cfaf4.09e004","name":"Test of de flow werkt dmv bericht","info":"","x":890,"y":260,"wires":[]},{"id":"9b8bc642.fed038","type":"server","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"cacheJson":true},{"id":"d9097700.945788","type":"server","name":"Home Assistant","legacy":false,"addon":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]


Hebben jullie enig idee?
Heb niet super veel kaas gegeten nog van NR
Ik zou tasker gebruiken om de info uit je Android toestel te trekken en vervolgens naar Node-RED te sturen, dit is denk ik wat je zoekt als ik er even vlug doorheen lees :)

  • Step5
  • Registratie: oktober 2011
  • Laatst online: 22:57
Langerakpc schreef op maandag 26 april 2021 @ 12:06:
Ik heb een flow gemaakt waar ik op basis van mijn alarm op de telefoon een lamp aan gaat. dit moet omdat ik de kinderen moet voeden en door mijn wekker heen slaap.

Loop alleen tegen het probleem aan dat als ik de wekker instel (gebeurd hele dag door) dat de lamp direct aan gaat.

Hier wil ik een filter maken die puur kijkt naar de tijd dat de wekker ook af moet gaan en niet de tijd wanneer ik hem instel.

code:
1
[{"id":"645cfaf4.09e004","type":"tab","label":"Grote slaapkamer","disabled":false,"info":""},{"id":"42638f94.3068d","type":"server-state-changed","z":"645cfaf4.09e004","name":"Next Alarm","server":"9b8bc642.fed038","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.telefoon_peter_volgende_alarm","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":120,"y":180,"wires":[["67e424f.65cb4dc"]]},{"id":"67e424f.65cb4dc","type":"function","z":"645cfaf4.09e004","name":"10 seconden later ","func":"var alarmepoch = msg.data.new_state.attributes[\"Time in Milliseconds\"];\nvar myepoch = new Date().getTime();\n\n\n// multiply by 1000 because delay node expects milliseconds\n\nvar difference = (alarmepoch-myepoch-10*60*1000);\n\n// to reduce decimal places (optional)\ndifference = parseFloat(difference.toFixed(1));\n\nif(msg.payload == \"unavailable\")\nmsg.payload = false;\nelse if(difference > 0)\nmsg={\"payload\":true, \"delay\":difference};\n\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":410,"y":180,"wires":[["67e38a0f.2d49bc"]]},{"id":"8cf4f417.4d8788","type":"delay","z":"645cfaf4.09e004","name":"Delay","pauseType":"delayv","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":390,"y":120,"wires":[[]]},{"id":"67e38a0f.2d49bc","type":"function","z":"645cfaf4.09e004","name":"","func":"msg.payload = \"LAmp werkt op alarm\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":820,"y":180,"wires":[["f35f77eb.6a29d"]]},{"id":"f35f77eb.6a29d","type":"api-call-service","z":"645cfaf4.09e004","name":"android peter","server":"d9097700.945788","version":1,"debugenabled":false,"service_domain":"notify","service":"mobile_app_telefoon_peter","entityId":"","data":"{\"message\":\"{{payload}}\"}","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":1000,"y":180,"wires":[[]]},{"id":"f93f96fb.e39cd8","type":"comment","z":"645cfaf4.09e004","name":"Hier moet een filter komen dat als ik een alarm instel niet gelijk een signaal weg gaat","info":"","x":310,"y":260,"wires":[]},{"id":"f6098dda.c38358","type":"comment","z":"645cfaf4.09e004","name":"Test of de flow werkt dmv bericht","info":"","x":890,"y":260,"wires":[]},{"id":"9b8bc642.fed038","type":"server","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"cacheJson":true},{"id":"d9097700.945788","type":"server","name":"Home Assistant","legacy":false,"addon":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]


Hebben jullie enig idee?
Heb niet super veel kaas gegeten nog van NR
Als ik de flow goed lees gebeurt dit: de waarde "volgende alarm" wijzigt en hierop triggert de events: state node. Dit is zoals het hoort denk ik. Wat jij wilt kan zo niet, je krijgt waarschijnlijk de tijd mee en die zou je dan misschien kunnen verwerken in een of andere timer node.
Maar misschien is de Poll: state node ook een optie? die triggert bijvoorbeeld iedere 60 seconden, vraagt "volgend alarm" op en dan kun je daarachter een vergelijk doen met de huidige tijd

  • Langerakpc
  • Registratie: juli 2014
  • Laatst online: 20:43
Step5 schreef op dinsdag 27 april 2021 @ 21:02:
[...]


Als ik de flow goed lees gebeurt dit: de waarde "volgende alarm" wijzigt en hierop triggert de events: state node. Dit is zoals het hoort denk ik. Wat jij wilt kan zo niet, je krijgt waarschijnlijk de tijd mee en die zou je dan misschien kunnen verwerken in een of andere timer node.
Maar misschien is de Poll: state node ook een optie? die triggert bijvoorbeeld iedere 60 seconden, vraagt "volgend alarm" op en dan kun je daarachter een vergelijk doen met de huidige tijd
Ik dacht stiekem ook hieraan.
ik krijg idd een tijd mee. deze zal ik moeten vergelijken met huidige tijd en dan skippen of niet.
Maar het probleem is da de tijd die hij krijgt altijd de huidige tijd heeft.

ik ga eens kijken naar de tasker

Edit,

Heb er nu een geofence en een tijdslot op gezet.
hij werkt alleen als ik thuis ben en tussen 2300 en 700. mocht ik in deze tijd een wijziging in mijn alarm maken doe ik de lamp met de hand wel uit.

[Voor 11% gewijzigd door Langerakpc op 28-04-2021 09:44]


  • vso
  • Registratie: augustus 2001
  • Laatst online: 22:38

vso

raap voor zijn recht

een leuke hoofdbreker



mqtt (tasmota)
code:
1
{"Time":"2021-04-28T10:59:59","DS18B20-1":{"Id":"0120632ADF50","Temperature":34.2},"DS18B20-2":{"Id":"0120632DAB5C","Temperature":33.2},"DS18B20-3":{"Id":"0120632AA073","Temperature":30.4},"DS18B20-4":{"Id":"012063349A3B","Temperature":32.5},"DS18B20-5":{"Id":"0120631AAF07","Temperature":32.8},"DS18B20-6":{"Id":"01206329517F","Temperature":30.6},"ESP32":{"Temperature":53.3},"TempUnit":"C"}


naar functie
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$test = 
'{"sensors": [{"command":"udevice","idx":71,"svalue":'+
msg.payload["DS18B20-1"].Temperature + "," +
'},'+
'{"command":"udevice","idx":72,"svalue":'+
msg.payload["DS18B20-2"].Temperature + "," +  
'},'+
'{"command":"udevice","idx":73,"svalue":'+
msg.payload["DS18B20-3"].Temperature + "," + 
'},'+
'{"command":"udevice","idx":74,"svalue":'+
msg.payload["DS18B20-4"].Temperature + "," + 
'},'+
'{"command":"udevice","idx":75,"svalue":'+
msg.payload["DS18B20-5"].Temperature + "," + 
'};'+
'{"command":"udevice","idx":76,"svalue":'+
msg.payload["DS18B20-6"].Temperature +
'}]}'
msg.payload = $test
return msg;


levert de volgende "string" op (geen json of object)
code:
1
{"sensors": [{"command":"udevice","idx":71,"svalue":33.3,},{"command":"udevice","idx":72,"svalue":32.6,},{"command":"udevice","idx":73,"svalue":29.8,},{"command":"udevice","idx":74,"svalue":31.6,},{"command":"udevice","idx":75,"svalue":32.1,};{"command":"udevice","idx":76,"svalue":29.9}]}


nu zegt domoticz "invalid" string Duh ..

Wie kan me helpen ? ik wil bv straks een gemiddelde van de sensors via node-red aan domoticz toevoegen . (gemiddelde van DS18B20-1+2 bv)

ps dit heb ik via rules op de esp32 inmiddels wel werkend gekregen dat ze direct in domoticz belanden maar dat lost mijn code enzv niet op ..

Gevonden gramatica fouten, mag je houden

@vso Als je nou in regel 16 de ';' eens vervangt voor een ',' ;) En vervolgens achter elke waarde van svalue de ',' weghaalt.
Volgens mij heb je dan een hele mooie nette JSON string :)

Oftewel:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$test = 
'{"sensors": [{"command":"udevice","idx":71,"svalue":'+
msg.payload["DS18B20-1"].Temperature +
'},'+
'{"command":"udevice","idx":72,"svalue":'+
msg.payload["DS18B20-2"].Temperature +
'},'+
'{"command":"udevice","idx":73,"svalue":'+
msg.payload["DS18B20-3"].Temperature + 
'},'+
'{"command":"udevice","idx":74,"svalue":'+
msg.payload["DS18B20-4"].Temperature +
'},'+
'{"command":"udevice","idx":75,"svalue":'+
msg.payload["DS18B20-5"].Temperature +
'},'+
'{"command":"udevice","idx":76,"svalue":'+
msg.payload["DS18B20-6"].Temperature +
'}]}'
msg.payload = $test
return msg;

[Voor 62% gewijzigd door lolgast op 28-04-2021 15:04]


  • vso
  • Registratie: augustus 2001
  • Laatst online: 22:38

vso

raap voor zijn recht

lolgast schreef op woensdag 28 april 2021 @ 15:02:
@vso Als je nou in regel 16 de ';' eens vervangt voor een ',' ;) En vervolgens achter elke waarde van svalue de ',' weghaalt.
Volgens mij heb je dan een hele mooie nette JSON string :)

Oftewel:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$test = 
'{"sensors": [{"command":"udevice","idx":71,"svalue":'+
msg.payload["DS18B20-1"].Temperature +
'},'+
'{"command":"udevice","idx":72,"svalue":'+
msg.payload["DS18B20-2"].Temperature +
'},'+
'{"command":"udevice","idx":73,"svalue":'+
msg.payload["DS18B20-3"].Temperature + 
'},'+
'{"command":"udevice","idx":74,"svalue":'+
msg.payload["DS18B20-4"].Temperature +
'},'+
'{"command":"udevice","idx":75,"svalue":'+
msg.payload["DS18B20-5"].Temperature +
'},'+
'{"command":"udevice","idx":76,"svalue":'+
msg.payload["DS18B20-6"].Temperature +
'}]}'
msg.payload = $test
return msg;
held Mijn dank is groot .. :) zeker +4 voor de moeite :)

ps https://www.freeformatter.com/json-validator.html is het met je eens (om 02:00 zag ik het niet meer zo zitten)

[Voor 5% gewijzigd door vso op 28-04-2021 15:18]

Gevonden gramatica fouten, mag je houden


  • denuz
  • Registratie: augustus 2006
  • Laatst online: 22:43
Langerakpc schreef op woensdag 28 april 2021 @ 07:04:
[...]


Ik dacht stiekem ook hieraan.
ik krijg idd een tijd mee. deze zal ik moeten vergelijken met huidige tijd en dan skippen of niet.
Maar het probleem is da de tijd die hij krijgt altijd de huidige tijd heeft.

ik ga eens kijken naar de tasker

Edit,

Heb er nu een geofence en een tijdslot op gezet.
hij werkt alleen als ik thuis ben en tussen 2300 en 700. mocht ik in deze tijd een wijziging in mijn alarm maken doe ik de lamp met de hand wel uit.
code:
1
[{"id":"52c68701.132848","type":"moment","z":"22a7c96c.2e4376","name":"","topic":"","input":"payload","inputType":"msg","inTz":"ETC/GMT","adjAmount":"1","adjType":"hours","adjDir":"add","format":"hh:mm","locale":"C","output":"tijd_volgende_alarm","outputType":"msg","outTz":"Europe/Amsterdam","x":760,"y":260,"wires":[["a8cb37af.81747"]]},{"id":"c149c53.1558db8","type":"schedex","z":"22a7c96c.2e4376","name":"Trigger at time","passthroughunhandled":false,"suspended":false,"lat":"","lon":"","ontime":"","ontopic":"","onpayload":"on","onoffset":"0","onrandomoffset":0,"offtime":"","offtopic":"","offpayload":"off","offoffset":"10","offrandomoffset":0,"mon":true,"tue":true,"wed":true,"thu":true,"fri":true,"sat":true,"sun":true,"x":1240,"y":140,"wires":[[]]},{"id":"a8cb37af.81747","type":"change","z":"22a7c96c.2e4376","name":"Define on off time(same)","rules":[{"t":"set","p":"payload","pt":"msg","to":"tijd_volgende_alarm","tot":"msg"},{"t":"set","p":"payload","pt":"msg","to":"{\"ontime\":$.payload , \"offtime\": $.payload, \"suspended\": false}","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":990,"y":260,"wires":[["c149c53.1558db8"]],"info":"Off on time defined as same. Offtime is overruled in "},{"id":"312b2246.771ba6","type":"switch","z":"22a7c96c.2e4376","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"unavailable","vt":"str"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":550,"y":240,"wires":[["6c3f0129.ca89e8"],["52c68701.132848"]]},{"id":"2c4d95a0.99444a","type":"server-state-changed","z":"22a7c96c.2e4376","name":"","server":"224924bb.3d06dc","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":180,"y":240,"wires":[["312b2246.771ba6"]]},{"id":"6c3f0129.ca89e8","type":"change","z":"22a7c96c.2e4376","name":"Suspend timer","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"suspended\":true}","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":740,"y":120,"wires":[["c149c53.1558db8"]]},{"id":"1d42ca76.76f346","type":"comment","z":"22a7c96c.2e4376","name":"","info":"Off on time defined as same. Offtime is overruled in trigger at time. Now standard 10 minutes later. ","x":1020,"y":300,"wires":[]},{"id":"224924bb.3d06dc","type":"server","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"cacheJson":false}]

Zoiets werkt wel obv alarm. Heb je mogelijk wel 2 extra nieuwe nodes voor nodig. Nadeel vind ik zelf dat dit dus o.b.v. AL je alarmen triggert. Je kan uiteraard nog wat conditions toevoegen.

Ik zou in dit geval eigenlijk 2 extra entities aanmaken. Een input boolean die aangeeft of het licht aan moet. En een input time, waar je aangeeft op welke tijd het aan moet. Daar heb ik ook nog wel een flow voor als je wilt :).

Acties:
  • 0Henk 'm!

  • k_ers
  • Registratie: april 2011
  • Laatst online: 23:39
Zou iemand mij kunnen helpen?

Ik wil graag als de achterdeur te lang open staat dat ik een bericht krijg met deur staat te lang open? Verwarming uitschakelen? Ja of nee

Notificaties krijg ik wel maar wie zou mij een voorbeeld kunnen maken zodat ik vanuit de ja of nee een actie komt?

Acties:
  • +2Henk 'm!

  • denuz
  • Registratie: augustus 2006
  • Laatst online: 22:43
k_ers schreef op zondag 2 mei 2021 @ 11:04:
Zou iemand mij kunnen helpen?

Ik wil graag als de achterdeur te lang open staat dat ik een bericht krijg met deur staat te lang open? Verwarming uitschakelen? Ja of nee

Notificaties krijg ik wel maar wie zou mij een voorbeeld kunnen maken zodat ik vanuit de ja of nee een actie komt?
Zoiets?
code:
1
[{"id":"2f99faea.1190ae","type":"server-events","z":"22a7c96c.2e4376","name":"Listen Mobile App","server":"224924bb.3d06dc","event_type":"mobile_app_notification_action","exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"waitForRunning":true,"x":130,"y":900,"wires":[["f991f9b7.c6ee7"]]},{"id":"f991f9b7.c6ee7","type":"switch","z":"22a7c96c.2e4376","name":"","property":"payload.event.action","propertyType":"msg","rules":[{"t":"eq","v":"Ja-deurmelding","vt":"str"},{"t":"eq","v":"Nee-deurmelding","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":350,"y":900,"wires":[["21686760.ae0d1"],["39c7399e.4003d6"]]},{"id":"add613bc.7bfa3","type":"api-call-service","z":"22a7c96c.2e4376","name":"notify mi9","server":"224924bb.3d06dc","version":1,"debugenabled":false,"service_domain":"notify","service":"","entityId":"","data":"{\"title\":\"Let op deur staat al 15 min open\",\"message\":\"{{payload}}\",\"data\":{\"tag\":\"Deurmelding\",\"sticky\":false,\"color\":\"blue\",\"actions\":[{\"action\":\"Ja-deurmelding\",\"title\":\"Ja\"},{\"action\":\"Nee-deurmelding\",\"title\":\"Nee\"},{\"ledColor\":\"red\"},{\"timeout\":6000}]}}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":440,"y":760,"wires":[[]]},{"id":"47de5cf1.9efc4c","type":"inject","z":"22a7c96c.2e4376","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"Verwarming uit?","payloadType":"str","x":180,"y":760,"wires":[["add613bc.7bfa3"]]},{"id":"39c7399e.4003d6","type":"debug","z":"22a7c96c.2e4376","name":"Nee","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":710,"y":940,"wires":[]},{"id":"21686760.ae0d1","type":"debug","z":"22a7c96c.2e4376","name":"Ja","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":730,"y":880,"wires":[]},{"id":"fbd06fea.2cd63","type":"server-state-changed","z":"22a7c96c.2e4376","name":"Deur sensor","server":"224924bb.3d06dc","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"15","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":170,"y":820,"wires":[["add613bc.7bfa3"],[]]},{"id":"224924bb.3d06dc","type":"server","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"cacheJson":false}]

Acties:
  • +1Henk 'm!

  • k_ers
  • Registratie: april 2011
  • Laatst online: 23:39
Yes! inderdaad! ik kwam niet uit het ´listen´ gedeelte waar die naar moest luisteren! super bedankt kan ik verder knutselen 8)7 8)7
denuz schreef op zondag 2 mei 2021 @ 11:27:
[...]


Zoiets?
code:
1
[{"id":"2f99faea.1190ae","type":"server-events","z":"22a7c96c.2e4376","name":"Listen Mobile App","server":"224924bb.3d06dc","event_type":"mobile_app_notification_action","exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"waitForRunning":true,"x":130,"y":900,"wires":[["f991f9b7.c6ee7"]]},{"id":"f991f9b7.c6ee7","type":"switch","z":"22a7c96c.2e4376","name":"","property":"payload.event.action","propertyType":"msg","rules":[{"t":"eq","v":"Ja-deurmelding","vt":"str"},{"t":"eq","v":"Nee-deurmelding","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":350,"y":900,"wires":[["21686760.ae0d1"],["39c7399e.4003d6"]]},{"id":"add613bc.7bfa3","type":"api-call-service","z":"22a7c96c.2e4376","name":"notify mi9","server":"224924bb.3d06dc","version":1,"debugenabled":false,"service_domain":"notify","service":"","entityId":"","data":"{\"title\":\"Let op deur staat al 15 min open\",\"message\":\"{{payload}}\",\"data\":{\"tag\":\"Deurmelding\",\"sticky\":false,\"color\":\"blue\",\"actions\":[{\"action\":\"Ja-deurmelding\",\"title\":\"Ja\"},{\"action\":\"Nee-deurmelding\",\"title\":\"Nee\"},{\"ledColor\":\"red\"},{\"timeout\":6000}]}}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":440,"y":760,"wires":[[]]},{"id":"47de5cf1.9efc4c","type":"inject","z":"22a7c96c.2e4376","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"Verwarming uit?","payloadType":"str","x":180,"y":760,"wires":[["add613bc.7bfa3"]]},{"id":"39c7399e.4003d6","type":"debug","z":"22a7c96c.2e4376","name":"Nee","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":710,"y":940,"wires":[]},{"id":"21686760.ae0d1","type":"debug","z":"22a7c96c.2e4376","name":"Ja","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":730,"y":880,"wires":[]},{"id":"fbd06fea.2cd63","type":"server-state-changed","z":"22a7c96c.2e4376","name":"Deur sensor","server":"224924bb.3d06dc","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"15","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":170,"y":820,"wires":[["add613bc.7bfa3"],[]]},{"id":"224924bb.3d06dc","type":"server","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"cacheJson":false}]

  • htca
  • Registratie: november 2001
  • Laatst online: 18:56
Ik ben mijn hoofd aan het breken.... Ik heb een huis vol pubers die graag "lang" douchen. De analoge manier is dat we momenteel een kookwekker hebben die we op 4 minuten zetten en dan door het trapgat roepen dat de kraan dicht moet. Ik gebruik Home Assistant en heb een watermeter waarop een pulscounter zit en op de warmwater meter zit een temperatuursensor. (voor de goede orde, ik gebruik alleen warm water uit de CV ketel in de badkamer). Ik probeer een flow voor elkaar te krijgen waarbij ik een notify krijg als de warme kraan gaat lopen en wanneer er 4 minuten en 8 minuten voorbij zijn.
De sequence die ik nu heb:

- Event state "Warm water" checkt de temperatuur op de warm waterleiding >30
- current state "water?" checkt de derivative van de watermeter > 0
- change reset de delays als de derivative van de watermeter = 0
- vervolgens krijg ik de meldingen op mijn telefoon en in HA

Op zich werkt het maar zolang "warm water" en "water" positief zijn, blijft de sequence triggeren en krijg ik elke 5 seconden dus een melding (en na 4 minuten ook tig meldingen als de delays niet gereset worden) .... Ik heb de sequence ook al met triggers geprobeerd, maar dat mocht niet baten.
Dus eigenlijk wil ik dat de sequence maar 1 keer start.

(oh ja, het lijkt wat hout je touwtje, maar mijn ketel is van Remeha en Thermostaat is een etwist... OTGW is een nogo voor deze combinatie en Remeha heeft/geeft geen API)

  • Forceworks
  • Registratie: juni 2007
  • Laatst online: 10-05 08:36
htca schreef op donderdag 6 mei 2021 @ 09:44:
Ik ben mijn hoofd aan het breken....
...
Wellicht zou je voor of na de change node een RBE node kunnen plaatsen die geen berichten doorlaat als de waarde niet verandert.

  • htca
  • Registratie: november 2001
  • Laatst online: 18:56
Forceworks schreef op donderdag 6 mei 2021 @ 10:19:
[...]


Wellicht zou je voor of na de change node een RBE node kunnen plaatsen die geen berichten doorlaat als de waarde niet verandert.
Daar had ik ook aan gedacht, maar de flow van water en temperatuur kunnen natuurlijk wel wijzigen ook als de douche al wel aan staat. Kan ik niet ergens een boolean zetten die aangeeft dat het proces al loopt?
Ik ben gewoon een amateur.... ik kan de payload natuurlijk checken...

[Voor 7% gewijzigd door htca op 06-05-2021 10:40]


  • Forceworks
  • Registratie: juni 2007
  • Laatst online: 10-05 08:36
htca schreef op donderdag 6 mei 2021 @ 10:38:
[...]

Daar had ik ook aan gedacht, maar de flow van water en temperatuur kunnen natuurlijk wel wijzigen ook als de douche al wel aan staat. Kan ik niet ergens een boolean zetten die aangeeft dat het proces al loopt?
Ik ben gewoon een amateur.... ik kan de payload natuurlijk checken...
Ik zou dat (wellicht wat omslachtig) oplossen met een template node er tussen.

Achter de change node 2 templates opnemen (1 voor de false output en 1 voor de true output
Dus volgende als Json uit laten spugen en daar weer de RBE en dan evt nog een change node achter zetten die checkt op de boolean waarde

Het volgende zet je dan in je template en de instellingen van de template staan er op dat hij JSON returned.
code:
1
{ "value":true }


Edit: als je een exportje maakt van je flow dan kan ik kijken of ik het er voor je tussen kan klussen.
Dubbele edit, zag ondertussen niet dat je je eerste comment al doorgestreept had.

[Voor 9% gewijzigd door Forceworks op 06-05-2021 10:56]


Acties:
  • +1Henk 'm!

  • htca
  • Registratie: november 2001
  • Laatst online: 18:56
Forceworks schreef op donderdag 6 mei 2021 @ 10:54:
[...]


Ik zou dat (wellicht wat omslachtig) oplossen met een template node er tussen.

Achter de change node 2 templates opnemen (1 voor de false output en 1 voor de true output
Dus volgende als Json uit laten spugen en daar weer de RBE en dan evt nog een change node achter zetten die checkt op de boolean waarde

Het volgende zet je dan in je template en de instellingen van de template staan er op dat hij JSON returned.
code:
1
{ "value":true }


Edit: als je een exportje maakt van je flow dan kan ik kijken of ik het er voor je tussen kan klussen.
Dubbele edit, zag ondertussen niet dat je je eerste comment al doorgestreept had.
Ik heb het nu zo opgelost, nu alleen nog een extra reset toevoegen als de temperatuur zakt (en niet onder een bepaalde waarde, maar deze werkt!)

Acties:
  • 0Henk 'm!

  • Langerakpc
  • Registratie: juli 2014
  • Laatst online: 20:43
Ik ben doorverwezen vanuit het grote HA topic met de volgende vraag

Ik heb mijn home assistant draaien op proxmox.
Ik wil graag het systeem monitoren zoals de cpu temp etc.

Ik heb de metric server aangezet via influxdb. https://pve.proxmox.com/wiki/External_Metric_Server
proxmox stuurt nu via udp berichten richting HA en deze komen aan zie ik in de udp ontvanger in node red.

influxdb heb ik als add on geinstaleerd maar las dat deze niet met udp wil/kan omgaan.

vond ook dat node red deze berichten kan ontcijferen. maar hoe?
de udp in werkt maar verder kom ik niet.

Acties:
  • 0Henk 'm!

  • vso
  • Registratie: augustus 2001
  • Laatst online: 22:38

vso

raap voor zijn recht

Langerakpc schreef op vrijdag 7 mei 2021 @ 11:49:
Ik ben doorverwezen vanuit het grote HA topic met de volgende vraag

Ik heb mijn home assistant draaien op proxmox.
Ik wil graag het systeem monitoren zoals de cpu temp etc.

Ik heb de metric server aangezet via influxdb. https://pve.proxmox.com/wiki/External_Metric_Server
proxmox stuurt nu via udp berichten richting HA en deze komen aan zie ik in de udp ontvanger in node red.

influxdb heb ik als add on geinstaleerd maar las dat deze niet met udp wil/kan omgaan.

vond ook dat node red deze berichten kan ontcijferen. maar hoe?
de udp in werkt maar verder kom ik niet.
als je de berichten via UDP-in ontvangt kan je via --> function node ze vertalen naar iets wat HA begrijpt
bv mqtt

dus dan krijg je in je flow
udp ---> function node --> mqtt in

elk berichtje wat ontvangen word, word dan automagisch omgezet naar een mqtt bericht ..

Gevonden gramatica fouten, mag je houden


Acties:
  • 0Henk 'm!

  • Langerakpc
  • Registratie: juli 2014
  • Laatst online: 20:43
vso schreef op vrijdag 7 mei 2021 @ 11:56:
[...]

als je de berichten via UDP-in ontvangt kan je via --> function node ze vertalen naar iets wat HA begrijpt
bv mqtt

dus dan krijg je in je flow
udp ---> function node --> mqtt in

elk berichtje wat ontvangen word, word dan automagisch omgezet naar een mqtt bericht ..
O dat is handig.
Alleen heb ik totaal geen idee wat ik moet invullen in de function

Acties:
  • 0Henk 'm!

  • vso
  • Registratie: augustus 2001
  • Laatst online: 22:38

vso

raap voor zijn recht

Langerakpc schreef op vrijdag 7 mei 2021 @ 12:25:
[...]


O dat is handig.
Alleen heb ik totaal geen idee wat ik moet invullen in de function
tja erhm youtube, dit topic moet wel een idee geven ..

Gevonden gramatica fouten, mag je houden


Acties:
  • 0Henk 'm!

  • ThinkPad
  • Registratie: juni 2005
  • Laatst online: 00:16

ThinkPad

Moderator Duurzame Energie & Domotica
Ik heb een hexstring waar op bepaalde posities een waarde zit die ik eruit wil halen. De hexstring krijg ik terug van mijn zonnepanelen omvormer via een UDP-bericht. Voor test ziet dat er zo uit (even wat ingekort):

JavaScript:
1
var inverter_reply = Buffer.from("AA557F03....546EAD","hex");

Voor de meeste waardes lukt het prima om de juiste waardes eruit te halen. Zo heb ik bijvoorbeeld:

JavaScript:
1
var vpv = parseFloat(inverter_reply.readInt16BE(11)*0.1).toFixed(1); // Vpv

Dat is met 16-bit integers.

Maar hoe ga ik van hex naar decimaal? Ik heb bijv. de hexwaarde '15' voor het jaartal, dit vertaalt zich naar '21' decimaal.

Heb al even in de documentatie https://nodejs.org/api/buffer.html gekeken, maar ik kan niet echt een tegenhanger van die readInt16BE vinden die dit doet :?

In twee stappen is ook prima, met
JavaScript:
1
var year = parseInt('0x' + hexStr,16);
lukt het omzetten al wel. Ik weet alleen niet goed hoe je iets met een offset uit een string haalt. Heb het met inverter_reply.slice() geprobeerd, maar het lukt niet omdat inverter_reply een hexbuffer is denk ik.

[Voor 35% gewijzigd door ThinkPad op 08-05-2021 11:10]

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


Acties:
  • 0Henk 'm!
@ThinkPad Ik heb er te weinig ervaring mee om het zelf uit te leggen aan je, maar via deze website kun je het in eerste instantie converteren en ze geven ook de berekeningsmethode. Kun je daar niets mee?
https://www.rapidtables.c...umber/hex-to-decimal.html

Acties:
  • 0Henk 'm!

  • ericplan
  • Registratie: mei 2006
  • Laatst online: 22:06

ericplan

5180 Wp PV

@ThinkPad kan je iets met node-red-contrib-buffer-parser? Gebruik ik om twee hex-registers uit een kWh-meter te lezen en te vertalen naar een normale meterstand.

ZonPHP PVOutput


Acties:
  • 0Henk 'm!

  • ThinkPad
  • Registratie: juni 2005
  • Laatst online: 00:16

ThinkPad

Moderator Duurzame Energie & Domotica
ericplan schreef op zaterdag 8 mei 2021 @ 16:19:
@ThinkPad kan je iets met node-red-contrib-buffer-parser? Gebruik ik om twee hex-registers uit een kWh-meter te lezen en te vertalen naar een normale meterstand.
Die ziet er wel bruikbaar uit!

Hoe lees jij die meters uit? Ook via UDP? Want dat deel gaat bij mij ook niet helemaal lekker, het lijkt alsof de socket open blijft (of juist te snel wordt gesloten). Na een aantal keren uitlezen krijg ik de foutmelding "ERR_SOCKET_DGRAM_NOT_RUNNING" van de UDP nodes.

[Voor 3% gewijzigd door ThinkPad op 09-05-2021 11:31]

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


Acties:
  • +1Henk 'm!

  • ericplan
  • Registratie: mei 2006
  • Laatst online: 22:06

ericplan

5180 Wp PV

ThinkPad schreef op zondag 9 mei 2021 @ 11:28:
[...]

Die ziet er wel bruikbaar uit!

Hoe lees jij die meters uit? Ook via UDP? Want dat deel gaat bij mij ook niet helemaal lekker, het lijkt alsof de socket open blijft (of juist te snel wordt gesloten). Na een aantal keren uitlezen krijg ik de foutmelding "ERR_SOCKET_DGRAM_NOT_RUNNING" van de UDP nodes.
Via rs485 en Modbus. Dus niet over TCP. Werkt redelijk stabiel, maar ik mis wel eens een puls. Gelukkig lees ik tellerstanden uit, dus eens per jaar draai ik een handmatig update waar ik alles weer synchroon zet.

ZonPHP PVOutput


Acties:
  • 0Henk 'm!

  • ThinkPad
  • Registratie: juni 2005
  • Laatst online: 00:16

ThinkPad

Moderator Duurzame Energie & Domotica
Heb de node-red-contrib-buffer-parser bekeken. Is wel een handig dingetje inderdaad. Je kunt alleen omgerekende waardes niet afronden op x decimalen, dus ik blijf toch bij mijn eigen function node. Wat ik zocht was readInt8, daarmee krijg ik nu de juiste waarde uit de hex.

De foutmelding ERR_SOCKET_DGRAM_NOT_RUNNING lijkt verholpen te zijn door te kiezen voor "bind to local port".

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


  • DeadMetal
  • Registratie: mei 2002
  • Laatst online: 16-09 21:27
KNMI https://www.knmi.nl/kenni...ophalen-vanuit-een-script
Wegens technische problemen is het op dit moment niet mogelijk dag- en uurgegevens via de 'Interactieve selectie' te downloaden. Het downloaden van dag- en uurwaarden zonder interactieve selectie is echter wel mogelijk, via de pagina’s met dag- en uurwaarden van de weer- en neerslagstations. We werken hard om hiervoor vervanging aan te bieden. Excuses voor het ongemak.
Dat staat er nou ook al maanden... :'(

  • ThinkPad
  • Registratie: juni 2005
  • Laatst online: 00:16

ThinkPad

Moderator Duurzame Energie & Domotica
Ik gebruik OpenWeatherMaps. Is gratis en werkt voor mij prima.

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


Acties:
  • 0Henk 'm!
Het is nog een WiP, maar ik ben er al best blij mee!


Function node:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// HA status van entities ophalen en omzetten naar integers
function getState(l){
  return hassio.hassIO.states[l].state.replace('on',1).replace('off',0)
}

// Status ophalen uit HA, omzetten naar binary om gekozen kanaal
// te berekenen.
function getChannel(){
  let sel_channel = 0
  let led1 = getState('switch.somfy_5ch_led1');
  let led2 = getState('switch.somfy_5ch_led2');
  let led3 = getState('switch.somfy_5ch_led3');
  let led4 = getState('switch.somfy_5ch_led4');
  
  // Converteer naar binary
  let iLEDs = led4<<3 | led3<<2 | led2<<1 | led1;
  
  // Kanaal bepalen a.d.v. binary
  switch (iLEDs){
    case 1:   sel_channel=1;  break; // LED1, channel 1 selected 
    case 2:   sel_channel=2;  break; // LED2, channel 2 selected 
    case 4:   sel_channel=3;  break; // LED3, channel 3 selected 
    case 8:   sel_channel=4;  break; // LED4, channel 4 selected 
    case 15:  sel_channel=5;  break; // ALL,  channel 5 selected
    default: 0
    }
  return sel_channel
}

// True als benodigde kanaal geselecteerd is
function chkChannel(ch){
  if (getChannel() == ch){
    return true;
  } else {return false}
}

// Eerste keer door de loop. Up/Stop/Down bepalen en loopcount start
if (!msg.button){
  msg.button = msg.topic.split('/')[0] + '_' + msg.payload
  msg.count = 0
}

const hassio = global.get('homeassistant')
let desired = parseInt(msg.topic.split('_')[2])

if (msg.count < 10){
  msg.payload = {"button":msg.button,"channel":getChannel(),"count":++msg.count,"desired":chkChannel(desired)};
} else { 
  msg.payload = null
}
return msg


Wat is het idee? Uitlezen en bedienen van de Somfy Situo 5 IO Pure ii die gekoppeld wordt aan of een ESP32 of een ESP8266 icm een PCF8574/MCP23008/MCP23017, ivm benodigde GPIO's (minimaal 8 stuks voor uitlezen/aansturing). Via ESPHome worden er 5 rolluiken (covers) beschikbaar gemaakt in HomeAssistant en MQTT. Afhankelijk van welke cover er gekozen wordt, schakelt de ESP automatisch naar het benodigde kanaal door de selectknop te bedienen. Komt het benodigde kanaal overeen met het gekozen kanaal, dan wordt er een signaal naar up/stop/down gestuurd. Als er na 10 keer op 'select' drukken nog geen juist kanaal is gevonden stopt hij en krijg ik een bericht.

Ik heb géén programmeur. Als iemand zegt: Dit kan écht niet in je code. Of, 'waarom niet zo want:..' Graag :)

Zodra de ESP en de remote binnen zijn gaat het ASAP uit WiP-status 8)

[Voor 7% gewijzigd door lolgast op 15-05-2021 23:38]


Acties:
  • 0Henk 'm!

  • vso
  • Registratie: augustus 2001
  • Laatst online: 22:38

vso

raap voor zijn recht

lolgast schreef op vrijdag 14 mei 2021 @ 20:39:
Het is nog een WiP, maar ik ben er al best blij mee!
[Afbeelding]

Function node:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// HA status van entities ophalen en omzetten naar integers
function getState(l){
  return hassio.hassIO.states[l].state.replace('on',1).replace('off',0)
}

// Status ophalen uit HA, omzetten naar binary om gekozen kanaal
// te berekenen.
function getChannel(){
  let sel_channel = 0
  let led1 = getState('switch.somfy_5ch_led1');
  let led2 = getState('switch.somfy_5ch_led2');
  let led3 = getState('switch.somfy_5ch_led3');
  let led4 = getState('switch.somfy_5ch_led4');
  
  // Converteer naar binary
  let iLEDs = led4<<3 | led3<<2 | led2<<1 | led1;
  
  // Kanaal bepalen a.d.v. binary
  switch (iLEDs){
    case 1:   sel_channel=1;  break; // LED1, channel 1 selected 
    case 2:   sel_channel=2;  break; // LED2, channel 2 selected 
    case 4:   sel_channel=3;  break; // LED3, channel 3 selected 
    case 8:   sel_channel=4;  break; // LED4, channel 4 selected 
    case 15:  sel_channel=5;  break; // ALL,  channel 5 selected
    default: 0
    }
  return sel_channel
}

// True als benodigde kanaal geselecteerd is
function chkChannel(ch){
  if (getChannel() == ch){
    return true;
  } else {return false}
}

// Eerste keer door de loop. Up/Stop/Down bepalen en loopcount start
if (!msg.button){
  msg.button = msg.topic.split('/')[0] + '_' + msg.payload
  msg.count = 0
}

const hassio = global.get('homeassistant')
let desired = parseInt(msg.topic.split('_')[2])

if (msg.count < 10){
  msg.payload = {"button":msg.button,"channel":getChannel(),"count":++msg.count,"desired":chkChannel(desired)};
} else { 
  msg.payload = null
}
return msg


Wat is het idee? Uitlezen en bedienen van de Somfy Situo 5 IO Pure ii die gekoppeld wordt aan of een ESP32 of een ESP8266 icm een PCF8574/MCP23008/MCP23017, ivm benodigde GPIO's (minimaal 8 stuks voor uitlezen/aansturing). Via ESPHome worden er 5 rolluiken (covers) beschikbaar gemaakt in HomeAssistant en MQTT. Afhankelijk van welke cover er gekozen wordt, schakelt de ESP automatisch naar het benodigde kanaal door de selectknop te bedienen. Komt het benodigde kanaal overeen met het gekozen kanaal, dan wordt er een signaal naar up/stop/down gestuurd. Als er na 10 keer op 'select' drukken nog geen juist kanaal is gevonden stopt hij en krijg ik een bericht.

Ik heb géén programmeur. Als iemand zegt: Dit kan écht niet in je code. Of, 'waarom niet zo want:..' Graag :)

Zodra de ESP en de remote binnen zijn gaat het ASAP uit WiP-status 8)
Waarom pak je het zo complex aan ? je hebt zoveel alternatieve routes
TLDR use shellies 2.x oid .. en mik je somfy het project uit het raam


https://fccid.io/DWN-SITU...s/Internal-Photos-4135648 deze al gezien ?
of
https://www.instructables...bile-IFTTT-and-Google-fo/
of
de diverse "github" projecten
of
ik zou ook eens kijken naar de ITHO daalderop topic volgens mij doen ze daar ook communicatie betreft 866 mhz oid ..
of
je onderschept het verkeer met een RTL-SDR + software pakketje RTL_433 (linux) die vertaalt 433 (kaku bv) maar ook somfy en hij (her)kent (jaar of 2 jaar geleden) ook 866mhz meuk . ja een rtl-sdr kan alleen ontvangen maar vandaar het ITHO topic .. die hebben een custom board oid ..

Wil je echt de esp op de remote tja .. dan zou ik eerst eens kijken als er een rx/tx (1ste link) op zit kijken wat er over die bus gaat .. putty, en try the 3 a 4 "common" baud settings oid ..

Wil je het "low" level en wat je nu heb bedacht zou ik gewoon de 3 a 4 knopjes onderscheppen .. van de + van de batterij testen welke pin v.d button zorgt voor een "reactie" .. en die via 3 gpio-pinnen van je esp bedienen (let wel op welke pinnen je pakt dus niet #0 of #2 bv) dan hoef je niet moeilijk te doen met poortjes en ledjes en andere meuk ..


waarom adviseer ik shelly 2.x ?
- 1ste reden = deze registeerd het "stroomverbruik" en dus weet je wanneer je scherm open/dicht gaat
- 2de reden = geen gedoe met solderen --> en direct MQTT mogelijkheid ..
- 3de reden = there is an app als je wilt .. (of een custom webpage oid)
- 4de reden = je kan je remote nog (steeds) gebruiken
- 5de reden = je kan desnoods een temperatuur & lichtsensor enzv erbij aansluiten
- 6de reden = je kan de firmware vervangen door Tasmota / Espeasy
(ik gebruik de kaku + shelly voor mijn zonnescherm) ..

Kortom shelly heeft wellicht een hoge WAF + @lolgast tweakgehalte :)

Gevonden gramatica fouten, mag je houden


Acties:
  • 0Henk 'm!
@vso
Bedankt voor het meedenken.

- Waarom geen Shelly?
Omdat ik (binnenkort) 4 rolluiken heb, alle 4 zonder ‘knop’ en alle 4 rechtstreeks in het stopcontact met een stekker. Verbruik hoef ik niet te weten, ik weet wanneer een rolluik open/dicht is. Als ik hem via HA of NR bedien :)

- Waarom niet de ‘simpele’ optie van je tweede link
Die remote heeft geen kanalen. Die oplossing heb ik overigens al bijna 1,5 jaar draaien voor ons momenteel enige rolluik (op de niet RTS variant). Het ‘moeilijke’ zit hem in de kanaal selectie.

- Uitlezen rx/tx verhaal
Daarvoor ben ik niet ervaren genoeg. Solderen lukt prima, beetje code schrijven ook. Maar in de weer met het uitlezen van een onbekende bus? Nee dat heeft bij mij geen zin.
Ik heb er wel over getwijfeld, want de soldeerpunten daarvoor zitten netjes gelabeld naast elkaar op de remote.

Dus vandaar deze route. En ik wéét dat het 100% haalbaar is. En heel moeilijk is het nou ook weer niet. Plus dat ik nu niet de mogelijkheid verlies om de voorkeurspositie te kunnen gebruiken (My-/Stop knop op de remote).

De remote is al ontcijferd vwb benodigde bekabeling en welk signaal waar vandaan komt. Enig resterende uitdaging voor mij nu is, dat bij ESPHome en dus Node-RED krijgen :9

  • vso
  • Registratie: augustus 2001
  • Laatst online: 22:38

vso

raap voor zijn recht

lolgast schreef op dinsdag 18 mei 2021 @ 22:58:
Dus vandaar deze route. En ik wéét dat het 100% haalbaar is. En heel moeilijk is het nou ook weer niet. Plus dat ik nu niet de mogelijkheid verlies om de voorkeurspositie te kunnen gebruiken (My-/Stop knop op de remote).

De remote is al ontcijferd vwb benodigde bekabeling en welk signaal waar vandaan komt. Enig resterende uitdaging voor mij nu is, dat bij ESPHome en dus Node-RED krijgen :9
Laat ik eerst beginnen met deze, als dit werkt voor jou waarom niet ? wat voor mij "simpel" is voor jou wellicht nog niet 1+1 = 2 en daar is ook niks mis mee !
(1ste bouwwerk noem ik dit)


maar merk ik wel op een
ESP8266 icm een PCF8574/MCP23008/MCP23017
is best complex om aan de praat te krijgen omdat je met I2C, SPI of een ander "protocol aan de slag moet
en die input van de pin high/low oid daarvandaan moet zien te vertalen naar ...iets.. wat je weer in node-red stopt .. (mqtt oid) .. dus je hebt al 20 draadjes oid gesoldeerd en dan moet je nog software gaan debuggen ?

Ga je dat in de arduino IDE doen of kies je voor tasmota/espeasy route ?


je zou "optioneel" de volgende 2 stappen later kunnen doen ..
(2de bouwwerk)
bv de tx/rx serial console via een tasmota/espeasy "serial netwerk server" .. is maar 3 draadjes oid verbinden .. (extra)

(3de bouwwerk)
heb je dit eenmaal werkend zou je een 2de esp kunnen nemen en een RF module en daarmee verder prutsen .. werkt deze kan je je 1ste en 2de bouwerk


ik weet je kennis niet maar ben je beginner zou ik met 2 beginnen .. je kan nog altijd naar je eerste idee terug vallen ..
zeker als je ESPeasy of tasmota via een webinterface een serial console (dosbox) op weet te zetten ook voor optie 1 is dit zeer handig omdat je weet dat wat je via node red --> verstuurd naar je remote ook aankomt .

betreft je "flow" ik zou zeker wat debug windows erbij zetten .. ;)

Gevonden gramatica fouten, mag je houden


Acties:
  • +1Henk 'm!
vso schreef op woensdag 19 mei 2021 @ 01:49:
[...]


betreft je "flow" ik zou zeker wat debug windows erbij zetten .. ;)
Bij mij gaat altijd alles in 1 keer goed, debuggen doe ik niet aan :+

(Dit stuk in NR is al wel af. Hij is zo gemaakt dat enkel de eerste 'MQTT In' aangepast moet worden naar het juiste topic. De rest gebeurd op basis van die naam)

  • Fotonica
  • Registratie: april 2004
  • Laatst online: 05-08 15:25
Even een “domme “ vraag :

Ik ben pas begonnen met Node-Red en de kom er aardig mee uit de voeten voor wat ik wil. Maar loop nu tegen het volgende aan.

Ik heb probeer mijn deurbel als trigger in te stellen om Google home te laten zeggen dat er iemand bij de deur is in het Nederlands.

Met de cast node lukt het mij om via een time stamp de speaker in het Nederlands te zeggen dat er iemand bij de deur is maar als ik de deurbel als trigger er op aan sluit zegt hij alleen “on” wat ook de payload is van de trigger.

Als ik een time stamp als payload mee geef doet hij niets.

Wat kan ik doen dat de cast node het zelfde doet als de trigger.

Ik gebruik een UniFi video doorbell via protect met hacs protect voor de entiteiten. En een Google home speaker

Work to live


  • DennusB
  • Registratie: mei 2006
  • Niet online
Fotonica schreef op donderdag 10 juni 2021 @ 10:02:
Even een “domme “ vraag :

Ik ben pas begonnen met Node-Red en de kom er aardig mee uit de voeten voor wat ik wil. Maar loop nu tegen het volgende aan.

Ik heb probeer mijn deurbel als trigger in te stellen om Google home te laten zeggen dat er iemand bij de deur is in het Nederlands.

Met de cast node lukt het mij om via een time stamp de speaker in het Nederlands te zeggen dat er iemand bij de deur is maar als ik de deurbel als trigger er op aan sluit zegt hij alleen “on” wat ook de payload is van de trigger.

Als ik een time stamp als payload mee geef doet hij niets.

Wat kan ik doen dat de cast node het zelfde doet als de trigger.

Ik gebruik een UniFi video doorbell via protect met hacs protect voor de entiteiten. En een Google home speaker
Even zorgen dat je msg.payload van je trigger (je deurbel dus) geen msg.payload heet maar wellicht msg.deurbelpayload. Kan je aanpassen in de trigger node :)

  • Fotonica
  • Registratie: april 2004
  • Laatst online: 05-08 15:25
DennusB schreef op donderdag 10 juni 2021 @ 10:04:
[...]

Even zorgen dat je msg.payload van je trigger (je deurbel dus) geen msg.payload heet maar wellicht msg.deurbelpayload. Kan je aanpassen in de trigger node :)
Thanks ga ik proberen

Work to live


  • htca
  • Registratie: november 2001
  • Laatst online: 18:56
Ik weet niet hoe je cast, maar ik had afgelopen week problemen met TTS via google. Uiteindelijk een andere TTS gebruikt via URL

  • Fotonica
  • Registratie: april 2004
  • Laatst online: 05-08 15:25
htca schreef op donderdag 10 juni 2021 @ 10:20:
Ik weet niet hoe je cast, maar ik had afgelopen week problemen met TTS via google. Uiteindelijk een andere TTS gebruikt via URL
Ik gebruik tts, de tts deed het wel maar door de trigger veranderde gesproken tekst naar “on” ipv de ingevoerde tekst.

Work to live


  • htca
  • Registratie: november 2001
  • Laatst online: 18:56
dat msg.payload wijzigen zoals @DennusB aangeeft

  • Fotonica
  • Registratie: april 2004
  • Laatst online: 05-08 15:25
DennusB schreef op donderdag 10 juni 2021 @ 10:04:
[...]

Even zorgen dat je msg.payload van je trigger (je deurbel dus) geen msg.payload heet maar wellicht msg.deurbelpayload. Kan je aanpassen in de trigger node :)
ik weet niet waarom dit niet lukt maar heb het nu anders opgelost. nml: in de cast node een extra rule aan gemaakt die "on" omzet in "er is iemand bij de deur" nu doet hij het :)

Work to live


  • k_ers
  • Registratie: april 2011
  • Laatst online: 23:39
Iemand nog een mooi voorbeeld om mijn watermeter data in Excel op te slaan per week/maand/jaar.
Dat dit bijvoorbeeld op Google drive wordt opgeslagen

Acties:
  • +1Henk 'm!

  • htca
  • Registratie: november 2001
  • Laatst online: 18:56
@k_ers ik weet niet waar je data vandaan komt, ik zelf heb mijn data op een influxdb staan en kan vanaf handmatig de boel exporteren of live grafieken presenteren via grafana. Via node-red ken ik geen implementaties; maar ik denk dat je hier moet starten voor de communicatie met google drive. Voor de data zou je deze moeten gebruiken (of een andere datasource).

  • GORby
  • Registratie: januari 2002
  • Laatst online: 17-09 00:15
k_ers schreef op dinsdag 15 juni 2021 @ 10:10:
Iemand nog een mooi voorbeeld om mijn watermeter data in Excel op te slaan per week/maand/jaar.
Dat dit bijvoorbeeld op Google drive wordt opgeslagen
Als het je doel is om je data gewoon in een Google spreadsheet te krijgen, dan kan je dat met een GET/POST request regelen door daar een formulier voor op te zetten. Ik zou echter ook eerder de InfluxDB piste bewandelen.

  • Obelixxx
  • Registratie: juli 2020
  • Laatst online: 17-09 13:00
Hallo Allemaal,

Ik ben nu een paar maanden met Home Automation bezig.
En ben nu sinds enkele dagen me ook gaan bezig houden met Node-Red.
Niet er allemaal prima en krachtig uit. Echter krijg ik mijn eerste kleine automatisering niet aan de gang.
Ik probeer mijn Vliegenlamp (Hue Smart Plug via Deconz ) aan en uit te zetten.

Kan iemand me verder helpen?
Onderstaande functie heb ik gemaakt om om 09:00 de power plug uit te schaken.
Om 09:00 wordt er niets gestart helaas.
Maar ook als ik handmatig start dan gaat de smart plug niet uit.
Als ik handmatig in HA de plug aan / uit zet, reageert hij wel.
Mis ik iets?

code:
1
[{"id":"96ef247e.fb0a58","type":"inject","z":"ea2eebe2.4105f8","name":"09:00: Vliegenlamp uit","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"09:00","payload":"","payloadType":"date","x":160,"y":160,"wires":[["4398b804.75ff08"]]},{"id":"4398b804.75ff08","type":"api-call-service","z":"ea2eebe2.4105f8","name":"Vliegenlamp uit","server":"8372e37b.28447","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"switch.on_off_plug_in_unit_16","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":500,"y":160,"wires":[["76490609.42732"]]},{"id":"76490609.42732","type":"debug","z":"ea2eebe2.4105f8","name":"","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":590,"y":320,"wires":[]},{"id":"8372e37b.28447","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]

  • vso
  • Registratie: augustus 2001
  • Laatst online: 22:38

vso

raap voor zijn recht

Obelixxx schreef op donderdag 17 juni 2021 @ 09:08:
Hallo Allemaal,

Ik ben nu een paar maanden met Home Automation bezig.
En ben nu sinds enkele dagen me ook gaan bezig houden met Node-Red.
Niet er allemaal prima en krachtig uit. Echter krijg ik mijn eerste kleine automatisering niet aan de gang.
Ik probeer mijn Vliegenlamp (Hue Smart Plug via Deconz ) aan en uit te zetten.

Kan iemand me verder helpen?
Onderstaande functie heb ik gemaakt om om 09:00 de power plug uit te schaken.
Om 09:00 wordt er niets gestart helaas.
Maar ook als ik handmatig start dan gaat de smart plug niet uit.
Als ik handmatig in HA de plug aan / uit zet, reageert hij wel.
Mis ik iets?

code:
1
[{"id":"96ef247e.fb0a58","type":"inject","z":"ea2eebe2.4105f8","name":"09:00: Vliegenlamp uit","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"09:00","payload":"","payloadType":"date","x":160,"y":160,"wires":[["4398b804.75ff08"]]},{"id":"4398b804.75ff08","type":"api-call-service","z":"ea2eebe2.4105f8","name":"Vliegenlamp uit","server":"8372e37b.28447","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"switch.on_off_plug_in_unit_16","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":500,"y":160,"wires":[["76490609.42732"]]},{"id":"76490609.42732","type":"debug","z":"ea2eebe2.4105f8","name":"","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":590,"y":320,"wires":[]},{"id":"8372e37b.28447","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]
stap 2 (de issue) --> de repeat functie van de inject staat niet op de gewenste momenten (toen ik hem importeerde) daar zal je elke dag om 9:00 moeten zetten

maar stap 1 is dat als je de inject stuurt (handmatig) zal de lamp wel aan/uit moeten gaan ..

vaak stuur je (via function of inject) een berichtje "msg.service = aan" bijvoorbeeld ik weet niet hoe dit bij HA gaat

[Voor 7% gewijzigd door vso op 17-06-2021 11:08]

Gevonden gramatica fouten, mag je houden


  • Obelixxx
  • Registratie: juli 2020
  • Laatst online: 17-09 13:00
vso schreef op donderdag 17 juni 2021 @ 11:03:
[...]

stap 2 (de issue) --> de repeat functie van de inject staat niet op de gewenste momenten (toen ik hem importeerde) daar zal je elke dag om 9:00 moeten zetten

maar stap 1 is dat als je de inject stuurt (handmatig) zal de lamp wel aan/uit moeten gaan ..

vaak stuur je (via function of inject) een berichtje "msg.service = aan" bijvoorbeeld ik weet niet hoe dit bij HA gaat
Dank je, ik ga verder zoeken met deze informatie.

  • denuz
  • Registratie: augustus 2006
  • Laatst online: 22:43
Obelixxx schreef op donderdag 17 juni 2021 @ 09:08:
Hallo Allemaal,

Ik ben nu een paar maanden met Home Automation bezig.
En ben nu sinds enkele dagen me ook gaan bezig houden met Node-Red.
Niet er allemaal prima en krachtig uit. Echter krijg ik mijn eerste kleine automatisering niet aan de gang.
Ik probeer mijn Vliegenlamp (Hue Smart Plug via Deconz ) aan en uit te zetten.

Kan iemand me verder helpen?
Onderstaande functie heb ik gemaakt om om 09:00 de power plug uit te schaken.
Om 09:00 wordt er niets gestart helaas.
Maar ook als ik handmatig start dan gaat de smart plug niet uit.
Als ik handmatig in HA de plug aan / uit zet, reageert hij wel.
Mis ik iets?

code:
1
[{"id":"96ef247e.fb0a58","type":"inject","z":"ea2eebe2.4105f8","name":"09:00: Vliegenlamp uit","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"09:00","payload":"","payloadType":"date","x":160,"y":160,"wires":[["4398b804.75ff08"]]},{"id":"4398b804.75ff08","type":"api-call-service","z":"ea2eebe2.4105f8","name":"Vliegenlamp uit","server":"8372e37b.28447","version":3,"debugenabled":false,"service_domain":"light","service":"turn_off","entityId":"switch.on_off_plug_in_unit_16","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":500,"y":160,"wires":[["76490609.42732"]]},{"id":"76490609.42732","type":"debug","z":"ea2eebe2.4105f8","name":"","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":590,"y":320,"wires":[]},{"id":"8372e37b.28447","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]
code:
1
[{"id":"96ef247e.fb0a58","type":"inject","z":"22a7c96c.2e4376","name":"09:00: Vliegenlamp uit","props":[{"p":"payload"}],"repeat":"","crontab":"00 09 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":290,"y":1960,"wires":[["4398b804.75ff08"]]},{"id":"4398b804.75ff08","type":"api-call-service","z":"22a7c96c.2e4376","name":"Vliegenlamp uit","server":"224924bb.3d06dc","version":3,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.tgt_switch","data":"","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":620,"y":1960,"wires":[["76490609.42732"]]},{"id":"76490609.42732","type":"debug","z":"22a7c96c.2e4376","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":710,"y":2120,"wires":[]},{"id":"224924bb.3d06dc","type":"server","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"cacheJson":false}]


Zo moet het werken. Je gebruikt een switch (geen light, ja jij hebt er misschien een lamp op aangesloten maar het blijft een switch). En kleine aanpassing aan je inject node.

  • Obelixxx
  • Registratie: juli 2020
  • Laatst online: 17-09 13:00
denuz schreef op donderdag 17 juni 2021 @ 12:07:
[...]

code:
1
[{"id":"96ef247e.fb0a58","type":"inject","z":"22a7c96c.2e4376","name":"09:00: Vliegenlamp uit","props":[{"p":"payload"}],"repeat":"","crontab":"00 09 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":290,"y":1960,"wires":[["4398b804.75ff08"]]},{"id":"4398b804.75ff08","type":"api-call-service","z":"22a7c96c.2e4376","name":"Vliegenlamp uit","server":"224924bb.3d06dc","version":3,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.tgt_switch","data":"","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":620,"y":1960,"wires":[["76490609.42732"]]},{"id":"76490609.42732","type":"debug","z":"22a7c96c.2e4376","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":710,"y":2120,"wires":[]},{"id":"224924bb.3d06dc","type":"server","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"cacheJson":false}]


Zo moet het werken. Je gebruikt een switch (geen light, ja jij hebt er misschien een lamp op aangesloten maar het blijft een switch). En kleine aanpassing aan je inject node.
Kijk!
Dat werkt.
Ik had daarnaar gezocht, ik vond light ook al een beetje raar, maar omdat ook in deconz de stekkers gezocht moeten worden als light dacht ik dat het wel in orde zou zijn.

Nu kan ik verder zoeken.
Dank je voor de hulp

  • Obelixxx
  • Registratie: juli 2020
  • Laatst online: 17-09 13:00
denuz schreef op donderdag 17 juni 2021 @ 12:07:
[...]

code:
1
[{"id":"96ef247e.fb0a58","type":"inject","z":"22a7c96c.2e4376","name":"09:00: Vliegenlamp uit","props":[{"p":"payload"}],"repeat":"","crontab":"00 09 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":290,"y":1960,"wires":[["4398b804.75ff08"]]},{"id":"4398b804.75ff08","type":"api-call-service","z":"22a7c96c.2e4376","name":"Vliegenlamp uit","server":"224924bb.3d06dc","version":3,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.tgt_switch","data":"","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":620,"y":1960,"wires":[["76490609.42732"]]},{"id":"76490609.42732","type":"debug","z":"22a7c96c.2e4376","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":710,"y":2120,"wires":[]},{"id":"224924bb.3d06dc","type":"server","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"cacheJson":false}]



Gisteravond bij 'sunset' en vanochtend om 09':00 heeft alles as expected gewerkt.
Dank je voor de hulp gisteren.

Zo moet het werken. Je gebruikt een switch (geen light, ja jij hebt er misschien een lamp op aangesloten maar het blijft een switch). En kleine aanpassing aan je inject node.

  • denuz
  • Registratie: augustus 2006
  • Laatst online: 22:43
Mooi zo! Succes verder. Node-red vind ik zelf erg prettig werken. Aan het begin is het zeker wennen, maar nu lukt eigenlijk alles. De manier waarop je complexe automations maakt is wat mij betreft onovertroffen.

  • Obelixxx
  • Registratie: juli 2020
  • Laatst online: 17-09 13:00
Ik ga er mee aan de gang.
Maar voor nu lijkt het me inderdaad ook ideaal werken.

  • SvenVerheesen
  • Registratie: juni 2021
  • Laatst online: 09-09 19:06
Goedemorgen,
Ik ben compleet nieuw met Home assistant en net bezig met zaken op te zetten in Node-red maar kom er niet echt uit qua het aansturen van de rolluiken.
Ik heb een ConbeeII stick icm zigbee2mqtt en hierbij rolluikschakelaars gekocht die in z2m staan als de Tuya TS130F.

Ik kan ze via z2m volledig controleren en aansturen maar krijg niet alles in node-red te zien.
Laat staan aansturen van. Ik heb al op diverse fora gezocht en geprobeerd maar kom er niet uit.
Hopelijk kan iemand mij hier verder helpen.

Bedankt!

  • Step5
  • Registratie: oktober 2011
  • Laatst online: 22:57
SvenVerheesen schreef op woensdag 30 juni 2021 @ 11:50:
Goedemorgen,
Ik ben compleet nieuw met Home assistant en net bezig met zaken op te zetten in Node-red maar kom er niet echt uit qua het aansturen van de rolluiken.
Ik heb een ConbeeII stick icm zigbee2mqtt en hierbij rolluikschakelaars gekocht die in z2m staan als de Tuya TS130F.

Ik kan ze via z2m volledig controleren en aansturen maar krijg niet alles in node-red te zien.
Laat staan aansturen van. Ik heb al op diverse fora gezocht en geprobeerd maar kom er niet uit.
Hopelijk kan iemand mij hier verder helpen.

Bedankt!
-hoe doe je precies "via z2m controleren"?
-hoe en wat krijg je wel in node-red te zien?
zo te horen moet je alles toch via de mqtt-in en mqtt-out nodes kunnen sturen, los van hoe home-assistant in dit verhaal mee doet.

  • htca
  • Registratie: november 2001
  • Laatst online: 18:56
SvenVerheesen schreef op woensdag 30 juni 2021 @ 11:50:

Ik kan ze via z2m volledig controleren en aansturen maar krijg niet alles in node-red te zien.
Laat staan aansturen van. Ik heb al op diverse fora gezocht en geprobeerd maar kom er niet uit.
Hopelijk kan iemand mij hier verder helpen.
Heb je node-red ook opnieuw gestart?

  • SvenVerheesen
  • Registratie: juni 2021
  • Laatst online: 09-09 19:06
Step5 schreef op woensdag 30 juni 2021 @ 22:09:
[...]
-hoe doe je precies "via z2m controleren"?
Aansturen met de web interface van z2m bedoel ik hiermee.
Ik krijg in node red wel de entiteiten (als ik dit zo goed benoem) te zien maar hier zit de input niet bij voor het omlaag en omhoog sturen.
Ik heb het via de mqtt-out node geprobeerd maar kwam hier niet echt uit.

  • SvenVerheesen
  • Registratie: juni 2021
  • Laatst online: 09-09 19:06
htca schreef op woensdag 30 juni 2021 @ 22:36:
[...]

Heb je node-red ook opnieuw gestart?
Yes deze heb ik inmiddels meermaals opnieuw gestart.

  • htca
  • Registratie: november 2001
  • Laatst online: 18:56
SvenVerheesen schreef op woensdag 30 juni 2021 @ 23:23:
[...]

Aansturen met de web interface van z2m bedoel ik hiermee.
Ik krijg in node red wel de entiteiten (als ik dit zo goed benoem) te zien maar hier zit de input niet bij voor het omlaag en omhoog sturen.
Ik heb het via de mqtt-out node geprobeerd maar kwam hier niet echt uit.
Wat probeer je te doen dan? “Inject” en “debug” zijn je vrienden.

  • SvenVerheesen
  • Registratie: juni 2021
  • Laatst online: 09-09 19:06
htca schreef op woensdag 30 juni 2021 @ 23:32:
[...]

Wat probeer je te doen dan? “Inject” en “debug” zijn je vrienden.
Momenteel probeer ik dit te doen. Weet echter niet of dit de goede manier is.

  • htca
  • Registratie: november 2001
  • Laatst online: 18:56
Je moet injecten wat je rolluik verwacht...

Weet je wat ze willen ontvangen?
Neem een "events: state" (en zet specifieke op je rolluik device) en sluit debug node daarop aan.
In de debug node; zet output op "complete message".
Vervolgens in het debug window kijken wat er gebeurt als je de rolluiken schakelt (hoe schakel je die nu?).

  • vso
  • Registratie: augustus 2001
  • Laatst online: 22:38

vso

raap voor zijn recht

SvenVerheesen schreef op donderdag 1 juli 2021 @ 08:46:
[...]


Momenteel probeer ik dit te doen. Weet echter niet of dit de goede manier is.
[Afbeelding]
doe het als volgt

- inject (timestamp) (naam open) --> function node (naam Functie open) ---> zigbee (device)
- inject (timestamp) (naam gesloten) --> function node (naam Functie gesloten) ---> zigbee (device)

in de function zet je het volgende respectievenlijk
code:
1
2
set msg.state = "close" 
return msg;


de functie node is niet nodig maar dan moet je ipv inject timestamp de inject wijzigen naar msg."variable" oid maar dit houd het wel even duidelijk(er) voor je zelf

en zoals @htca de debug op "full" message zetten is slim

je kan toch ook op zigbee luisteren welke de huidige status is .. ?

Gevonden gramatica fouten, mag je houden


  • SvenVerheesen
  • Registratie: juni 2021
  • Laatst online: 09-09 19:06
htca schreef op donderdag 1 juli 2021 @ 10:32:
Je moet injecten wat je rolluik verwacht...

Weet je wat ze willen ontvangen?
Neem een "events: state" (en zet specifieke op je rolluik device) en sluit debug node daarop aan.
In de debug node; zet output op "complete message".
Vervolgens in het debug window kijken wat er gebeurt als je de rolluiken schakelt (hoe schakel je die nu?).
Als ik het goed heb begrepen volgens de support pagina als hieronder moet ik dit via de state property doen echter zie ik deze niet terug in mijn Node-red. Andere functies zoals omschreven kan ik wel uitlezen.
https://www.zigbee2mqtt.io/devices/TS130F.html
In de z2m interface zie ik dit:
https://tweakers.net/i/HxN-bCxiMmF4Wm_EN2utWTdcax8=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/Oe0dkMTO74T2mD6XLaZ2tZ3X.png?f=user_large
Volgens mij mis ik dus ergens iets om dit aan te sturen.
Dit gaat namelijk via dit scherm wel.

  • htca
  • Registratie: november 2001
  • Laatst online: 18:56
SvenVerheesen schreef op donderdag 1 juli 2021 @ 12:23:
[...]

Als ik het goed heb begrepen volgens de support pagina als hieronder moet ik dit via de state property doen echter zie ik deze niet terug in mijn Node-red. Andere functies zoals omschreven kan ik wel uitlezen.
https://www.zigbee2mqtt.io/devices/TS130F.html
In de z2m interface zie ik dit:
[Afbeelding]
Volgens mij mis ik dus ergens iets om dit aan te sturen.
Dit gaat namelijk via dit scherm wel.
In je inject node: msg.payload op string en dan {"state": "OPEN"} (vermoedelijk).
Wat zie je in je debugmeldingen als je de state wijziging geeft (kan in zigbee2mqtt)
Heb je ook andere zigbee devices en kun je die al sturen via node-red? Zoek anders even op YT naar een tutorial voor node-red.

[Voor 6% gewijzigd door htca op 01-07-2021 13:53]


  • SvenVerheesen
  • Registratie: juni 2021
  • Laatst online: 09-09 19:06
htca schreef op donderdag 1 juli 2021 @ 13:51:
[...]

In je inject node: msg.payload op string en dan {"state": "OPEN"} (vermoedelijk).
Wat zie je in je debugmeldingen als je de state wijziging geeft (kan in zigbee2mqtt)
Heb je ook andere zigbee devices en kun je die al sturen via node-red? Zoek anders even op YT naar een tutorial voor node-red.
Ik heb wel al een lamp die ik aanstuur via een deursensor.
Ik heb bovenstaande geprobeerd en ook om andere zaken ernaartoe te schrijven maar krijg bij de debug van z2m niks te zien dat er een melding binnengekomen is.

[Voor 4% gewijzigd door SvenVerheesen op 01-07-2021 14:19]


  • denuz
  • Registratie: augustus 2006
  • Laatst online: 22:43
SvenVerheesen schreef op donderdag 1 juli 2021 @ 14:18:
[...]

Ik heb wel al een lamp die ik aanstuur via een deursensor.
Ik heb bovenstaande geprobeerd en ook om andere zaken ernaartoe te schrijven maar krijg bij de debug van z2m niks te zien dat er een melding binnengekomen is.
code:
1
[{"id":"808781b7.e68fb","type":"mqtt out","z":"fa2dc1ff.f1b9f","name":"Rolluit kkantoor","topic":"zigbee2mqtt/Rolluik kantoor/set","qos":"0","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"","x":460,"y":3160,"wires":[]},{"id":"c9eb5b91.c99ea","type":"inject","z":"fa2dc1ff.f1b9f","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"state\":\"CLOSE\"}","payloadType":"json","x":220,"y":3160,"wires":[["808781b7.e68fb"]]}]


En dit?

Je gebruikt homeassistant, dus je hoeft niet perse gebruik te maken van MQTT. Persoonlijk vind ik het makkelijker gebruik te maken van de homeassistant nodes in node-red. Dit werkt erg makkelijk, voordeel is ook dat je daardoor de homeasstant documentation kan gebruiken.

[Voor 12% gewijzigd door denuz op 01-07-2021 15:57]


Acties:
  • +1Henk 'm!

  • SvenVerheesen
  • Registratie: juni 2021
  • Laatst online: 09-09 19:06
Nou, het heeft even geduurd maar het bleek in de updates te liggen.

Mijn rolluik kwam niet naar voren als cover en zo kon ik hem ook niet aansturen.
Hieronder de oplossing.:
https://community.home-as...th-2021-6-update/314957/3

Bedankt voor het meedenken en de hulp!
Ik hoop dat andere hier nu ook iets aan hebben.

  • jenssen
  • Registratie: september 2018
  • Laatst online: 09-09 18:50
Hallo,

Inmiddels een stuk of 10 flows prima draaien, maar het lijkt erop dat ik niet echt meer iets kan toevoegen. Wanneer ik nu een simpele debug node toevoeg krijg ik direct de melding "Deploy failed: no response from server".

Ik draai Node Red op docker, iemand enig idee, er is geen log in de Event log.

Bedankt!

  • jenssen
  • Registratie: september 2018
  • Laatst online: 09-09 18:50
Lijkt erop dat er een maximum aantal nodes gebruikt kan worden? wanneer ik bij een willekeurige flow bijvoorbeeld 2 debug nodes weghaal, dan kan ik er in een andere flow ook weer 2 toevoegen met een succesvolle deployment. Voeg ik er dan weer eentje toe, dan krijg ik weer de melding "Deploy failed: no response from server". Gooi ik dan ergens weer een node weg, dan kan ik weer succesvol deployen.

Iemand een idee?

Acties:
  • 0Henk 'm!

  • Obelixxx
  • Registratie: juli 2020
  • Laatst online: 17-09 13:00
Ik kan mijn laptop even niet gebruiken door de randsom attack van dit weekend.
Wellicht re-install nodig….

Nu wil ik wel verder met node-red, maar datbwil niet helemaal op mijn iPad.
Alles lukt, ik krijg alleen niet de lijntjes, ver verbindingen voor elkaar.
Iemand een idee hoe dat werkt opmde iPad?

Acties:
  • 0Henk 'm!

  • grote_oever
  • Registratie: augustus 2002
  • Laatst online: 19:01
jenssen schreef op donderdag 1 juli 2021 @ 19:56:
Hallo,

Inmiddels een stuk of 10 flows prima draaien, maar het lijkt erop dat ik niet echt meer iets kan toevoegen. Wanneer ik nu een simpele debug node toevoeg krijg ik direct de melding "Deploy failed: no response from server".

Ik draai Node Red op docker, iemand enig idee, er is geen log in de Event log.

Bedankt!
loglevel in node-red staat standaard behoorlijk laag.

Je kan hem iets verhogen: https://nodered.org/docs/user-guide/runtime/logging

Misschien komt dan de foutmelding naar boven. Ik heb zelf ook behoorlijk aantal tabs draaien. Ik ben nog niet tegen de beperking aangelopen. Heb jij wel voldoende resources toegekend aan docker?

Acties:
  • 0Henk 'm!

  • jenssen
  • Registratie: september 2018
  • Laatst online: 09-09 18:50
grote_oever schreef op zondag 4 juli 2021 @ 20:24:
[...]


loglevel in node-red staat standaard behoorlijk laag.

Je kan hem iets verhogen: https://nodered.org/docs/user-guide/runtime/logging

Misschien komt dan de foutmelding naar boven. Ik heb zelf ook behoorlijk aantal tabs draaien. Ik ben nog niet tegen de beperking aangelopen. Heb jij wel voldoende resources toegekend aan docker?
Heb het loglevel op maximaal staan inmiddels en heb voldoende resources toegekend. Inmiddels een post lopen op Github, daar kun je precies het probleem zien:
https://github.com/node-red/node-red/issues/3050

Acties:
  • 0Henk 'm!

  • grote_oever
  • Registratie: augustus 2002
  • Laatst online: 19:01
jenssen schreef op zondag 4 juli 2021 @ 20:27:
[...]


Heb het loglevel op maximaal staan inmiddels en heb voldoende resources toegekend. Inmiddels een post lopen op Github, daar kun je precies het probleem zien:
https://github.com/node-red/node-red/issues/3050
Ik heb net even voor je gekeken, maar ik ga VER de 74 nodes over. Ik vermoed dat ik eerder richting de 250 nodes ga. Dus er zit geen limit op de 74 nodes. En dat is met standaard instellingen. Heb geen cache lopen vergroten van 5mb naar 100mb (zoals ik zie in je andere topic op node-red). Doet hij dat ook bij andere deploy's (dus geen full deploy, maar alleen modified deploy)?

Acties:
  • 0Henk 'm!

  • GORby
  • Registratie: januari 2002
  • Laatst online: 17-09 00:15
jenssen schreef op donderdag 1 juli 2021 @ 21:48:
Lijkt erop dat er een maximum aantal nodes gebruikt kan worden? wanneer ik bij een willekeurige flow bijvoorbeeld 2 debug nodes weghaal, dan kan ik er in een andere flow ook weer 2 toevoegen met een succesvolle deployment. Voeg ik er dan weer eentje toe, dan krijg ik weer de melding "Deploy failed: no response from server". Gooi ik dan ergens weer een node weg, dan kan ik weer succesvol deployen.

Iemand een idee?
Hier 898 nodes in mijn flow en het draait allemaal vlotjes op een Rpi4 4GB, al zou het even vlot draaien op een 1GB als er niets anders moet draaien, want Node heeft ongeveer een halve GB in gebruik. Ik heb ook nergens iets speciaal aangepast in de config of zo.

Acties:
  • 0Henk 'm!

  • visioncvg
  • Registratie: februari 2012
  • Laatst online: 20:21
Beste tweakers,

Hier al klein beetje ervaring met Node Red.
Mijn panasonic warmtepomp kan ik al uitlezen via ESP Heisamon werkt prima.

Volgende idee is om bij AVM Fritzbox aangesloten DECT200 het opgenomen vermogen in domoticz weer te kunnen geven.
Uitlezen is me gelukt waarden komen aan in Node Red maar om ze zichtbaar te maken in domoticz lukt maar niet :| .
Heb de functie van een tempratuur sensor Heisamon gebruikt denk dat daar de fout zit.
msg payload geeft wel de juiste waarde en IDX domoticz aan maar dus niet zichtbaar.
Wat doe ik verkeerd ?



Acties:
  • 0Henk 'm!

  • Step5
  • Registratie: oktober 2011
  • Laatst online: 22:57
Geen ervaring met Domoticz maar als ik snel vergelijk met voorbeeldje van internet dan lijkt je payload wel goed.

Je stuurt via mqtt zo te zien? Heb je al een eerdere flow gemaakt die naar domoticz stuurt? ofwel weet je zeker dat Domoticz naar dit topic luistert?

edit: @visioncvg vergat via quote te reageren...

[Voor 9% gewijzigd door Step5 op 06-07-2021 21:47]


Acties:
  • 0Henk 'm!

  • Tribunus
  • Registratie: juni 2004
  • Laatst online: 22:21
**crosspost uit HASS topic**

Nieuwe gebruiker van HA meld zich! Ik heb HA nu een aantal dagen draaien met wat Shelly plugs en wat Fibaro spullen (ZWave) en dat werkt allemaal prima. Doe er geen spannende zaken mee :).

Nu heb ik ook een GoodWe inverter waarbij ik voor het uitlezen gebruik maak van NodeRed en dan een flow van een medetweaker. De data komt in NodeRed wel "binnen" alleen op de entiteit die ik heb aangemaakt krijg ik een API Error. Ik zie deze entiteit (1) wel in HA zelf maar zonder waarden.

Het is uiteraard een sensor die wat meer waarden moet teruggeven zodat ik het netjes in HA kan zetten op een dashbord. Nu ben ik alleen een totale noob met NodeRed en HA en krijg ik dus die API error niet weg. Hopelijk kunnen jullie mij hierin assisteren!

Dit is de waarde die ik terug krijg vanaf de functie in NodeRed
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
object
type: "nodered/entity"
server_id: "26c43d81.c0c472"
node_id: "3358f558.5bf84a"
state: object
vpv: 229.1
ipv: 0.3
vac: 235.4
iac: 3.6
fac: 50.02
power: 169
eday: 16.4
etotal: 217.2
rssi: 37
workhours: 207
temperature: 28.8
status: 1
workmode: "Normal"
timestamp: "21:18:31  6-7-2021"
attributes: object
entityid: "state.workmode"
id: 24


En dit de error:
code:
1
"Entity API error.  Error Message: expected bool for dictionary value @ data['state']. Got {'vpv': 229.1, 'ipv': 0.3, 'vac': 235.4, 'iac': 3.6, 'fac': 50.02, 'power': 169, 'eday': 16.4, 'etotal': 217.2, 'rssi': 37, 'workhours': 207, 'temperature': 28.8, 'status': 1, 'workmode': 'Normal', 'timestamp': '21:18:31  6-7-2021'}"


Ik doe ongetwijfeld iets fout met de entity waarin ik allerlei waarden heb gedefinieerd:
Type: Sensor
State: msg. payload

code:
1
2
3
4
5
6
7
8
9
Attribute  KeyValue
entity.id  state.vpv
entity.id  state.ipv
entity.id  state.vac
entity.id  state.power
entity.id  state.eday
entity.id  state.etotal
entity.id  state.temperature
entity.id  state.workmode


flow:
code:
1
[{"id":"1114148f.9e4e3b","type":"tab","label":"GoodWe-Inverter","disabled":false,"info":""},{"id":"901d892e.0b27e","type":"function","z":"1114148f.9e4e3b","name":"","func":"var inverter_reply = msg.payload;\n\nvar message = inverter_reply.slice(2); // Remove 'AA55' from start of message\nvar message = message.slice(0, -2); //Remove two CRC bytes from end of message\n\nfunction crc16(buffer) {\n    var crc = 0xFFFF;\n    var odd;\n\n    for (var i = 0; i < buffer.length; i++) {\n        crc = crc ^ buffer[i];\n\n        for (var j = 0; j < 8; j++) {\n            odd = crc & 0x0001;\n            crc = crc >> 1;\n            if (odd) {\n                crc = crc ^ 0xA001;\n            }\n        }\n    }\n    return crc.toString(16);\n}\n\n//Calculate CRC ourselves\nvar calculated_crc = crc16(message);\n\n//Get CRC from inverter reply and un-reverse it\nvar reply_crc = inverter_reply.slice(-2).toString('hex');\nvar crc1 = reply_crc.slice(0, 2);\nvar crc2 = reply_crc.slice(-2);\nvar new_crc = crc2 + crc1;\n\nif (new_crc == calculated_crc) {\n    //var year = \"20\" + inverter_reply.readUInt8(5);\n    var year = 2000 + inverter_reply.readUInt8(5); \n    var month = inverter_reply.readUInt8(6);\n    var day = inverter_reply.readUInt8(7); \n    var hour = inverter_reply.readUInt8(8); \n    var minutes = inverter_reply.readUInt8(9); \n    var seconds = inverter_reply.readUInt8(10); \n    \n    var minutes = (minutes < 10 ? '0' : '') + minutes;\n    var seconds = (seconds < 10 ? '0' : '') + seconds;\n    var timestamp = hour + \":\" + minutes + \":\" + seconds + \"  \" + day + \"-\" + month + \"-\" + year;\n\n    //Putting '+' in front to make it a number instead of a string\n    var vpv = +(inverter_reply.readUInt16BE(11) * 0.1).toFixed(1);\n    var ipv = +(inverter_reply.readUInt16BE(13) * 0.1).toFixed(1);\n    var vac = +(inverter_reply.readUInt16BE(41) * 0.1).toFixed(1);\n    var iac = +(inverter_reply.readUInt16BE(47) * 0.1).toFixed(1);\n    var fac = +(inverter_reply.readUInt16BE(53) * 0.01).toFixed(2);\n    var eday = +(inverter_reply.readUInt16BE(93) * 0.1).toFixed(1);\n    var etotal = +(inverter_reply.readUInt32BE(95) * 0.1).toFixed(1);\n    var rssi = inverter_reply.readUInt16BE(149);\n    var workhours = inverter_reply.readUInt32BE(99);\n    var temperature = +(inverter_reply.readUInt16BE(87) * 0.1).toFixed(1);\n    var power = inverter_reply.readUInt32BE(59);\n    var status = inverter_reply.readUInt16BE(63);\n    var workmode;\n\n    switch (status) {\n        case 0:\n            workmode = \"Waiting\"\n            break;\n        case 1:\n            workmode = \"Normal\"\n            break;\n        case 2:\n            workmode = \"Error\"\n            break;\n        case 4:\n            workmode = \"Checking\"\n            break;\n    }\n\n    msg.payload = {\n        vpv,\n        ipv,\n        vac,\n        iac,\n        fac,\n        power,\n        eday,\n        etotal,\n        rssi,\n        workhours,\n        temperature,\n        status,\n        workmode,\n        timestamp\n    }\n\n    var nodestate = {\n        text: workmode + ' - Power: ' + power + 'W - ' + timestamp,\n    };\n    node.status(nodestate);\n\n    return msg;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":320,"wires":[["3a0e034d.bce714"]]},{"id":"3a0e034d.bce714","type":"debug","z":"1114148f.9e4e3b","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":320,"wires":[]},{"id":"1ea4603b.d6454","type":"udp in","z":"1114148f.9e4e3b","name":"","iface":"192.168.8.21","port":"8899","ipv":"udp4","multicast":"false","group":"192.168.8.21","datatype":"buffer","x":260,"y":320,"wires":[["901d892e.0b27e"]]},{"id":"80cdaee9.19bce8","type":"udp out","z":"1114148f.9e4e3b","name":"","addr":"10.0.0.44","iface":"","port":"8899","ipv":"udp4","outport":"8899","base64":false,"multicast":"false","x":730,"y":140,"wires":[]},{"id":"46c68558.f9e15c","type":"inject","z":"1114148f.9e4e3b","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":280,"y":140,"wires":[["4a16c267.f83f14"]]},{"id":"4a16c267.f83f14","type":"function","z":"1114148f.9e4e3b","name":"","func":"var inverter_ask = Buffer.from(\"7F0375940049D5C2\",\"hex\");\n\nmsg.payload = inverter_ask;\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":140,"wires":[["80cdaee9.19bce8"]]},{"id":"dae4530a.7c94c","type":"comment","z":"1114148f.9e4e3b","name":"Request inverter data","info":"","x":300,"y":100,"wires":[]},{"id":"cea711ef.0e5a68","type":"comment","z":"1114148f.9e4e3b","name":"Parse received data","info":"","x":290,"y":280,"wires":[]}]


p.s. op dit moment kan ik niet meer testen gezien de omvormer uit staat :9

wie kan deze noob verder op weg helpen _/-\o_

@Step5
Ik zie niet een optie om met een entity 'Attributes' aan te geven. Of zijn dat dan die attribute keys die ik aan moet passen naar Attribute en dan met die waarde vanuit de functie?

Acties:
  • +1Henk 'm!

  • denuz
  • Registratie: augustus 2006
  • Laatst online: 22:43
Tribunus schreef op dinsdag 6 juli 2021 @ 22:54:
**crosspost uit HASS topic**

Nieuwe gebruiker van HA meld zich! Ik heb HA nu een aantal dagen draaien met wat Shelly plugs en wat Fibaro spullen (ZWave) en dat werkt allemaal prima. Doe er geen spannende zaken mee :).

Nu heb ik ook een GoodWe inverter waarbij ik voor het uitlezen gebruik maak van NodeRed en dan een flow van een medetweaker. De data komt in NodeRed wel "binnen" alleen op de entiteit die ik heb aangemaakt krijg ik een API Error. Ik zie deze entiteit (1) wel in HA zelf maar zonder waarden.

Het is uiteraard een sensor die wat meer waarden moet teruggeven zodat ik het netjes in HA kan zetten op een dashbord. Nu ben ik alleen een totale noob met NodeRed en HA en krijg ik dus die API error niet weg. Hopelijk kunnen jullie mij hierin assisteren!

Dit is de waarde die ik terug krijg vanaf de functie in NodeRed
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
object
type: "nodered/entity"
server_id: "26c43d81.c0c472"
node_id: "3358f558.5bf84a"
state: object
vpv: 229.1
ipv: 0.3
vac: 235.4
iac: 3.6
fac: 50.02
power: 169
eday: 16.4
etotal: 217.2
rssi: 37
workhours: 207
temperature: 28.8
status: 1
workmode: "Normal"
timestamp: "21:18:31  6-7-2021"
attributes: object
entityid: "state.workmode"
id: 24


En dit de error:
code:
1
"Entity API error.  Error Message: expected bool for dictionary value @ data['state']. Got {'vpv': 229.1, 'ipv': 0.3, 'vac': 235.4, 'iac': 3.6, 'fac': 50.02, 'power': 169, 'eday': 16.4, 'etotal': 217.2, 'rssi': 37, 'workhours': 207, 'temperature': 28.8, 'status': 1, 'workmode': 'Normal', 'timestamp': '21:18:31  6-7-2021'}"


Ik doe ongetwijfeld iets fout met de entity waarin ik allerlei waarden heb gedefinieerd:
Type: Sensor
State: msg. payload

code:
1
2
3
4
5
6
7
8
9
Attribute  KeyValue
entity.id  state.vpv
entity.id  state.ipv
entity.id  state.vac
entity.id  state.power
entity.id  state.eday
entity.id  state.etotal
entity.id  state.temperature
entity.id  state.workmode


flow:
code:
1
[{"id":"1114148f.9e4e3b","type":"tab","label":"GoodWe-Inverter","disabled":false,"info":""},{"id":"901d892e.0b27e","type":"function","z":"1114148f.9e4e3b","name":"","func":"var inverter_reply = msg.payload;\n\nvar message = inverter_reply.slice(2); // Remove 'AA55' from start of message\nvar message = message.slice(0, -2); //Remove two CRC bytes from end of message\n\nfunction crc16(buffer) {\n    var crc = 0xFFFF;\n    var odd;\n\n    for (var i = 0; i < buffer.length; i++) {\n        crc = crc ^ buffer[i];\n\n        for (var j = 0; j < 8; j++) {\n            odd = crc & 0x0001;\n            crc = crc >> 1;\n            if (odd) {\n                crc = crc ^ 0xA001;\n            }\n        }\n    }\n    return crc.toString(16);\n}\n\n//Calculate CRC ourselves\nvar calculated_crc = crc16(message);\n\n//Get CRC from inverter reply and un-reverse it\nvar reply_crc = inverter_reply.slice(-2).toString('hex');\nvar crc1 = reply_crc.slice(0, 2);\nvar crc2 = reply_crc.slice(-2);\nvar new_crc = crc2 + crc1;\n\nif (new_crc == calculated_crc) {\n    //var year = \"20\" + inverter_reply.readUInt8(5);\n    var year = 2000 + inverter_reply.readUInt8(5); \n    var month = inverter_reply.readUInt8(6);\n    var day = inverter_reply.readUInt8(7); \n    var hour = inverter_reply.readUInt8(8); \n    var minutes = inverter_reply.readUInt8(9); \n    var seconds = inverter_reply.readUInt8(10); \n    \n    var minutes = (minutes < 10 ? '0' : '') + minutes;\n    var seconds = (seconds < 10 ? '0' : '') + seconds;\n    var timestamp = hour + \":\" + minutes + \":\" + seconds + \"  \" + day + \"-\" + month + \"-\" + year;\n\n    //Putting '+' in front to make it a number instead of a string\n    var vpv = +(inverter_reply.readUInt16BE(11) * 0.1).toFixed(1);\n    var ipv = +(inverter_reply.readUInt16BE(13) * 0.1).toFixed(1);\n    var vac = +(inverter_reply.readUInt16BE(41) * 0.1).toFixed(1);\n    var iac = +(inverter_reply.readUInt16BE(47) * 0.1).toFixed(1);\n    var fac = +(inverter_reply.readUInt16BE(53) * 0.01).toFixed(2);\n    var eday = +(inverter_reply.readUInt16BE(93) * 0.1).toFixed(1);\n    var etotal = +(inverter_reply.readUInt32BE(95) * 0.1).toFixed(1);\n    var rssi = inverter_reply.readUInt16BE(149);\n    var workhours = inverter_reply.readUInt32BE(99);\n    var temperature = +(inverter_reply.readUInt16BE(87) * 0.1).toFixed(1);\n    var power = inverter_reply.readUInt32BE(59);\n    var status = inverter_reply.readUInt16BE(63);\n    var workmode;\n\n    switch (status) {\n        case 0:\n            workmode = \"Waiting\"\n            break;\n        case 1:\n            workmode = \"Normal\"\n            break;\n        case 2:\n            workmode = \"Error\"\n            break;\n        case 4:\n            workmode = \"Checking\"\n            break;\n    }\n\n    msg.payload = {\n        vpv,\n        ipv,\n        vac,\n        iac,\n        fac,\n        power,\n        eday,\n        etotal,\n        rssi,\n        workhours,\n        temperature,\n        status,\n        workmode,\n        timestamp\n    }\n\n    var nodestate = {\n        text: workmode + ' - Power: ' + power + 'W - ' + timestamp,\n    };\n    node.status(nodestate);\n\n    return msg;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":320,"wires":[["3a0e034d.bce714"]]},{"id":"3a0e034d.bce714","type":"debug","z":"1114148f.9e4e3b","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":320,"wires":[]},{"id":"1ea4603b.d6454","type":"udp in","z":"1114148f.9e4e3b","name":"","iface":"192.168.8.21","port":"8899","ipv":"udp4","multicast":"false","group":"192.168.8.21","datatype":"buffer","x":260,"y":320,"wires":[["901d892e.0b27e"]]},{"id":"80cdaee9.19bce8","type":"udp out","z":"1114148f.9e4e3b","name":"","addr":"10.0.0.44","iface":"","port":"8899","ipv":"udp4","outport":"8899","base64":false,"multicast":"false","x":730,"y":140,"wires":[]},{"id":"46c68558.f9e15c","type":"inject","z":"1114148f.9e4e3b","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":280,"y":140,"wires":[["4a16c267.f83f14"]]},{"id":"4a16c267.f83f14","type":"function","z":"1114148f.9e4e3b","name":"","func":"var inverter_ask = Buffer.from(\"7F0375940049D5C2\",\"hex\");\n\nmsg.payload = inverter_ask;\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":140,"wires":[["80cdaee9.19bce8"]]},{"id":"dae4530a.7c94c","type":"comment","z":"1114148f.9e4e3b","name":"Request inverter data","info":"","x":300,"y":100,"wires":[]},{"id":"cea711ef.0e5a68","type":"comment","z":"1114148f.9e4e3b","name":"Parse received data","info":"","x":290,"y":280,"wires":[]}]


p.s. op dit moment kan ik niet meer testen gezien de omvormer uit staat :9

wie kan deze noob verder op weg helpen _/-\o_

@Step5
Ik zie niet een optie om met een entity 'Attributes' aan te geven. Of zijn dat dan die attribute keys die ik aan moet passen naar Attribute en dan met die waarde vanuit de functie?
Je code is niet volledig. Ik krijg enkel het stuk om de data op te halen uit de omvormer. Niet het gedeelte waarmee je probeert een entity aan te maken. Kun je dit nog posten?

Uit de error maak ik op dat je alle data probeert te stoppen in de msg.payload.

Denk dat het zoiets moet worden.

  • Tribunus
  • Registratie: juni 2004
  • Laatst online: 22:21
Ik heb jou aanpassingen even geprobeerd maar dan krijg ik nog steeds een api error.

Bij deze de code opnieuw (heb een export gedaan zoals uitgelegd in de TS)
code:
1
[{"id":"1114148f.9e4e3b","type":"tab","label":"GoodWe-Inverter","disabled":false,"info":""},{"id":"901d892e.0b27e","type":"function","z":"1114148f.9e4e3b","name":"","func":"var inverter_reply = msg.payload;\n\nvar message = inverter_reply.slice(2); // Remove 'AA55' from start of message\nvar message = message.slice(0, -2); //Remove two CRC bytes from end of message\n\nfunction crc16(buffer) {\n    var crc = 0xFFFF;\n    var odd;\n\n    for (var i = 0; i < buffer.length; i++) {\n        crc = crc ^ buffer[i];\n\n        for (var j = 0; j < 8; j++) {\n            odd = crc & 0x0001;\n            crc = crc >> 1;\n            if (odd) {\n                crc = crc ^ 0xA001;\n            }\n        }\n    }\n    return crc.toString(16);\n}\n\n//Calculate CRC ourselves\nvar calculated_crc = crc16(message);\n\n//Get CRC from inverter reply and un-reverse it\nvar reply_crc = inverter_reply.slice(-2).toString('hex');\nvar crc1 = reply_crc.slice(0, 2);\nvar crc2 = reply_crc.slice(-2);\nvar new_crc = crc2 + crc1;\n\nif (new_crc == calculated_crc) {\n    //var year = \"20\" + inverter_reply.readUInt8(5);\n    var year = 2000 + inverter_reply.readUInt8(5); \n    var month = inverter_reply.readUInt8(6);\n    var day = inverter_reply.readUInt8(7); \n    var hour = inverter_reply.readUInt8(8); \n    var minutes = inverter_reply.readUInt8(9); \n    var seconds = inverter_reply.readUInt8(10); \n    \n    var minutes = (minutes < 10 ? '0' : '') + minutes;\n    var seconds = (seconds < 10 ? '0' : '') + seconds;\n    var timestamp = hour + \":\" + minutes + \":\" + seconds + \"  \" + day + \"-\" + month + \"-\" + year;\n\n    //Putting '+' in front to make it a number instead of a string\n    var vpv = +(inverter_reply.readUInt16BE(11) * 0.1).toFixed(1);\n    var ipv = +(inverter_reply.readUInt16BE(13) * 0.1).toFixed(1);\n    var vac = +(inverter_reply.readUInt16BE(41) * 0.1).toFixed(1);\n    var iac = +(inverter_reply.readUInt16BE(47) * 0.1).toFixed(1);\n    var fac = +(inverter_reply.readUInt16BE(53) * 0.01).toFixed(2);\n    var eday = +(inverter_reply.readUInt16BE(93) * 0.1).toFixed(1);\n    var etotal = +(inverter_reply.readUInt32BE(95) * 0.1).toFixed(1);\n    var rssi = inverter_reply.readUInt16BE(149);\n    var workhours = inverter_reply.readUInt32BE(99);\n    var temperature = +(inverter_reply.readUInt16BE(87) * 0.1).toFixed(1);\n    var power = inverter_reply.readUInt32BE(59);\n    var status = inverter_reply.readUInt16BE(63);\n    var workmode;\n\n    switch (status) {\n        case 0:\n            workmode = \"Waiting\"\n            break;\n        case 1:\n            workmode = \"Normal\"\n            break;\n        case 2:\n            workmode = \"Error\"\n            break;\n        case 4:\n            workmode = \"Checking\"\n            break;\n    }\n\n    msg.payload = {\n        vpv,\n        ipv,\n        vac,\n        iac,\n        fac,\n        power,\n        eday,\n        etotal,\n        rssi,\n        workhours,\n        temperature,\n        status,\n        workmode,\n        timestamp\n    }\n\n    var nodestate = {\n        text: workmode + ' - Power: ' + power + 'W - ' + timestamp,\n    };\n    node.status(nodestate);\n\n    return msg;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":320,"wires":[["3a0e034d.bce714","226799ef.62c206"]]},{"id":"3a0e034d.bce714","type":"debug","z":"1114148f.9e4e3b","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":320,"wires":[]},{"id":"1ea4603b.d6454","type":"udp in","z":"1114148f.9e4e3b","name":"","iface":"192.168.8.21","port":"8899","ipv":"udp4","multicast":"false","group":"192.168.8.21","datatype":"buffer","x":260,"y":320,"wires":[["901d892e.0b27e"]]},{"id":"80cdaee9.19bce8","type":"udp out","z":"1114148f.9e4e3b","name":"","addr":"10.0.0.44","iface":"","port":"8899","ipv":"udp4","outport":"8899","base64":false,"multicast":"false","x":730,"y":140,"wires":[]},{"id":"46c68558.f9e15c","type":"inject","z":"1114148f.9e4e3b","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":280,"y":140,"wires":[["4a16c267.f83f14"]]},{"id":"4a16c267.f83f14","type":"function","z":"1114148f.9e4e3b","name":"","func":"var inverter_ask = Buffer.from(\"7F0375940049D5C2\",\"hex\");\n\nmsg.payload = inverter_ask;\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":140,"wires":[["80cdaee9.19bce8"]]},{"id":"dae4530a.7c94c","type":"comment","z":"1114148f.9e4e3b","name":"Request inverter data","info":"","x":300,"y":100,"wires":[]},{"id":"cea711ef.0e5a68","type":"comment","z":"1114148f.9e4e3b","name":"Parse received data","info":"","x":290,"y":280,"wires":[]},{"id":"226799ef.62c206","type":"ha-entity","z":"1114148f.9e4e3b","name":"GoodWe","server":"26c43d81.c0c472","version":1,"debugenabled":true,"outputs":1,"entityType":"sensor","config":[{"property":"name","value":"GoodWe"},{"property":"device_class","value":"sensor"},{"property":"icon","value":""},{"property":"unit_of_measurement","value":""}],"state":"payload","stateType":"msg","attributes":[{"property":"vpv","value":"state.vpv","valueType":"str"},{"property":"ipv","value":"state.ipv","valueType":"str"},{"property":"vac","value":"state.vac","valueType":"str"},{"property":"power","value":"state.power","valueType":"str"},{"property":"eday","value":"state.eday","valueType":"str"},{"property":"etotal","value":"state.etotal","valueType":"str"},{"property":"temperature","value":"state.temperature","valueType":"str"},{"property":"workmode","value":"state.workmode","valueType":"str"}],"resend":true,"outputLocation":"","outputLocationType":"none","inputOverride":"allow","outputOnStateChange":false,"outputPayload":"$entity().state ? \"on\": \"off\"","outputPayloadType":"jsonata","x":700,"y":400,"wires":[[]]},{"id":"26c43d81.c0c472","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]


Error is overigens nog diezelfde error als voorheen.
De Error:
code:
1
Entity API error.  Error Message: expected bool for dictionary value @ data['state']. Got {'vpv': 278, 'ipv': 0.2, 'vac': 252.2, 'iac': 8.5, 'fac': 50.02, 'power': 2510, 'eday': 7.1, 'etotal': 224.5, 'rssi': 23, 'workhours': 215, 'temperature': 34.6, 'status': 1, 'workmode': 'Normal', 'timestamp': '12:16:35  7-7-2021'}
denuz schreef op woensdag 7 juli 2021 @ 11:41:
[...]


Je code is niet volledig. Ik krijg enkel het stuk om de data op te halen uit de omvormer. Niet het gedeelte waarmee je probeert een entity aan te maken. Kun je dit nog posten?

Uit de error maak ik op dat je alle data probeert te stoppen in de msg.payload.

Denk dat het zoiets moet worden.
[Afbeelding]

Acties:
  • +1Henk 'm!

  • denuz
  • Registratie: augustus 2006
  • Laatst online: 22:43
Tribunus schreef op woensdag 7 juli 2021 @ 12:16:
Ik heb jou aanpassingen even geprobeerd maar dan krijg ik nog steeds een api error.

Bij deze de code opnieuw (heb een export gedaan zoals uitgelegd in de TS)
code:
1
[{"id":"1114148f.9e4e3b","type":"tab","label":"GoodWe-Inverter","disabled":false,"info":""},{"id":"901d892e.0b27e","type":"function","z":"1114148f.9e4e3b","name":"","func":"var inverter_reply = msg.payload;\n\nvar message = inverter_reply.slice(2); // Remove 'AA55' from start of message\nvar message = message.slice(0, -2); //Remove two CRC bytes from end of message\n\nfunction crc16(buffer) {\n    var crc = 0xFFFF;\n    var odd;\n\n    for (var i = 0; i < buffer.length; i++) {\n        crc = crc ^ buffer[i];\n\n        for (var j = 0; j < 8; j++) {\n            odd = crc & 0x0001;\n            crc = crc >> 1;\n            if (odd) {\n                crc = crc ^ 0xA001;\n            }\n        }\n    }\n    return crc.toString(16);\n}\n\n//Calculate CRC ourselves\nvar calculated_crc = crc16(message);\n\n//Get CRC from inverter reply and un-reverse it\nvar reply_crc = inverter_reply.slice(-2).toString('hex');\nvar crc1 = reply_crc.slice(0, 2);\nvar crc2 = reply_crc.slice(-2);\nvar new_crc = crc2 + crc1;\n\nif (new_crc == calculated_crc) {\n    //var year = \"20\" + inverter_reply.readUInt8(5);\n    var year = 2000 + inverter_reply.readUInt8(5); \n    var month = inverter_reply.readUInt8(6);\n    var day = inverter_reply.readUInt8(7); \n    var hour = inverter_reply.readUInt8(8); \n    var minutes = inverter_reply.readUInt8(9); \n    var seconds = inverter_reply.readUInt8(10); \n    \n    var minutes = (minutes < 10 ? '0' : '') + minutes;\n    var seconds = (seconds < 10 ? '0' : '') + seconds;\n    var timestamp = hour + \":\" + minutes + \":\" + seconds + \"  \" + day + \"-\" + month + \"-\" + year;\n\n    //Putting '+' in front to make it a number instead of a string\n    var vpv = +(inverter_reply.readUInt16BE(11) * 0.1).toFixed(1);\n    var ipv = +(inverter_reply.readUInt16BE(13) * 0.1).toFixed(1);\n    var vac = +(inverter_reply.readUInt16BE(41) * 0.1).toFixed(1);\n    var iac = +(inverter_reply.readUInt16BE(47) * 0.1).toFixed(1);\n    var fac = +(inverter_reply.readUInt16BE(53) * 0.01).toFixed(2);\n    var eday = +(inverter_reply.readUInt16BE(93) * 0.1).toFixed(1);\n    var etotal = +(inverter_reply.readUInt32BE(95) * 0.1).toFixed(1);\n    var rssi = inverter_reply.readUInt16BE(149);\n    var workhours = inverter_reply.readUInt32BE(99);\n    var temperature = +(inverter_reply.readUInt16BE(87) * 0.1).toFixed(1);\n    var power = inverter_reply.readUInt32BE(59);\n    var status = inverter_reply.readUInt16BE(63);\n    var workmode;\n\n    switch (status) {\n        case 0:\n            workmode = \"Waiting\"\n            break;\n        case 1:\n            workmode = \"Normal\"\n            break;\n        case 2:\n            workmode = \"Error\"\n            break;\n        case 4:\n            workmode = \"Checking\"\n            break;\n    }\n\n    msg.payload = {\n        vpv,\n        ipv,\n        vac,\n        iac,\n        fac,\n        power,\n        eday,\n        etotal,\n        rssi,\n        workhours,\n        temperature,\n        status,\n        workmode,\n        timestamp\n    }\n\n    var nodestate = {\n        text: workmode + ' - Power: ' + power + 'W - ' + timestamp,\n    };\n    node.status(nodestate);\n\n    return msg;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":320,"wires":[["3a0e034d.bce714","226799ef.62c206"]]},{"id":"3a0e034d.bce714","type":"debug","z":"1114148f.9e4e3b","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":690,"y":320,"wires":[]},{"id":"1ea4603b.d6454","type":"udp in","z":"1114148f.9e4e3b","name":"","iface":"192.168.8.21","port":"8899","ipv":"udp4","multicast":"false","group":"192.168.8.21","datatype":"buffer","x":260,"y":320,"wires":[["901d892e.0b27e"]]},{"id":"80cdaee9.19bce8","type":"udp out","z":"1114148f.9e4e3b","name":"","addr":"10.0.0.44","iface":"","port":"8899","ipv":"udp4","outport":"8899","base64":false,"multicast":"false","x":730,"y":140,"wires":[]},{"id":"46c68558.f9e15c","type":"inject","z":"1114148f.9e4e3b","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":280,"y":140,"wires":[["4a16c267.f83f14"]]},{"id":"4a16c267.f83f14","type":"function","z":"1114148f.9e4e3b","name":"","func":"var inverter_ask = Buffer.from(\"7F0375940049D5C2\",\"hex\");\n\nmsg.payload = inverter_ask;\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":140,"wires":[["80cdaee9.19bce8"]]},{"id":"dae4530a.7c94c","type":"comment","z":"1114148f.9e4e3b","name":"Request inverter data","info":"","x":300,"y":100,"wires":[]},{"id":"cea711ef.0e5a68","type":"comment","z":"1114148f.9e4e3b","name":"Parse received data","info":"","x":290,"y":280,"wires":[]},{"id":"226799ef.62c206","type":"ha-entity","z":"1114148f.9e4e3b","name":"GoodWe","server":"26c43d81.c0c472","version":1,"debugenabled":true,"outputs":1,"entityType":"sensor","config":[{"property":"name","value":"GoodWe"},{"property":"device_class","value":"sensor"},{"property":"icon","value":""},{"property":"unit_of_measurement","value":""}],"state":"payload","stateType":"msg","attributes":[{"property":"vpv","value":"state.vpv","valueType":"str"},{"property":"ipv","value":"state.ipv","valueType":"str"},{"property":"vac","value":"state.vac","valueType":"str"},{"property":"power","value":"state.power","valueType":"str"},{"property":"eday","value":"state.eday","valueType":"str"},{"property":"etotal","value":"state.etotal","valueType":"str"},{"property":"temperature","value":"state.temperature","valueType":"str"},{"property":"workmode","value":"state.workmode","valueType":"str"}],"resend":true,"outputLocation":"","outputLocationType":"none","inputOverride":"allow","outputOnStateChange":false,"outputPayload":"$entity().state ? \"on\": \"off\"","outputPayloadType":"jsonata","x":700,"y":400,"wires":[[]]},{"id":"26c43d81.c0c472","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]


Error is overigens nog diezelfde error als voorheen.
De Error:
code:
1
Entity API error.  Error Message: expected bool for dictionary value @ data['state']. Got {'vpv': 278, 'ipv': 0.2, 'vac': 252.2, 'iac': 8.5, 'fac': 50.02, 'power': 2510, 'eday': 7.1, 'etotal': 224.5, 'rssi': 23, 'workhours': 215, 'temperature': 34.6, 'status': 1, 'workmode': 'Normal', 'timestamp': '12:16:35  7-7-2021'}



[...]
Nu krijg ik de sensor wel mee. Maar je sensor klopt niet. De value staat nu op string i.p.v. message.


Kun je nog een printscreen maken van de output? En wat is het path van bijvoorbeeld state.ipv?
Is dit msg.payload.ipv of msg.state.ipv? (dit kun je zien in de debug node)


  • Tribunus
  • Registratie: juni 2004
  • Laatst online: 22:21
denuz schreef op woensdag 7 juli 2021 @ 12:21:
[...]

Nu krijg ik de sensor wel mee. Maar je sensor klopt niet. De value staat nu op string i.p.v. message.
[Afbeelding]

Kun je nog een printscreen maken van de output? En wat is het path van bijvoorbeeld state.ipv?
Is dit msg.payload.ipv of msg.state.ipv? (dit kun je zien in de debug node)

Hieronder screen van de entity en daaronder screen van de outpiut (als ik je vraag goed heb begrepen)

[Afbeelding]
Hmmm, ik heb in de entity de value nu op msg gezet, nu krijg ik een andere Error:

Attribute: Cannot read property 'vpv' of undefined

path van vpv:
payload.vpv




Acties:
  • +1Henk 'm!

  • denuz
  • Registratie: augustus 2006
  • Laatst online: 22:43
Tribunus schreef op woensdag 7 juli 2021 @ 12:44:
[...]


Hmmm, ik heb in de entity de value nu op msg gezet, nu krijg ik een andere Error:

Attribute: Cannot read property 'vpv' of undefined

path van vpv:
payload.vpv

[Afbeelding]

[Afbeelding]
Ja, dacht ik al. Nu nog even overal state weghalen bij msg.STATE.vpv

Wordt dus. msg.vpv
msg.ipv

  • Tribunus
  • Registratie: juni 2004
  • Laatst online: 22:21
denuz schreef op woensdag 7 juli 2021 @ 12:45:
[...]

Ja, dacht ik al. Nu nog even overal state weghalen bij msg.STATE.vpv

Wordt dus. msg.vpv
msg.ipv
Done, nu krijg ik weer de API error 8)7 Ik snap er in ieder geval weinig van haha.
code:
1
Entity API error.  Error Message: expected bool for dictionary value @ data['state']. Got {'vpv': 245.2, 'ipv': 3.3, 'vac': 239.1, 'iac': 7.1, 'fac': 50.01, 'power': 1619, 'eday': 7.8, 'etotal': 225.2, 'rssi': 23, 'workhours': 215, 'temperature': 32.4, 'status': 1, 'workmode': 'Normal', 'timestamp': '12:46:18  7-7-2021'}

[Voor 12% gewijzigd door Tribunus op 07-07-2021 12:49]


  • denuz
  • Registratie: augustus 2006
  • Laatst online: 22:43
@Tribunus We zijn er bijna. Zet de state van de sensor is op timestamp

  • Tribunus
  • Registratie: juni 2004
  • Laatst online: 22:21
Dan krijg ik geen error in ieder geval:
state: 1625655026866

Acties:
  • +1Henk 'm!

  • denuz
  • Registratie: augustus 2006
  • Laatst online: 22:43
Tribunus schreef op woensdag 7 juli 2021 @ 12:51:
Dan krijg ik geen error in ieder geval:
state: 1625655026866
Staat je debug op complete message?



Je wil nu nog in de sensor de state definieren van de sensor. msg.payload is neit mogelijk omdat dit een object is. De vraag is dus wat je als state van je Goodwe sensor wil? De attributes heb je gedefinieerd. Nu enkel de state nog. Dit kan dus bijvoorbeeld worden msg.power of string (hallo)

[Voor 27% gewijzigd door denuz op 07-07-2021 12:55]


  • Tribunus
  • Registratie: juni 2004
  • Laatst online: 22:21
nu wel, krijg dan de volgende output:


In de payload staat overigens uiteraard de waardes van de omvormer :)

[Voor 13% gewijzigd door Tribunus op 07-07-2021 12:57]


Acties:
  • +1Henk 'm!

  • denuz
  • Registratie: augustus 2006
  • Laatst online: 22:43
Tribunus schreef op woensdag 7 juli 2021 @ 12:55:
nu wel, krijg dan de volgende output:
[Afbeelding]

In de payload staat overigens uiteraard de waardes van de omvormer :)


Zoiets dan?

  • Tribunus
  • Registratie: juni 2004
  • Laatst online: 22:21
Helaas, nu krijg ik:

State must be defined.

  • Tribunus
  • Registratie: juni 2004
  • Laatst online: 22:21
hmm, ik ben wat verder. Ik heb nu de volgende configuratie:


Dan lijkt het erop dat ik per waarde een aparte entity moet maken en dat de attribute key veld roet in het eten gooit? Zou dat kunnen? Ik krijg met deze instelling dus wel een "groen vakje" met de waarde bij de entity.

Ik heb deze waarde nu uiteindelijk ook in HA zichtbaar via een dashboard. Dan blijft er eigenlijk maar 1 vraag over: Moet het mogelijk zijn om een aantal waarden in 1 entity te maken of moet ik dan echt verschillende entities maken?

[Voor 29% gewijzigd door Tribunus op 07-07-2021 13:41]


Acties:
  • +1Henk 'm!

  • denuz
  • Registratie: augustus 2006
  • Laatst online: 22:43
Tribunus schreef op woensdag 7 juli 2021 @ 13:36:
hmm, ik ben wat verder. Ik heb nu de volgende configuratie:

[Afbeelding]
Dan lijkt het erop dat ik per waarde een aparte entity moet maken en dat de attribute key veld roet in het eten gooit? Zou dat kunnen? Ik krijg met deze instelling dus wel een "groen vakje" met de waarde bij de entity.

Ik heb deze waarde nu uiteindelijk ook in HA zichtbaar via een dashboard. Dan blijft er eigenlijk maar 1 vraag over: Moet het mogelijk zijn om een aantal waarden in 1 entity te maken of moet ik dan echt verschillende entities maken?
Een entiteit heeft 1 waarde, dat is nu payload.vpv. Middels attributen kan je attributen toevoegen, wat eigenlijk deelwaarden zijn. Deze kan je ook laten zien in dashboard.

  • Tribunus
  • Registratie: juni 2004
  • Laatst online: 22:21
denuz schreef op woensdag 7 juli 2021 @ 13:43:
[...]

Een entiteit heeft 1 waarde, dat is nu payload.vpv. Middels attributen kan je attributen toevoegen, wat eigenlijk deelwaarden zijn. Deze kan je ook laten zien in dashboard.
Maar mag ik dan die andere waarden zoals ipv vac etc ook als een deelwaarde zien? Of is een deelwaarde een onderdeel van vpv.

Super bedankt voor je hulp!

Acties:
  • +1Henk 'm!

  • denuz
  • Registratie: augustus 2006
  • Laatst online: 22:43
Tribunus schreef op woensdag 7 juli 2021 @ 13:48:
[...]

Maar mag ik dan die andere waarden zoals ipv vac etc ook als een deelwaarde zien? Of is een deelwaarde een onderdeel van vpv.

Super bedankt voor je hulp!
Attribuut kan alles zijn. Je kan daar vaste tekst opnemen. Timestamp, een variabele, maakt niet uit. Start met 1 attribuut, lijkt erop dat het path niet klopt. Dat de waarde niet terecht komt in attribuut.

  • Tribunus
  • Registratie: juni 2004
  • Laatst online: 22:21
Als ik nu in de entity een attribute opgeef met de key state en value msg.payload.power zie ik deze wel als ik in de debug kijk. Staat netjes bij attributes. Als ik dan in HA kijk naar de entiteit (hier zie ik omvormer_vpv met de waarde 2xx) en ik klik er op, zie ik de optie Attributen, met als state de waarde van dit attribuut.

Ik wil dit, als het kan uiteraard als een aparte waarde op het dashboard hebben (direct dus). Moet ik daar dan wel een aparte entiteit van maken?

Acties:
  • +1Henk 'm!

  • denuz
  • Registratie: augustus 2006
  • Laatst online: 22:43
Tribunus schreef op woensdag 7 juli 2021 @ 14:00:
Als ik nu in de entity een attribute opgeef met de key state en value msg.payload.power zie ik deze wel als ik in de debug kijk. Staat netjes bij attributes. Als ik dan in HA kijk naar de entiteit (hier zie ik omvormer_vpv met de waarde 2xx) en ik klik er op, zie ik de optie Attributen, met als state de waarde van dit attribuut.

Ik wil dit, als het kan uiteraard als een aparte waarde op het dashboard hebben (direct dus). Moet ik daar dan wel een aparte entiteit van maken?
Niet perse. Hangt van het soort kaart af wat je gebruikt. Als de sensor nu goed staat, met attributen die je wilt gebruiken is het node-red gedeelte opgelost. In het andere topic kunnen ze je beter helpen met de weergave van je sensoren op het dashboard. Maar nog even als voorbeeld:


@Tribunus
Ik heb ook nog de more-info-card in gebruik.

[Voor 11% gewijzigd door denuz op 07-07-2021 15:06]


  • Tribunus
  • Registratie: juni 2004
  • Laatst online: 22:21
denuz schreef op woensdag 7 juli 2021 @ 14:03:
[...]

Niet perse. Hangt van het soort kaart af wat je gebruikt. Als de sensor nu goed staat, met attributen die je wilt gebruiken is het node-red gedeelte opgelost. In het andere topic kunnen ze je beter helpen met de weergave van je sensoren op het dashboard. Maar nog even als voorbeeld:

[Afbeelding]
Dank zo ver! Dan ga ik het verder vragen in het HASS forum als ik er niet uit kom. Ik wil wel graag 1 card met daarin alle informatie waar mogelijk. Maar dat krijg ik nu nog niet 1-2-3 voor elkaar.

_/-\o_ _/-\o_

  • visioncvg
  • Registratie: februari 2012
  • Laatst online: 20:21
Step5 schreef op dinsdag 6 juli 2021 @ 21:46:
Geen ervaring met Domoticz maar als ik snel vergelijk met voorbeeldje van internet dan lijkt je payload wel goed.

Je stuurt via mqtt zo te zien? Heb je al een eerdere flow gemaakt die naar domoticz stuurt? ofwel weet je zeker dat Domoticz naar dit topic luistert?

edit: @visioncvg vergat via quote te reageren...
@Step5
Dank alvast voor je reactie
Via mqtt inderdaad.
Als ik in Nodered welke op dezelfde raspberry draait als domoticz een andere flow bv aanmaak die in domoticz de tijd weergeeft komt deze netjes aan in domoticz.
Daar staat in de function dus "dt: var dt = new Date();.
Nu wil ik dus opgenomen vermogen tonen
Maar vermoed dat ik de gebruikte "temp" function var temp = msg.payload;
Dus iets anders dan "temp" moet staat want denk dat de waarde in de database van domoticz verkeerd aankomt.
In domoticz log file zie ik foutmelding als ik de Fritz flow aan zet.


Dus ben op zoek naar welke code ik wel nodig heb.

  • Step5
  • Registratie: oktober 2011
  • Laatst online: 22:57
visioncvg schreef op woensdag 7 juli 2021 @ 15:04:
[...]


@Step5
Dank alvast voor je reactie
Via mqtt inderdaad.
Als ik in Nodered welke op dezelfde raspberry draait als domoticz een andere flow bv aanmaak die in domoticz de tijd weergeeft komt deze netjes aan in domoticz.
Daar staat in de function dus "dt: var dt = new Date();.
Nu wil ik dus opgenomen vermogen tonen
Maar vermoed dat ik de gebruikte "temp" function var temp = msg.payload;
Dus iets anders dan "temp" moet staat want denk dat de waarde in de database van domoticz verkeerd aankomt.
In domoticz log file zie ik foutmelding als ik de Fritz flow aan zet.
[Afbeelding]

Dus ben op zoek naar welke code ik wel nodig heb.
Van de voorbeelden die ik heb gezien is svalue steeds een string, dus misschien moet je er dit van maken:
JavaScript:
1
msg.payload.svalue = temp.toString();

Acties:
  • +1Henk 'm!

  • visioncvg
  • Registratie: februari 2012
  • Laatst online: 20:21
Step5 schreef op woensdag 7 juli 2021 @ 21:09:
[...]


Van de voorbeelden die ik heb gezien is svalue steeds een string, dus misschien moet je er dit van maken:
JavaScript:
1
msg.payload.svalue = temp.toString();
@Step5
Top het werkt vermogen van Fritz Dect 200 nu zichtbaar in Domoticz nadat ik jouw tip heb gevolgd _/-\o_

  • KvNwPPr
  • Registratie: februari 2014
  • Laatst online: 17-09 20:04
Ik heb een Zigbee ECO-DIM.07 Led dimmer icm zigbee2mqtt.
De automatisering werkt perfect: gaat aan als er beweging is, en gaat na 5 minuten geen beweging weer uit.

Ik wil de automatisering ook uit (1 uur) kunnen zetten als de knop handmatig wordt bediend. Bv. in een situatie dat je veel licht wilt, of juist geen licht.
Dit krijg ik helaas niet voor elkaar.

Ik heb er een traffic light tussen gezet die de automatisering tijdelijk stop moet zetten. Dat werkt, maar het probleem is de automatisering ook wordt gedeactiveerd als het licht automatisch via beweging aangaat. De dimmer geeft namelijk hetzelfde signaal (state = on/off) door als bij handmatige bediening met de knop.

iemand een slim idee hoe ik dit wel voor elkaar krijg?

code:
1
[{"id":"98d74849.845618","type":"comment","z":"5eae6cdb.023f34","name":"Lamp AAN bij beweging in keuken","info":"","x":220,"y":840,"wires":[]},{"id":"d10f5418.8457a8","type":"change","z":"5eae6cdb.023f34","name":"UIT","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"state\":\"OFF\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":990,"y":1120,"wires":[["8d8a399a.f52678"]],"icon":"node-red/light.png"},{"id":"486e5ebc.7ff7b","type":"stoptimer","z":"5eae6cdb.023f34","duration":"5","units":"Minute","payloadtype":"num","payloadval":"0","name":"5m","x":590,"y":1120,"wires":[["6c2ffd15.832724"],[]]},{"id":"526d79bd.ba36f8","type":"switch","z":"5eae6cdb.023f34","name":"beweging?","property":"payload.occupancy","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":370,"y":1080,"wires":[["6a0420e0.a411c","486e5ebc.7ff7b"],["486e5ebc.7ff7b"]]},{"id":"6a0420e0.a411c","type":"switch","z":"5eae6cdb.023f34","name":"licht <= 75?","property":"payload.illuminance","propertyType":"msg","rules":[{"t":"lte","v":"9979","vt":"num"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":570,"y":1040,"wires":[["8c5c0568.de2428"],["6c2ffd15.832724"]]},{"id":"8c5c0568.de2428","type":"traffic","z":"5eae6cdb.023f34","name":"","property_allow":"payload","filter_allow":"allow","ignore_case_allow":true,"negate_allow":false,"send_allow":false,"property_stop":"payload","filter_stop":"block","ignore_case_stop":true,"negate_stop":false,"send_stop":false,"default_start":true,"differ":false,"x":830,"y":1040,"wires":[["13268be7.96e0e4"]]},{"id":"6c2ffd15.832724","type":"traffic","z":"5eae6cdb.023f34","name":"","property_allow":"payload","filter_allow":"allow","ignore_case_allow":true,"negate_allow":false,"send_allow":false,"property_stop":"payload","filter_stop":"block","ignore_case_stop":true,"negate_stop":false,"send_stop":false,"default_start":true,"differ":false,"x":830,"y":1120,"wires":[["d10f5418.8457a8"]]},{"id":"13268be7.96e0e4","type":"change","z":"5eae6cdb.023f34","name":"AAN","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"brightness\":\"253\",\"state\":\"ON\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":990,"y":1040,"wires":[["8d8a399a.f52678"]],"icon":"node-red/light.png"},{"id":"c5941ffd.0a366","type":"mqtt-json","z":"5eae6cdb.023f34","name":"motion sensor keuken","topic":"zigbee2mqtt/motion_sensor_keuken","property":"","qos":"2","broker":"9ca728fa.8b9898","x":180,"y":1080,"wires":[["526d79bd.ba36f8"]]},{"id":"8d8a399a.f52678","type":"mqtt out","z":"5eae6cdb.023f34","name":"dimmer keuken","topic":"zigbee2mqtt/dimmer_keuken/set","qos":"2","retain":"false","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"9ca728fa.8b9898","x":1160,"y":1080,"wires":[],"icon":"node-red/light.svg","info":"{\r\n  \"brightness_move\": -40, // Starts moving brightness down at 40 units per second\r\n  \"brightness_move\": 0, // Stop moving brightness\r\n  \"brightness_step\": 40 // Increases brightness by 40\r\n}"},{"id":"f3e7c398.db478","type":"change","z":"5eae6cdb.023f34","name":"block","rules":[{"t":"set","p":"payload","pt":"msg","to":"block","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":580,"y":900,"wires":[["8c5c0568.de2428"]]},{"id":"2697b404.faf3ec","type":"stoptimer","z":"5eae6cdb.023f34","duration":"1","units":"Hour","payloadtype":"str","payloadval":"allow","name":"1h","x":580,"y":940,"wires":[[],["8c5c0568.de2428"]]},{"id":"37118b04.f09cc4","type":"change","z":"5eae6cdb.023f34","name":"block","rules":[{"t":"set","p":"payload","pt":"msg","to":"block","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":610,"y":1220,"wires":[["6c2ffd15.832724"]]},{"id":"7022d3a9.dd4dfc","type":"stoptimer","z":"5eae6cdb.023f34","duration":"1","units":"Hour","payloadtype":"str","payloadval":"allow","name":"1h","x":610,"y":1260,"wires":[[],["6c2ffd15.832724"]]},{"id":"ad9fc4fa.1e1808","type":"mqtt-json","z":"5eae6cdb.023f34","name":"dimmer keuken","topic":"zigbee2mqtt/dimmer_keuken","property":"","qos":"2","broker":"9ca728fa.8b9898","x":200,"y":920,"wires":[["92ba06ff.759ae8"]]},{"id":"9d5417fa.df6508","type":"mqtt-json","z":"5eae6cdb.023f34","name":"dimmer keuken","topic":"zigbee2mqtt/dimmer_keuken","property":"","qos":"2","broker":"9ca728fa.8b9898","x":240,"y":1240,"wires":[["c9a8a9a4.0b2e68"]]},{"id":"92ba06ff.759ae8","type":"switch","z":"5eae6cdb.023f34","name":"","property":"payload.state","propertyType":"msg","rules":[{"t":"eq","v":"ON","vt":"str"},{"t":"eq","v":"OFF","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":390,"y":920,"wires":[["f3e7c398.db478","2697b404.faf3ec"],["f3e7c398.db478","2697b404.faf3ec"]]},{"id":"c9a8a9a4.0b2e68","type":"switch","z":"5eae6cdb.023f34","name":"","property":"payload.state","propertyType":"msg","rules":[{"t":"eq","v":"ON","vt":"str"},{"t":"eq","v":"OFF","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":390,"y":1240,"wires":[["37118b04.f09cc4","7022d3a9.dd4dfc"],["37118b04.f09cc4","7022d3a9.dd4dfc"]]},{"id":"9ca728fa.8b9898","type":"mqtt-broker","name":"Mosquitto","broker":"192.168.2.11","port":"1883","tls":"","clientid":"Node-red","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]




Acties:
  • +1Henk 'm!

  • jenssen
  • Registratie: september 2018
  • Laatst online: 09-09 18:50
GORby schreef op zondag 4 juli 2021 @ 21:29:
[...]


Hier 898 nodes in mijn flow en het draait allemaal vlotjes op een Rpi4 4GB, al zou het even vlot draaien op een 1GB als er niets anders moet draaien, want Node heeft ongeveer een halve GB in gebruik. Ik heb ook nergens iets speciaal aangepast in de config of zo.
lijkt iets te maken te hebben met Docker, afgestapt van Docker en werkt nu weer

  • GORby
  • Registratie: januari 2002
  • Laatst online: 17-09 00:15
jenssen schreef op donderdag 8 juli 2021 @ 00:05:
[...]
lijkt iets te maken te hebben met Docker, afgestapt van Docker en werkt nu weer
Resource limitation door Docker misschien? Ik zou verwachten dat je dat ook kan verhogen als dat het geval zou zijn. Fijn om te horen dat de oorzaak gevonden is in ieder geval.
Pagina: 1 ... 19 20 21 Laatste


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

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

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee