NEWS
Adapter: energymanager (EON Aura bzw. Solarwatt)
-
@lutzer
Der Adapter ruft die REST API auf und wertet die Daten aus.60 Sekunden sollte eigentlich keine Überlastung des Energymanagers bewirken. Bei stehen hier 15 Sekunden.
Ein Reboot des Managers bringt vermutlich keine Besserung?
-
Nein ein neu Start bringt nichts. Ich hatte sogar ein Austausch Gerät da. Das lief zwei Tage...
Sobald der Adapter läuft ist der EM nicht mehr erreichbar. Oder halt alle paar Minuten.
Ping geht aber Port 80 und 443 gibt es nicht mehr.
Daher meine Vermutung das der Adapter das Gerät abschmieren lässt.
Ich habe auch alles mögliche im Netzwerk ausprobiert...
Ist übrigens schon seit Dezember 2018 mein Problem.
Hatte auch hier schon dazu geschrieben. Vielleicht hast du irgend etwas anders gemacht seit dem?Bei solarwatt sagt man natürlich das die Geräte nicht dafür gemacht sind.
Echt schade weil ich die Daten schon gerne im iobroker hätte... -
@lutzer
Dass du geschrieben hattest weiß ich noch. Aber es kam dann keine Antwort mehr auf die Rückfragen.Welche Version des Adapters hast du installiert? Vermutlich die neueste. Wie schnell reagiert denn ein regulärer Aufruf des Energymanagers über die Weboberfläche?
Bei mir ist der Manager sogar erreichbar, wenn ich auf einem zweiten Testsystem parallel einen weiteren Adapter startet. Sehr mysteriös.
-
Ich habe den Adapter immer prav aktualisiert. Also jetzt der neueste.
Im Moment komme ich ohne Probleme auf den Manager. So richtig rund scheint die Software auf den Dingern auch nicht zu laufen. Einmal einrichten und gut, dass ist sicher die Vorstellung des Herstellers.Den Adapter lasse ich jetzt erst mal aus und beobachte den Manager.
Könnte man nicht einfach die 10 Werte mit JavaScript abholen? Es liegt ja alles im json Format vor.
Hast du da vielleicht mal ein Beispiel?
JavaScript ist bei mir noch sehr in den Anfängen.
So könnte ich erst mal die wichtigsten Daten bekommen, bis ich eine Lösung habe.Der EM wird auch gerade regelmäßig geupdatet. Die müssen ja auch was tun weil die bald Verbraucher direkt schalten können wollen und wer eine Wallbox hat braucht ja auch Daten.
https://www.solarwatt.de/schalten-neu
Die Logik würde ich dann lieber dem iobroker überlassen. Da habe ich wenigstens alle Geräte drin.
Der Adapter für das isg läuft übrigens sehr gut.
-
@lutzer sagte in Adapter: energymanager (EON Aura bzw. Solarwatt):
Könnte man nicht einfach die 10 Werte mit JavaScript abholen?
Das geht natürlich. Lies dir dazu mal den folgenden Eintrag durch. Ist zwar für openhab2, aber dafür hatte ich keinen Adapter entwickelt.
Das Problem ist dabei nur, dass dir das vermutlich nicht helfen wird. Die Werte werden vom Adapter nur einmal abgeholt und dann von ioBroker aufgesplittet. Also nicht für jeden Wert einmal.
Den Adapter hast du vermutlich auch schon mal komplett gelöscht?
-
Das sieht doch schon mal gut aus. Könntest du mir da bei der Umsetzung in JavaScript noch helfen? Für ein Beispiel...
Man könnte doch im JS die Werte der json abholen und in eine eigene Variable schreiben.
Ich möchte das ganze nur für die Live Ansicht nutzen. Die "alten" Werte hole ich mir dann am Ende des Monats immer aus der Cloud.//Rules-Datei für Energie rule "Get Power Usage" when Time cron "0/15 * * * * ?" then var String json = sendHttpGetRequest("http://192.XXX.XXX.XXX/rest/kiwigrid/wizard/devices") //Batteriestand var String value = transform("JSONPATH", "$.result.items[?(@.guid == 'urn:solarwatt:myreserve:bc:xxxxxxxxxxx')].tagValues.StateOfCharge.value", json) value = value.stripStart("[") value = value.stripEnd("]") var Number value2 = DecimalType.valueOf(value) postUpdate(energieLadestand, value2) //Einspeisung value = transform("JSONPATH", "$.result.items[?(@.guid == 'urn:kiwigrid:location:XXXXX-XXXXXXXX:0')].tagValues.PowerOut.value", json) value = value.stripStart("[") value = value.stripEnd("]") value2 = DecimalType.valueOf(value) postUpdate(energieEinspeisung, value2) //Batterieladung value = transform("JSONPATH", "$.result.items[?(@.guid == 'urn:kiwigrid:location:XXXXX-XXXXXXXX:0')].tagValues.PowerBufferedFromProducers.value", json) value = value.stripStart("[") value = value.stripEnd("]") value2 = DecimalType.valueOf(value) postUpdate(energieBatterieladung, value2) //Gesamterzeugung value = transform("JSONPATH", "$.result.items[?(@.guid == 'urn:kiwigrid:location:XXXXX-XXXXXXXX:0')].tagValues.PowerProduced.value", json) value = value.stripStart("[") value = value.stripEnd("]") value2 = DecimalType.valueOf(value) postUpdate(energieGesamterzeugung, value2) //Bezug value = transform("JSONPATH", "$.result.items[?(@.guid == 'urn:kiwigrid:location:XXXXX-XXXXXXXX:0')].tagValues.PowerConsumedFromGrid.value", json) value = value.stripStart("[") value = value.stripEnd("]") value2 = DecimalType.valueOf(value) postUpdate(energieBezug, value2) //Batterieentladung value = transform("JSONPATH", "$.result.items[?(@.guid == 'urn:kiwigrid:location:XXXXX-XXXXXXXX:0')].tagValues.PowerConsumedFromStorage.value", json) value = value.stripStart("[") value = value.stripEnd("]") value2 = DecimalType.valueOf(value) postUpdate(energieBatterieentladung, value2) //Gesamtverbrauch value = transform("JSONPATH", "$.result.items[?(@.guid == 'urn:kiwigrid:location:XXXXX-XXXXXXXX:0')].tagValues.PowerConsumed.value", json) value = value.stripStart("[") value = value.stripEnd("]") value2 = DecimalType.valueOf(value) postUpdate(energieGesamtverbrauch, value2) end
-
@lutzer
Hab diese Woche recht wenig Zeit,sry.Aber versuch es doch mal in Blockly. "Blockly JSON" ergibt bei Google und auch hier im Forum gute Ergebnisse.
Läuft eigentlich der Adapter, wenn die Verbindung zur Cloud gekappt wird? Vllt. braucht diese Verbindung auch recht viele Ressourcen?
-
Ok danke, ich bin schon dabei mich mit json usw. Zu beschäftigen.
Ist halt wie mit allem, wenn man anfängt und erst mal nichts funktioniert und man nicht weiß warum ist das sehr mühselig.Ich habe noch keinen Test ohne Internet und nur Adapter gemacht. Der EM wartet auch und sendet später wenn es gerade nicht geht.
Eigentlich ist es ja gar nicht so viel was der Adapter will.Deswegen möchte ich jetzt erst mal diese Werte die ich brauche nur bei Bedarf abrufen.
Eigentlich könnte ich ja auch mit einem blockly den Adapter starten und wieder stoppen.Den request steht ja in deinem file.
Was bei mir nicht klappt ist das parsen.
Im externen JavaScript Editor klappt das, aber iobroker ist da etwas anders irgendwie. -
@unltdnetworx ich hätte da mal einen Fehler ... kommt ab und an mal..
ist mir heute zuerst aufgefallen.. da ich mir die logs nach langer zeit mal wieder angeschaut habeda müsste noch eine Abfrage .. ob das gelieferte object da ist..
https://github.com/unltdnetworx/ioBroker.energymanager/issues/13
-
@arteck
Jetzt sollte der Fehler hoffentlich nicht mehr auftreten (Update über Github). Schaus dir bitte mal an und gib mir kurz Bescheid. Danke -
@unltdnetworx immer noch
2019-10-16 02:48:08.452 - [31merror[39m: host.iobroker Caught by controller[0]: TypeError: Cannot read property 'deviceClass' of undefined 2019-10-16 02:48:08.453 - [31merror[39m: host.iobroker Caught by controller[0]: at Request._callback (/opt/iobroker/node_modules/iobroker.energymanager/main.js:216:71) 2019-10-16 02:48:08.453 - [31merror[39m: host.iobroker Caught by controller[0]: at Request.self.callback (/opt/iobroker/node_modules/request/request.js:185:22) 2019-10-16 02:48:08.453 - [31merror[39m: host.iobroker Caught by controller[0]: at Request.emit (events.js:198:13) 2019-10-16 02:48:08.453 - [31merror[39m: host.iobroker Caught by controller[0]: at Request.<anonymous> (/opt/iobroker/node_modules/request/request.js:1161:10) 2019-10-16 02:48:08.453 - [31merror[39m: host.iobroker Caught by controller[0]: at Request.emit (events.js:198:13) 2019-10-16 02:48:08.453 - [31merror[39m: host.iobroker Caught by controller[0]: at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/request/request.js:1083:12) 2019-10-16 02:48:08.454 - [31merror[39m: host.iobroker Caught by controller[0]: at Object.onceWrapper (events.js:286:20) 2019-10-16 02:48:08.454 - [31merror[39m: host.iobroker Caught by controller[0]: at IncomingMessage.emit (events.js:203:15) 2019-10-16 02:48:08.454 - [31merror[39m: host.iobroker Caught by controller[0]: at endReadableNT (_stream_readable.js:1145:12) 2019-10-16 02:48:08.454 - [31merror[39m: host.iobroker Caught by controller[0]: at process._tickCallback (internal/process/next_tick.js:63:19) 2019-10-16 02:48:39.432 - [32minfo[39m: energymanager.0 (21025) starting. Version 1.2.2 in /opt/iobroker/node_modules/iobroker.energymanager, node: v10.16.3 2019-10-16 02:48:46.212 - [31merror[39m: energymanager.0 (21025) uncaught exception: Cannot read property 'deviceClass' of undefined 2019-10-16 02:48:46.213 - [31merror[39m: energymanager.0 (21025) TypeError: Cannot read property 'deviceClass' of undefined at Request._callback (/opt/iobroker/node_modules/iobroker.energymanager/main.js:216:71) at Request.self.callback (/opt/iobroker/node_modules/request/request.js:185:22) at Request.emit (events.js:198:13) at Request.<anonymous> (/opt/iobroker/node_modules/request/request.js:1161:10) at Request.emit (events.js:198:13) at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/request/request.js:1083:12) at Object.onceWrapper (events.js:286:20) at IncomingMessage.emit (events.js:203:15) at endReadableNT (_stream_readable.js:1145:12) at process._tickCallback (internal/process/next_tick.js:63:19)
bist du sicher das der knotenpunkt da ist ??
ach ich seh gerade der energymanager ist nicht da
2019-10-16 02:47:14.841 - [31merror[39m: energymanager.0 (7511) Error: connect ECONNREFUSED 192.168.xxx.xxx:80 2019-10-16 02:48:08.207 - [31merror[39m: energymanager.0 (7511) uncaught exception: Cannot read property 'deviceClass' of undefined
-
@arteck
Okay. Immerhin liegt es dann nicht am Adapter.Ist die Weboberfläche erreichbar?
-
@unltdnetworx um 2 uhr 48 kein plan.. aber.. ic bin die LOGs zurückgegnagen es scheont als ob dieser um die uhrzeit neu starten würde.. ist immer um 2:49.. ist mir nie aufgefallen
mach mal bitte ein try catch block um das ganze... mit einer kontrollierten error ausgabe
-
@arteck
Bei taucht der Fehler "leider" absolut nicht auf. Hab ne neue Version auf Github gestellt. Bitte teste die mal. -
@unltdnetworx na dann schau ich mal
-