DbLog und DbLogSelectionMode reagiert nicht wie erwartet

Begonnen von JamBay, 23 Mai 2022, 09:02:59

Vorheriges Thema - Nächstes Thema

JamBay

Hallo,
ich habe mir gestern einen HTTPMOD zur Tankstellenbeobachtung angelegt und dachte es wäre eine nette Idee, die Spritpreise mit zu loggen > DB.
Das ist der HTTPMOD, nach Vorlage aus dem Web/Wiki:
defmod Tankstelle_Aral HTTPMOD http://www.clever-tanken.de/tankstelle_details/1561 600
attr Tankstelle_Aral DbLogExclude city,street,zip
[b]attr Tankstelle_Aral DbLogInclude Diesel.*,Super.*,Ulti.*[/b]
attr Tankstelle_Aral enableControlSet 1
attr Tankstelle_Aral reading01Name Diesel
attr Tankstelle_Aral reading01Regex "price-type-name">Diesel<[\S\s\r\n]*?"current-price-\d+">(\d.\d{2}<[\S\s\r\n]*?"suffix-price-\d">\d)
attr Tankstelle_Aral reading02Name SuperE5
attr Tankstelle_Aral reading02Regex "price-type-name">Super.E5<[\S\s\r\n]*?"current-price-\d+">(\d.\d{2}<[\S\s\r\n]*?"suffix-price-\d">\d)
attr Tankstelle_Aral reading03Name SuperE10
attr Tankstelle_Aral reading03Regex "price-type-name">Super.E10<[\S\s\r\n]*?"current-price-\d+">(\d.\d{2}<[\S\s\r\n]*?"suffix-price-\d">\d)
attr Tankstelle_Aral reading04Name Ultimate102
attr Tankstelle_Aral reading04Regex "price-type-name">ARAL.Ultimate.102<[\S\s\r\n]*?"current-price-\d+">(\d.\d{2}<[\S\s\r\n]*?"suffix-price-\d">\d)
attr Tankstelle_Aral reading05Name UltimateDiesel
attr Tankstelle_Aral reading05Regex "price-type-name">ARAL.Ultimate.Diesel<[\S\s\r\n]*?"current-price-\d+">(\d.\d{2}<[\S\s\r\n]*?"suffix-price-\d">\d)
attr Tankstelle_Aral reading06Name street
attr Tankstelle_Aral reading06Regex "streetAddress">(.*)<
attr Tankstelle_Aral reading07Name zip
attr Tankstelle_Aral reading07Regex "http://schema.org/postalCode">(.*)<
attr Tankstelle_Aral reading08Name city
attr Tankstelle_Aral reading08Regex "http://schema.org/addressCountry">(.*)<
attr Tankstelle_Aral readingOExpr $val =~ s/<[\d\D]+>//;;$val
attr Tankstelle_Aral room Dietfurt
attr Tankstelle_Aral stateFormat E5: SuperE5, E10: SuperE10, SP: Ultimate102, D: Diesel
attr Tankstelle_Aral timeout 10


Über DbLogInclude sollen nur die Preise mitgeloggt werden.
Das funktioniert solange im entsprechenden DbLog-Device "DbLogSelectionMode" auf "Include" steht,
das funktioniert nicht, wenn "DbLogSelectionMode" auf "Exclude/Include" steht.
Leider funktioniert bei "Include" die RegEx im DEF ja nicht...

defmod LogDB DbLog ./fhemdb.conf .*:(temperature|humidity|pressure|wind_speed|voltage|valve_position|cpufreq|load|fssize|ENERGY_|POWER|window|Vcc|Level).*
attr LogDB DbLogSelectionMode Exclude/Include
attr LogDB DbLogType Current/History
attr LogDB group Datenbank
attr LogDB icon it_server
attr LogDB room RZ
attr LogDB verbose 2


Was mache ich falsch?



JamBay

#1
Hmm, gerade auf diesen Thread gestoßen (k.A. warum der bei der Suche nicht aufgeploppt ist??) https://forum.fhem.de/index.php?topic=78102.0

Dem entnehme ich, dass es nur möglich ist, per DbLogInclude Werte "hinzuzufügen" die auch in der RegEx schon enthalten wären?
Also wäre das korrekte Vorgehen, per RegEx alles erlauben .*:.*, dann bei allen Devices alles auszuschließen .* und per DbLogInclude die gewünschten Werte wieder freizugeben?
Ist das der Weg?

Die Dokumentation hatte mich eigentlich hoffen lassen, dass ich per DbLogInclude zusätzliche Werte mitloggen zu können.