Ankündigung

Einklappen
Keine Ankündigung bisher.

Frage zu einer externen Webabfrage (Intervall)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Frage zu einer externen Webabfrage (Intervall)

    Hallo
    Ich möchte in Edomi einen Wert von einer externen Webseite abfragen. Ich würde dazu einen kleinen LBS bauen.
    Bei der Webseite handelt es sich um eine einfache Textdatei (1 Zeile) mit Zeitstempel und dem gewünschten Wert.
    Die Webseite wird jede 10 Min. erneuert (mit 10 Min. Verzögerung), d.h. der Zeitstempel wäre immer 15:10, 15:20, 15:30 etc.

    Das Parsen/Auslesen des Werts ist sicher kein Problem. Ich würde in der Logik ein Telegrammgenerator mit 600000 ms (10 Min.) verwenden. Da ich gewährleisten will, dass wirklich immer die korrekten Daten ausgelesen werden (kein Überspringen oder gar einer doppelt), muss dieser Intervall natürlich perfekt passen. Gerade auf längere Zeit kann ja jeder Timer mal einige Sek. "wegdriften" (+/-) und dann könnte im Worst Case eben nochmals die Datei gelesen werden, obwohl sie noch nicht aktualisiert wurde.

    Wie würdet ihr sowas prüfen, damit es einigermassen verlässlich ist, ohne also zuviel Aufwand zu betreiben? Meine Idee:
    • Beim ersten Auslesen (Start des LBS) wird der Zeitstempel in ein remanentes iOK abgelegt.
    • Beim nächsten Auslesen (10 Min. Intervall per Telegrammgenerator) wird der neue Zeitstempel mit diesem alten iKO verglichen. Ist er +10 Min. ist alles ok. Wert wird ausgelesen und das iKO aktualisiert.
    • Ist der neue Zeitstempel = dem iKO, wird einfach nichts gemacht und auf den nächsten Intervall gewartet.
    • Ist der neue Zeitstempel > 10 Min. vom iKO, dann habe ich wohl ein Intervall ausgelassen. Das kann ich nachträglich nicht mehr ändern, aber ich kann diesen Fall in einem Error-Log protokollieren. Und somit würde ich das frühzeitig bemerken.
    Mir ist grad in den Sinn gekommen, dass ich anstatt dem Telegrammgenerator (mit 600000 ms) wohl besser das System KO "Trigger 10-Minuten" verwenden sollte. Dann ist zumindest gewährleistet, dass Edomi zur genau jeweiligen 10-Min. Zeit den LBS triggert. Und das sollte ja dann eigentlich immer recht gut passen. (Sofern die Edomi-Zeit exakt läuft. Hier wird ja vermutlich auf die Uhrzeit zurückgegriffen und nicht einfach ein 10-Min. Timer gesetzt.)
    Meine Prüfungen oben kann ich ja trotzdem noch verwenden. Schadet sicher nicht.



    #2
    Warum triggerst du mit o.g. Logik den LBS nicht einfach öfter, z.B. alle 2 Minuten. Das tut doch nicht weh und wenn es mal nach einem Update einen Lesefehler gibt, hast du immer noch 4 Versuche, den Wert abzurufen.

    Kommentar

    Lädt...
    X