Hallo,
ich hab das DbLog folgendermaßen aktiviert:
define fhemDbLog DbLog /opt/fhem/db.conf (.*:power.*|.*:temperature.*|.*:temperature_C.*|.*:humidity.*|.*:dewpoint.*)
Meine FritzDect-Steckdose 210 hängt im Carport. So ist sie definiert:
define FBDECT_fritzbox_Carport FBDECT fritzbox:11657_0248319 microphone,switch,powerMeter,tempSensor,switch
attr FBDECT_fritzbox_Carport alias Carport
attr FBDECT_fritzbox_Carport devStateIcon off:ios-off on:ios-on-blue
attr FBDECT_fritzbox_Carport event-min-interval power:120
attr FBDECT_fritzbox_Carport group Steckdosen
attr FBDECT_fritzbox_Carport model Dect200
attr FBDECT_fritzbox_Carport room Steckdosen,Weihnachten
attr FBDECT_fritzbox_Carport webCmd :
In der Datenbank gespeichert werden folgende Werte:
|TIMESTAMP |DEVICE |TYPE |EVENT |READING |VALUE|UNIT |
|-------------------|-----------------------|------|------------------------------|-----------|-----|------------|
|2021-12-26 23:49:12|FBDECT_fritzbox_Carport|FBDECT|temperature: -5.0 C (measured)|temperature|5.0 |C (measured)|
Warum wird der Value positiv? Kann ich da irgendwas einstellen, dass das nicht passiert?
Danke im Voraus!
ocin4
Edit: Bei MQTT2-Devices (433MHz-Sensoren) werden die Werte korrekt negativ gespeichert.
Das liegt vermutlich an dem Eventsplitting speziell für FBDECT im DbLog.
Ich habe dir eine Version zum Test bereitgestellt, die du bitte herunterlädst und ausprobierst ob der Fehler damit beseitigt ist.
Zum Download in der FHEMWEB Kommandozeile inklusive der Ausführungszeichen angeben und danach FHEM restarten:
"wget -qO ./FHEM/93_DbLog.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbLog.pm"
Grüße,
Heiko
Cool, danke!
Ich hab die Version installiert. Leider kann ich keinen Erfolg berichten, weil draußen Plus-Grade sind. Sobald es wieder kälter wird, meld ich mich nochmal.
VG,
ocin4
Kannst Du nicht Temporär den Fühler "in Eis" legen? Das mit den Minusgraden dürfte aktuell etwas dauern ....
Ist halt ne Steckdose, die gleichzeitig Temperatur misst (https://avm.de/produkte/fritzdect/fritzdect-210/). "In Eis legen" ist mir bei 230V etwas "heiß". 8)
Lege dir doch einfach ein userReading in deinem FBDECT-Device an mit einem Wert von z.B. -10 C und lasse es loggen, d.h. Event nicht unterdrücken.
Dann siehst du ja ob es klappt.
Stimmt, danke für den Hinweis. Dazu bin ich noch zu sehr Anfänger, um da selbst drauf zu kommen.
Ich hab mir ein userReading temperature_C {-10.5 . " C (measured)"}
angelegt, um dem originalen Reading so nahe wie möglich zu kommen. Folgendes wurde in die DB geschrieben:
|TIMESTAMP |DEVICE |TYPE |EVENT |READING |VALUE|UNIT |
|-------------------|-----------------------|------|---------------------------------|-------------|-----|------------|
|2021-12-27 15:33:07|FBDECT_fritzbox_Carport|FBDECT|temperature: 0.5 C (measured) |temperature |0.5 |C (measured)|
|2021-12-27 15:33:07|FBDECT_fritzbox_Carport|FBDECT|temperature_C: -10.5 C (measured)|temperature_C|-10.5|C (measured)|
Es funktioniert also. Herzlichen Dank!
Ich hab jetzt noch die falschen Values korrigiert (für den Fall, dass das mal noch jemand anderes braucht):
UPDATE history h SET value = (value * -1) WHERE h.DEVICE ="FBDECT_fritzbox_Carport" AND h.EVENT LIKE "temperature: -%" AND h.VALUE > 0;
Das Device muss dann natürlich angepasst werden.
VG,
ocin4
prima :)
Ich checke die neue DbLog Version ein und ist dann morgen früh im Regelupdate enthalten.