NEWS
Script für Solvis Max + SolvisRemote
-
Um dem Einen oder Anderen Fleissarbeit zu ersparen, stelle ich hier mein Script zur Verfügung, mit dem die SolvisRemote Parameter im Sekundentakt ausgelesen werden. (Sensoren / AnalogOut / DigitalOut / DigitalIn). Solarertrag / leistung mache ich noch.
Dies ist mein erstes JS Script überhaupt, da ich sonst nur C++ und Python schreibe, bin ich offen für Anregungen, wie das noch optimiert werden kann / bzw. wie man das nun in einen Adapter packt. Ich reiße mich nicht um eine Adapterentwicklung, also wenn jemand Lust dazu hat, nur zu.Wenn man das Solvis Schema als Hintergrundbild in eine eigene VIS packt, kann man hiermit recht einfach das nachbilden, was Solvis Benutzer bereits von der Web Oberfläche kennen.
Das Pollen der Daten braucht ein bisschen CPU (6% auf meinem odroid-N2), daher muss die vis aktiv mitteilen, dass sie offen ist, andernfalls werden keine Daten gepolled. Dafür gibt es den Datenpunkt solvis.ping.
In meiner Vis habe ich sowieso ein setIntervall laufen (1 sek) mit dem ich nach 30 Sekunden Inaktivität auf Home wechsel, aber auch diesen solvis.ping Datenpunkt neu schreibe. Das hier verlinkte Skript prüft den Änderungszeitpunkt gegen Date::now(), sofern > 20 sek, wir pollen angehalten. Die Vis mus also so ungefähr alle paar Sekunden den solvis.ping Wert aktualisieren.
Im Kopfbereich des Skripts muss noch die IP der SolvisRemote eingetragen werden, und die credentials.
2019-03-29-scripts.zip
Oder hier: https://github.com/peak3d/iobroker.solvisremote -
Hallo peak3d,
ich versuche Dein Script zum Laufen zu bringen. Allerdings kommen keine Werte und das Log zeigt folgendes:
22:53:16.850 error javascript.0 script.js.common.Solvis_Daten_holen: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../digest-header'
22:53:16.850 error javascript.0 at Request._callback (script.js.common.Solvis_Daten_holen25)
22:53:16.852 error javascript.0 TypeError: require(...) is not a function at Request._callback (script.js.common.Solvis_Daten_holen49) at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:185:22) at emitTwo (events.js:126:13) at Request.emit (events.js:214:7) at Request.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1161:10) at emitOne (events.js:116:13) at Request.emit (events.js:211:7) at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1083:12) at Object.onceWrapper (events.js:313:30) at emitNone (events.js:111:20)
22:53:16.853 info javascript.0 Stop script script.js.common.Solvis_Daten_holen
22:53:17.125 error Caught by controller[0]: at Request._callback (script.js.common.Solvis_Daten_holen49)Muss ich das Modul Digest-Header irgendwie installieren?
Und was sagt mir der request/require Fehler?Danke für Deine Hilfe,
Markus
-
@MarkusL
Hallo MarkusL,
konntest du das Problem irgendwie lösen, ich stehe im Moment genau an der gleichen Stelle, und bekomme keine Daten angezeigt.
Vielleicht kannst Du ja helfen.
Vielen Dank
Radler1 -
@Radler1
Hallo Radler,
nein, leider läuft das Script immer noch nicht. Hast Du es hinbekommen?
VG
Markus -
@markusl Sorry, ich war einige Zeit nicht hier
Es sollte funktionieren, wenn du digest-header installierst.Ich hatte das damals global gemacht : sudo npm i -g digest-header
Im JS editor wird es immer noch als "nicht gefunden" markiert, läuft aber (zumindest hier bei mir)
-
@peak3d
Habe Dein script importiert, leider zeigt das script registered 0 subscriptions and 0 schedules
an nach dem starten
Was muss ich hier noch einstellen ?Datenpunkte wurden angelegt