NEWS
Solarman PV, Bosswerk MI & Deye
-
Ich hatte ebenfalls die Fehlermeldung "[initializeStation] error: could not retrieve token". Node.js war aber auf Stand (V16.18.1, NPM 8.19.2). Der Objektbaum hat sich auch nicht gefüllt. Fehler war, dass ich als Passwort im SolarmanPV Adapter "admin" eingetragen hatte (=Default Passwort für die Wechselrichter GUI). Man muss jedoch das Passwort eintragen mit dem man sich bei Solarman.com registriert hat! Danach hat das Auslesen in IoBroker einwandfrei funktioniert.
-
Aktuelle Test Version 0.5.1 Veröffentlichungsdatum 23.06.2022 Github Link https://github.com/raschy/ioBroker.solarmanpv SolarmanPV, Adapter für Bosswerk MIxxx, Deyexxx.
Dieser Adapter dient dazu, Daten eines Balkonkraftwerks, die durch einen Wechselrichter "Bosswerk MI600" bereit gestellt werden, in ioBroker darzustellen. Nach Hinweisen ist dieser Adapter auch mit "Deye SUN300G3-EU-230" kompatibel. Er läuft ab Admin Version >5.
Ich gehe davon aus, dass die Anlage bisher durch die App "Solarman" beobachtet wird. Der Adapter holt die Daten aus dieser Cloud.
Zunächst muss beim Solarman-Support service@solarmanpv.com die benötigten Credentials (app_id & app_secret) beantragt werden. Möglicherweise kommt noch eine Rückfrage der Art: "Ich muss fragen, welche Plattform Sie verwenden? Welche Rolle spielen Sie? Sind Sie Einzelperson, OEM-Anbieter, Hersteller oder Distributor? Können Sie mir Ihre E-Mail-Adresse für die API mitteilen?".
Bei mir kam dann noch eine weitere Rückfrage: "Warum bewerben Sie sich für API?". Auch diese Frage habe ich höflich beantwortet und bekam dann am nächsten Tag die notwendigen Daten zugesendet.Auf der Admin-Seite müssen die 4 Felder der Beschreibung entsprechend ausgefüllt
werden. Dieser Adapter ist als "scheduled" Adapter angelegt. Da die Daten in der Cloud nur ca. alle 6 Minuten aktualisiert werden, ist es nicht sinnvoll, den Adapter häufiger starten zu lassen.Ich bin kein Profi-Programmierer und habe dies vor allem deswegen gemacht, weil die anderen Lösungen die ich bisher gefunden habe, mich nicht zufrieden gestellt haben.
Es ist mein erster Adapter, der sicher noch nicht perfekt programmiert ist oder evtl. noch kleinere Fehler enthält. Der Adapter läuft bei mir und macht was er soll. Mehr sollte es auch nicht werden.
Version 0.1.0 Nachdem ich lernen durfte, dass auch mehrere Stationen unter einem Account laufen können und dass sogar mehrere Wechselrichter innerhalb einer Station sein können, habe ich den Adapter dahingehend angepasst und auch die Datenstruktur um die 'Wechselrichter ID' erweitert.
Version 0.1.5 Ich hab den Adapter noch ein wenig erweitert, so dass er auch größere Wechselrichter mit 4 MPPTs verarbeiten kann. Auf der Admin-Seite ist ein Checkbutton "Inverter" hinzugekommen, der es auch ermöglicht, Hybrid-Wechselrichter auszulesen. Mangels Geräte (bzw. Zugriff auf ein Remote-Gerät) ist das aber noch nicht vollständig ausgetestet.
Version 0.2.0 Seit dieser Ausbaustufe werden auch die Daten aus den angeschlossenen Akkumulatoren, so denn der Wechselrichter das unterstützt, im ioBroker abgelegt. Auch hier gilt, da ich keine Akkus habe, dass ich auch hierfür die Unterstützung von netten Usern angewiesen war. Danke dafür.
Version 0.3.0 Seit dieser Version wird im Gegensatz zu den Vorgängerversionen keine Liste der zu ermittelnden Werte geführt, sondern es werden zunächst "alle" von der Api gelieferten Werte eingelesen. Das kann zu einer Flut neuer Datenpunkte werden. Der Benutzer kann über eine Blacklist die nicht benötigten Werte herausfiltern. Dazu trägt man im Userinterface unter Blacklist die Werte der ersten Spalte der Objekte durch Komma separiert ein, die man nicht sehen will. Die entsprechenden Datenpunkte können dann beherzt gelöscht werden, was die Anzahl der Objekte übersichtlicher macht.
Mein Credo von oben ('Mehr sollte es auch nicht werden.') kann ich wohl nicht mehr aufrecht erhalten. Durch die vielen Rückmeldungen ist der Adapter sehr vielfältig geworden, so dass er jetzt nicht nur die Daten von den Invertern lesen kann sondern auch vom Collector und den Batterien.
Somit ist es nicht verwunderlich, dass es auch die Versionen 0.4.x gab. aktuell ist die
Version 0.5.0 die folgende Veränderungen erfahren hat.
War es in der Version 0.3.0 schon möglich, dass aus der Flut der Daten, die aus der Cloud kommen, über "ausgeschlossene Werte" (vormals Blacklist) unwichtige Daten nicht mehr aktualisiert wurden, werden sie Datenpunkte jetzt auch direkt gelöscht. Manuelles löschen ist also nicht mehr notwendig. Dennoch ist die Auswahl der Datenpunkte individuelle Handarbeit. Dabei hat sich aber das Handling verbessert, so dass man die Werte jetzt besser sieht und auch wieder einzeln aktivieren kann.

