NEWS
APSystems EZ1-M
-
@dragon
Hey!Da muss ich auch nochmal genau nachfragen.
Habe ich es richtig verstanden, dass ich entweder die App nutzen kann ODER Daten über den ioBroker im Lokal Mode einlesen kann?
Gibt es keine andere Möglichkeit z.B. über die Cloud?Viele Grüße
Jens -
@jensemann200 sagte in APSystems EZ1-M:
@dragon
Hey!Da muss ich auch nochmal genau nachfragen.
Habe ich es richtig verstanden, dass ich entweder die App nutzen kann ODER Daten über den ioBroker im Lokal Mode einlesen kann?
Gibt es keine andere Möglichkeit z.B. über die Cloud?Viele Grüße
Jensentweder App oder lokaler Modus
-
@fatmax said in APSystems EZ1-M:
@jensemann200 sagte in APSystems EZ1-M:
@dragon
Hey!Da muss ich auch nochmal genau nachfragen.
Habe ich es richtig verstanden, dass ich entweder die App nutzen kann ODER Daten über den ioBroker im Lokal Mode einlesen kann?
Gibt es keine andere Möglichkeit z.B. über die Cloud?Viele Grüße
Jensentweder App oder lokaler Modus
Sorry der Nächste der es genau verstehen möchte mit dem Hintergrund/Frage/Wunsch einer redundanten Datenhaltung.
Wenn ich den EZ1 im lokalen Modus betreibe, was passiert mit den Produktionsdaten Gesamtzähler? Bleibt dieser Zähler gespeichert im WR?
Dass ich da zur Not auch über BT rankäme, aber weitere Auflösung mit Zeitstempel (Monats oder sogar Tageswerte) wird es dort nicht geben, richtig?
-
@dieter_p sagte in APSystems EZ1-M:
@fatmax said in APSystems EZ1-M:
@jensemann200 sagte in APSystems EZ1-M:
@dragon
Hey!Da muss ich auch nochmal genau nachfragen.
Habe ich es richtig verstanden, dass ich entweder die App nutzen kann ODER Daten über den ioBroker im Lokal Mode einlesen kann?
Gibt es keine andere Möglichkeit z.B. über die Cloud?Viele Grüße
Jensentweder App oder lokaler Modus
Sorry der Nächste der es genau verstehen möchte mit dem Hintergrund/Frage/Wunsch einer redundanten Datenhaltung.
Wenn ich den EZ1 im lokalen Modus betreibe, was passiert mit den Produktionsdaten Gesamtzähler? Bleibt dieser Zähler gespeichert im WR?
Dass ich da zur Not auch über BT rankäme, aber weitere Auflösung mit Zeitstempel (Monats oder sogar Tageswerte) wird es dort nicht geben, richtig?
@Dieter_P hab ich noch nicht ausprobiert, da sich die Frage für mich eigentlich nicht stellt.
Der Grund auf den lokalen Modus zu wechseln ist ja die Daten ins Smarthome zu bekommen und extern zu verarbeiten bzw. in einer DB zu speichern.
Ich denke es gibt keine Redundanz, da müsste entsprechender Speicher im WR vorhanden sein um das alles zu speichern.
Ich denke das wurde immer lfd. in die Cloud des Herstellers geladen. -
@fatmax
Danke fürs Feedback. Werde meinen EZ1 dieses Wochenende in Betrieb nehmen.Für mich sind das Daten ich gerne auch noch in 10 Jahren einsehen würde. Weder die Herstellercloud noch mein SmartHome befürchte ich aus Erfahrung überlebt das Unfallfrei. Daher wäre eine parallele Nutzung aus meiner Sicht schon mal nice und ein erster Schritt. So bleibt mir nur die DB mit einem doppelten Boden auszurüsten und täglich Backups zu fahren. Thx
-
@dieter_p sagte in APSystems EZ1-M:
@fatmax
Danke fürs Feedback. Werde meinen EZ1 dieses Wochenende in Betrieb nehmen.Für mich sind das Daten ich gerne auch noch in 10 Jahren einsehen würde. Weder die Herstellercloud noch mein SmartHome befürchte ich aus Erfahrung überlebt das Unfallfrei. Daher wäre eine parallele Nutzung aus meiner Sicht schon mal nice und ein erster Schritt. So bleibt mir nur die DB mit einem doppelten Boden auszurüsten und täglich Backups zu fahren. Thx
Ich würde mir eher Sorgen machen ob der WR in 10 Jahren noch hält
Da wäre die Lösung mit DB flexibler, da kannst du ggf. nach einem WR-Tausch noch auf die alten Daten zugreifen und neue reinschreiben.
Bei lokaler Speicherung am WR wären die Daten dann fort. -
@dieter_p Ich würde auch eine doppelte Lösung gut finden. Vielleicht gibt es ja auch die Möglichkeit. an die Cloud-Daten heranzukommen und im ioBroker zu verarbeiten?
-
@jensemann200 said in APSystems EZ1-M:
Vielleicht gibt es ja auch die Möglichkeit. an die Cloud-Daten heranzukommen und im ioBroker zu verarbeiten?
Denke das bringt mich nicht wirklich weiter. Ein Idealfall wäre für mich etwas wie es bei Shelly möglich ist. Die Date gehen in die Cloud und können auch direkt lokal verwendet werden. So mache ich lieber meine lokale Lösung verfügbarer bzw. treffe Vorkehrungen gegen Datenverlust. Die Herstellercloud liegt nicht in meinem Einflußbereich und kann morgen weg sein.
Edit: Also der EZ1 ist nun in Betrieb. Da ich eh als Remote-Schaltoption einen Shelly davor betreibe (1PM) ist für mich der lokale Betriebsmodus nicht mehr interessant. Nutze lieber die AP Systems Cloud als zusätzliches Datengrab und die Leistungsdaten an den IOBroker sowie das 2te Datengrab liefert der Shelly parallel. Das 3te Datengrab ist dann die DB angebunden an IOBroker. Also in Summe für die <0,5€ Tagesproduktion eines BKW schon viel zu viel TamTam für meinen Geschmack
-
Sorry für den Off-Topic
Habt ihr schon mal die App Daten mit der lokalen Anbindung und vielleicht einer externen Messung wie über einen Shelly verglichen?
Geht zwar ums Erbsenzählen, aber wunder mich schon dass die angezeigte Spitzenleistung des Tages in der App/Cloud zB 406W sagt ich aber über den Shelly mehrere Minuten schon 460W heute und auch kurzzeitig mehr als 500W gesehen habe.
Will jetzt nicht sagen, dass der Shelly genauer mißt nur bei >10% werde ich skeptisch.
Ähnlisches umgedreht bei der Tagesproduktion App 1,0kWh und der Shelly 0,707kWh.
Habt ihr ähnliche Beobachtung gemacht und habt ggf schon identifiziert woher die teils 30% Abweichungen kommen?
-
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