volkerrichert / ioBroker.ecotouch

4 stars 0 forks source link

Keine Daten bei Scriptausführung #1

Closed mifricke closed 4 years ago

mifricke commented 5 years ago

Leider werden bei der Ausführung des Skripts nur die Datenpunkte erstellt, aber dann nicht mit Werten gefüllt.

Vorgehensweise:

Skript von Github kopiert und in iobroker eingefügt. IP im Kopf des Skripts geändert.

Idee warum das nicht funktioniert? Webinterface ist auf der IP erreichbar... Um mal kurz die grundsätzliche Version des Interfaces zu vergleichen, hast Du sowas?

image

Edit: Per Url im Browser erhalte ich mit dem Link aus dem Skript folgendes:

`#A1 S_OK 192 91

A2 S_OK

192 92`

Sieht also gut aus...

volkerrichert commented 5 years ago

ja, das sieht gut aus, auch wenn meine viiiiel älter aussieht

image

Ich schau noch mal in den Code. Vielleicht habe ich ja eine Änderung nicht übernommen. Gibt es einen Fehler? Welche node-Version hast du? Ach ja, natürlich.... "request-promise" muss als module dazu...

image

mifricke commented 5 years ago

Alles klar! Das war es! Jetzt erhalte ich Daten. Allerdings bei einigen auch nichts. Wobei Modbus wirklich um einiges schöner ist. Das wird wohl auch letztlich meine Wahl werden.

Hast Du schon eine Lösung wie man die Datenpunkte mit bit mask aufdröseln kann? Ich habe da leider keine Beispiele gefunden die ich mit meinen beschränkten Programmierkenntnissen in iobroker umsetzen könnte...

volkerrichert commented 5 years ago

klar, modbus ist eleganter. Würde ich auch nutzen, wenn es ginge. :-)

Datenpunkte spitten? ja, da habe ich was von meiner E3DC als zusätzliches JS. Etwas unschön, aber geht. Suche ich raus

volkerrichert commented 4 years ago

Sorry. Das ist jetzt 1 Jahr alt. Ich habe es vergessen. Ich mach das so, auch wenn die Daten dann natürlich im JS-Zweig landen

// Aufteilung "Modbus Firmware Version" var id = 'modbus.0.holdingRegisters.40002_Modbus_Firmware'; createState('e3dc.modbus.MajorVersion'); createState('e3dc.modbus.MinorVersion'); on(id, function (obj) { setState('e3dc.modbus.MajorVersion', (obj.state.val >> 8) & 0xFF, true); setState('e3dc.modbus.MinorVersion', obj.state.val & 0xFF, true); });