NEWS
Erledigt IP Steckdose Koukaam netio 230B
-
moin Eric,
hier ist der get Befehl
http://192.168.167.124/tgi/control.tgi? … &quit=quit
ich hoffe dir damit geholfen zu haben!
Evt. können wir dann ja hier gemeinsam weiter machen. Wie gesagt ich bekomme nicht den slice Befehl hin!
Für Tips würde ich mich noch immer freuen!
mfg
Armin
-
Hallo Arminhh,
bei Deinem Code wird das slice zwar ausgeführt, jedoch wird mit dem Ergebnis nichts gemacht. Du musst es zurückgeben, in eine neue Variable schreiben o.ä.
var status = msg.payload.slice(6, 7);
-
Hallo Beatz,
danke für den Hinweis. Ich habe jetzt
var WzStd1 = msg.payload.slice(7,1);
return WzStd1;
als Ergebnis kommt jetzt (undefined)
ist ja doch alles viel schwerer wenn man kein Plan vom Programmieren hat!
Für weitere Hinweise bin ich sehr dankbar!
mfg
Armin
-
Hallo Armin,
@Arminhh:var WzStd1 = msg.payload.slice(7,1);
return WzStd1;
als Ergebnis kommt jetzt (undefined) `
wie hier https://msdn.microsoft.com/de-de/library/tkcsy6fe%28v=vs.94%29.aspx, muss slice mit einem Array gefüttert werden. Das ist hier nicht der Fall. Du wolltest eigentlich den Befehl http://www.w3schools.com/jsref/jsref_substring.asp verwenden.
Versuch es mal so:
var zeichenkette = "1 1 1 1 110 BYE"; var ergebnis = zeichenkette.substring(6,7); // Position 6 (Anfang), Position 7 (Ende des Ausschnitts) log(ergebnis);
Gruß
Pix
-
Hallo Arminhh,
die beiden Parameter von Slice können so nicht funktionieren. Das erste gibt den Start an, das zweite das Ende und muss somit größer sein, als das erste. Versuche es mal mit 7 und 8.
Viele Grüße
Andreas
-
hab es gerade hinbekommen.
var WzStd1=msg.payload.slice(6,7);
msg.payload=WzStd1;
return msg;
Danke für die Hilfe! Mal sehen ob ich es jetzt schaffe den Wert in IOBroker als Variable zu schreiben!
mfg
Armin
4886_admin_anzeige.jpg -
hier wie versprochen der fertige Flow.
[{"id":"6e1840a2.91e7c","type":"http request","name":"Anmelden und Status abfragen","method":"GET","ret":"txt","url":"http://192.168.167.124/tgi/control.tgi?login=p:xxxxx:yyyyy&p=list&quit=quit","x":423.6363636363636,"y":82.72727272727272,"z":"47b40718.b84bf8","wires":[["eb101fac.14efe","d177bcef.2e884","38956fff.c76a9","88bda89b.774258"]]},{"id":"d83528c1.27cad8","type":"inject","name":"","topic":"","payload":"","payloadType":"none","repeat":"20","crontab":"","once":false,"x":119.09090805053711,"y":73.63636302947998,"z":"47b40718.b84bf8","wires":[["6e1840a2.91e7c"]]},{"id":"eb101fac.14efe","type":"function","name":"WzIpStd1","func":"var WzStd1=msg.payload.slice(6,7);\nmsg.payload=WzStd1;\nreturn msg;","outputs":1,"noerr":0,"x":767.2727272727273,"y":93.63636363636363,"z":"47b40718.b84bf8","wires":[["804d66b9.7fb298"]]},{"id":"804d66b9.7fb298","type":"ioBroker out","name":"WzIpStd1","topic":"WzIpStd1","ack":"false","autoCreate":"true","x":1182,"y":95,"z":"47b40718.b84bf8","wires":[]},{"id":"7c82b9b7.837d48","type":"ioBroker out","name":"WzIpStd2","topic":"WzIpStd2","ack":"false","autoCreate":"true","x":1176,"y":143,"z":"47b40718.b84bf8","wires":[]},{"id":"d177bcef.2e884","type":"function","name":"WzIpStd2","func":"msg.payload = msg.payload.slice(8,9);\nreturn msg;","outputs":1,"noerr":0,"x":763,"y":130,"z":"47b40718.b84bf8","wires":[["7c82b9b7.837d48"]]},{"id":"38956fff.c76a9","type":"function","name":"WzIpStd3","func":"msg.payload = msg.payload.slice(10,11);\nreturn msg;","outputs":1,"noerr":0,"x":763,"y":167,"z":"47b40718.b84bf8","wires":[["141ad5cc.ebe52a"]]},{"id":"141ad5cc.ebe52a","type":"ioBroker out","name":"WzIpStd3","topic":"WzIpStd3","ack":"false","autoCreate":"true","x":1176,"y":191,"z":"47b40718.b84bf8","wires":[]},{"id":"88bda89b.774258","type":"function","name":"WzIpStd4","func":"msg.payload = msg.payload.slice(12,13);\nreturn msg;","outputs":1,"noerr":0,"x":762,"y":203,"z":"47b40718.b84bf8","wires":[["a816bac5.57e948"]]},{"id":"a816bac5.57e948","type":"ioBroker out","name":"WzIpStd4","topic":"WzIpStd4","ack":"false","autoCreate":"true","x":1173,"y":244,"z":"47b40718.b84bf8","wires":[]}]
was ich nicht geschaft habe alles in eine Funktion zu schreiben. Zum Lernen würde ich mich freuen Hinweise zu bekommen
mfg
Armin
-
Hallo Armin,
habe mehrer NETIO-230B im einsatz, aber bislang noch nicht an die einbindung in ioBRoker gedacht. Habe das Flow bereits Importiert, Funktioniert Supper!
Ist das Schalten der Ausgänge auch möglich, bzw. in Planung?
Grüße
Dirk
-
Hallo Dirk das geht jetzt schon. Anbei ein Widget das die Steckdose per Link steuert und die Variable als Status!
<code>[{"tpl":"tplMetroTileToggle","data":{"oid":"node-red.0.WzIpStd1","visibility-cond":"==","visibility-val":1,"hover":"true","transform":"true","bg_class_false":"bg-gray","bg_class_true":"bg-yellow","icon_class_false":"","icon_class_true":"","icon_badge_false":"","icon_badge_true":"","badge_bg_class_false":"","badge_bg_class_true":"","brand_bg_class_false":"","brand_bg_class_true":"","name":"Standby TV","label_false":"Standby TV OFF","label_true":"Standby TV ON","icon_false":"/icons-mfd-svg/message_socket.svg","icon_true":"/icons-mfd-svg/message_socket.svg","icon_width":"90","icon_height":"90","icon_top":"14","icon_left":"24","urlTrue":"http://192.168.167.124/tgi/control.tgi?login=p:xxxxx:yyyyy&p=1uuu&quit=quit","urlFalse":"http://192.168.167.124/tgi/control.tgi?login=p:admin:admin&p=0uuu&quit=quit","oidTrue":"node-red.0.WzIpStd1","oidFalse":"node-red.0.WzIpStd1","oidTrueValue":"false","oidFalseValue":"true"},"style":{"left":"1760px","top":"160px"},"widgetSet":"metro"}]/code] viel Spaß mfg Armin</code>
-
Hi,
ich habe basierend auf Eurem Script das ganze noch etwas verfeinert. Ich hoffe ich verletzt damit nicht Euer Copyright
Im Groben die Opmierungen….
Es ist nun eine true/false Variable vorhanden ist über die man die jeweilige Steckdose steuern kann und auf die auch das vis zugreift nun nicht direkt auf das Netio Webinterface.
Außerdem ist das ganze durch globale Variablen im Flow konfigurierbar, damit man nicht überall die Daten eingeben muß.
Ach ja und fehlerhafte Anfragen werden nun auch abgefangen. Bei nicht erreichbarer Steckdose hat er sonst false angenommen und bei Erreichbarkeit die Steckdose ausgeschaltet.
PS: Wenn Ihr die Objektvariable als boolean haben wollt, könnt Ihr den Type einfach im ObjektFenster --> Edit --> Raw (von type "state" auf "boolean" ändern) Node-Red kann das noch nicht festlegen.
PPS: Wenn es Euch gefällt würde ich mich über ein "Danke "freuen!
6134_netio_flow.txt
6134_flow.png
6134_netio_vis.txt
6134_netio_vis.png