FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: marcg am 16 November 2023, 10:32:42

Titel: addlog funktioniert nicht
Beitrag von: marcg am 16 November 2023, 10:32:42
Hallo,

ich hab 2 WLAN Steckdosen die ich per MQTT an und ausschalten kann. Sie werden mit DOIFs automatisiert an und ausgeschaltet. Das landet auch korrekt im Logfile. Das sind am Tag idR nur 2 Schaltvorgänge und so bekomme ich bei der Visualisierung Plotabrisse... Ich wollte also den letzten Zustand alle 15min im Log haben damit das Plot klappt... Tja addlog Testweise auf 30 Sekunden gestellt, nix passiert im Logfile. Ich hab addlog noch nie benutzt, falsch angewendet ? Testweise mit einem HUEDevice benutzt (selbes Problem) geht auch nicht...

Woran liegts ?

Grüße
Marc

define Log_MQTT2 FileLog ./log/Log_MQTT2-%Y-%m.log MQTT2_DVES_91F696:on|MQTT2_DVES_91F696:off|MQTT2_DVES_91F7D8:on|MQTT2_DVES_91F7D8:off
attr Log_MQTT2 addLog MQTT2_DVES_91F696:state:30,MQTT2_DVES_91F7D8:state:30
attr Log_MQTT2 archiveCompress 1
attr Log_MQTT2 archivedir ./log_Archiv/
attr Log_MQTT2 nrarchive 1
attr Log_MQTT2 room Logfiles
#   DEF        ./log/Log_MQTT2-%Y-%m.log MQTT2_DVES_91F696:on|MQTT2_DVES_91F696:off|MQTT2_DVES_91F7D8:on|MQTT2_DVES_91F7D8:off
#   FD         43
#   FUUID      65546ebf-f33f-3c2f-6227-c017f08523626140
#   NAME       Log_MQTT2
#   NOTIFYDEV  MQTT2_DVES_91F7D8,MQTT2_DVES_91F696
#   NR         191
#   NTFY_ORDER 50-Log_MQTT2
#   REGEXP     MQTT2_DVES_91F696:on|MQTT2_DVES_91F696:off|MQTT2_DVES_91F7D8:on|MQTT2_DVES_91F7D8:off
#   STATE      active
#   TYPE       FileLog
#   addLogMinInterval 30
#   currentlogfile ./log/Log_MQTT2-2023-11.log
#   logfile    ./log/Log_MQTT2-%Y-%m.log
#   READINGS:
#     2023-11-16 04:33:13   linesInTheFile  55
#
setstate Log_MQTT2 active
setstate Log_MQTT2 2023-11-16 04:33:13 linesInTheFile 55

Titel: Aw: addlog funktioniert nicht
Beitrag von: betateilchen am 16 November 2023, 12:50:04
addLog im Kontext von state zu verwenden, ist nicht immer eine gute Idee, da sich state in vielen Fällen "speziell" verhält.
Titel: Aw: addlog funktioniert nicht
Beitrag von: marcg am 16 November 2023, 13:22:02
Naja, andere Möglichkeit geben die Readings nich her. Nagut, probier ichs halt mal mit LogProxy...

Danke
Marc
Titel: Aw: addlog funktioniert nicht
Beitrag von: betateilchen am 16 November 2023, 18:34:24
Ich glaube nicht, dass logproxy hier weiterhilft.
Schreib doch einfach per at den ReadingsVal() von state per setreading wieder in das reading. Dabei müsste setreading ein event erzeugen und den Wert ins Log schreiben (ungetestet).

Alternativ könntest Du prüfen, ob das Attribut addStateEvent irgendwie weiterhilft.
Titel: Aw: addlog funktioniert nicht
Beitrag von: erwin am 18 November 2023, 12:25:53
Tja addlog Testweise auf 30 Sekunden gestellt, nix passiert im Logfiledeswegen nix, weil der generierte event NICHT mit der regex in FileLog-define matched.
Selbst wenn das funtionieren würde, hättest du keine Freude damit, der log wüde etwa so aussehen:
TIMESTAMP DEVICE on # original entry
TIMESTAMP DEVICE state: on # entry von addlog
Falls MQTT2 devices das attr "addStateEvent" unterstützen würde, wäre das eine mögliche Lösung, ist aber aktuell nicht der Fall.
Betateilchen hat schon recht,
ZitataddLog im Kontext von state zu verwenden, ist nicht immer eine gute Idee
Eine mögliche Löung:
ich gehe davon aus, dass die WLAN-Steckdose Tasmota o.ä. MQTT2-devices sind.
Da gibts bestimmt (abgesehen von state) readings, die den aktuellen powerstatus darstellen.
Die regex im FileLog und im addlog definiton entsprechend anpassen, und auch im SVG...
l.g. erwin
Titel: Aw: addlog funktioniert nicht
Beitrag von: marcg am 19 November 2023, 12:38:41
Zitat von: erwin am 18 November 2023, 12:25:53Eine mögliche Löung:
ich gehe davon aus, dass die WLAN-Steckdose Tasmota o.ä. MQTT2-devices sind.
Da gibts bestimmt (abgesehen von state) readings, die den aktuellen powerstatus darstellen.

Leider nix zu sehen... nur on/off im state... aktuelle Tasmota Firmware ist drauf...


Zitat von: betateilchen am 16 November 2023, 18:34:24Schreib doch einfach per at den ReadingsVal() von state per setreading wieder in das reading. Dabei müsste setreading ein event erzeugen und den Wert ins Log schreiben (ungetestet).

Danke, funktioniert.



für die Suchfunktion :
{my $repeatreading = ReadingsVal("MQTT2_DVES_91F696","state","off"); fhem "setreading MQTT2_DVES_91F696 state $repeatreading"}