Was ja auch noch auf der ToDo-Liste stand war, dass komplette Verzeichnisse ausgeblendet bzw. gelöscht werden können. Dazu gibt es jetzt einen neuen Tab "Systemmodule". Hier werden nach dem Start des Adapters die von der Cloud auslesbaren Module eingetragen und der User kann dann per Haken entscheiden, ob die Module interessant sind oder nicht.
Als letzte Neuerung ist hinzugekommen, dass ausgewählte Datenpunkte auf Null gesetzt werden können. Es mag für verschiedene Dashboards oder Grafiken befremdlich erscheinen, wenn bei völliger Dunkelheit noch 3-10 W Ertrag (letzter an die Cloud übermittelter Wert) angezeigt werden. Das kann man jetzt über

entsprechend dem eigenen Anspruch anpassen.Für Fragen und Anregungen habe ich immer ein offenes Ohr. Bin mal gespannt, wie viele User diesen Adapter einsetzen werden.
@rene55 Hi Rene,
vielen Dank für deine Arbeit, habe da ein kleines Problem, nach der installation bekomme ich folgende Warnung "[initializeStation] error: AxiosError: timeout of 2000ms exceeded" hast du eine Ahnung was da falsch läuft. -
@rene55 Hi Rene,
vielen Dank für deine Arbeit, habe da ein kleines Problem, nach der installation bekomme ich folgende Warnung "[initializeStation] error: AxiosError: timeout of 2000ms exceeded" hast du eine Ahnung was da falsch läuft.@ralf-roessler Hi Ralf, mit dieser Warnung hab ich auch öfters zu kämpfen. Das bedeutet eigentlich nur, dass der China-Server nicht rechtzeitig antworten konnte - warum auch immer. Beobachte mal, wie es sich in der nächsten Zeit entwickelt.
-
@ralf-roessler Hi Ralf, mit dieser Warnung hab ich auch öfters zu kämpfen. Das bedeutet eigentlich nur, dass der China-Server nicht rechtzeitig antworten konnte - warum auch immer. Beobachte mal, wie es sich in der nächsten Zeit entwickelt.
@rene55 OK, danke für die schnelle Antwort
-
@ralf-roessler Hi Ralf, mit dieser Warnung hab ich auch öfters zu kämpfen. Das bedeutet eigentlich nur, dass der China-Server nicht rechtzeitig antworten konnte - warum auch immer. Beobachte mal, wie es sich in der nächsten Zeit entwickelt.
@rene55 in den letzten 24 Stunden hat die synchronisierung ca. 4 mal funktioniert, besteht die Möglichkeit das timeout zu verlängern ? Oder muss ich damit leben aber dann ist das ganze für mich nicht nutzbar.
-
@ralf-roessler Hallo Ralf, ich habe das Timeout mal höher gestellt und teste es derzeit. Den sollte man aber auch nicht beliebig hoch schieben. Wenn alles ohne Probleme läuft, gibt es morgen eine 0.2.1. Dann hoffe ich mal, ist dieser Fehler geheilt.
-
@ralf-roessler Hallo Ralf, ich habe das Timeout mal höher gestellt und teste es derzeit. Den sollte man aber auch nicht beliebig hoch schieben. Wenn alles ohne Probleme läuft, gibt es morgen eine 0.2.1. Dann hoffe ich mal, ist dieser Fehler geheilt.
-
@integer63 Bei mir ist es aktuell so, dass ich mit Port 8899 den Modbus-Adapter etwa vier Sekunden grün habe, und dann wieder das rote Kreuz bei "Verbunden mit . .". Im Log sehe ich dann die Warnung
Poll error count: 1 code: {"err":"timeout","timeout":5000}und als FehlerClient in error state. Request timed out..
Ich komm hier auch nicht sonderlich weiter. Wie liest du denn die Register vom Victron aus? Holding-Register? -
@rene55 Oh man, sorry für die viel zu späte Antwort ...

