NEWS
OWL Intuition mit Node-RED einlesen
-
Keine Ideen??
-
Hast du hm-rega installiert?
Dann kannst du einfach mit node ioBroker/output in so eine Variable schreiben.
-
Ja, habe ich installiert.
Kannst du mir ein Beispiel geben wie ich einen Kanal in eine HM Variable Schreiben kann?
Ist es mit node auch möglich, die Kanäle 1 bis 3 aktuell und 1 bis 3 tag zusammen zu zählen, damit ich einen Gesamt-Stromverbrauch heute und aktuell in die HM Variablen schreiben kann?
Gruss
Ritschi
-
Ja, habe ich installiert.
Kannst du mir ein Beispiel geben wie ich einen Kanal in eine HM Variable Schreiben kann? `
Ich habe kein OWL, aber irgendwie so muss es gehen:
[{"id":"d9e23d5e.261dc","type":"inject","name":"","topic":"","payload":"123","payloadType":"string","repeat":"","crontab":"","once":false,"x":398,"y":145,"z":"b19057e0.4e6fa8","wires":[["9bf53d20.640ac"]]},{"id":"9bf53d20.640ac","type":"ioBroker out","name":"Rolladen.Inaktive.Schlaffzimmer","topic":"hm-rega.0.12468","ack":"false","autoCreate":"false","x":621,"y":144,"z":"b19057e0.4e6fa8","wires":[]}]
-
Hallo Ritschi,
ich habe mal den ganzen Flow erweitert. Der Node Daten extrahieren (OWL, orange in der Mitte) hat jetzt 12 Ausgänge. Ausgang 11 enthält die Summe alle Phasen aktuell, Ausgang 12 die Summe aller Phasen (Tageswerte).
Nach Bluefox' Anleitung habe ich dir einen Ausgang zu Rega gebastelt. Ich hab ihn nicht getestet, da ich meine CCU nicht von node-red aus ansprechen will.
Also:
<list type="decimal">4. die beiden Variablen in der Webui der CCU anlegen (falls nicht schon geschehen)-
Rega und am besten auch rpc in ioBroker Instanzen neu laden, damit die Datenpunkte in ioBroker Objekte erscheinen
-
Diesen Flow in node-red über Clipboard einlesen (den alten löschen).
>! ```` [{"id":"aa6c7136.55939","type":"udp in","name":"Network OWL horchen","iface":"","port":"22600","ipv":"udp4","multicast":"true","group":"224.192.32.19","datatype":"utf8","x":104,"y":35,"z":"dd405887.22bfa8","wires":[["3fd15b2d.c02ea4"]]},{"id":"ff460116.00ba","type":"debug","name":"OWL Ausgabe (original XML)","active":false,"console":"false","complete":"payload","x":410,"y":33,"z":"dd405887.22bfa8","wires":[]},{"id":"3fd15b2d.c02ea4","type":"switch","name":"Prüfen","property":"payload","rules":[{"t":"nnull"}],"checkall":"true","outputs":1,"x":173,"y":118,"z":"dd405887.22bfa8","wires":[["ff460116.00ba","fdce747e.023188"]]},{"id":"f54f19ff.0ab0e8","type":"function","name":"Daten extrahieren (OWL)","func":"var topic_baum = 'node-red.0.owl.electricity.' + msg.payload.electricity.$.id;\n\nmsg1 = {};\nmsg1.payload = msg.payload.electricity.$.id; // device id\nmsg1.topic = topic_baum + '.id';\n\nmsg2 = {};\nmsg2.payload = msg.payload.electricity.signal[0].$.rssi;\nmsg2.topic = topic_baum + '.rssi';\n\nmsg3 = {};\nmsg3.payload = msg.payload.electricity.battery[0].$.level;\nmsg3.topic = topic_baum + '.battery';\n\nmsg4 = {};\nmsg4.payload = msg.payload.electricity.chan[0].curr[0]._;\nmsg4.topic = topic_baum + '.kanal1.aktuell';\n\nmsg5 = {};\nmsg5.payload = msg.payload.electricity.chan[0].day[0]._;\nmsg5.topic = topic_baum + '.kanal1.tag';\n\nmsg6 = {};\nmsg6.payload = msg.payload.electricity.chan[1].curr[0]._;\nmsg6.topic = topic_baum + '.kanal2.aktuell';\n\nmsg7 = {};\nmsg7.payload = msg.payload.electricity.chan[1].day[0]._;\nmsg7.topic = topic_baum + '.kanal2.tag';\n\nmsg8 = {};\nmsg8.payload = msg.payload.electricity.chan[2].curr[0]._;\nmsg8.topic = topic_baum + '.kanal3.aktuell';\n\nmsg9 = {};\nmsg9.payload = msg.payload.electricity.chan[2].day[0]._;\nmsg9.topic = topic_baum + '.kanal3.tag';\n\nmsg10 = {};\nmsg10.payload = msg.payload.electricity.signal[0].$.lqi;\nmsg10.topic = topic_baum + '.lqi';\n\n// Summe Aktuell CH1-3\nmsg11 = {};\nmsg11.payload = parseInt(msg4.payload,10) + parseInt(msg6.payload,10) + parseInt(msg8.payload,10);\n\n// Summe Tag CH1-3\nmsg12 = {};\nmsg12.payload = parseInt(msg5.payload,10) + parseInt(msg7.payload,10) + parseInt(msg9.payload,10);\n\nreturn [msg1,msg2,msg3,msg4,msg5,msg6,msg7,msg8,msg9,msg10,msg11,msg12];","outputs":"12","noerr":0,"x":523,"y":249,"z":"dd405887.22bfa8","wires":[["22c22d1b.dd3dd2","7d2504bc.82dafc"],["22c22d1b.dd3dd2","7d2504bc.82dafc"],["22c22d1b.dd3dd2","7d2504bc.82dafc"],["22c22d1b.dd3dd2","7d2504bc.82dafc"],["22c22d1b.dd3dd2","7d2504bc.82dafc"],["22c22d1b.dd3dd2","7d2504bc.82dafc"],["22c22d1b.dd3dd2","7d2504bc.82dafc"],["22c22d1b.dd3dd2","7d2504bc.82dafc"],["22c22d1b.dd3dd2","7d2504bc.82dafc"],[],["236ebc5e.dc9144","a7b6cd.ff58493"],["236ebc5e.dc9144","15927b0f.ea6d85"]]},{"id":"22c22d1b.dd3dd2","type":"debug","name":"Kontrollausgabe nach Funktion","active":false,"console":"false","complete":"payload","x":901,"y":161,"z":"dd405887.22bfa8","wires":[]},{"id":"60cea4f6.9f315c","type":"debug","name":"Ausgabe nach XML Baustein","active":false,"console":"false","complete":"payload","x":542,"y":75,"z":"dd405887.22bfa8","wires":[]},{"id":"fdce747e.023188","type":"xml","name":"","attr":"$","chr":"_","x":322,"y":171,"z":"dd405887.22bfa8","wires":[["60cea4f6.9f315c","f54f19ff.0ab0e8"]]},{"id":"7d2504bc.82dafc","type":"ioBroker out","name":"ioBroker Ausgabe","topic":"","ack":"false","autoCreate":"true","x":860,"y":272,"z":"dd405887.22bfa8","wires":[]},{"id":"29b9f2d3.d6460e","type":"comment","name":"OWL Electricity","info":"10.05.2015\nvon pix\n\n\nDieser FLow ist für die Network OWL Electricity Geräte erstellt worden.\n\nEs lassen sich mehrere Network OWLs anschließen, da eine Baumstruktur über die ID aufgelöst wird.\n\nGeräte anderer Gewerke (Heizung, Wetter) müssen noch eingepflegt werden.","x":131,"y":185,"z":"dd405887.22bfa8","wires":[]},{"id":"236ebc5e.dc9144","type":"debug","name":"Ausgabe Summen (Aktuell & Tag)","active":true,"console":"false","complete":"payload","x":896,"y":485,"z":"dd405887.22bfa8","wires":[]},{"id":"a7b6cd.ff58493","type":"ioBroker out","name":"Name Summe Aktuell (topic anpassen)","topic":"hm-rega.0.12345678","ack":"false","autoCreate":"false","x":941,"y":392,"z":"dd405887.22bfa8","wires":[]},{"id":"15927b0f.ea6d85","type":"ioBroker out","name":"Name Summe Tag (topic anpassen)","topic":"hm-rega.0.12345678","ack":"false","autoCreate":"false","x":935,"y":438,"z":"dd405887.22bfa8","wires":[]}] ````Ich habe die Strings einfach mit parseInt in Zahlen gewandelt. Das ging erstmal am schnellsten. Wenn dir das zu ungenau ist, kann man das noch ändern.
-
Den Flow editieren (siehe oben): Die Datenpunkte deiner CCU-Variablen findest du unter Objekte im Admin.
Du musst die beiden blauen Nodes in Node-Red unten rechts noch anpassen. Dazu musst du die Rega Adressen der CCU Variablen für Summe aktuell und Summe Tag dort unter Topic eintragen.
-
Deploy drücken und warten, bis das Network OWL das nächste mal sendet.
Wird schon klappen! :lol:
Gruß,
Pix
-
-
Hallo Pix
Herzlichen Dank, es funktioniert!!
Was mich allerdings ein bisschen irritiert:
> Nach Bluefox' Anleitung habe ich dir einen Ausgang zu Rega gebastelt. Ich hab ihn nicht getestet, da ich meine CCU nicht von node-red aus ansprechen will.
Gibt es da Gründe die dagegen sprechen betr. Sicherheit o.ä.?Gruss
Ritschi
-
Nee, keine Angst. Meine ccu1 ist nicht die stabilste. Ich lasse lieber iobroker die Arbeit machen
Gesendet von meinem iPhone mit Tapatalk
-
Hallo zusammen,
vielen Dank bin aufgrund dieses Post nun auch auf von CCU.IO uf ioBroker umgestiegen.
Habe den Flow von Pix (BeitragVerfasst: 10.05.2015, 14:32) , also ohne den Ausgang auf die CCU noch erweitert, damit mir die Tagessummen zu Monatswerten zusammenaddiert werden.
! [{"id":"d7bdbc70.1b11d","type":"function","name":"Daten extrahieren","func":"var topic_baum = 'node-red.0.owl.electricity.' + msg.payload.electricity.$.id ;\n\nmsg1 = {};\nmsg1.payload = msg.payload.electricity.$.id; // device id\nmsg1.topic = topic_baum + '.id';\n\nmsg2 = {};\nmsg2.payload = msg.payload.electricity.signal[0].$.rssi;\nmsg2.topic = topic_baum + '.rssi';\n\nmsg3 = {};\nmsg3.payload = msg.payload.electricity.battery[0].$.level;\nmsg3.topic = topic_baum + '.battery';\n\nmsg4 = {};\nmsg4.payload = msg.payload.electricity.chan[0].curr[0].;\nmsg4.topic = topic_baum + '.kanal1.aktuell';\n\nmsg5 = {};\nmsg5.payload = msg.payload.electricity.chan[0].day[0].;\nmsg5.topic = topic_baum + '.kanal1.tag';\n\nmsg6 = {};\nmsg6.payload = msg.payload.electricity.chan[1].curr[0].;\nmsg6.topic = topic_baum + '.kanal2.aktuell';\n\nmsg7 = {};\nmsg7.payload = msg.payload.electricity.chan[1].day[0].;\nmsg7.topic = topic_baum + '.kanal2.tag';\n\nmsg8 = {};\nmsg8.payload = msg.payload.electricity.chan[2].curr[0].;\nmsg8.topic = topic_baum + '.kanal3.aktuell';\n\nmsg9 = {};\nmsg9.payload = msg.payload.electricity.chan[2].day[0].;\nmsg9.topic = topic_baum + '.kanal3.tag';\n\nmsg10 = {};\nmsg10.payload = msg.payload.electricity.signal[0].$.lqi;\nmsg10.topic = topic_baum + '.lqi';\n\n// monatswerte setzen/zurücksetzen\nvar now = new Date(); \nvar tag = now.getDate();\nvar hour = now.getHours();\nvar minute = now.getMinutes()\nvar oldmonat1 = Number(context.global.oldMonat1);\nvar oldmonat2 = Number(context.global.oldMonat2);\nvar oldmonat3 = Number(context.global.oldMonat3);\nvar aktday1 = Number(msg.payload.electricity.chan[0].day[0].);\nvar aktday2 = Number(msg.payload.electricity.chan[1].day[0].);\nvar aktday3 = Number(msg.payload.electricity.chan[2].day[0]._);\n\nmsg11 = {};\nmsg12 = {};\nmsg13 = {};\n\nif (tag == 1 && hour == 1 && minute == 1){\n msg11.payload = '0.00';\n msg12.payload = '0.00';\n msg13.payload = '0.00';\n }else if (hour == 23 && minute == 59){\n msg11.payload = oldmonat1 + aktday1;\n msg12.payload = oldmonat2 + aktday2;\n msg13.payload = oldmonat3 + aktday3;\n }else {\n }\n \n msg11.topic = topic_baum + '.kanal1.monat';\n msg12.topic = topic_baum + '.kanal2.monat';\n msg13.topic = topic_baum + '.kanal3.monat';\n\nreturn [msg1,msg2,msg3,msg4,msg5,msg6,msg7,msg8,msg9,msg10,msg11,msg12,msg13];","outputs":"13","noerr":0,"x":547,"y":278,"z":"2319150e.123c3e","wires":[["ee4ea974.9609d8","bb14dbce.36d4d8"],["ee4ea974.9609d8","bb14dbce.36d4d8"],["ee4ea974.9609d8","bb14dbce.36d4d8"],["ee4ea974.9609d8","bb14dbce.36d4d8"],["ee4ea974.9609d8","bb14dbce.36d4d8"],["ee4ea974.9609d8","bb14dbce.36d4d8"],["ee4ea974.9609d8","bb14dbce.36d4d8"],["ee4ea974.9609d8","bb14dbce.36d4d8"],["ee4ea974.9609d8","bb14dbce.36d4d8"],["bb14dbce.36d4d8","ee4ea974.9609d8"],["bb14dbce.36d4d8","ee4ea974.9609d8"],["bb14dbce.36d4d8","ee4ea974.9609d8"],["ee4ea974.9609d8","bb14dbce.36d4d8"]]}]
Ist vielleicht nicht ideal umgesetzt, aber freue mich über Verbesserungsvorschläge.
-
Hallo
Seit ein paar Tagen funktioniert bei mir die Werte Übertragung von node-red auf die CCU Variable nicht mehr.
Folgender Fehler steht im Log:
node-red-0 2016-07-29 19:22:58.706 error 29 Jul 19:22:58 - [error] [function:Daten extrahieren (OWL)] TypeError: Cannot read property '/r> of undefined node-red-0 2016-07-29 19:22:58.705 error 29 Jul 19:22:58 - [error] [function:Daten extrahieren (OWL)] TypeError: Cannot read property '/r> of undefined node-red-0 2016-07-29 19:22:58.702 error 29 Jul 19:22:58 - [error] [function:Daten extrahieren (OWL)] TypeError: Cannot read property '/r> of undefined node-red-0 2016-07-29 19:22:58.701 error 29 Jul 19:22:58 - [error] [function:Daten extrahieren (OWL)] TypeError: Cannot read property '/r> of undefined
Jemand eine Idee, an was das liegen könnte?
Danke & Gruss
Ritschi
-
Kaum verzweifelt, den Fehler glaube ich gefunden…
Ich musste den js.controller unter "hosts" neu starten.
Nun scheint alles wieder zu funktionieren.
Gruss
Ritschi