Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Neuer Adapter: SMA Wechselrichter mit sbfspot

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Neuer Adapter: SMA Wechselrichter mit sbfspot

    This topic has been deleted. Only users with topic management privileges can see it.
    • Bastelritius
      Bastelritius @wendy2702 last edited by Bastelritius

      @wendy2702 said in Neuer Adapter: SMA Wechselrichter mit sbfspot:

      @bastelritius sagte in Neuer Adapter: SMA Wechselrichter mit sbfspot:

      1. 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

      1 Reply Last reply Reply Quote 0
      • Bastelritius
        Bastelritius last edited by

        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?

        Rene_HM 1 Reply Last reply Reply Quote 0
        • Rene_HM
          Rene_HM Developer @Bastelritius last edited by

          @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

          Bastelritius 1 Reply Last reply Reply Quote 0
          • Bastelritius
            Bastelritius @Rene_HM last edited by

            @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#️-automation

            Danke. 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

            Rene_HM 1 Reply Last reply Reply Quote 0
            • Rene_HM
              Rene_HM Developer @Bastelritius last edited by

              @bastelritius und wenn du manuell o.g. SQL string mal in der Datenbank laufen lässt, was passiert dann? Wie das geht, wird ja unter
              https://github.com/SBFspot/SBFspot/wiki/Installation-Linux-SQLite#️-testing
              erklärt. nur dass du dort nicht

              select * from vwspotdata;
              

              sondern

              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'));
              

              verwendest.
              Welche Version von sqlite hast du auf dem PI?
              Was mir gerade auffällt:

              Versuche auch mal

              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'));
              
              Bastelritius 1 Reply Last reply Reply Quote 0
              • Bastelritius
                Bastelritius @Rene_HM last edited by

                @rene_hm said in Neuer Adapter: SMA Wechselrichter mit sbfspot:

                @bastelritius und wenn du manuell o.g. SQL string mal in der Datenbank laufen lässt, was passiert dann? Wie das geht, wird ja unter
                https://github.com/SBFspot/SBFspot/wiki/Installation-Linux-SQLite#️-testing
                erklärt. nur dass du dort nicht

                select * from vwspotdata;
                

                sondern

                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'));
                

                verwendest.

                Hier bringt mir die Datenbank folgendes:

                sqlite> 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'));
                04:03|0
                05:03|0
                

                Welche Version von sqlite hast du auf dem PI?
                Ich habe die Version SQLite version 3.27.2 2019-02-25 16:06:06

                Was mir gerade auffällt:

                Versuche auch mal

                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'));
                

                Hier kommt das:

                 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'));
                04:03|0
                05:03|0
                05:03|0
                05:03|0
                sqlite>
                

                Was mir gerade komisch vorkommt ist der String für die Zeit.
                Du fragst mit der Abfrage einen String mit 3 Nachkommastellen ab 1615699506.314. In der Datenbank hat der String aber keine Nachkommastellen 1615915807. Kann das ein Grund sein?

                SBFspot version ist folgende:

                SBFspot V3.7.1
                Yet another tool to read power production of SMA solar inverters
                (c) 2012-2020, SBF (https://github.com/SBFspot/SBFspot)
                Compiled for Linux (LE) 32 bit with SQLite support
                Commandline Args: -v -ad1 -am0 -ae1 -cfg/usr/local/bin/sbfspot.3/SBFspot.cfg
                

                Ich habe das mit dem Configtool installiert

                W 1 Reply Last reply Reply Quote 0
                • W
                  Wene001 @Bastelritius last edited by

                  Hi zusammen
                  Versuch mich grad in die Materie des ioBroker einzuarbeiten. Da ich schon einige Jahre SBFspot nutze hab ich mir den tollen Adapter hier installiert.
                  Super Sache...
                  Leider funktioniert die Beschriftung der X-Achse nicht richtig in der heute Ansicht. Bei Jährlich, Monatlich und 30 Tage passts.
                  Hat jemand Ideen ob ich das lösen kann, bzw ob das ein Bug ist ?

                  LG Werner
                  heute.JPG

                  Rene_HM 1 Reply Last reply Reply Quote 0
                  • Rene_HM
                    Rene_HM Developer @Wene001 last edited by

                    @wene001 was verwendest du denn als "Datumsformat" in den Einstellungen?

                    1 Reply Last reply Reply Quote 0
                    • W
                      Wene001 last edited by Wene001

                      %H:%M
                      Interessanterweise passte die Anzeige am Nachmittag (wenn 12:00 auch angeschrieben steht) Heut Früh ist es wieder abgeschnitten
                      Bei mir war nur 6:00 und 12:00 auf der Skala angegeben.

                      Leider ist dies auch eine Stunde verschoben. Wie kann ich das auf MEZ+1 umstellen am besten mit automatischer Sommerzeitumschaltung.

                      Ich hab auch in meinem "today" json File nur Stundenwerte? sollten hier nicht 15min drin stehen...kann man das iwo einstellen?
                      Der Adapter startet alle 5min im Iobroker und das Json File aktualisiert sich auch alle 5 min und der letzte Stundenwert steigt alle 5 min an.

                      Ideen dazu?

                      LG Werner

                      1 Reply Last reply Reply Quote 0
                      • T
                        Tottbeck last edited by Tottbeck

                        Hallo, ich muss hier mal wegen der Benutzerrechten für die Datenbasis fragen.
                        Ich habe SBFspot neu aufgesetzt, die Daten werden auch alle 5 Minuten eingelesen und in PVoutput.org dargestellt, soweit alles gut.
                        Die sbfspot.0 Instanz wird alle 15 Minuten aufgerufen. Dabei kommt zu ca. 50% eine Fehlermeldung.

                        sbfspot.0 2023-06-17 12:45:06.147	error	exception in DB_GetInverters [SqliteError: attempt to write a readonly database]
                        sbfspot.0 2023-06-17 12:30:07.960	error	exception in DB_GetInverters [SqliteError: attempt to write a readonly database]
                        sbfspot.0 2023-06-17 12:15:06.118	error	exception in DB_GetInverters [SqliteError: attempt to write a readonly database]
                        sbfspot.0 2023-06-17 11:30:06.708	error	exception in DB_GetInverters [SqliteError: attempt to write a readonly database]
                        sbfspot.0 2023-06-17 11:00:06.655	error	exception in DB_GetInverters [SqliteError: attempt to write a readonly database]
                        sbfspot.0 2023-06-17 10:15:07.672	error	exception in DB_GetInverters [SqliteError: attempt to write a readonly database]
                        

                        Wenn die Fehlermeldung kommt, werden keine Daten an den iobroker weitergegeben, ansonsten schon.
                        OK, die sqlite-database liegt in meinem User-homeverzeichnis im Subverzeichnis "smatdata" und nicht unter home/iobroker wie es evtl besser wäre. Die Datei gehört der Gruppe "user" und dem Benutzer "user"
                        Ich habe die Dateirechte der Datenbasis auf "666" gesetzt, aber das hat nichts geändert.
                        Warum ist der Fehler sporadisch und wie kann ich das einfach umgehen ohne die DB neu anzulegen ? Die Datei einer Gruppe von iobroker und User zuweisen ?
                        Nachtrag: Per Gruppe funktioniert es scheinbar jetzt.

                        Rene_HM 1 Reply Last reply Reply Quote 0
                        • Rene_HM
                          Rene_HM Developer @Tottbeck last edited by

                          @tottbeck das ist meist das Recht auf den Ordner und nicht die Datenbank-Datei selbst...

                          T 1 Reply Last reply Reply Quote 0
                          • T
                            Tottbeck @Rene_HM last edited by

                            Nach langer Zeit habe ich mal wieder ein Problem mit dem Adapter.

                            sbfspot ist umgezogen auf einen neuen Host. (Raspi3 -> Raspi5)
                            Seitdem will der Adapter die Daten nicht mehr aus der sqlite Datenbank lesen.
                            SBFspot selber läuft weiter und lädt die Daten zu PVoutput.org hoch.
                            Die Databasis in /home/scheth1/smadata/SBFspot.db wird alle 5min aktualisiert.
                            Aber scheinbar kann der iobroker adapter da nicht korrekt drauf zugreifen.
                            => "exception in DB_Connect [TypeError: Cannot open database because the directory does not exist]"
                            Die Zugriffsrechte stehen auf '777' für die Datei und das Verzeichnis.
                            "sudo npm install" habe ich auch schon ausgeführt im iobroker.sbfspot - Ordner.
                            Neuinstallation des Adapters hat auch nichts geändert.
                            Hat jemand eine Idee ?

                            2025-04-16 11:30:00.009 - info: host.raspi3 instance system.adapter.sbfspot.0 in version "4.3.4" started with pid 3401
                            2025-04-16 11:30:00.542 - debug: sbfspot.0 (3401) Redis Objects: Use Redis connection: 192.168.178.199:9001
                            2025-04-16 11:30:00.560 - debug: sbfspot.0 (3401) Objects client ready ... initialize now
                            2025-04-16 11:30:00.561 - debug: sbfspot.0 (3401) Objects create System PubSub Client
                            2025-04-16 11:30:00.561 - debug: sbfspot.0 (3401) Objects create User PubSub Client
                            2025-04-16 11:30:00.589 - debug: sbfspot.0 (3401) Objects client initialize lua scripts
                            2025-04-16 11:30:00.592 - debug: sbfspot.0 (3401) Objects connected to redis: 192.168.178.199:9001
                            2025-04-16 11:30:00.610 - debug: sbfspot.0 (3401) Redis States: Use Redis connection: 192.168.178.199:9000
                            2025-04-16 11:30:00.619 - debug: sbfspot.0 (3401) States create System PubSub Client
                            2025-04-16 11:30:00.620 - debug: sbfspot.0 (3401) States create User PubSub Client
                            2025-04-16 11:30:00.679 - debug: sbfspot.0 (3401) States connected to redis: 192.168.178.199:9000
                            2025-04-16 11:30:00.705 - debug: sbfspot.0 (3401) Plugin sentry Initialize Plugin (enabled=true)
                            2025-04-16 11:30:00.841 - info: sbfspot.0 (3401) starting. Version 4.3.4 in /opt/iobroker/node_modules/iobroker.sbfspot, node: v20.18.0, js-controller: 7.0.6
                            2025-04-16 11:30:00.849 - debug: sbfspot.0 (3401) start
                            2025-04-16 11:30:00.859 - debug: sbfspot.0 (3401) system: longitude xx latitude yy
                            2025-04-16 11:30:00.860 - debug: sbfspot.0 (3401) sunrise 06:29 sunset 20:25 true
                            2025-04-16 11:30:00.860 - info: sbfspot.0 (3401) start with sqlite
                            2025-04-16 11:30:00.860 - debug: sbfspot.0 (3401) --- connecting to /home/scheth1/smadata/SBFspot.db
                            2025-04-16 11:30:00.866 - error: sbfspot.0 (3401) exception in DB_Connect [TypeError: Cannot open database because the directory does not exist]
                            2025-04-16 11:30:00.866 - debug: sbfspot.0 (3401) disconnect database
                            2025-04-16 11:30:00.866 - info: sbfspot.0 (3401) all done ...
                            2025-04-16 11:30:00.866 - debug: sbfspot.0 (3401) timer killed
                            2025-04-16 11:30:00.867 - debug: sbfspot.0 (3401) Plugin sentry destroyed
                            2025-04-16 11:30:00.867 - info: sbfspot.0 (3401) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
                            2025-04-16 11:30:01.383 - info: host.raspi3 instance system.adapter.sbfspot.0 having pid 3401 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
                            
                            wendy2702 1 Reply Last reply Reply Quote 0
                            • wendy2702
                              wendy2702 @Tottbeck last edited by

                              @tottbeck sagte in Neuer Adapter: SMA Wechselrichter mit sbfspot:

                              /home/scheth1/smadata/

                              gibt es dieses Directory wirklich? Zeig mal

                              T 1 Reply Last reply Reply Quote 0
                              • T
                                Tottbeck @wendy2702 last edited by

                                @wendy2702 Gerne

                                scheth1@raspi3:~ $ ls -l /home/scheth1/smadata/
                                total 17488
                                drwxrwxrwx 3 scheth1 scheth1     4096 Apr 20 01:02 2025
                                drwxrwxrwx 2 scheth1 scheth1     4096 Apr 16 17:42 logs
                                -rwxrwxrwx 1 scheth1 scheth1 17895424 Apr 20 11:40 SBFspot.db
                                
                                
                                wendy2702 1 Reply Last reply Reply Quote 0
                                • wendy2702
                                  wendy2702 @Tottbeck last edited by

                                  @tottbeck ist das auf dem gleichen PI oder gemountet?

                                  T 1 Reply Last reply Reply Quote 0
                                  • T
                                    Tottbeck @wendy2702 last edited by Tottbeck

                                    @wendy2702

                                    Der Adapter läuft auf dem gleichem PI.
                                    Habe den Adapter zwischenzeitlich von 4.3.4 auf 4.4.2 aktualisiert ohne Änderung.

                                    1876bc87-1348-471d-8ba1-59937dada4b5-image.png

                                    scheth1@raspi3:~ $ sqlite3 /home/scheth1/smadata/SBFspot.db
                                    SQLite version 3.40.1 2022-12-28 14:03:47
                                    Enter ".help" for usage hints.
                                    sqlite> select * from Inverters;
                                    2100080719|SN: 2100080719|SB 5000TL-20|03.01.05.R|1745147704|3844|14097|83460352|65675.3|64404.3|OK|Closed|62.54
                                    sqlite> .quit
                                    
                                    
                                    VJ77 1 Reply Last reply Reply Quote 0
                                    • VJ77
                                      VJ77 @Tottbeck last edited by

                                      @tottbeck da klinke ich mich mal ein. Ich habe nämlich exakt dasselbe Problem. Ich habe meinen IObroker von Windows auf ein RPI umziehen lassen. Ich bekomme jetzt die selbe Fehlermeldung. Die Abfrage vom Wechselrichter, wie auch das Schreiben in die Datenbank funktionieren problemlos. Nur das Auslesen aus der DB scheitert. Ich habe auch schon eine komplette Neuinstallation gemacht, mit dem selben Ergebnis.

                                      Hast du eine Lösung gefunden?

                                      T 1 Reply Last reply Reply Quote 0
                                      • T
                                        Tottbeck @VJ77 last edited by

                                        @vj77 Leider nein.
                                        Ich habe noch SBFspot.db gegen eine ältere kleinere Version (~100kB) getauscht, falls die korrupt geworden wäre. Hat aber auch nichts geändert.

                                        1 Reply Last reply Reply Quote 0
                                        • wendy2702
                                          wendy2702 last edited by

                                          Hilft euch nicht direkt weiter aber können eure WR mit einen Software Update vielleicht Modbus?

                                          1 Reply Last reply Reply Quote 0
                                          • W
                                            wm20320 last edited by wm20320

                                            Nur zur Vorsichtig: Du hast im iobroker die Instanz schon auf auf SQLite stehen und den Pfad ohne Leerzeichen und in richtiger Groß- und Kleinschreibung etc? z. B. 23-04-2025_17-40-55.png

                                            Wahrscheinlich ein überflüssiger Tipp, aber manchmal übersieht man ja doch irgendwas ...

                                            Hast schon mal testweise versucht die DB in ein anderes Verzeichnis zu legen und dort abzurufen?

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            917
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            26
                                            248
                                            38719
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo