NEWS
Neuer Adapter: SMA Wechselrichter mit sbfspot
-
@wendy2702 Ja, kann man eigentlich schon. Aber leider hatte mich der Sunnyexplorer aufgefordert mein Passwort zu ändern. Das habe ich blöderweise getan und dann kam es bei der Übertragung zum Timeout-Fehler. Seitdem kann ich mich nicht mehr einloggen. Hätte ich es mal beim Standardpasswort gelassen. Naja, nun ist es so. Ich warte immer noch. SMA support hat meiner Erfahrung nach eine lange response time
@Rene_HM: Na dann werde ich das mal probieren. Ich bin schon ganz gespannt
-
Hallo,
ich habe sbfspot soweit installiert. Ich denke auch erfolgreich soweit. Es läuft auf dem zweiten Raspi, der als slave läuft.
Anscheinend läuft der Adapter aber noch nicht richtig. Ich sehe im LOG folgende Fehlermeldung:8788) exception in DB_Connect [Error: /opt/iobroker/node_modules/better-sqlite3/build/Release/better_sqlite3.node: undefined symbol: _ZN7Stateme/tIteratorD1Ev]
Hat jemand eine Idee was das bedeutet?
-
@bastelritius sagte in Neuer Adapter: SMA Wechselrichter mit sbfspot:
- exception in DB_Connect [Error: /opt/iobroker/node_modules/better-sqlite3/build/Release/better_sqlite3.node: undefined symbol: _ZN7Stateme/tIteratorD1Ev]
Leider ist das Log etwas abgeschnitten so das mannschaftliche sagen kann das es wirklich von dem Adapter erzeugt wird.
-
@wendy2702wie abgeschnitten. Mehr steht nicht drin
Das ist alles:sbfspot.0 2021-03-10 16:55:04.136 error (11514) exception in DB_Connect [Error: /opt/iobroker/node_modules/better-sqlite3/build/Release/better_sqlite3.node: undefined symbol: _ZN7Stateme/tIteratorD1Ev]
Es wird mir am Adapter unter der Instanzen auch kein grüner Pünktchen mit dem Status des Adapter angezeigt. Objekte werden auch nicht angelegt.
-
@bastelritius
Da muss noch mehr in der Zeile stehen. Am besten einen ganzen Block auch der davor oder danach stehenden Zeilen posten. -
OK, dann jetzt noch mal alles ab Adapterneustart:
host.iobroker2 2021-03-10 17:35:05.523 info instance system.adapter.sbfspot.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION) sbfspot.0 2021-03-10 17:35:04.933 info (1135) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason sbfspot.0 2021-03-10 17:35:04.931 debug (1135) Plugin sentry destroyed sbfspot.0 2021-03-10 17:35:04.929 debug (1135) timer killed sbfspot.0 2021-03-10 17:35:04.928 info (1135) all done ... sbfspot.0 2021-03-10 17:35:04.927 debug (1135) disconnect database sbfspot.0 2021-03-10 17:35:04.925 error (1135) exception in DB_Connect [Error: /opt/iobroker/node_modules/better-sqlite3/build/Release/better_sqlite3.node: undefined symbol: _ZN7Stateme/tIteratorD1Ev] sbfspot.0 2021-03-10 17:35:04.903 debug (1135) --- connecting to /home/pi/smadata/SBFspot.db sbfspot.0 2021-03-10 17:35:04.902 info (1135) start with sqlite sbfspot.0 2021-03-10 17:35:04.900 debug (1135) sunrise 06:37 sunset 18:09 true sbfspot.0 2021-03-10 17:35:04.896 debug (1135) system longitude 12.044093013028032 latitude 48.815940688183474 sbfspot.0 2021-03-10 17:35:04.852 debug (1135) start sbfspot.0 2021-03-10 17:35:04.762 info (1135) starting. Version 4.0.4 in /opt/iobroker/node_modules/iobroker.sbfspot, node: v12.21.0, js-controller: 3.2.16 sbfspot.0 2021-03-10 17:35:04.696 info (1135) Plugin sentry Sentry Plugin disabled for this process because sending of statistic data is disabled for the system sbfspot.0 2021-03-10 17:35:04.666 debug (1135) Plugin sentry Initialize Plugin (enabled=true) host.iobroker2 2021-03-10 17:35:00.050 info instance system.adapter.sbfspot.0 started with pid 1135
-
@bastelritius Bezüglich dem SQLite steht das hier eine Seite vorher:
Im Verzeichnis /opt/iobroker/node_modules/iobroker.sbfspot musst du npm install aufrufen, um alle Abhängigkeiten zu installieren.
-
@wendy2702 said in Neuer Adapter: SMA Wechselrichter mit sbfspot:
@bastelritius Bezüglich dem SQLite steht das hier eine Seite vorher:
Im Verzeichnis /opt/iobroker/node_modules/iobroker.sbfspot musst du npm install aufrufen, um alle Abhängigkeiten zu installieren.
Ok, jetzt scheint sich was zu tun. Brauchte allerdings zwei Anläufe da ich das npm install auf dem slave ausführen musste und nicht auf dem Master.
-
@bastelritius Ja, das muss auf dem System ausgeführt werden auf dem die Instanz läuft.
Sorry, für mich logisch deshalb nicht extra erwähnt.
-
Ja, ist ja auch logisch. Ich war einfach zu schnell dabei
Jetzt hab ich mich aber irgendwie zu früh gefreut. Irgendwie wurden nur ein paar Daten aus der Datenbank übernommen. Nun kommt folgende Meldung:
sbfspot.0 2021-03-11 13:50:06.618 info (11380) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason sbfspot.0 2021-03-11 13:50:06.617 debug (11380) Plugin sentry destroyed sbfspot.0 2021-03-11 13:50:06.615 debug (11380) timer killed sbfspot.0 2021-03-11 13:50:06.614 info (11380) all done ... sbfspot.0 2021-03-11 13:50:06.613 debug (11380) disconnect database sbfspot.0 2021-03-11 13:50:06.612 error (11380) exception in DB_AddDummyData [SqliteError: attempt to write a readonly database] sbfspot.0 2021-03-11 13:50:06.611 debug (11380) INSERT INTO`Inverters`(`Serial`, `Name`, `Type`, `SW_Version`, `TimeStamp`, `TotalPac`, `EToday`, `ETotal`, `OperatingTime`, `FeedInTime`, `Status`, `GridRelay`, `Temperature`) VALUES( 1234567 sbfspot.0 2021-03-11 13:50:06.610 debug (11380) add dummy data sbfspot.0 2021-03-11 13:50:06.609 error (11380) no inverter data found, adding dummy data... sbfspot.0 2021-03-11 13:50:06.608 debug (11380) rows undefined sbfspot.0 2021-03-11 13:50:06.607 error (11380) exception in DB_GetInverters [SqliteError: attempt to write a readonly database] sbfspot.0 2021-03-11 13:50:06.604 debug (11380) SELECT * from Inverters sbfspot.0 2021-03-11 13:50:06.603 debug (11380) sqlite Database is connected ... sbfspot.0 2021-03-11 13:50:06.571 debug (11380) --- connecting to /home/pi/smadata/SBFspot.db sbfspot.0 2021-03-11 13:50:06.570 info (11380) start with sqlite sbfspot.0 2021-03-11 13:50:06.568 debug (11380) sunrise 06:34 sunset 18:11 true sbfspot.0 2021-03-11 13:50:06.565 debug (11380) system longitude 12.044093013028032 latitude 48.815940688183474 sbfspot.0 2021-03-11 13:50:06.504 debug (11380) start sbfspot.0 2021-03-11 13:50:06.396 info (11380) starting. Version 4.0.4 in /opt/iobroker/node_modules/iobroker.sbfspot, node: v12.21.0, js-controller: 3.2.16 sbfspot.0 2021-03-11 13:50:06.309 info (11380) Plugin sentry Sentry Plugin disabled for this process because sending of statistic data is disabled for the system sbfspot.0 2021-03-11 13:50:06.275 debug (11380) Plugin sentry Initialize Plugin (enabled=true)
Anscheinend hat er nun Zugriffsprobleme. Ich verstehe es aber nicht ganz. Der Adapter ruft doch die Daten nur ab. Wieso gibt es dann den Fehler
SqliteError: attempt to write a readonly database
Er will doch nur lesen, oder will der Adapter auch etwas schreiben?
Die Berechtigungen der SBFspot.db habe ich auf iobroker und dialout geändert. Berechtigung sollte somit da sein, oder? -
@bastelritius Der user iobroker darf erstmal nix im home-Verzeichnis des users pi.
Ich hätte die db in ~ von iobroker installiert oder dem iobroker (über eine gemeinsame Gruppe vielleicht) Rechte in einem Extra-Verzeichnis in /home/pi eingeräumt. -
@thomas-braun said in Neuer Adapter: SMA Wechselrichter mit sbfspot:
@bastelritius Der user iobroker darf erstmal nix im home-Verzeichnis des users pi.
Ich hätte die db in ~ von iobroker installiert oder dem iobroker (über eine gemeinsame Gruppe vielleicht) Rechte in einem Extra-Verzeichnis in /home/pi eingeräumt.OK, wieder was gelernt. Der Datebankdatei hatte ich schon die Gruppe Dialout gegeben. Dem Verzeichnis smadata aber nicht. Anscheinend war dass das Problem. Jetzt funktioniert es.
Vermutlich würde die DB Datei aber im iobroker Ordner mehr Sinn machen. Aber das kann ich mir ja noch überlegen. Momentan bin ich erst mal im Testbetrieb. Mal sehen was jetzt so für Daten auflaufen und wie man diese dann auch sinnvoll auswerten/ anzeigen kann.
Danke
-
So, Daten werden gesammelt
Jetzt habe ich allerdings eine Frage zu den Historie Daten und dem Widget.- Kann man im Widget mehrere WR anzeigen lassen. Meine Anlage besteht nämlich aus 3 Stück, oder muss ich dann 3 Widgets benutzen?
- Die Historie-daten füu "Today" enthalten nur einen Wert im Stundenabstand. Kann man das irgendwie ändern? Nur stündlich einen Wert zu bekommen ist mir irgendwie zu weing. Die Werte in die Datenbank werden alle 5min geschrieben. Die Aktuallisierung für den Adapter habe ich auch auf 5min gestellt.
[{"time":"06:03","value":36},{"time":"07:03","value":1085},{"time":"08:03","value":3091},{"time":"09:03","value":4666},{"time":"10:03","value":5873},{"time":"11:03","value":7241},{"time":"12:03","value":9372},{"time":"13:03","value":11600},{"time":"14:03","value":12966},{"time":"15:03","value":13746},{"time":"16:03","value":14259}]
Danke
-
@bastelritius sagte in Neuer Adapter: SMA Wechselrichter mit sbfspot:
Kann man im Widget mehrere WR anzeigen lassen. Meine Anlage besteht nämlich aus 3 Stück, oder muss ich dann 3 Widgets benutzen?
das widget ist für einen WR gedacht. Man kann nur eine Objekt-ID verwenden...
Die Historie-daten füu "Today" enthalten nur einen Wert im Stundenabstand. Kann man das irgendwie ändern? Nur stündlich einen Wert zu bekommen ist mir irgendwie zu weing. Die Werte in die Datenbank werden alle 5min geschrieben. Die Aktuallisierung für den Adapter habe ich auch auf 5min gestellt
Das hängt davon ab, wie oft du den Adapter laufen lässt. Bei jedem Lauf das Adapters werden die Daten aus der DB geholt und in den history-json-string geschrieben. Das steuerst du über die s.g. Zeitplanung im admin von iobroker für den Adapter. Für einen Lauf alle 15 Minuten müsste dort */15 * * * * stehen...
-
@rene_hm :
Genau so hatte ich mir das gedacht. Daher habe ich den Adapter auf 5min gestellt. Die Daten im Datenpunkt "EToday" werden alle 5min aktualisiert und es kommen auch neue Werte an. Diesen Datenpunkt logge ich zusätzlich in einer InfluxDB seit Gestern als Kontrolle. Im history-json-string stehen aber wie oben schon gepostet nur die Stundenwerte.
-
@bastelritius schalte den Adapter mal auf debug und schaue was dort passiert. Mein Adapter läuft alle 15 Minuten und im history-json sind auch alle 15 Minuten Daten vorhanden. So wäre es auch implementiert. Ausnahme wäre, dass ein DB-Abruf vorher schief geht... das würden wir im log sehen...
was mir im obigen post auffältt ist die Zeit: immer 3 Minuten nach der vollen Stunde. Wenn dein Adapter alle 5 Minuten läuft, sollte immer die volle Stunde als Zeitstempel auftauchen.Bei mir sieht das so aus:
[{"time":"06:45","value":0},{"time":"07:00","value":1},{"time":"07:15","value":13},{"time":"07:30","value":32},{"time":"07:45","value":64},{"time":"08:00","value":102}, ... ]
-
@wendy2702 said in Neuer Adapter: SMA Wechselrichter mit sbfspot:
@bastelritius sagte in Neuer Adapter: SMA Wechselrichter mit sbfspot:
- exception in DB_Connect [Error: /opt/iobroker/node_modules/better-sqlite3/build/Release/better_sqlite3.node: undefined symbol: _ZN7Stateme/tIteratorD1Ev]
Leider ist das Log etwas abgeschnitten so das mannschaftliche sagen kann das es wirklich von dem Adapter erzeugt wird.
@rene_hm said in Neuer Adapter: SMA Wechselrichter mit sbfspot:
@bastelritius schalte den Adapter mal auf debug und schaue was dort passiert. Mein Adapter läuft alle 15 Minuten und im history-json sind auch alle 15 Minuten Daten vorhanden. So wäre es auch implementiert. Ausnahme wäre, dass ein DB-Abruf vorher schief geht... das würden wir im log sehen...
was mir im obigen post auffältt ist die Zeit: immer 3 Minuten nach der vollen Stunde. Wenn dein Adapter alle 5 Minuten läuft, sollte immer die volle Stunde als Zeitstempel auftauchen.Bei mir sieht das so aus:
[{"time":"06:45","value":0},{"time":"07:00","value":1},{"time":"07:15","value":13},{"time":"07:30","value":32},{"time":"07:45","value":64},{"time":"08:00","value":102}, ... ]
Ja, komisch. Ich habe den Adapter mal komplett deinstalliert und neu installiert.
Den Log habe ich als Datei angehangen:iobroker.2021-03-14.log -
Hat noch jemand eine Idee wieso die Werte bei mir immer nur 3min nach jeder vollen Stunde berechnet werden, obwohl ich den Adapter auf 5min Intervall eingestellt habe?
-
@bastelritius laut log ist dein Problem nicht der Adapter sondern sbfspot.
DB_CalcHistory_Today for 2100494098 SELECT strftime('%H:%m', datetime(TimeStamp, 'unixepoch')) as time, Max(`EToday`) as ertrag FROM `SpotData` WHERE `Serial` = '2100494098' AND TimeStamp>= 1615676406.314 AND TimeStamp<= 1615699506.314 Group By strftime('%H-%m', datetime(TimeStamp, 'unixepoch')) rows [{"time":"04:03","ertrag":0},{"time":"05:03","ertrag":0}]
Hier ist die Datenbankabfrage um 6:25Uhr. Da kommen die beiden Werte um 4:03 und 5:03. Ich denke, du hast den cron job auf dem Pi nicht richtig konfiguriert... siehe
https://github.com/SBFspot/SBFspot/wiki/Installation-Linux-SQLite#️-automation -
@rene_hm said in Neuer Adapter: SMA Wechselrichter mit sbfspot:
@bastelritius laut log ist dein Problem nicht der Adapter sondern sbfspot.
DB_CalcHistory_Today for 2100494098 SELECT strftime('%H:%m', datetime(TimeStamp, 'unixepoch')) as time, Max(`EToday`) as ertrag FROM `SpotData` WHERE `Serial` = '2100494098' AND TimeStamp>= 1615676406.314 AND TimeStamp<= 1615699506.314 Group By strftime('%H-%m', datetime(TimeStamp, 'unixepoch')) rows [{"time":"04:03","ertrag":0},{"time":"05:03","ertrag":0}]
Hier ist die Datenbankabfrage um 6:25Uhr. Da kommen die beiden Werte um 4:03 und 5:03. Ich denke, du hast den cron job auf dem Pi nicht richtig konfiguriert... siehe
https://github.com/SBFspot/SBFspot/wiki/Installation-Linux-SQLite#️-automationDanke. Aber ich habe es so konfiguriert wie unter dem Punkt Automation in Deinem Link.
Irgendwie kommen ja auch alle 5min aktualisierte Werte. Zumindest wenn ich die Daten über die Historie auswerte.
Ich habe hier mal die Tabelle SpotData ausgelesen und als txt angehangen.
Kannst Du da mal reingucken ob das so stimmt. Ich denke die Daten sind da? SBFspot_SpotData.txt