'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.
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:.*
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
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
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
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 :).
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.
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.
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. ;)
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.