Hallo Zusammen,
ich logge via HTTPMOD die Treibstoffpreise:
defmod avia HTTPMOD http://www.clever-tanken.de/tankstelle_details/mainz-lennebergstr-thelen-gmbh-co-kg-avia 600
attr avia userattr reading01Name reading01OExpr reading01Regex
attr avia enableControlSet 1
attr avia event-on-change-reading .*
attr avia reading01Name Diesel
attr avia reading01OExpr $val + 0.009
attr avia reading01Regex <span>Diesel</span>[^0-9]+([0-9\.]+)
attr avia timeout 5
Allerdings möchte ich nur bei einer Wertänderung (wenn sich der Preis wirklich ändert) einen Log-Eintrag, daher attr avia event-on-change-reading .*
jedoch wird bei jedem HTTPMOD-Abruf (alle 600 Sekunden) ein Log-Eintrag erzeugt, wieso wird event-on-change übergangen?
gruss und danke
Kannst du bitte die Events in einem FileLog protokollieren, und 3-5 Zeilen dann hier anhaengen?
Sorry Denkfehler meinerseits, die Readings werden laufend aktualisiert, die richtigerweise Log-Einträge natürlich nicht. :)
Zum Glück ist Freitag...
Zum Verständnis ich lasse mir alle Tankstellen als Readingsgroup anzeigen und dort ist der Timestamp (vom Reading) angezeigt, bekomme ich mit einfachen Mitteln anstatt dem Readings Timestamp den TimeStamp des letzten Log-Eintrag / letzte Preisanpassung. Vermutlich werde ich mir mit UserCommands ein zusätzliches Reading basteln müssen, in dem der Timestamp vermerkt wird, wenn sich der Wert ändert.
Tankstelle, Preis, Zeitpunkt letzte Preisanpassung.
Zitat von: Hauswart am 01 Dezember 2017, 13:17:11
Zum Verständnis ich lasse mir alle Tankstellen als Readingsgroup anzeigen und dort ist der Timestamp (vom Reading) angezeigt, bekomme ich mit einfachen Mitteln anstatt dem Readings Timestamp den TimeStamp des letzten Log-Eintrag / letzte Preisanpassung. Vermutlich werde ich mir mit UserCommands ein zusätzliches Reading basteln müssen, in dem der Timestamp vermerkt wird, wenn sich der Wert ändert.
Tankstelle, Preis, Zeitpunkt letzte Preisanpassung.
Der Zeitpunkt der letzten Preisanpassung ist doch in dem HTTP Datenstrom (Internal "buf" vom HTTPMOD) enthalten; da sollte doch ein zusätzliches readingXXRegex/-Name reichen?
Danke ph1969de du hast mich auf den richtigen Weg gebracht, ich wusste, dass der Wert auf der Seite vorhanden ist, nur nicht wie ich ihn sinnvoll in die Readingsgroup bekomme.
So geht es:
attr avia reading05Name Preisdatum
attr avia reading05Regex Letzte MTS-K Preisänderung: (\d*.\d*.\d* \d*:\d*)</br>
Readingsgroup:
defmod Spritpreise_Diesel readingsGroup <Tankstelle>,<Preis>,<Stand> *:(Diesel),Preisdatum
attr Spritpreise_Diesel nameStyle style="color:red;;font-weight:bold"
attr Spritpreise_Diesel sortColumn 2
es gibt auch das allgemeine attribut timestamp-on-change-reading. dann sollte sich der timestamp nach dem letzten change nicht mehr ändern.