Hallo FHEM Team,
probiere gerade ein Filelog über alle meine Temperatursensoren anzulegen. Diese heißen immer
[KEO]G_[Zimmerbezeichnung]_TempSens_AF[ID]_WiFi
also z.B.
KG_Hobby_TempSens_AF659E32_WiFi
EG_Wohnzimmer_TempSens_AF1E41F6_WiFi
EG_Garten_TempSens_AF52831B_WiFi
Diese stellen dann u.a. ein reading mit Temperaturwerten bereit.
Nun würde ich gerne alle Werte der Temperatursensoren in ein einziges Filelog schreiben (knapp über 30 Sensoren).
Also habe ich probiert das define des Filelog direkt zu bearbeiten, aber sobald ich für das Device selbst ein Regex ansetze, bekomme ich am Interals REGEXP immer ein (!) angezeigt und FHEM meckert, dass er kein Device finden konnte.
Als define habe ich
./log/Tempwerte-%Y-%m.log .G_.+_TempSens_AF......_WiFi:Temp_.+Wert:.*
genutzt. Den Regex hinten im reading akzeptiert FHEM, vorne scheitere ich immer am ".+" um den Raum/Zimmer abzudecken. Also der erste Punkt um das Geschoss/Ebene abzudecken geht noch durch, auch die Ersetzung der ID über die Punkte wird ohne Ausrufezeichen akzeptiert. Aber sobald ich den Raum/Zimmer über .+, oder auch .* erfassen möchte, funktioniert es nicht mehr und das (!) erscheint.
Geht das gar nicht beim Filelog, oder mache ich etwas falsch? Wollte mir eigenltich ersparen, alle einzeln hinzuzuklicken.
Stürmische Grüße :-)
Hallo,
was spricht dagegen jedes Temperaturdevice einfach oben bei Regexp parts (in der Detailansicht der FileLog-Definiton) mit set FileLog_Hinterhaus_Temperatursensoren addRegexpPart <devicename> <readingname> zu ergänzen ?
Gruß
Thomas
Zitat von: TomLee am 21 Dezember 2023, 14:18:20was spricht dagegen jedes Temperaturdevice [...] zu ergänzen ?
pure Faulheit :-)
So wäre es eine Zeile und ich würde auch zukünftig automatisch von jedem neuen Device die Werte mit erfassen (Voraussetzung: ich bleibe bei meiner Namenskonvention) vs. ich brauche x min um es zusammenzuklickern und jede Änderung an Sensoren immer händisch einzupflegen.
Aber wenn es nicht geht, dann ist das eben so. Also Abendprogramm gesichert :-)
Zitat von: Betonklotz am 21 Dezember 2023, 14:30:01Zitat von: TomLee am 21 Dezember 2023, 14:18:20was spricht dagegen jedes Temperaturdevice [...] zu ergänzen ?
pure Faulheit :-)
So wäre es eine Zeile und ich würde auch zukünftig automatisch von jedem neuen Device die Werte mit erfassen (Voraussetzung: ich bleibe bei meiner Namenskonvention) vs. ich brauche x min um es zusammenzuklickern und jede Änderung an Sensoren immer händisch einzupflegen.
Aber wenn es nicht geht, dann ist das eben so. Also Abendprogramm gesichert :-)
Hallo,
hast Du schon mal {1,} anstatt .+ ausprobiert?
Grüße Jörg
[^_]+
anstatt .+ ginge eventuell auch noch.
Zitat von: JoWiemann am 21 Dezember 2023, 14:46:14Zitat von: Betonklotz am 21 Dezember 2023, 14:30:01Zitat von: TomLee am 21 Dezember 2023, 14:18:20was spricht dagegen jedes Temperaturdevice [...] zu ergänzen ?
pure Faulheit :-)
So wäre es eine Zeile und ich würde auch zukünftig automatisch von jedem neuen Device die Werte mit erfassen (Voraussetzung: ich bleibe bei meiner Namenskonvention) vs. ich brauche x min um es zusammenzuklickern und jede Änderung an Sensoren immer händisch einzupflegen.
Aber wenn es nicht geht, dann ist das eben so. Also Abendprogramm gesichert :-)
hast Du schon mal {1,} anstatt .+ ausprobiert?
jetzt ja. Leider ebenfalls negativ, ein ".{1,}" anstatt des .+ oder auch [^_]+ (wobei das + ja genau das gleiche macht (und auch mit * geht es nicht))
Ein List und der Ausdruck liefert "natürlich" alle Devices zurück, egal ob mit .+ oder .* oder .{1,} oder [^_]+
Vermutlich geht das einfach in FHEM nicht und die Angaben fürs Device müssen einzeln erfolgen, während sie hinten beim reading per REgex erfolgen dürfen
alle per Hand hinzugefügt :-)
Ungetestet:
.+
ist doch funktional dasselbe wie
..*
(Die Logik zum Extrahieren des notifydev ist leider keine reine Perl-regexp, sondern ziemlich "eigen").
Zitatalle per Hand hinzugefügt
Ich sag es kommt der Tag an dem du das nicht bereust, weil dann auch die Frage ausbleibt, wie man ein Gerät von dem regexp ausnimmt, das nicht geloggt werden soll (bspw. weil nur temporär vorhanden und das loggen nicht gewünscht ist / das Log sauber bleiben soll)
"REGEXP(!)"
das ausrufungszeichen hat nichts mit der eigentlichen funktion des filelog devices zu tun.
es wird trotzdem richtig geloggt.