[98_monitoring] - Support Thread ab 2022

Begonnen von Beta-User, 01 März 2022, 15:16:59

Vorheriges Thema - Nächstes Thema

Beta-User

Thx für die Rückmeldung, bitte melden, falls ich vergesse, das irgendwann über die Festtage mal einzuchecken.
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Miami

#31
Hallo,

ich habe folgende Zeile im Log, wenn ich FHEM neu starte:2023.01.15 13:36:13 1: PERL WARNING: \A* matches null string many times in regex; marked by <-- HERE in m/\A* <-- HERE .WINDOW_STATE:.open\z/ at ./FHEM/98_monitoring.pm line 337.
Probleme habe ich aber (bisher) nicht feststellen können.

Hier noch das List meiner Monitoring-Instanz: Internals:
   DEF        *.WINDOW_STATE:.open .*WINDOW_STATE:.closed
   FUUID      60038218-f33f-b9b4-7b85-c1454ae977f6d7e3
   NAME       Fenster_Monitoring
   NR         210
   NTFY_ORDER 50-Fenster_Monitoring
   STATE      active
   TYPE       monitoring
   READINGS:
     2023-01-15 10:33:55   allCount        0
     2023-01-14 09:31:18   error           
     2023-01-14 09:31:18   errorCount      0
     2023-01-15 13:36:13   state           active
     2023-01-15 10:33:55   warning         
     2023-01-15 10:33:55   warningCount    0
Attributes:
   blacklist  Heizung_Speisekammer
   errorReturn {return unless(@errors);
$_ = AttrVal($_, "alias", $_) foreach(@errors);
return("Das Fenster \"$errors[0]\" ist schon länger geöffnet.") if(int(@errors) == 1);
@errors = sort {lc($a) cmp lc($b)} @errors;
return(join("\n - ", "Die folgenden ".@errors." Fenster sind schon länger geöffnet:", @errors))
}
   errorWait  {my $temp=ReadingsNum('Wetter','temperature',0); $temp <= 0 ? 15*60 : $temp > 0 &&  $temp <10 ? 20*60 : $temp >= 10 && $temp <20 ? 30*60 : $temp >= 20  ? 40*60 : 0}
   group      Fenster Überwachung
   icon       fts_window_1w_open
   room       Test
   verbose    1
   warningReturn {return unless(@warnings);
$_ = AttrVal($_, "alias", $_) foreach(@warnings);
return("Das Fenster \"$warnings[0]\" ist geöffnet.") if(int(@warnings) == 1);
@warnings = sort {lc($a) cmp lc($b)} @warnings;
return(join("\n - ", "Die folgenden ".@warnings." Fenster sind  geöffnet:", @warnings))
}
   warningWait {my $temp=ReadingsNum('Wetter','temperature',0); $temp <= 0 ? 12*60 : $temp > 0 &&  $temp <10 ? 17*60 : $temp >= 10 && $temp <20 ? 27*60 : $temp >= 20  ? 35*60 : 0}


In der 98_monitoring.pm steht am Anfang:# $Id: 98_monitoring.pm 26892 2022-12-24 08:27:11Z Beta-User $

Und in Zeile 337:     my $addMatch = "$name:$event" =~ m{\A$addRegex\z}xms;

Beta-User

Die gezeigte "open"-DEF ist auch komisch....
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Miami

Das liegt daran, dass die Info über Heiz-Gruppen der Homematik IP kommt. Da gibt es mehrere "Kanäle", die vorangestellt und mit einem Punkt abgetrennt werden.

Hier mal ein "Screenshot" vom Event monitor:
Events (Filter: Heizung_Buero.*)   FHEM log   ResetCreate/Modify Device
2023-01-16 10:58:47 HMCCUDEV Heizung_Buero devstate: ok
2023-01-16 10:58:47 HMCCUDEV Heizung_Buero hmstate: 20.9
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero 1.WINDOW_STATE: open
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero devstate: ok
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero hmstate: 20.9
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero 20.9
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero 1.ACTUAL_TEMPERATURE: 20.9
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero measured-temp: 20.9
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero 1.BOOST_MODE: false
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero devstate: ok
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero hmstate: 20.9
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero devstate: ok


Hat jemand eine andere Idee als ein User-Reading (ohne Punkt) zu verwenden, um die Meldung im Log zu vermeiden?


Miami

Zitat von: Miami am 16 Januar 2023, 11:50:53
Das liegt daran, dass die Info über Heiz-Gruppen der Homematik IP kommt. Da gibt es mehrere "Kanäle", die vorangestellt und mit einem Punkt abgetrennt werden.

Hier mal ein "Screenshot" vom Event monitor:
Events (Filter: Heizung_Buero.*)   FHEM log   ResetCreate/Modify Device
2023-01-16 10:58:47 HMCCUDEV Heizung_Buero devstate: ok
2023-01-16 10:58:47 HMCCUDEV Heizung_Buero hmstate: 20.9
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero 1.WINDOW_STATE: open
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero devstate: ok
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero hmstate: 20.9
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero 20.9
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero 1.ACTUAL_TEMPERATURE: 20.9
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero measured-temp: 20.9
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero 1.BOOST_MODE: false
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero devstate: ok
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero hmstate: 20.9
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero devstate: ok


Hat jemand noch eine andere Idee als ein User-Reading (ohne Punkt) zu verwenden, um die Meldung im Log zu vermeiden?

Beta-User

Zitat von: Miami am 16 Januar 2023, 11:50:53
Das liegt daran, dass die Info über Heiz-Gruppen der Homematik IP kommt. Da gibt es mehrere "Kanäle", die vorangestellt und mit einem Punkt abgetrennt werden.

Hier mal ein "Screenshot" vom Event monitor:
Events (Filter: Heizung_Buero.*)   FHEM log   ResetCreate/Modify Device
2023-01-16 10:58:47 HMCCUDEV Heizung_Buero devstate: ok
2023-01-16 10:58:47 HMCCUDEV Heizung_Buero hmstate: 20.9
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero 1.WINDOW_STATE: open
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero devstate: ok
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero hmstate: 20.9
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero 20.9
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero 1.ACTUAL_TEMPERATURE: 20.9
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero measured-temp: 20.9
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero 1.BOOST_MODE: false
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero devstate: ok
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero hmstate: 20.9
2023-01-16 10:58:48 HMCCUDEV Heizung_Buero devstate: ok


Hat jemand eine andere Idee als ein User-Reading (ohne Punkt) zu verwenden, um die Meldung im Log zu vermeiden?
Der erste Stern ist jedenfalls immer noch komisch...

Statt:
   DEF        *.WINDOW_STATE:.open .*WINDOW_STATE:.closed
fände ich weiter sowas logischer:
   DEF        .*WINDOW_STATE:.open .*WINDOW_STATE:.closed
Oder eben unter Berücksichtigung der Frage, ob ein NOTIFYDEV ermittelt werden kann, und unterstellt, dass alles mit "Heizung_" beginnt:
   DEF        Heizung_.*:..WINDOW_STATE:.open Heizung_.*:..WINDOW_STATE:.closed

Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Miami

#36
Zitat von: Beta-User am 16 Januar 2023, 13:11:17
Der erste Stern ist jedenfalls immer noch komisch...

Oh, ich habe jetzt erst gesehen, dass ich *. statt .* eingegeben hatte.   :-[

Habe das nun in .*WINDOW_STATE:.open .*WINDOW_STATE:.closed geändert und Fhem neu gestartet. Habe keine Meldung mehr im Log.  :)
Die Fenster aufreißen, um die Funktion zu testen, darf ich aber gerade nicht, das wird bis morgen warten müssen.