NEWS
APSystems EZ1-M
-
Hallo in die Runde!
Hat jemand ein Skript, um mit dem APSystems EZ1-M eine Null-Einspeisung zu realisieren?
So ein Skript könnte doch mit Blockly realisiert werden, trau mich da aber nicht ran. -
Leider bekomme ich bei dem apsystems.script immer die Fehlermeldung, dass das request package nicht mehr aktuell ist. Hat jemand dafür eine Lösung?
script.js.APsystems_Skript: request package is deprecated - please use httpGet (or a stable lib like axios) instead!
MOD-EDIT: Code in code-tags gesetzt!
Vielen Dank im Voraus!
-
Falls jemand kein Bock auf Script hat oder einen Adapter probieren will, kann gern bei mir rein schauen.
Ich bin kein JavaScript Entwickler, daher ist das ein wenig wild programmiert für einen nativen Java Entwickler, aber es tut.Liest die DeviceInfo(1x je Stunde) raus und die Leistungsdaten (konfigurierbar).
Mann kann Warnungen über erfolglose API Calls unterdrücken.
Bei erfolglosen API Calls wird das Updateintervall verdoppelt (abhängig von dem Nachtintervall), wenn es 3h übersteigt, wird es zurückgesetzt. Das hab ich eingebaut um nicht die ganze Nacht sinnlos zu rufen
Wenn es keinen erfolgreichen Call über 12h gab, kommt eine Warnung. Einfach um damit zu merken, dass irgendwas nicht stimmt.
-
@hefegraphie Vielen Dank für den Adapter - der kommt zur rechten Zeit.
Es gibt zwar schon einen EZ1 Adapter ( https://github.com/tobiasexner/ioBroker.ap-systems-ez1 ) der wird aber scheinbar nicht mehr weiter entwickelt, bzw. generelle notwendige Bug Fixes werden nicht eingebaut.So müllt dieser Adapter über Nacht das System mit Error Meldungen zu.
Seit dem letzten Javaskript Adapter (Beta Zweig 8.5.1) Update, funktioniert dieser Adapter gar nicht mehr. Heißt er gibt überhaupt keine Werte mehr aus.
Das eine Erzeugung statt findet, sehe ich an dem dahinter geschalteten Shelly der mir auf der Phase negativ Werte anzeigt. -
Kannst du mir den Fehlermeldungen etwa anfangen? Kamen heute plötzlich bei Himmel mit starkem Wolkendurchzug.
apsystemsez1.0 3076 2024-06-12 19:23:14.488 info State value to set for "apsystemsez1.0.EZ1-M.DeviceInfo.maxPower" has to be type "number" but received type "string"
apsystemsez1.0 3500 2024-06-12 17:19:42.132 warn Terminated (UNCAUGHT_EXCEPTION): Without reason apsystemsez1.0 3500 2024-06-12 17:19:42.029 error undefined is not a valid state value apsystemsez1.0 3500 2024-06-12 17:19:42.029 error Error: undefined is not a valid state value at Object.maybeCallbackWithError (C:\ioBroker\GLT\node_modules\@iobroker\js-controller-common-db\build\cjs\lib\common\maybeCallback.js:36:13) at AdapterClass._setState (C:\ioBroker\GLT\node_modules\@iobroker\js-controller-adapter\build\cjs\lib\adapter\adapter.js:3848:48) at AdapterClass.setState (C:\ioBroker\GLT\node_modules\@iobroker\js-controller-adapter\build\cjs\lib\adapter\adapter.js:3817:17) at Request._callback (C:\ioBroker\GLT\node_modules\iobroker.apsystemsez1\main.js:286:25) at self.callback (C:\ioBroker\GLT\node_modules\request\request.js:185:22) at Request.emit (node:events:519:28) at Request.<anonymous> (C:\ioBroker\GLT\node_modules\request\request.js:1154:10) at Request.emit (node:events:519:28) at IncomingMessage.<anonymous> (C:\ioBroker\GLT\node_modules\request\request.js:1076:12) at Object.onceWrapper (node:events:633:28) apsystemsez1.0 3500 2024-06-12 17:19:42.028 error unhandled promise rejection: undefined is not a valid state value apsystemsez1.0 3500 2024-06-12 17:19:42.028 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). apsystemsez1.0 3500 2024-06-12 17:19:42.028 error undefined is not a valid state value apsystemsez1.0 3500 2024-06-12 17:19:42.028 error Error: undefined is not a valid state value at Object.maybeCallbackWithError (C:\ioBroker\GLT\node_modules\@iobroker\js-controller-common-db\build\cjs\lib\common\maybeCallback.js:36:13) at AdapterClass._setState (C:\ioBroker\GLT\node_modules\@iobroker\js-controller-adapter\build\cjs\lib\adapter\adapter.js:3848:48) at AdapterClass.setState (C:\ioBroker\GLT\node_modules\@iobroker\js-controller-adapter\build\cjs\lib\adapter\adapter.js:3817:17) at Request._callback (C:\ioBroker\GLT\node_modules\iobroker.apsystemsez1\main.js:285:25) at self.callback (C:\ioBroker\GLT\node_modules\request\request.js:185:22) at Request.emit (node:events:519:28) at Request.<anonymous> (C:\ioBroker\GLT\node_modules\request\request.js:1154:10) at Request.emit (node:events:519:28) at IncomingMessage.<anonymous> (C:\ioBroker\GLT\node_modules\request\request.js:1076:12) at Object.onceWrapper (node:events:633:28) apsystemsez1.0 3500 2024-06-12 17:19:42.027 error unhandled promise rejection: undefined is not a valid state value apsystemsez1.0 3500 2024-06-12 17:19:42.027 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). apsystemsez1.0 3500 2024-06-12 17:19:42.026 error undefined is not a valid state value apsystemsez1.0 3500 2024-06-12 17:19:42.026 error Error: undefined is not a valid state value at Object.maybeCallbackWithError (C:\ioBroker\GLT\node_modules\@iobroker\js-controller-common-db\build\cjs\lib\common\maybeCallback.js:36:13) at AdapterClass._setState (C:\ioBroker\GLT\node_modules\@iobroker\js-controller-adapter\build\cjs\lib\adapter\adapter.js:3848:48) at AdapterClass.setState (C:\ioBroker\GLT\node_modules\@iobroker\js-controller-adapter\build\cjs\lib\adapter\adapter.js:3817:17) at Request._callback (C:\ioBroker\GLT\node_modules\iobroker.apsystemsez1\main.js:281:25) at self.callback (C:\ioBroker\GLT\node_modules\request\request.js:185:22) at Request.emit (node:events:519:28) at Request.<anonymous> (C:\ioBroker\GLT\node_modules\request\request.js:1154:10) at Request.emit (node:events:519:28) at IncomingMessage.<anonymous> (C:\ioBroker\GLT\node_modules\request\request.js:1076:12) at Object.onceWrapper (node:events:633:28) apsystemsez1.0 3500 2024-06-12 17:19:42.026 error unhandled promise rejection: undefined is not a valid state value apsystemsez1.0 3500 2024-06-12 17:19:42.025 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). apsystemsez1.0 3500 2024-06-12 17:19:42.025 error undefined is not a valid state value apsystemsez1.0 3500 2024-06-12 17:19:42.025 error Error: undefined is not a valid state value at Object.maybeCallbackWithError (C:\ioBroker\GLT\node_modules\@iobroker\js-controller-common-db\build\cjs\lib\common\maybeCallback.js:36:13) at AdapterClass._setState (C:\ioBroker\GLT\node_modules\@iobroker\js-controller-adapter\build\cjs\lib\adapter\adapter.js:3848:48) at AdapterClass.setState (C:\ioBroker\GLT\node_modules\@iobroker\js-controller-adapter\build\cjs\lib\adapter\adapter.js:3817:17) at Request._callback (C:\ioBroker\GLT\node_modules\iobroker.apsystemsez1\main.js:280:25) at self.callback (C:\ioBroker\GLT\node_modules\request\request.js:185:22) at Request.emit (node:events:519:28) at Request.<anonymous> (C:\ioBroker\GLT\node_modules\request\request.js:1154:10) at Request.emit (node:events:519:28) at IncomingMessage.<anonymous> (C:\ioBroker\GLT\node_modules\request\request.js:1076:12) at Object.onceWrapper (node:events:633:28) apsystemsez1.0 3500 2024-06-12 17:19:42.024 error unhandled promise rejection: undefined is not a valid state value apsystemsez1.0 3500 2024-06-12 17:19:42.024 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). apsystemsez1.0 3500 2024-06-12 17:19:42.023 error undefined is not a valid state value apsystemsez1.0 3500 2024-06-12 17:19:42.023 error Error: undefined is not a valid state value at Object.maybeCallbackWithError (C:\ioBroker\GLT\node_modules\@iobroker\js-controller-common-db\build\cjs\lib\common\maybeCallback.js:36:13) at AdapterClass._setState (C:\ioBroker\GLT\node_modules\@iobroker\js-controller-adapter\build\cjs\lib\adapter\adapter.js:3848:48) at AdapterClass.setState (C:\ioBroker\GLT\node_modules\@iobroker\js-controller-adapter\build\cjs\lib\adapter\adapter.js:3817:17) at Request._callback (C:\ioBroker\GLT\node_modules\iobroker.apsystemsez1\main.js:279:25) at self.callback (C:\ioBroker\GLT\node_modules\request\request.js:185:22) at Request.emit (node:events:519:28) at Request.<anonymous> (C:\ioBroker\GLT\node_modules\request\request.js:1154:10) at Request.emit (node:events:519:28) at IncomingMessage.<anonymous> (C:\ioBroker\GLT\node_modules\request\request.js:1076:12) at Object.onceWrapper (node:events:633:28) apsystemsez1.0 3500 2024-06-12 17:19:42.022 error unhandled promise rejection: undefined is not a valid state value apsystemsez1.0 3500 2024-06-12 17:19:42.021 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). apsystemsez1.0 3500 2024-06-12 17:19:42.020 error undefined is not a valid state value apsystemsez1.0 3500 2024-06-12 17:19:42.020 error Error: undefined is not a valid state value at Object.maybeCallbackWithError (C:\ioBroker\GLT\node_modules\@iobroker\js-controller-common-db\build\cjs\lib\common\maybeCallback.js:36:13) at AdapterClass._setState (C:\ioBroker\GLT\node_modules\@iobroker\js-controller-adapter\build\cjs\lib\adapter\adapter.js:3848:48) at AdapterClass.setState (C:\ioBroker\GLT\node_modules\@iobroker\js-controller-adapter\build\cjs\lib\adapter\adapter.js:3817:17) at Request._callback (C:\ioBroker\GLT\node_modules\iobroker.apsystemsez1\main.js:278:25) at self.callback (C:\ioBroker\GLT\node_modules\request\request.js:185:22) at Request.emit (node:events:519:28) at Request.<anonymous> (C:\ioBroker\GLT\node_modules\request\request.js:1154:10) at Request.emit (node:events:519:28) at IncomingMessage.<anonymous> (C:\ioBroker\GLT\node_modules\request\request.js:1076:12) at Object.onceWrapper (node:events:633:28) apsystemsez1.0 3500 2024-06-12 17:19:42.017 error unhandled promise rejection: undefined is not a valid state value
-
@jb_sullivan ja. Es bedeutet, dass keine erfolgreiche API Anfrage ausgeführt werden konnte. Eigentlich hab ich versucht das mit einer Warnung einzufangen. Irgendwas klappt da aber noch nicht ganz recht. Bin grad im Urlaub und kann es mir erst danach ansehen.
Praktisch ist das bis auf die unschönen Fehlermeldungen nicht schlimm. Er macht danach einfach weiter.
Nichts desto trotz muss ich das mal in den Griff bekommen.
-
@jb_sullivan hab es mal angepasst und nun 24 stunden keine fehler mehr erhalten. hoffe es hat es getan. installier dir die neuste Version aus dem github, dann müsste es bei dir auch gehen. sag mir gern bescheid
Edit: Doch nicht. Muss es mir weiter ansehen.
-
Hast du dir ggf. mal den Code von dem anderen EZ-1 Adapter angesehen? Da hatte ich in der Vergangenheit nicht solche Probleme.
Das dass Balkonkraftwerk liefert sieht man hier an der Shelly Einspeise Messung.
Wenn man den Adapter dann neu startet, tut er es auch eine Zeit lang wieder und beschreibt seine Datenpunkte, welche dann natürlich auch wieder in Influxdb geschrieben werden und als Grafik ausgewertet werden können.
apsystemsez1.0 2024-06-18 11:46:34.308 info State value to set for "apsystemsez1.0.EZ1-M.DeviceInfo.maxPower" has to be type "number" but received type "string" apsystemsez1.0 2024-06-18 11:46:34.305 info State value to set for "apsystemsez1.0.EZ1-M.DeviceInfo.minPower" has to be type "number" but received type "string" apsystemsez1.0 2024-06-18 11:46:31.760 info starting. Version 0.0.2 (non-npm: hefegraphie/ioBroker.apsystemsez1) in C:/ioBroker/GLT/node_modules/iobroker.apsystemsez1, node: v20.14.0, js-controller: 6.0.4 apsystemsez1.0 2024-06-18 11:46:11.874 info terminating apsystemsez1.0 2024-06-18 11:46:11.371 info Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason apsystemsez1.0 2024-06-18 11:46:11.370 info terminating apsystemsez1.0 2024-06-18 11:46:11.366 info Got terminate signal TERMINATE_YOURSELF apsystemsez1.0 2024-06-18 11:45:16.971 info State value to set for "apsystemsez1.0.EZ1-M.DeviceInfo.maxPower" has to be type "number" but received type "string" apsystemsez1.0 2024-06-18 11:45:16.970 info State value to set for "apsystemsez1.0.EZ1-M.DeviceInfo.minPower" has to be type "number" but received type "string" apsystemsez1.0 2024-06-18 11:45:14.792 info starting. Version 0.0.2 (non-npm: hefegraphie/ioBroker.apsystemsez1) in C:/ioBroker/GLT/node_modules/iobroker.apsystemsez1, node: v20.14.0, js-controller: 6.0.4
-
@jb_sullivan ich hab den undefined status nun vor jede zuweisung des wertes abgefragt und schreibe nur, wenn dieser nicht undefined ist. probier das gern mal aus.
ich hatte aber auch mit meiner kösung davor nun 2 tage keine fehler mehr. welches Intervall nutzt du? dann versuch ich das mal nachzustellen.
was mich wundert ist, dass bei deinem gezeigten log gar keine fehler zu sehen sind.
wie installierst du neu?das number <> string problem kannst du lösen indem du die datenpunkte für minPower und maxPower einmal per hand löscht und die instanz neu startest. dann werden die datenpunkte richtig angelegt. war ein fehler in einer älteren version.
sollte hier aber nicht die ursache des neustarts des adapers sein. -
@hefegraphie sagte in APSystems EZ1-M:
was mich wundert ist, dass bei deinem gezeigten log gar keine fehler zu sehen sind.
wie installierst du neu?Ich stoppe den Adapter, installiere über GIT und mache dann noch einen Datei upload um danach die Instanz wieder zu starten.
Als Verzögerung habe ich 20 Sekunden und für "Nachts" 3600 Sekunden eingetragen.
Ich habe es jetzt eben nochmal von GIT nach dem oben beschriebenen Schema installiert.
Aktuell gibt es nichts ungewähnliches und die DP`s werden auch regelmäßig ausgelesen. Sieht soweit erstmal gut aus.
apsystemsez1.0 2024-06-19 07:45:11.405 info starting. Version 0.0.2 (non-npm: hefegraphie/ioBroker.apsystemsez1) in C:/ioBroker/GLT/node_modules/iobroker.apsystemsez1, node: v20.14.0, js-controller: 6.0.4 apsystemsez1.0 2024-06-19 07:39:25.560 info terminating apsystemsez1.0 2024-06-19 07:39:25.057 info Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason apsystemsez1.0 2024-06-19 07:39:25.055 info terminating apsystemsez1.0 2024-06-19 07:39:25.053 info Got terminate signal TERMINATE_YOURSELF
-
@jb_sullivan ok. danke.
hab es auch mal auf 20 gesetzt. mir haben 60 gereicht. mal gucken wie er sich verhält -
Zu früh gefreut - ich hatte zwischendurch wieder einen Ausfall wo keine Daten angekommen sind, dann aber offensichtlich von alleine wieder da waren.
Im Log gab es nur diese eine "Fehlermeldung" (warn)
apsystemsez1.0 2024-06-19 14:16:36.558 warn Keine Daten erhalten, bitte IP oder Verbindung prüfen.
-
@jb_sullivan das würde ich jetzt aber mal als gewolltes verhalten interpretieren. Ein Aufruf schlug fehl. Das wurde mit der Warnung angefangen und dann das "Nachtintervall" gestartet. Bei dir eine Stunde.
Dass der Aufruf fehl schlägt liegt dann aber nicht am Adapter. Vielleicht grad ein schlechtes WLAN Signal.
Ich hab bei mir das Nachtintervall auf 5 min gestellt.
Intern hab ich dann eine Logik im Adapter. Wenn er wieder fehl schlägt, wartet er 10 Minuten. Dann 20,... 40...80...
Bis er bei 3h ist. Dann setzt er es auf 5 zurück und startet den Zyklus neu.So hast Du bei einem gescheiterten Fehlersuch nur eine 5 min Lücke. Nicht gleich 1h.
-
@hefegraphie Hallo, Danke für den Adapter.
Ich habe ihn Gestern Nacht Installiert und heute morgen wo der Wechselrichter schon produziert hat, IP eingegeben aber es kommt die Fehlermeldung "Keine Devicedaten, bitte IP oder Verbindung prüfen." Adapter ist grün. -
@ferzbeidel Du schreibst es ja schon selber "gestern Nacht" - scheint Nachts die Sonne? Somit auch keine Daten vom Wechselrichter. Sollte sich ja heute schon erledigt haben - oder?
-
@ferzbeidel genau. Wie @JB_Sullivan schreibt. Der wechselrichter an sich arbeitet nur mit dem Strom der Module. Ist nachts also nicht erreichbar. Zur aktuellen Jahreszeit schickt er bei mir ab ca. 4.30 Uhr die ersten Daten.
-
@hefegraphie Ich habe vergessen zu schreiben das ich Natürlich am Tag probiert habe wo er Strom produzierte.
-
@ferzbeidel hast du in der app den lokalen Modus eingeschaltet?
Was passiert bei dir im Browser wenn du
http://192.168.178.xxx:8050/getOutputData
Aufrufst? (Natürlich durch deine IP ersetzen. -
@hefegraphie Danke für deine schnelle Antwort, lokalen Modus habe ich nicht an, habe auch nirgends gelesen das man den an machen muss. Im lokalen Modus gehen alle Cloud Daten verloren, oder?
-
@hefegraphie Bin jetzt im lokalen Modus und es funktioniert.