Giter Club home page Giter Club logo

Comments (9)

itn3rd77 avatar itn3rd77 commented on August 24, 2024

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?

grafik

Macht es evtl. auch Sinn die Option "force_update" zu aktivieren? Anhand der Beschreibung finde ich es sinnvoll.

from opendtu.

itn3rd77 avatar itn3rd77 commented on August 24, 2024

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.

tbnobody avatar tbnobody commented on August 24, 2024

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:

root[F("exp_aft")] = Configuration.get().Mqtt_PublishInterval * 2;

Das ist ein Fehler. Ich bin nur leider gerade nicht in Rechner nähe. Wird bis nächste Woche dauern.

from opendtu.

itn3rd77 avatar itn3rd77 commented on August 24, 2024

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.

szepnorbee avatar szepnorbee commented on August 24, 2024

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.

itn3rd77 avatar itn3rd77 commented on August 24, 2024

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.

tbnobody avatar tbnobody commented on August 24, 2024

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.

battifreund avatar battifreund commented on August 24, 2024

Moin zusammen,
ein paar Gedanken aus dem Off:

Ich sehe zwei Denkweisen:

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

  1. Es ist ein übliches Vorgehen in HA
  2. 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.
  3. 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.

battifreund avatar battifreund commented on August 24, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.