NEWS
[Neuer Adapter] Senec Home Adapter
-
vielleicht ganz kurz:
alle Datenpunkte im Zweig "_calc" wurden vom Adapter selbst berechnet (die kamen nie von Senec). Allerdings waren für die Berechnung die Werte unter STATISTICS notwendig, die nunmehr ja nicht mehr kommen.Ich plane aktuell nicht, alte - nicht mehr vorhandene Werte - zu löschen. Sprich was irgendwann mal existiert hat bleibt so lange erhalten, bis der Adapter mal gelöscht wird oder jemand die Datenpunkte von Hand löscht.
die Werte im Zweig "_api" kommen alle direkt aus der Senec App API. Es gibt dort noch mehr - ich hatte nur noch keine Zeit, die sinnvollen noch mit zu integrieren (Wallbox macht bei mir zB Probleme, da ich keine habe und dann scheinbar Fehlermeldungen geliefert werden).
-
Schnelles Update
Mit v1.6.2 (wird quasi gerade gebaut) holt der Adapter nun auch die Statistik-Daten aus der API. Sprich es gibt wieder Daten für Tag, Monat, Jahr (und jeweils auch Gestern, letzter Monat, Letztes Jahr zur Sicherheit) inkl. einer für alle Perioden berechneten Autarkie (die kommt nämlich sinnigerweise da nicht automatisch mit).
Dazu habe ich mir noch erlaubt, die Wh und W Werte zu runden und zusätzlich noch kilo-Werte dazuzupacken
Der bisherige _calc Zweig wird früher oder später entfallen (spät. sobald auch ich STATISTIC nicht mehr bekomme - aber das kann geraume Zeit dauern, denn ich bin noch auf einer sehr sehr alten Version ) - aktualisiert wird er nur noch für die Maschinen, die die Informationen noch liefern.
Gelöscht wird er aber nicht automatisch.Ansonsten: Falls jemand seine alten Statistikwerte zusätzlich mit den neuen versorgen möchte (also die Werte unter _calc mit denen aus der API aktualisieren): Das kann man auch einfach mit einem kleinen (Blockly)Script machen. Aktualisiert sich der passende Wert im API-Zweig, einfach nehmen und an die passende Stelle im _calc-Zweig schreiben. Dann behält man seine alte Statistik und kann sich die neuen Werte dazu anzeigen lassen.
Die fortlaufenden Summen werde ich vorerst nicht mehr unterstützen - das war genaugenommen auch eine Notlösung, um die Periodenwerte unter _calc überhaupt berechnen zu können. Sorry.
-
@nobl
Hallo,
habe Version 1.6.4 installiert.
_api ist nicht vorhanden
Mache ich etwas falsch?
Danke
Gruß
Norbert -
@spassbremse schau mal weiter unten
-
Für alle Interessierten
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.@dwm das dürfte dich vermutlich stark interessieren Insbesondere da es ja jetzt quasi wieder "steigende" Werte gibt.
@losossos Ich ping dich auch mal mit an - du hattest die ja auch Tageswerte, etc. vermisst.Frage: Wurde schon jemand auf das neue Cockpit umgestellt? Das scheint nunmehr einen Auth-Service der EnBW zu nutzen.
-
@Nobi erst mal vielen Dank für die regelmäßig sensationell schnelle Reaktion auf die Umbauten von Senec. Das Zusammenführen von schnellen Live- und statistischen Cloud-Daten ist eine sehr gute Lösung für den nervigen Umbau, den Senec uns gerade beschert hat. Ich kann auch gut nachvollziehen, dass Du für die Cloud Daten eine neue Datenpunkt Struktur angelegt hast und _calc nicht beibehältst.
Da sicher viele hier Grafana verwenden zur Aufbereitung Ihrer Produktions- und Verbrauchswerte hier noch ein Tipp an alle, wie sich solche Statistiken nahtlos im selben Chart weiter anzeigen lassen:
Wer beispielsweise bisher senec.0._calc.LIVE_HOUSE_CONS.today mit dem Alias "Tagesverbrauch" in Grafana visualisiert hat, kann nun die Query in Grafana für senec.0._api.Anlagen.x.Statistik.Today.stromverbrauch (kWh) duplizieren und als "Tagesverbrauch neu" benennen, die bisherige Query als "Tagesverbrauch alt" umbenennen.
Dann unter Transform eine Transformation "Add Field from Calculation" auswählen mit dem Modus "Reduce Row" und dort die Felder "Tagesverbrauch neu" und "Tagesverbrauch alt" auswählen, als Calculation "Total" zum Aufsummieren dieser Werte und als Alias Namen der Berechnung den alten Query Namen "Tagesverbrauch" eingeben. Damit passen dann auch alle Override Einstellungen des Charts, die man für den "Tagesverbrauch" eingestellt hatte, wieder. Damit die zusätzlichen Querys "Tagesverbrauch alt" und "Tagesverbrauch neu", die ja jetzt nur noch Zwischenwerte sind, nicht im Chart stören, können diese durch den Override Series->Hide in Area komplett unsichtbar gemacht und aus der Legende entfernt werden.Damit die alten Werte, die jetzt noch in _calc herumliegen, nicht den Chart verderben, sollten diese mit 0 überschrieben werden, danach kann man den gesamten _calc Baum vermutlich auch löschen, ohne dass der Chart leidet.
Das ist ein bisschen mehr Aufwand als das von Nobi vorgeschlagene Umkopieren der Werte in die alte Datenpunkt Struktur, hat aber den Vorteil, dass man nicht dauerhaft alte Leichen pflegen muss. Außerdem lassen sich auf dem selben Weg auch später leicht andere Werte hinzufügen, falls man beispielsweise einen zweiten Akku (etwa in Form eines einspeisefähigen BEV) in den selben Chart integrieren möchte.
-
@hansjochen sagte in [Neuer Adapter] Senec Home Adapter:
@Nobi erst mal vielen Dank für die regelmäßig sensationell schnelle Reaktion auf die Umbauten von Senec. Das Zusammenführen von schnellen Live- und statistischen Cloud-Daten ist eine sehr gute Lösung für den nervigen Umbau, den Senec uns gerade beschert hat. Ich kann auch gut nachvollziehen, dass Du für die Cloud Daten eine neue Datenpunkt Struktur angelegt hast und _calc nicht beibehältst.
Dafür sag ich mal ganz persönlich meinen herzlichen Dank! Schön zu hören, dass mein Engagement wahrgenommen wird (Immerhin sind da inzwischen vermutlich viele Tage reingeflossen).
Auch dankeschön für deine Ausführungen, wie die bisherigen Daten zusammengelegt werden könnten!
-
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
-
@nobl Gerade gesehen ... supergut, und nochmal ein herzliches Dankschön. Muss ich gleich mal ausprobieren!
-
@root666 said in [Neuer Adapter] Senec Home Adapter:
@spassbremse schau mal weiter unten
Sorry, sieht bei mir mit der neuesten Version 1.6.5 so aus:
Noch eine Idee?
Alles andere Funktioniert aber genial. Danke dafür.
-
@spassbremse Hast du denn die API aktiviert und deine Zugangsdaten eingegeben?
-
@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.
-
@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.
-
@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
-
@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.
-
@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 -
@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?
Gruß Dirk
-
@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) -
@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. -
@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:
Auch wenn das meist gut getaktet funktioniert - gibts da auch mal sowas:
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:
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 ).