FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: matze1999 am 25 Januar 2026, 11:45:23

Titel: [gelöst] Wie bekomme ich userreadings in ein log-File?
Beitrag von: matze1999 am 25 Januar 2026, 11:45:23
Hallo,

ich habe userreadings in einem Device erstellt, aber diese werden nicht automatisch in ein Filelog übernommen, wenn die Readings erstellt werden. event-on-change-reading ist eingestellt. Das triggernde reading erscheint im filelog, das userreading aus dem gleichen Devise nicht?

Wie könnte ich diese userreadings in ein Filelog bekommen?

matze
Titel: Aw: Wie bekomme ich userreadings in ein log-File?
Beitrag von: Beta-User am 25 Januar 2026, 11:49:00
Wie immer: ein Copy for Forum wäre aufschlussreich...
Zitat von: Beta-User am 21 Januar 2026, 18:36:29Vielleicht der Versuch einer noch etwas anderen Beschreibung:
Wenn gesetzt, unterdrückt "event-on-change-reading" (aka eocr) alle Events (genauer: den trigger für die Erneuerung des Reading-Werts), es sei denn, der Reading-Name würde auf ein Element einer - durch komma-separierte regex-Ausdrücke beschriebenen - Liste matchen.
Das zuerst passende Element der "in order of apperance" durchlaufenden Liste beschreibt abschließend, auf welche Unterschiedlichkeit der Reading-Wert zu prüfen ist (insbesondere, falls ein threshold gesetzt ist).

Daher triggert nichts anderes mehr, wenn man genau einen Reading-Namen gesetzt hatte (völlig unabhängig davon, ob es den überhaupt gibt).
Titel: Aw: Wie bekomme ich userreadings in ein log-File?
Beitrag von: matze1999 am 25 Januar 2026, 11:59:55
Hier Auszüge aus dem Device:

define DVES_201194 MQTT2_DEVICE DVES_201194
...
attr DVES_201194 event-on-change-reading MISCALEV126f889_Weight, MGewicht, JGewicht
...
attr DVES_201194 userReadings MGewicht {   my $r = ReadingsVal("DVES_201194","MISCALEV126f889_Weight",undef);;   return undef if !defined($r) || $r < 80;;   return $r;; },\
JGewicht {   my $r = ReadingsVal("DVES_201194","MISCALEV126f889_Weight",undef);;   return undef if !defined($r) || $r >= 60;;   return $r;; }\

attr DVES_201194 verbose 2
#   CID        DVES_201194
#   DEF        DVES_201194
#   FUUID      689224a6-f33f-214e-778f-7a6b427cade68ea8
#   IODev      myBroker
#   LASTInputDev myBroker
#   MSGCNT     4
#   NAME       DVES_201194
#   NR         992
#   STATE      93.90 kg
#   TYPE       MQTT2_DEVICE
#   myBroker_CONN myBroker_192.168.1.85_57885
#   myBroker_MSGCNT 4
#   myBroker_TIME 2026-01-25 11:42:39

#   READINGS:

#     2026-01-25 00:58:13   JGewicht        29.55
...
#     2026-01-25 11:42:39   MGewicht        93.90
..-
#     2026-01-25 01:02:36   MISCALEV126f889_Weight 93.90

setstate DVES_201194 93.90 kg

setstate DVES_201194 2026-01-25 00:58:13 JGewicht 29.55
..
setstate DVES_201194 2026-01-25 11:42:39 MGewicht 93.90
...
setstate DVES_201194 2026-01-25 01:02:36 MISCALEV126f889_Weight 93.90



hier das Fillog dazu


defmod Waage.File FileLog ./log/Waage-%Y.log DVES_201194:MISCALEV126f889_Weight:.*|DVES_201194:MGewicht:.*|DVES_201194:JGewicht:.*

Titel: Aw: Wie bekomme ich userreadings in ein log-File?
Beitrag von: TomLee am 25 Januar 2026, 13:56:07
Hallo,

Die Bedienungsanleitung sagt:

Zitat von: commandrefevent-on-change-reading
Dieses Attribut enthält eine durch Kommata getrennte Liste von Readings. Statt Reading kann auch ein regulärer Ausdruck verwendet werden. Wenn gesetzt, erzeugen nur Veränderungen der gelisteten Readings ein Ereignis. Wenn die aktualiserten Werte der gelisteten Readings identisch sind, wird kein Ereignis generiert.
Wenn hinter dem Namen eines Readings eine :Schwelle angegeben ist, wird das Event nur getriggert wenn die Änderung grösser als diese Schwelle ist.

Und nicht:
ZitatDieses Attribut enthält eine durch Kommata und Leerzeichen getrennte Liste von Readings.

Da Du nur ein (echtes) Event (MISCALEV126f889_Weight) zulässt und die userReadings keine Trigger-Angabe haben, werden die Werte nur einmal ins FileLog geschrieben.

Sobald Du in eocr aber ein weiteres (echtes) Reading ergänzt und Du keine Trigger-Reading in den userReadings ergänzt, wird auch für dieses Reading dann ein Event erzeugt und die userReadings zweimal ins FileLog geschrieben. usw.

Gruß Thomas
Titel: Aw: Wie bekomme ich userreadings in ein log-File?
Beitrag von: matze1999 am 25 Januar 2026, 14:26:55
das Leerzeichen wars!, ich muss noch viel lernen, oder mich besser konzentrieren, vielen Dank!

so gehts richtig:

attr DVES_201194 event-on-change-reading MISCALEV126f889_Weight,MGewicht,JGewicht
matze