[gelöst] dewpoint in filelog aufnehmen (xiaomi bt Sensor)

Begonnen von hanshome, 15 November 2022, 20:46:08

Vorheriges Thema - Nächstes Thema

hanshome

'nabend,

ich vermute ich bin einfach nur zu blöd zum suchen, daher hier in die Anfängerfragen. Aber ich habe jetzt eine halbe Stunde gesucht und finde nur Lösungen für Sensoren, die Temp und Humidity in einer Zeile liefern. Das tun "meine" xiaomi Sensoren (LYWSD03MMC) aber nicht :-(.

Ich habe gemäß commandref dewpoint für alles definiert. Und alle Sensoren haben nun auch ein Reading "dewpoint". Alleine, ich hätte das auch gerne im Filelog zusammen mit Temp und Humidity um alles zusammen in einer Grafik darzustellen. Kann mir da jemand einen Tipp geben? Gerne auch einen Link wo es beschrieben ist.

Falls ihr doch konkrete Angaben meiner Gerät benötigt einfach melden.

betateilchen

Ich verstehe das Problem noch nicht.

Das reading dewpoint ist doch ein ganz normales reading, das einen event erzeugt.

2022-11-15 20:51:23 CUL_HM te_Sensor dewpoint: 8.4

Also kannst Du das auch loggen, sofern Deine regex im FileLog device entsprechend "passt"?

defmod te_Sensor_FileLog_1 FileLog ./log/te_Sensor_FileLog_1.log te_Sensor:dewpoint:.*

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hanshome

Also dann mal mit lists der devices. Auch mit deinen Tipps geht es nicht, dewpoint landet nicht im log :-(

Hier das Thermometer:
Internals:
   CID        A4C1386BE947
   DEF        A4C1386BE947
   FUUID      63617a0d-f33f-771b-c500-5e57db249066fb50
   IODev      my_MQTT_Server
   LASTInputDev my_MQTT_Server
   MSGCNT     9364
   NAME       BT_TM_2_Leni
   NR         399
   STATE      T: 20°C, H: 65%rH
   TYPE       MQTT2_DEVICE
   eventCount 686
   my_MQTT_Server_CONN my_MQTT_Server_192.168.178.85_49606
   my_MQTT_Server_MSGCNT 9364
   my_MQTT_Server_TIME 2022-11-15 21:29:43
   JSONMAP:
     batt       batteryPercent
     hum        humidity
     servicedata 0
     servicedatauuid 0
     tem        0
     tempc      temperature
     tempf      0
   READINGS:
     2022-11-13 16:50:19   IODev           my_MQTT_Server
     2022-11-01 20:57:01   attrTemplateVersion 20220220
     2022-11-15 21:29:43   batteryPercent  83
     2022-11-15 21:29:43   brand           Xiaomi
     2022-11-15 21:26:04   dewpoint        13.2
     2022-11-15 21:29:43   humidity        65
     2022-11-15 21:29:43   id              A4:C1:38:6B:E9:47
     2022-11-15 21:29:43   mac_type        0
     2022-11-15 19:12:49   manufacturerdata
     2022-11-15 21:29:43   model           LYWSD03MMC
     2022-11-15 21:29:43   model_id        LYWSD03MMC_ATC
     2022-11-15 21:29:43   name            ATC_6BE947
     2022-11-15 21:29:43   rssi            -88
     2022-11-15 21:29:43   temperature     20
     2022-11-15 21:29:43   volt            2.952
Attributes:
   autocreate 0
   event-min-interval batteryPercent:7200,temperature:300,humidity:900
   event-on-change-reading batteryPercent,temperature:0.2,humidity:0.5,distance:5
   icon       temperature_humidity
   jsonMap    batt:batteryPercent tempc:temperature tem:0 tempf:0 hum:humidity servicedatauuid:0 servicedata:0
   model      OpenMQTTGateway_BT_temp_hum_sensor
   readingList home/O[^/]*M[^/]*G[^/]*/BTtoMQTT/A4C1386BE947:.* { json2nameValue($EVENT,'',$JSONMAP) }
   room       Leni,MQTT2_DEVICE,Thermometer
   stateFormat T: temperature°C, H: humidity%rH


Und hier das filelog, da hatte ich per addregexpart den Teil mit dem dewpoint hinzugefügt. dewpoint landet aber nicht im Log:
Internals:
   DEF        ./log/BT_TM_2_%Y_%m.log BT_TM_2_Leni:.*|BT_TM_2_Leni:dewpoint:.*
   FD         166
   FUUID      636d566b-f33f-771b-c80e-d71c67df6d5825f2
   NAME       FileLog_BT_TM_2_Leni
   NOTIFYDEV  BT_TM_2_Leni
   NR         407
   NTFY_ORDER 50-FileLog_BT_TM_2_Leni
   REGEXP     BT_TM_2_Leni:.*|BT_TM_2_Leni:dewpoint:.*
   STATE      active
   TYPE       FileLog
   currentlogfile ./log/BT_TM_2_2022_11.log
   eventCount 1
   logfile    ./log/BT_TM_2_%Y_%m.log
   READINGS:
     2022-11-15 21:31:42   linesInTheFile  1289
Attributes:


Dann habe ich mit deinem letzten Hinweis ein explizites Logfile nur für dewpoint angelegt, aber das bleibt auch leer. Und ja, ich habe die Aktualisierung des Readings dewpoint abgewartet:
Internals:
   CFGFN     
   DEF        ./log/te_Sensor_FileLog_1.log BT_TM_2_Leni:dewpoint:.*
   FD         178
   FUUID      6373f4de-f33f-771b-d6fd-fb3ec7fb8919b6a5
   NAME       te_Sensor_FileLog_1
   NOTIFYDEV  BT_TM_2_Leni
   NR         2098
   NTFY_ORDER 50-te_Sensor_FileLog_1
   REGEXP     BT_TM_2_Leni:dewpoint:.*
   STATE      active
   TYPE       FileLog
   currentlogfile ./log/te_Sensor_FileLog_1.log
   logfile    ./log/te_Sensor_FileLog_1.log
Attributes:
   room       Thermometer

hanshome

Nachtrag, dewpoint wird so ermittelt/berechnet:

Internals:
   CMD_TYPE   dewpoint
   DEF        dewpoint .* temperature humidity dewpoint
   DEV_REGEXP .*
   FUUID      6349c720-f33f-771b-106e-809bd481be69fc76
   HUM_NAME   humidity
   NAME       dew_all
   NEW_NAME   dewpoint
   NR         386
   NTFY_ORDER 10-dew_all
   STATE      active
   TEMP_NAME  temperature
   TYPE       dewpoint
Attributes:
   room       Raumklima

Otto123

#4
hier müsste man dewpoint mit aufnehmen, sonst wird es nix :)
event-on-change-reading batteryPercent,temperature:0.2,humidity:0.5,distance:5
keine Events - keine Eintrag im FileLog
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

hanshome

Zitat von: Otto123 am 15 November 2022, 22:07:53
hier müsste man dewpoint mit aufnehmen, sonst wird es nix :)
event-on-change-reading batteryPercent,temperature:0.2,humidity:0.5,distance:5
keine Events - keine Eintrag im FileLog

