Hauptmenü

State/Event Filtern ..

Begonnen von Rampler, 16 November 2023, 13:27:51

Vorheriges Thema - Nächstes Thema

Rampler

Hallo zusammen,
mein DOIF reagiert ungewollt auf folgende Meldung:

2023-11-16 13:14:46 dummy Alarm_status disarmed   << addLog

Das << addlog dient nur zur Vermeidung von Plotabrissen
Das DOIF soll nur auf ein ...dummy Alarm_status disarmed reagieren.

Mein DOIF:
([SolvisBen:Zirkulationstemperatur] < 30 and
 [Alarm_status] eq "disarmed"                  and
 [?SolvisBen:Speicher_oben]+12 >= [SolvisBen:WWSollTemp])
 ( set HZ.Zirkulation ON )

Die HZ.Zirkulation soll ON gehen, wenn die Zirkulationstemperatur < 30 Grad ist, und
der Alarm_status disarmed ist.  Alarm_status soll eben auch triggern ..

Habe schon einiges probiert:
["Alarm_status:^disarmed$"]
[Alarm_status] eq "^disarmed\$"

Mit beiden Varianten geht die HZ.Zirkulation gar nicht mehr an ..
Wäre für einen Tipp dankbar...

VG Klaus   
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

FHEMAN

#1
Hallo Klaus, vielleicht reicht es, ein
and [?Alarm_status:state] !~ m/addLog$/
hinzuzufügen?

//edit: oder, wie von dir vorgeschlagen, nur anders notiert
[Alarm_status] =~ m/^disarmed$/
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

Rampler

Hallo FHEMAN,
danke für den Hinweis.
Habe das gerade mal getestet, leider triggert noch immer addLog.., habe beide Varianten probiert..
Schade

VG
Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

FHEMAN

Ist event-on-change-reading .* (und nicht event-on-update-reading) bei Alarm_status konfiguriert?
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

Rampler

weder noch ..
Internals:
   FUUID      5c489c0e-f33f-b6d9-9191-66683cc54e70cd40
   NAME       Alarm_status
   NR         182
   STATE      disarmed
   TYPE       dummy
   eventCount 226
   READINGS:
     2023-11-21 05:10:45   state           disarmed
Attributes:
   alias      Alarm Status
   devStateIcon armed:status_locked@green armedext:status_locked@green wait:status_locked@yellow disarmed:status_open .*:status_open@red
   group      Schalter
   icon       control_home
   room       Alarm
   setList    armed armedext disarmed wait
   sortby     3
   webCmd     armed:armedext:disarmed:wait
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

FHEMAN

Spricht was dagegen, es zu setzen? Evtl. eliminierst du damit die Events ausserhalb des Loggings. Bin mir aber auch nicht ganz sicher.
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

Rampler

Habe jetzt mal  event-on-change-reading state gesetzt.
Leider auch ohne erfolg ...
Das AddLog feuert immer noch.
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

betateilchen

Wie hast Du denn das addLog umgesetzt?
Mir sieht das nach einer ziemlich alten Variante aus.
Inzwischen bieten sowohl FileLog als auch DbLog addLog Varianten an, die sehr viel komfortabler funktionieren.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Rampler

Naja, habe einen stündlichen Timer in dem ich das hier absetze:
{
....
addLog("WF.keymatic","state")    ;;
addLog("Alarm_status","state")   ;;
addLog("HZ.zt","Lueftung")       ;;
.....
}

AddLog selbst habe ich in meiner 99_myUtils.pm definiert:

....
sub
addLog($$)
{
my ($logdevice, $reading) = @_; # device and reading to be used
my $logentry = ReadingsVal($logdevice,$reading,"addLog: invalid reading");
#if ($reading =~ m,state,i)
if ($reading =~ m,state,i || $reading =~ m,status,i)
    {fhem "trigger $logdevice $logentry   << addLog";}
else {fhem "trigger $logdevice $reading: $logentry   << addLog";}
}
....

VG Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

betateilchen

Genau das hatte ich befürchtet.
Die eigene Funktion in der 99_myUtils.pm ist schon lange (mindestens 4 Jahre) nicht mehr notwendig.

Du rufst in der Funktion ja expliziert "trigger" auf und wunderst Dich allen Ernstes darüber, dass dann Events erzeugt werden? Warum heißt der Befehl wohl "trigger"?

Verwende die in den Logging-Modulen implementierten Umsetzungen für addLog, das sollte Deine Probleme lösen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Rampler

Das es mittlerweile auch ein Addlog beim Filelog gibt war mir neu - DANKE
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

FHEMAN

Zitat von: FHEMAN am 19 November 2023, 14:30:13Hallo Klaus, vielleicht reicht es, ein
and [?Alarm_status:state] !~ m/addLog$/
hinzuzufügen?

//edit: oder, wie von dir vorgeschlagen, nur anders notiert
[Alarm_status] =~ m/^disarmed$/

Wundert mich, dass das nicht funktionierte.
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

Rampler

Komme noch nicht so richtig klar mit dem Attribute addlog beim Filelog...
Habe mal  das
attr FileLog_Alarm addlog Alarm_status:state:120angelegt.
Jetzt wird alle 120 Sekunden diese Zeile eingefügt:
2023-11-21_14:40:35 Alarm_status state: disarmed
Bei einem set Alarm_status disarmed wird dies eingefügt: (ohne state:)

2023-11-21_14:42:35 Alarm_status disarmed
Richtig nützlich wäre es, wenn der command (set ALarm_state disarmed) zum gleichen logeintrag führen würde, wie das addlog statement.
Geht das ?



3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Rampler

Zitat von: FHEMAN am 21 November 2023, 16:33:52
Zitat von: FHEMAN am 19 November 2023, 14:30:13Hallo Klaus, vielleicht reicht es, ein
and [?Alarm_status:state] !~ m/addLog$/
hinzuzufügen?

//edit: oder, wie von dir vorgeschlagen, nur anders notiert
[Alarm_status] =~ m/^disarmed$/

Wundert mich, dass das nicht funktionierte.

Gebe ich Dir recht, vielleicht hängt es mit dem status zusammen, weil dieser ja nicht explizit im Event monitor auftaucht.

Es erscheint ein:
dummy Alarm_status disarmed
 und nicht
dummy Alarm_status state: disarmed

Bei Geräteten mit state wird prinzipiell nicht state: geschrieben ..
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

betateilchen

Die Verwendung solcher karierter Maiglöckchen im Zusammenhang mit "state" ist immer schwierig, weil state eben kein "normales" reading ist.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!