Comments (9)
Hallo Thomas,
ich denke ich habe den Grund gefunden. Du hast die Option "expire_after" genutzt und auf 10 Sekunden eingestellt.
Hatte bisher in dieser Form noch nicht gesehen. Die Option macht ja durchaus Sinn (Sensor in der Nacht nicht verfügbar), aber evtl. sollten der Wert etwas großzügiger gewählt werden, oder?
Macht es evtl. auch Sinn die Option "force_update" zu aktivieren? Anhand der Beschreibung finde ich es sinnvoll.
from opendtu.
Update
Das DTU Poll Interval: 5
Das MQTT Publish Interval: 5
Ich habe 3 Inverter in OpenDTU registriert.
In der Live-Ansicht sehe ich das "Data Age" immer bis 15 hoch läuft.
from opendtu.
Hallo Ingo,
ich merke den Fehler. Das DTU Poll Interval ist eigentlich die Waiting Time zwischen den anfragen an die Wechselrichter. D.h. um alle 3 Wechselrichter abzufragen, benötigt man 3x5 Sek + ca. 1 Sek pro Wechselrichter zum Schreiben/Lesen der Werte. Also knapp 18Sek.
Leider ist das expire interval für HASS aktuell so implementiert:
OpenDTU/src/MqttHassPublishing.cpp
Line 119 in 231c190
Das ist ein Fehler. Ich bin nur leider gerade nicht in Rechner nähe. Wird bis nächste Woche dauern.
from opendtu.
Hallo Thomas,
danke für die Rückmeldung und mach Dir keinen Stress wegen einem möglichen Fix. Ursache identifiziert - perfekt!
Beste Grüße
Ingo
from opendtu.
Hallo Thomas,
mit ist heute erst aufgefallen, dass die erkannten Sensoren per Home Assistant MQTT Auto Discovery ständig "flatten". D.h. anstatt einfach nur zu Updaten sind die immer kurz "Nicht verfügbar". Da passt wohl irgentwas mit dem Update der Topics nicht. Bei anderen Sensoren die ich per Home Assistant MQTT Auto Discovery in meinem System haben zeigt sich das Verhalten nicht. Hier mal ein Video das ist wohl sprechender:
19-08-_2022_13-22-24.mp4
Hast Du eine Idee? Ich gehe auch mal auf die Suche im Code.Beste Grüße Ingo
Hallo! Kann ich Ihre configuration.yaml-Datei haben? Leider kann ich es nicht unter homeassistant auf MQTT zum Laufen bringen. Das würde mir sehr helfen (nur dieser Teil der Datei reicht aus).
from opendtu.
Hallo Thomas,
ich habe jetzt noch ein bisschen mehr in Home Assistant gemacht, als reine Anzeige von Werten. Da wurde mir schnell klar, das es wohl besser wäre komplett auf die "expire_after" Option zu verzichten. Ich mache z.B .jetzt verschiedene Berechnungen und das alles fliegt einem um die Ohren sobald die Sensoren "unavaiable" werden.
Hättest Du was bestimmtes im Sinn als Du dich für die Option entschieden hattest?
from opendtu.
Hallo Ingo, das expire_after macht schon sinn. Man möchte ja z.B. wissen wenn keine gültigen Daten mehr angezeigt werden. Also z.B. nach 15min ohne Aktualisierung kann man wohl davon ausgehen das kein Wert der angezeigt wird mehr passt. In Regeln usw. macht es sowieso sinn Sensoren auf gültige Werte abzufragen. Das kann nämlich auch passieren wenn der MQTT Broker weg ist, nach einem Neustart von HASS mit nicht retainten Nachrichten usw...
from opendtu.
Moin zusammen,
ein paar Gedanken aus dem Off:
Ich sehe zwei Denkweisen:
- Wenn die DTU keine Daten an HA liefert, sollten die Berechnungen dort das auch berücksichtigen. Es müsste also vor jeder Berechnung geprüft werden, ob die Entities/States verfügbar sind. Das ist sehr aufwendig und komplex.
- Wenn die DTU keine aktuellen Daten liefert bleibt der zuletzt gelieferte Wert stehen. So wird es üblicherweise bei vielen anderen Sensoren gemacht. Besonders batteriebetrieben Sensoren liefern nur bei signifikanten Veränderungen der Messwerte in sporadischen Abständen einen Wert.
Ich würde zu Option 2 tendieren. Folgende Argumente sehe ich dafür:
- Es ist ein übliches Vorgehen in HA
- In HA werden zu jedem State entsprechende Attribute erfasst: last_changed, last_updated. Ich kann also im Bedarfsfall überprüfen, ob ich dem Wert noch vertraue.
- Der Status "unavailable" sollte nur dann erscheinen, wenn die DTU wirklich nicht mehr verfügbar ist oder ein anderes Problem in der Kommunikation besteht. Die Karenzzeit dafür sollte deutlich über dem derzeitigen Wert liegen. Eher bei den üblichen 90 Sekunden für gewöhnliche Timeouts. Das sollte aber nur im topic dtu/status abgebildet werden und nicht in den Topics für die DAten.
Grundsätzlich wird "expire_after" für übliche Sensoren im HA-Umfeld nicht eingesetzt. Zumindest habe ich bisher keinen gefunden, der das so macht.
Ich würde also auch für das Entfernen votieren.
from opendtu.
Das Thema hat mir keine Ruhe gelassen. ;) Ich habe mir eine Option eingebaut, mit der ich das Setzen von "expire_after" ein/aus-schalten kann. Ich schiebe es mal in einen Pull Request. Vielleicht möchte es ja sonst noch jemand haben.
from opendtu.
Related Issues (20)
- Nach Update < 24.1.26 keine "aktuelle Anzeige" HOT 2
- ESP32-S3 keine PSRAM Anzeige HOT 3
- Yield Day is Not correct when inverter got. to „sleep“ after sundown HOT 5
- DTU hängt sich auf HOT 5
- New 2,4inch OLED display - flipped/shifted HOT 5
- MQTT only working after Enable/Disable HOT 12
- Missing inverter data in /api/livedata/status HOT 2
- Typo in German language HOT 4
- API does not show panel data HOT 2
- Inverter poolt Nachts HOT 5
- [Request] turn off automatic check of update of firmware HOT 6
- Total Yield Day is partly not visible when value is > 10.0000Wh. HOT 10
- [Request] Add description for error 152 HOT 5
- Add Dates in event log in Live-View HOT 6
- [Request] Add library.json files to private libraries in lib/ folder
- Hardware-Model unknown HOT 8
- add AC yieldtotal in HA like sensor and enable expiration for a part of sensor [Request] HOT 4
- [Request]Add Support for remote Syslog HOT 1
- [Request]Add Support for a second MQTT Service HOT 1
- Yield Day is Not correct when inverter got. to „sleep“ after sundown HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from opendtu.