Danke das wars! Zu meiner Verteidung  :): das "event-on-change-reading" kommt aus dem Attribut-Template. Und so tief bin ich dann leider noch nicht im Thema. Aber das klingt logisch :).

betateilchen

Zitat von: hanshome am 15 November 2022, 22:37:39
"event-on-change-reading"

Die Wurzel allen Übels... vom Teufel gemacht.

Deshalb gibt's dieses Attribut in keiner einzigen meiner FHEM Installationen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

TomLee

Zitat von: betateilchen am 15 November 2022, 22:46:14
Die Wurzel allen Übels... vom Teufel gemacht.

Deshalb gibt's dieses Attribut in keiner einzigen meiner FHEM Installationen.

Rück mal bitte mit der ganzen Wahrheit raus.

Wie machst du das dann mit Geräten die bspw. bei irgendeiner Änderung immer alles senden.
Meinetwegen kann man in FileLog was drehen das nur ein Wert bei Änderung geloggt wird (ich weiß es nicht und hab mich nicht mit beschäftigt), aber was ist wenn bspw. ein notify nur bei Änderung der Temperatur auslösen soll ?

Sehe eigentlich dann nur die Möglichkeit das es in keiner deiner Installationen Geräte gibt die so ein Verhalten haben.

Otto123

Anmerkung:
@HansHome Du solltest diese DEF wieder korrigieren. Stört jetzt nicht, aber in ein paar Monaten wunderst Du Dich ;)

DEF        ./log/BT_TM_2_%Y_%m.log BT_TM_2_Leni:.*|BT_TM_2_Leni:dewpoint:.*
BT_TM_2_Leni:.* loggt alle Events des Devices BT_TM_2_Leni
BT_TM_2_Leni:dewpoint:.* loggt nur das Reading dewpoint des Devices BT_TM_2_Leni

Man kann entweder alles loggen und die Events im Device reduzieren auf die Events die man haben möchte.
Oder genau die Events / Werte loggen, die man im LogFile haben möchte und wirklich braucht.

Ich würde letztere Vorgehensweise bevorzugen. ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

hanshome

Zitat von: Otto123 am 16 November 2022, 08:00:34
Anmerkung:
@HansHome Du solltest diese DEF wieder korrigieren. Stört jetzt nicht, aber in ein paar Monaten wunderst Du Dich ;)

DEF        ./log/BT_TM_2_%Y_%m.log BT_TM_2_Leni:.*|BT_TM_2_Leni:dewpoint:.*
BT_TM_2_Leni:.* loggt alle Events des Devices BT_TM_2_Leni
BT_TM_2_Leni:dewpoint:.* loggt nur das Reading dewpoint des Devices BT_TM_2_Leni

Man kann entweder alles loggen und die Events im Device reduzieren auf die Events die man haben möchte.
Oder genau die Events / Werte loggen, die man im LogFile haben möchte und wirklich braucht.

Ich würde letztere Vorgehensweise bevorzugen. ;)

Danke dir, habe ich schon wieder rausgekickt. Im Prinzip ist mir die Logik klar, ich wollte halt nur mal ausprobieren explizit das Reading dewpoint aufzunehmen. Das Problem war ja dann schlussendlich ein anderes.

Und yepp, nur das zu loggen was benötigt wird hatte ich auch schon an anderer Stelle gemacht, das erschien mir auch sinnvoll. Eine delock 11827 (Steckdose mit Verbrauchsmessung) ist auch ziemlich gesprächig, da hatte ich z.B. auf ENERGY_Power und ENERGY_Total eingeschränkt.