Ich frage nur Werte ab und nutze dafür die "Eingangsregister":

@integer63 Danke für die Rückmeldung. Wie hast du denn deinen WR per Modbus physikalisch angeschlossen. Bei mir sehe ich nur die Möglichkeit über das integrierte WLAN-Modul.
-
@ralf-roessler Hallo Ralf, ich habe das Timeout mal höher gestellt und teste es derzeit. Den sollte man aber auch nicht beliebig hoch schieben. Wenn alles ohne Probleme läuft, gibt es morgen eine 0.2.1. Dann hoffe ich mal, ist dieser Fehler geheilt.
@rene55 Hi Rene, habe das neue Update installiert, leider noch immer der gleiche Fehler, es funktioniert einmal am Anfang und danach kommt der Timeoutfehler (es funktioniert ganz selten).
" [initializeStation] error: AxiosError: timeout of 4000ms exceeded" -
@rene55 Hi Rene, habe das neue Update installiert, leider noch immer der gleiche Fehler, es funktioniert einmal am Anfang und danach kommt der Timeoutfehler (es funktioniert ganz selten).
" [initializeStation] error: AxiosError: timeout of 4000ms exceeded"@ralf-roessler Das ist ärgerlich. Da bringt die Ausdehnung des Timeouts nicht wirklich was. Ich hatte heute auch 4 Warnungen im Log. Hast du eine dünne/wackelige Internetverbindung? Das könnte erklären, dass du viel mehr dieser Timeouts hast.
-
@ralf-roessler Das ist ärgerlich. Da bringt die Ausdehnung des Timeouts nicht wirklich was. Ich hatte heute auch 4 Warnungen im Log. Hast du eine dünne/wackelige Internetverbindung? Das könnte erklären, dass du viel mehr dieser Timeouts hast.
@rene55 Internet steht stabil, daran kann es nicht liegen. Arbeite den ganzen Tag problemlos darüber. Komisch ist das nach einem Neustart des Adapters erst mal alles eingelesen wird. Da kommen die Daten einmal.
-
@rene55 Internet steht stabil, daran kann es nicht liegen. Arbeite den ganzen Tag problemlos darüber. Komisch ist das nach einem Neustart des Adapters erst mal alles eingelesen wird. Da kommen die Daten einmal.
@ralf-roessler Ok, stabiles Internet ist schon mal gut. Ich geh mal davon aus, dass die Bandbreite eventuell durch HomeOffice / Videostreaming nicht voll ausgereizt ist. Aber dann fällt mir auch schon nichts mehr ein.
-
@ralf-roessler Ok, stabiles Internet ist schon mal gut. Ich geh mal davon aus, dass die Bandbreite eventuell durch HomeOffice / Videostreaming nicht voll ausgereizt ist. Aber dann fällt mir auch schon nichts mehr ein.
@rene55 trotzdem danke für deine Hilfe
-
@integer63 Danke für die Rückmeldung. Wie hast du denn deinen WR per Modbus physikalisch angeschlossen. Bei mir sehe ich nur die Möglichkeit über das integrierte WLAN-Modul.
@rene55 Ich bin nicht ganz sicher, ob ich die Frage richtig verstehe. Du brauchst ein Gerät, auf dem ein Venus OS läuft (bei mir ist es ein Cerbo GX, kann aber auch ein Raspi sein). Dort kann man dann Modbus aktivieren:

Und dann über die Netzwerkadresse des GX Gerätes ansprechen:

-
@rene55 Ich bin nicht ganz sicher, ob ich die Frage richtig verstehe. Du brauchst ein Gerät, auf dem ein Venus OS läuft (bei mir ist es ein Cerbo GX, kann aber auch ein Raspi sein). Dort kann man dann Modbus aktivieren:

Und dann über die Netzwerkadresse des GX Gerätes ansprechen:

@integer63 Ja. das ist schon die Antwort auf meine Frage. Also brauche ich noch ein Zusatzgerät und die Anbindung per RS485. Da ist bei mir schon Ende, da ich keinen RS485 Anschluss sondern nur WLAN habe. Ich geb mal Gas bei meinen Adapter

-
@rene55 Ich bin nicht ganz sicher, ob ich die Frage richtig verstehe. Du brauchst ein Gerät, auf dem ein Venus OS läuft (bei mir ist es ein Cerbo GX, kann aber auch ein Raspi sein). Dort kann man dann Modbus aktivieren:

