NEWS
[gelöst] S0-Impulszähler in iobroker abbilden
-
Hallo zusammen,
folgendes Projekt versuche ich zur Zeit nachzustellen:
http://esp8266-server.de/Impulszaehler.html => funktioniert auch…
Möchte das Ganze nun in iobroker darstellen. Hier im Forum gibt es eine Skript-Vorlage von looxer01 die ich gerne nutzen würde.
Ich kann es jedoch nicht nutzen, da ich durch aufrufen der URL des Wemos nur die 6 Impulse mit Komma getrennt abfragen kann. Ich bräuchte jeden dieser Werte in einer Objekt-id.
Meine Idee nun: Ein Skript welches die URL abfragt und die einzelnen Impulswerte in ein Objekt reinschreibt. Diese Objekte kann ich dann in die Skript-Vorlage von looxer01 einbauen.
Ist das eurer Erfahrung nach eine sinnvolle Vorgehensweise?
Kann mir wer bei dem Skript helfen?
createState('hauptwemos'); // createState('Zähler1'); // createState('Zähler2'); // createState('Zähler3'); // createState('Zähler4'); // createState('Zähler5'); // createState('Zähler6'); var request= require('request'); schedule("* * * * *",//jede Minute wiederholen function() { request.post({ url: 'http://10.4.4.66' }, function(error, response, body){ if (body) { setState('hauptwemos', body); } }); } //jetzt müsste man nur noch aus der Ausgabe in 'hauptwemos' (1,2,3,4,5,6,) 6 mal setState('ZählerX' erstellen mit dem "richtigen" Teilstring. Leider keine Ahnung wie das geht...) )
Vielen Dank und schöne Ostern!
-
hast du mal geschaut ob du das ganze mit dem Parser-Adapter auswerten könntest?
Kannst ja dann für jeden Wert eine eigene Abfrage machen…
Ansonsten geht das wohl nur über ein script....
-
Habs Mega, mein "erstes Skript" :-D:
createState('Strom.Zähler1'); createState('Strom.Zähler2'); createState('Strom.Zähler3'); createState('Strom.Zähler4'); createState('Strom.Zähler5'); createState('Strom.Zähler6'); var request= require('request'); schedule("* * * * *",//jede Minute wiederholen function() { request.post({ url: 'http://10.4.4.66' }, function(error, response, body){ if (body) { var input = body; var array = input.split(","); setState('Strom.Zähler1', array[0]); setState('Strom.Zähler2', array[1]); setState('Strom.Zähler3', array[2]); setState('Strom.Zähler4', array[3]); setState('Strom.Zähler5', array[4]); setState('Strom.Zähler6', array[5]); } }); } )