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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Neuer Adapter: SMA Wechselrichter mit sbfspot

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

      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?

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

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

        Bastelritius 2 Replies Last reply Reply Quote 0
        • Bastelritius
          Bastelritius @wendy2702 last edited by

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

          Thomas Braun 1 Reply Last reply Reply Quote 0
          • Thomas Braun
            Thomas Braun Most Active @Bastelritius last edited by

            @bastelritius
            Da muss noch mehr in der Zeile stehen. Am besten einen ganzen Block auch der davor oder danach stehenden Zeilen posten.

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

              @thomas-braun

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

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

                  @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. 🙂

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

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

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

                      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?

                      Thomas Braun 1 Reply Last reply Reply Quote 0
                      • Thomas Braun
                        Thomas Braun Most Active @Bastelritius last edited by

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

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

                          @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

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

                            So, Daten werden gesammelt 👏
                            Jetzt habe ich allerdings eine Frage zu den Historie Daten und dem Widget.

                            1. Kann man im Widget mehrere WR anzeigen lassen. Meine Anlage besteht nämlich aus 3 Stück, oder muss ich dann 3 Widgets benutzen?
                            2. 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

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

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

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

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

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

                                  @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}, ... ]
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • 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
                                            • First post
                                              Last post

                                            Support us

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

                                            864
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            26
                                            248
                                            40709
                                            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