Und dann über die Netzwerkadresse des GX Gerätes ansprechen:

@Rene55 Ich bekomme jetzt ziemlich viele Fehlermeldungen:
solarmanpv.0 2023-02-13 12:52:13.064 error DB closed solarmanpv.0 2023-02-13 12:52:13.063 error Error: DB closed at close (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:184:25) at Socket.<anonymous> (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:151:20) at Object.onceWrapper (events.js:520:26) at Socket.emit (events.js:400:28) at TCP.<anonymous> (net.js:686:12) solarmanpv.0 2023-02-13 12:52:13.062 error unhandled promise rejection: DB closed solarmanpv.0 2023-02-13 12:52:13.046 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(). solarmanpv.0 2023-02-13 12:52:13.018 error DB closed solarmanpv.0 2023-02-13 12:52:13.017 error Error: DB closed at close (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:184:25) at Socket.<anonymous> (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:151:20) at Object.onceWrapper (events.js:520:26) at Socket.emit (events.js:400:28) at TCP.<anonymous> (net.js:686:12) solarmanpv.0 2023-02-13 12:52:12.991 error unhandled promise rejection: DB closed solarmanpv.0 2023-02-13 12:52:12.989 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(). solarmanpv.0 2023-02-13 12:52:12.986 error DB closed solarmanpv.0 2023-02-13 12:52:12.966 error Error: DB closed at close (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:184:25) at Socket.<anonymous> (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:151:20) at Object.onceWrapper (events.js:520:26) at Socket.emit (events.js:400:28) at TCP.<anonymous> (net.js:686:12) solarmanpv.0 2023-02-13 12:52:12.965 error unhandled promise rejection: DB closed solarmanpv.0 2023-02-13 12:52:12.963 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(). solarmanpv.0 2023-02-13 12:52:12.944 error DB closed solarmanpv.0 2023-02-13 12:52:12.926 error Error: DB closed at close (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:184:25) at Socket.<anonymous> (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:151:20) at Object.onceWrapper (events.js:520:26) at Socket.emit (events.js:400:28) at TCP.<anonymous> (net.js:686:12) solarmanpv.0 2023-02-13 12:52:12.925 error unhandled promise rejection: DB closed -
@Rene55 Ich bekomme jetzt ziemlich viele Fehlermeldungen:
solarmanpv.0 2023-02-13 12:52:13.064 error DB closed solarmanpv.0 2023-02-13 12:52:13.063 error Error: DB closed at close (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:184:25) at Socket.<anonymous> (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:151:20) at Object.onceWrapper (events.js:520:26) at Socket.emit (events.js:400:28) at TCP.<anonymous> (net.js:686:12) solarmanpv.0 2023-02-13 12:52:13.062 error unhandled promise rejection: DB closed solarmanpv.0 2023-02-13 12:52:13.046 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(). solarmanpv.0 2023-02-13 12:52:13.018 error DB closed solarmanpv.0 2023-02-13 12:52:13.017 error Error: DB closed at close (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:184:25) at Socket.<anonymous> (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:151:20) at Object.onceWrapper (events.js:520:26) at Socket.emit (events.js:400:28) at TCP.<anonymous> (net.js:686:12) solarmanpv.0 2023-02-13 12:52:12.991 error unhandled promise rejection: DB closed solarmanpv.0 2023-02-13 12:52:12.989 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(). solarmanpv.0 2023-02-13 12:52:12.986 error DB closed solarmanpv.0 2023-02-13 12:52:12.966 error Error: DB closed at close (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:184:25) at Socket.<anonymous> (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:151:20) at Object.onceWrapper (events.js:520:26) at Socket.emit (events.js:400:28) at TCP.<anonymous> (net.js:686:12) solarmanpv.0 2023-02-13 12:52:12.965 error unhandled promise rejection: DB closed solarmanpv.0 2023-02-13 12:52:12.963 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(). solarmanpv.0 2023-02-13 12:52:12.944 error DB closed solarmanpv.0 2023-02-13 12:52:12.926 error Error: DB closed at close (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:184:25) at Socket.<anonymous> (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:151:20) at Object.onceWrapper (events.js:520:26) at Socket.emit (events.js:400:28) at TCP.<anonymous> (net.js:686:12) solarmanpv.0 2023-02-13 12:52:12.925 error unhandled promise rejection: DB closed -
@bambulko Das sieht nicht so gut aus. Kamen die Fehler beim Start oder beim Beenden des Adapters - oder einfach so?
