Fritz-Steckdosen speichern positive Temp-Werte im DBLog, obwohl sie negativ sind

Begonnen von ocin4, 26 Dezember 2021, 23:58:16

Vorheriges Thema - Nächstes Thema

ocin4

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.

DS_Starter

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

Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ocin4

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

Wernieman

Kannst Du nicht Temporär den Fühler "in Eis" legen? Das mit den Minusgraden dürfte aktuell etwas dauern ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

ocin4

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)

DS_Starter

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.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ocin4

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

DS_Starter

prima  :)
Ich checke die neue DbLog Version ein und ist dann morgen früh im Regelupdate enthalten.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter