monitoring: 2 errors, die gar nicht existieren

Begonnen von Gisbert, 12 Januar 2022, 02:39:46

Vorheriges Thema - Nächstes Thema

Gisbert

Hallo igami,

ich erhalte 2 errors bei einem Readingswatcher-Device, und das sehr hartnäckig und eigentlich völlig grundlos, da die zugrundeliegenden Devices entweder gar nicht das überwachte Reading enthalten (Device global) oder das Device gar nicht mehr existiert (Devise bfs). Ich habe schon mehrfach versucht den Eintrag mit errorRemove zu entfernen, leider vergeblich, d.h. die Einträge verschwinden zwar, tauchen dann aber wieder auf.

Hier ein list meines Devices:
Internals:
   CFGFN      ./FHEM/Monitoring.cfg
   DEF        .*:Zeitstempel24h.*
   FUUID      5c976ba9-f33f-e986-d7b0-01a17418a9be90c8
   NAME       mymonitoring24h
   NR         836
   NTFY_ORDER 50-mymonitoring24h
   STATE      Fehler:
bfs
global
   TYPE       monitoring
   READINGS:
     2022-01-11 20:11:49   allCount        2
     2022-01-11 20:02:01   error           bfs,global
     2022-01-12 00:02:48   errorAdd_Radiation 2022-01-13 12:02:48
     2022-01-12 02:15:00   errorAdd_Radiation_bfs 2022-01-13 14:15:00
     2022-01-11 20:11:49   errorAdd_Wassermelder 2022-01-13 08:11:49
     2022-01-11 20:02:01   errorCount      2
     2022-01-12 02:15:00   myerror         bfs
global
     2022-01-12 02:15:00   mywarning       
     2022-01-11 20:11:49   state           warning remove: Wassermelder
     2022-01-11 20:11:49   warning         
     2022-01-12 00:02:48   warningAdd_Radiation 2022-01-13 00:02:48
     2022-01-12 02:15:00   warningAdd_Radiation_bfs 2022-01-13 02:15:00
     2022-01-11 20:11:49   warningAdd_Wassermelder 2022-01-12 20:11:49
     2022-01-11 20:11:49   warningCount    0
   helper:
     bm:
       monitoring_Get:
         cnt        4
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        12.01. 02:33:19
         max        0.000308036804199219
         tot        0.000603675842285156
         mAr:
           HASH(0x55911d06bbc0)
           mymonitoring24h
           ?
       monitoring_Notify:
         cnt        67210
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        11.01. 20:11:49
         max        0.0436270236968994
         tot        12.5002977848053
         mAr:
           HASH(0x55911d06bbc0)
           HASH(0x55911cefe508)
       monitoring_Set:
         cnt        15
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        11.01. 20:11:49
         max        0.000213861465454102
         tot        0.00147581100463867
         mAr:
           HASH(0x55911d06bbc0)
           mymonitoring24h
           ?
Attributes:
   alias      monitor24h
   errorReturn {return unless(@errors);
$_ = AttrVal($_, "alias", $_) foreach(@errors);
return("Das Gerät \"$errors[0]\" hat sich seit mehr als 36 Stunden nicht mehr gemeldet.") if(int(@errors) == 1);
@errors = sort {lc($a) cmp lc($b)} @errors;
return(join("\n - ", "Die folgenden ".@errors." Geräte haben sich seit mehr als 36 Stunden nicht mehr gemeldet:", @errors))
}
   errorWait  129600
   icon       security
   room       HomeHM,Heizung
   stateFormat {if (ReadingsVal($name,'warningCount','') > 0 and ReadingsVal($name,'errorCount','') > 0)
{"Warnung:
".(ReadingsVal($name,'mywarning',''))."

Fehler:
".(ReadingsVal($name,'myerror','')).""}
elsif (ReadingsVal($name,'warningCount','') > 0)
{"Warnung:
".(ReadingsVal($name,'mywarning','')).""}
elsif (ReadingsVal($name,'errorCount','') > 0)
{"Fehler:
".(ReadingsVal($name,'myerror','')).""}}
   userReadings myerror {my $ret = ReadingsVal($name,'error',''); $ret =~ s/,/
/g; return $ret},
mywarning {my $ret = ReadingsVal($name,'warning',''); $ret =~ s/,/
/g; return $ret}
   warningReturn {return unless(@warnings);
$_ = AttrVal($_, "alias", $_) foreach(@warnings);
return("Das Gerät \"$warnings[0]\" hat sich seit mehr als 24 Stunden nicht mehr gemeldet.") if(int(@warnings) == 1);
@warnings = sort {lc($a) cmp lc($b)} @warnings;
return(join("\n - ", "Die folgenden ".@warnings." Geräte haben sich seit mehr als 24 Stunden nicht mehr gemeldet:", @warnings))
}
   warningWait 86400


Wie kann ich dieses Verhalten abstellen?

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Wolle02

Zitat von: Gisbert am 12 Januar 2022, 02:39:46

Wie kann ich dieses Verhalten abstellen?



Du könntest mal das Attribut blacklist ausprobieren, ob das eventuell das Verhalten behebt.
Allerdings wird das nur das Symptom beheben und nicht die Ursache.

Gisbert

Hallo Wolle02,

danke für den Hinweis, es ist jetzt zumindest nichts für mich sichtbar. Damit ist vielleicht nicht die Ursache behoben, aber immerhin geht es ein Stück in die richtige Richtung.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

kadettilac89

#3
Ich hatte das Verhalten vor Längerem auch mal. Ich habe alles per Whitelist eingetragen und weiß nicht ob das Problem noch bestehen würde.

Du kannst mal versuchen

1) das Monitoring Device zu löschen (vorher per "RAW definition" das device in einen Editor sichern)
2) Fhem stoppen
3) die ganzen Status aus dem fhem.save File entfernen sofern durch 1) nicht gelöscht. Da liegt vermutlich immer noch der Eintrag zu den fehlerhaften Einträgen. Das File liegt in /opt/fhem/log/fhem.save (Log-Verzeichnis).
4) Fhem starten
5) Device neu anlegen (evtl. RAW definition von vorhin)