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
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.
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
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)