(gelöst) Filelog mit Infos aus mehreren devices und Definition per RegEx

Begonnen von Betonklotz, 21 Dezember 2023, 14:06:39

Vorheriges Thema - Nächstes Thema

Betonklotz

Hallo FHEM Team,

probiere gerade ein Filelog über alle meine Temperatursensoren anzulegen. Diese heißen immer
[KEO]G_[Zimmerbezeichnung]_TempSens_AF[ID]_WiFialso 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 :-)

TomLee

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

Betonklotz

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 :-)

JoWiemann

Zitat von: Betonklotz am 21 Dezember 2023, 14:30:01
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 :-)

Hallo,

hast Du schon mal {1,} anstatt .+ ausprobiert?

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

mumpitzstuff


Betonklotz

Zitat von: JoWiemann am 21 Dezember 2023, 14:46:14
Zitat von: Betonklotz am 21 Dezember 2023, 14:30:01
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 :-)
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


Beta-User

Ungetestet:
.+
ist doch funktional dasselbe wie
..*
(Die Logik zum Extrahieren des notifydev ist leider keine reine Perl-regexp, sondern ziemlich "eigen").
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

TomLee

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)

frank

"REGEXP(!)"
das ausrufungszeichen hat nichts mit der eigentlichen funktion des filelog devices zu tun.

es wird trotzdem richtig geloggt.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html