Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. [Neuer Adapter] Senec Home Adapter

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Neuer Adapter] Senec Home Adapter

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

      Auch von meiner Seite ein dickes Dankeschön an @nobl und alle, die hier so konstruktiv mitarbeiten.

      Senec ist die schlimmste Fehlentscheidung der letzten Jahre für mich und hier wird alles dafür getan, diesen Schmerz zu lindern 😊

      1 Reply Last reply Reply Quote 1
      • D
        dwm @nobl last edited by

        @nobl Gerade gesehen ... supergut, und nochmal ein herzliches Dankschön. Muss ich gleich mal ausprobieren!

        1 Reply Last reply Reply Quote 0
        • S
          spassbremse @root666 last edited by

          @root666 said in [Neuer Adapter] Senec Home Adapter:

          @spassbremse schau mal weiter unten 😉
          senec_api.png

          Sorry, sieht bei mir mit der neuesten Version 1.6.5 so aus:
          e127e953-361d-45fc-b2fd-7f51e9b0b891-image.png

          Noch eine Idee?

          Alles andere Funktioniert aber genial. Danke dafür.

          A 1 Reply Last reply Reply Quote 0
          • A
            Apropo @spassbremse last edited by

            @spassbremse Hast du denn die API aktiviert und deine Zugangsdaten eingegeben?

            S 1 Reply Last reply Reply Quote 0
            • S
              spassbremse @Apropo last edited by

              @apropo said in [Neuer Adapter] Senec Home Adapter:

              @spassbremse Hast du denn die API aktiviert und deine Zugangsdaten eingegeben?

              Perfekt. Als Neuling kennt man nicht alles. Aktiviert und _api ist mit allen Werten vorhanden.
              👏

              1 Reply Last reply Reply Quote 1
              • H
                HansJochen @nobl last edited by

                @nobl said in [Neuer Adapter] Senec Home Adapter:

                Ich war so frei und habe die den Statistik-Zweig der API Daten um "AllTime" Werte ergänzt.
                Die Adapter-Config hat nun eine Checkbox, um eine Neuberechnung über alle verfügbaren Jahre durchzuführen. Danach aktualisieren sich die Werte selbständig.

                Diesen Hinweis hatte ich zunächst unterschätzt und die Checkbox nach dem Update nicht gesetzt. Dann werden die Alltime Datenpunkte zwar angelegt, enthalten aber nur die Zahlen des laufenden Jahres. Ein Workaround ist einfach: Checkbox setzen und Adapter neu starten, damit ist es für mich vermutlich bereinigt.

                @nobl könntest Du nicht die Checkbox entfernen und beim Adapterstart die Berechnung generell laufen lassen? So häufig wird der Adapter wahrscheinlich nicht neu gestartet und die Neuberechnung mag ab dem 2. Start überflüssig sein, aber sollte ja eigentlich nicht schaden.

                D 1 Reply Last reply Reply Quote 0
                • D
                  dwm @HansJochen last edited by

                  @nobl Ein kleines Problem mit den "Alltime" Werten ... die werden offensichtlich auf ganze kWh gerundet. Damit kann man natürlich schlecht den Tagesverlauf darstellen, dafür werden genauere Werte benötigt.
                  Der Charme der Alltime Werte in Verbindung mit Grafana ist ja gerade, dass man so die gleichen Daten sehr flexibel für variierende Zeiträume nutzen kann.
                  Könnte man hier nicht auf drei Nachkommastellen runden? Wenn das für jemand zu granular ist, kann man das in der Visualisierung ja immer noch runden.

                  CU

                  root666 N 2 Replies Last reply Reply Quote 0
                  • root666
                    root666 @dwm last edited by root666

                    @dwm in der main.js bei v1.6.5 Zeile 527:

                                                    await this.doState(pfx + key, Number((sum / 1000).toFixed(0)), "", "k" + einheit, false);
                    

                    in das ändern:

                    await this.doState(pfx + key, Number((sum / 1000).toFixed(2)), "", "k" + einheit, false);
                    

                    Die Zahl in:

                    toFixed(2)
                    

                    gibt die Stellen nach dem Komma an. In diesem Beispiel jetzt 2 Stellen nach dem Komma. Wenn du 3 möchtest, dann eben 3 angeben.

                    An dieser Stelle noch der freundliche Hinweis, das Änderungen im Code auf eigene Gefahr passieren. Wer damit keine oder wenig Erfahrung hat, sollte darauf warten bis es @nobl umstellt.

                    1 Reply Last reply Reply Quote 2
                    • N
                      nobl @dwm last edited by

                      @dwm sagte in [Neuer Adapter] Senec Home Adapter:

                      @nobl Ein kleines Problem mit den "Alltime" Werten ... die werden offensichtlich auf ganze kWh gerundet. Damit kann man natürlich schlecht den Tagesverlauf darstellen, dafür werden genauere Werte benötigt.
                      Der Charme der Alltime Werte in Verbindung mit Grafana ist ja gerade, dass man so die gleichen Daten sehr flexibel für variierende Zeiträume nutzen kann.
                      Könnte man hier nicht auf drei Nachkommastellen runden? Wenn das für jemand zu granular ist, kann man das in der Visualisierung ja immer noch runden.

                      CU

                      ich hatte die tatsächlich absichtlich gerundet, da es ja für den Tagesverlauf die täglichen Datenpunkte gäbe.
                      Möglicherweise habe ich aber den Nutzen der Nachkommastellen unterschätzt 🙂

                      D 1 Reply Last reply Reply Quote 0
                      • D
                        DiMe @nobl last edited by DiMe

                        @nobl
                        Hi, hätte mal eine Frage zu den Tageswerten (z.B senec.0._api.Anlagen.xxxxxx.Dashboard.heute.stromerzeugung (kWh) )
                        Werden diese aktuell im Senec errechnet, oder werden diese über diese Daten von Internet (Bei Senec auf dem Server errechnet).
                        Hintergrund: Anscheinend sind die Tageswerte mit niedrigere Priorität hinterlegt, so ist die minimale Abrufezeit 10 min.
                        Da ich aber wirklich die aktuellen Werte gerne angezeigt haben würde, würde mich das interessieren. Wenn die Daten vom Senecserver (werden dort ja alle 5min aktualiesiert) kommen, alles gut, falls die aber im Senec errechnet werden, würden mich die Aktualwerte interessieren.

                        Korrektur meiner Aussage, habe um 11:55 die minimale Abrufzeit auf 10min gestellt. 12:05 hat er einen Wert wieder automatisch geholt. 12:15 ist nichts passiert. 12:25 hat er wieder geholt??? Ich verstehe es gerade nicht?

                        Solar.jpg

                        Gruß Dirk

                        N 1 Reply Last reply Reply Quote 0
                        • N
                          nobl @DiMe last edited by

                          @dime alles unter _api kommt (wer hätte es gedacht 🙂 ) über die API und ist daher im Bestfall 5 Minuten alt.

                          Dann kommt noch dazu, dass es scheinbar Nachts ein Aktualisierungsgap von 2-3 Stunden gibt, zu dem bestimmte Werte nicht aktualisiert werden.
                          Auch habe ich teils den Eindruck, es wäre auf Serverseite irgendwie eine Art Ratelimiting implementiert (das kann aber täuschen).

                          Die Stromerzeugung kannst Du Dir auch über den Datenpunkt senec.0.PV1.P_TOTAL ziehen (sofern PV1 noch existiert ...)
                          Einspeisung/Bezug über senec.0.PM1OBJ1.P_TOTAL
                          Hausverbrauch: senec.0.ENERGY.GUI_HOUSE_POW (ohne Gewähr, ob der Datenpunkt noch geliefert wird)

                          D 1 Reply Last reply Reply Quote 0
                          • D
                            DiMe @nobl last edited by

                            @nobl erstmal Danke für deine schnelle Antworten.
                            Habe mich glaub falsch ausgedrückt. Nicht die aktuellen Erzeugung gerade (in KW) habe ich gemeint, sondern meine aktuellen Tagesertrag (kWh). Im Senec selber stehen ja dann anscheinend ca. alle 5 min der aktuelle Wert, allerdings verstehen ich nicht warum diese Werte nicht regelmäßig abgegriffen werden. Bei Neustart des Adapter steht der aktuelle Wert dann drin.

                            N 1 Reply Last reply Reply Quote 0
                            • N
                              nobl @DiMe last edited by nobl

                              @dime die werte werden von senec nur alle 5 minuten aktualisiert.
                              Wenn du den Adapter neu startest, bevor das 5 Minuten Intervall abgelaufen ist, dann bekommt er auch keine aktuellen Werte 🙂
                              Startest du Ihn, nachdem 4 Minuten des Intervalls bei Senec gelaufen sind, und startest ihn dann 2 Minuten später neu, bekommst du auch wieder neue Werte.

                              Es kann auch vorkommen, dass der Datenabruf fehlschlägt - dann gibts auch keine neuen Werte.
                              Auch habe ich - wie gesagt - den Eindruck, es könnte ein Ratelimiting geben. Dann liefert die API schlichtweg keine Werte beim Abruf.
                              Was ich selbst schon hatte: Die gelieferten Daten waren für die Anfrage unvollständig - also z.B. nur die Hälfte der Daten.

                              Auch werden die Datenpunkte nicht aktualisiert, wenn sich die Werte nicht geändert haben.

                              Bei mir sieht das zB so aus:
                              4b5665fe-d16b-492b-9b52-4baf6de665a5-grafik.png

                              Auch wenn das meist gut getaktet funktioniert - gibts da auch mal sowas:
                              52ebbd1d-7e67-4825-810c-bf3f1b4055b0-grafik.png

                              Es kann auch sein, dass die API einfach noch keine neuen Daten hat und dann die alten Informationen erneut liefert (keine Aktualisierung des Datenpunkts).
                              Oder auch mal ein Netzwerkproblem, etc.

                              Anderes Beispiel:
                              55594c34-9f6c-4bc0-b279-15861e2c8684-grafik.png
                              Hier hat z.B. der Abruf um 14:01 zB nicht funktioniert (Eintrag im ioB log bzgl. Timeout), was den Adapter dazu veranlasst, die Abrufrate sukzessive zu reduzieren. Sobald ein Abruf erfolgreich war, geht es dann zurück auf die reguläre Taktung.
                              Der Abruf um 13:56 hat zwar keine Fehlermeldung - aber offensichtlich keine neuen Daten geliefert.

                              Ich würde aus dieser Datenlage ein "Lag" des Senec Servers vermuten wollen, das manchmal zu Timeouts führt und manchmal einfach zu veralteten Informationen (bzw. nur teilweise aktualisierten Infos).
                              Natürlich könnte man die Abfragen auch erheblich schneller einstellen (weshalb ich in der Config ein Minimum von 3 Minuten vorgebe) - aber ... in diesem Fall kann Senec den individuellen Zugang zur API sehr einfach entweder einschränken oder sogar sperren (aber das will ich öffentlich eigentl. gar nicht diskutieren 🙂 ).

                              D 1 Reply Last reply Reply Quote 0
                              • D
                                DiMe @nobl last edited by

                                @nobl
                                Hi nobl, also seit vorgestern ist da definitiv etwas passiert, ich hoffe das wird wieder.
                                Siehe orangene Dantepunkte. Vorgestern alle 5 min jetzt nur noch sporadisch.

                                Ganz herzlichen Dank für deinen super Support!!!
                                Und danke für deine Gelduld, beschäftige mich noch nicht alzulange und alzutief mit dem Thema. Ist noch vieles für mich böhmische Dörfer.

                                solar.jpg

                                D 1 Reply Last reply Reply Quote 0
                                • D
                                  DiMe @DiMe last edited by DiMe

                                  @nobl
                                  Also habe nochmals nachgeforscht warum ich ab den 13.9. die Probleme habe.
                                  Ab ca. 10:30 hatte mein Internetanbieter technische Probleme , zuvor lief wie man es ja sieht ohne Problem,und ich war bis ca. 15:xx abgeschnitten vom Internet. Ca:1h lief es und danach nochmal ein paar Stunden abgetrennt.
                                  Interessant sind orangenen und roten Datenpunkte
                                  13Sept.jpg

                                  13Sept2.jpg

                                  Seit dem habe ich die Probleme
                                  Hier ein Auszug meines heutigen Protokolls, habe ein 12:39 den Adapter wegen Werteänderungen neu gestartet.
                                  Nach dem Neustart erhöhen sich die Abtastungen immer um 5min. ich vermute das dies die Retry Werte in der Meldung sind.
                                  Protokoll.jpg

                                  Ich weis jetzt nicht was los ist und was ich machen kann. Habe Senec, Rasp und Router jeweils schon neu getartet.
                                  Hier noch meine aktuelle Adaptereinstellung. Bin am Verzweifeln.
                                  Adapter 1.jpg

                                  Adapter 2.jpg

                                  N 1 Reply Last reply Reply Quote 0
                                  • N
                                    nobl @DiMe last edited by

                                    @dime das irritiert mich jetzt.
                                    Da wäre es hilfreich, wenn du in dieser Situation den Adapter mal auf "debug" umstellst - dann wird unter anderem auch ausgegeben, was genau der Get-Request als Antwort von der API bekommt.

                                    Login und Abruf der Systemdaten funktioniert ja offensichtlich. Entweder kommt dann beim Rest Schrott oder gar nix.
                                    Falls du es schaffst, mir das (gerne via PN) in den nächsten 2-3 Stunden noch zukommen zu lassen, werfe ich gerne noch einen schnellen Blick drauf, was da los sein könnte. Ansonsten bin ich dann nämlich leider erstmal im Ausland in Urlaub und da dann natürlich eher zeitlich knapp.

                                    Version 1.6.5 des Adapter hast du?

                                    D 1 Reply Last reply Reply Quote 0
                                    • D
                                      DiMe @nobl last edited by DiMe

                                      @nobl
                                      Leider hat es mir nicht gereicht. Ich wünsche Dir aber einen tollen Urlaub!! (Falls du dies überhaupt noch vor/in deinem Urlaub lesen solltest)

                                      Ich habe trotzdem mal den Debug eingeschalten und hier der Screenshot.
                                      Hängt es vielleicht and der letzten Meldung ( {"aggregation":null,"intervalle":[]} ) vor der gelben Warn-Meldung? Vielleicht kann mir ja jemand anderes helfen. Version ist die 1.6.5.
                                      debug.jpg

                                      root666 1 Reply Last reply Reply Quote 0
                                      • root666
                                        root666 @DiMe last edited by

                                        @dime evtl. weiss ich woran es liegen könnte.
                                        Wie lange hast du denn die Anlage schon? Länger als seit 1 Jahr oder erst dieses Jahr bekommen?

                                        Denn wenn ich mir den Log so anschaue sehe ich folgendes:
                                        2023-09-18 07:25:36.839 Start des API abrufes
                                        2023-09-18 07:25:36.454 holt die "aktuell" Werte
                                        danach die "heute" Werte
                                        dann kommen die "Statistik" Werte und hier vermute ich beim letzten Eintrag wo "null" kommt, das dies der abruf für "Last Year" ist. Wenn dem so ist und deine Anlage noch nicht so alt ist, kommen logischerweise von der API auch "null" Werte zurück, denn dann gibt es da ja noch nichts zum abrufen.

                                        Da müsste @nobl dann nach seinem Urlaub nochmal ran, was er bestimmt auch auch tun wird, wie ich ihn kenne 😉
                                        Alle Eventualitäten abzudecken bei der Programmierung ist schwierig, denn manches fällt dann eben erst wie in deinem Fall später im Feldtest auf.

                                        Ich weiss nicht wie fit du mit Code umschreiben bist aber falls du es dir zutraust wäre ein erster Workaround, bis @nobl wieder da ist, folgender:

                                        Unter folgendem Pfad solltest du eine "main.js" finden:

                                        /opt/iobroker/node_modules/iobroker.senec/
                                        

                                        (mache dir am besten ein Backup, bevor du Änderungen daran vornimmst. Im Notfall, Adapter stoppen, Backup wieder rein kopieren und dann Adapter wieder starten.)

                                        Öffne "main.js" in einem Editor (notepad bzw. Editor unter windows oder wenn du es komfortabel haben möchtest, dann lade dir kostenfrei notepad++ im netz herunter. Da hast du dann auch gleich Zeilenummern neben dem Code stehen)

                                        Zeile 399 - 406 findest du folgendes:

                                        		const dates = new Map([
                                        			["THIS_DAY", new Date().toISOString().split('T')[0]],
                                        			["LAST_DAY", new Date(new Date().setDate(new Date().getDate()-1)).toISOString().split('T')[0]],
                                        			["THIS_MONTH", new Date().toISOString().split('T')[0]],
                                        			["LAST_MONTH", new Date(new Date().setDate(0)).toISOString().split('T')[0]],
                                        			["THIS_YEAR", new Date().toISOString().split('T')[0]],
                                        			["LAST_YEAR", new Date(new Date().getFullYear() - 1, 1, 1).toISOString().split('T')[0]]
                                        		]);
                                        

                                        Stelle hier // bei Zeile 405 voran um die Zeile auszukommentieren (diese Zeile wird dann vom Script nicht mehr berücksichtigt und somit lässt er das abholen der Werte für "LastYear" aus):

                                        		const dates = new Map([
                                        			["THIS_DAY", new Date().toISOString().split('T')[0]],
                                        			["LAST_DAY", new Date(new Date().setDate(new Date().getDate()-1)).toISOString().split('T')[0]],
                                        			["THIS_MONTH", new Date().toISOString().split('T')[0]],
                                        			["LAST_MONTH", new Date(new Date().setDate(0)).toISOString().split('T')[0]],
                                        			["THIS_YEAR", new Date().toISOString().split('T')[0]],
                                        			//["LAST_YEAR", new Date(new Date().getFullYear() - 1, 1, 1).toISOString().split('T')[0]]
                                        		]);
                                        

                                        Das könnte in deinem Fall, bis @nobl wieder da ist, erstmal abhilfe schaffen. Zumindest sollten dann keine Fehler mehr im Log auftauchen und die anderen Werte normal geholt werden. "Debug" kannst du dann auch wieder "Info" umstellen wenn es soweit läuft.

                                        D 1 Reply Last reply Reply Quote 0
                                        • D
                                          DiMe @root666 last edited by DiMe

                                          @root666
                                          Hi vielen Dank für deine Antwort und Lösungsvorschlag.
                                          Ja du liegst richtig, meine Anlage ist von diesem Jahr, d.h. "last year" Werte habe ich noch nicht.
                                          Ich trau mir die Änderung zu, und werde sie morgen mal probieren umzusetzen. Werde hier dann wieder posten.
                                          Wie komme ich am geschicktesten auf die Ordnerstruktur ohne mich mit Powershell mit dem Rasp direkt zu verbinden?

                                          root666 1 Reply Last reply Reply Quote 0
                                          • root666
                                            root666 @DiMe last edited by root666

                                            @dime unter Windows kann ich dafür WinSCP empfehlen. In Verbindung mit Putty hast du da eine Komplettlösung.
                                            Falls du mit ssh auf den Raspberry kommst, dann kannst du auch einfach:

                                            nano /opt/iobroker/node_modules/iobroker.senec/main.js
                                            

                                            eingeben. Damit öfnet sich die main.js ebenfalls auf der Konsole im Editor.
                                            Dort zu Zeile 399 mit den Pfeiltasten, dann // einfügen und mit "strg + x" kannst du speichern. Nachdem du "J" gewählt hast, sollte die Datei gespeichert sein. Je nachdem mit welchem Nutzer du angemeldet bist, kann es auch sein das du "sudo" zum editieren verwendet musst. Also:

                                            sudo nano /opt/iobroker/node_modules/iobroker.senec/main.js
                                            

                                            Ich hab mir aber auch eben schnell die Arbeit gemacht und dir das ganze unter GitHub eingestellt. So kannst du einfach den Adapter damit updaten und auch damit (im Fall der Fälle) auch wieder zurück zur offiziellen v1.6.5 von @nobl wechseln.
                                            Ich hab die Version für mich 1.6.5.1 genannt. Nicht wundern, im ioBroker wird trotzdem nur 1.6.5 angezeigt nach dem update. Du siehst es ja aber wenn die Fehler in den Logs verschwunden sind oder wenn du in main.js rein schaust.

                                            https://github.com/git-ZeR0/ioBroker.senec/tree/Hot-Fix_LastYear
                                            github_hotfix.png

                                            Im Fall der Fälle zurück zur offiziellen Version 1.6.5 von @nobl dann hiermit:
                                            github_nobl.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            514
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            adapter photovoltaik senec
                                            65
                                            338
                                            64131
                                            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