Hallo
Seit einem Update letzter Woche erscheint im Systemlog unregelmäßig diese Fehlermeldung.
2022.01.16 19:20:40 0: Can't read ./FHEM/_1:USF1000.pm: No such file or directory
version findet die Datei nicht:
no loaded modules found that match: 09_USF1000.pm
Die Datei ist im FHEM-Hauptverzeichnis. Allerdings verwende ich kein entsprechendes Gerät.
Hat jemand eine Idee, was wer oder was da meckert und wie ich das wegbekomme?
Wie lautret der Dateiname wirklich?
_1:USF1000.pm
Kannst Du mal ein "update force" probieren?
Und .. ist es ein Pi mit SDCard?
Zitat von: Wernieman am 24 Januar 2022, 22:02:26
Wie lautret der Dateiname wirklich?
_1:USF1000.pm
09_USF1000.pm
Im System:
-rw-rw-rw- 1 fhem root 6824 Jan 24 22:10 09_USF1000.pm
Zitat
Kannst Du mal ein "update force" probieren?
Gerade eben. Mal sehen, was mit der Meldung passiert. Die Situation der Datei, wie oben beschrieben, hat sich aber nicht geändert.
Zitat
Und .. ist es ein Pi mit SDCard?
Nein, auf einer SSD an einem PI per USB-Adapter
wenn er "_1:USF1000.pm" sucht, Du so eine Datei aber nicht hast (09_USF1000.pm ist für einen Computer was gaaaaans anderes), ist bei Dir fhem irgendwie verdreht.
Bei einem Pi mit SDCard hätte ich gesagt, tausche mal die SD. Bei einem mit per USB angeschlossener SSD ...... trotzdem hört es sich für mich nach Dateisystemproblemen an (Bauchgefühl, ohne "Beweis").
Gibt folgendes ein Output?
grep -i i/o /var/log/kern.log
Zitat von: Wernieman am 25 Januar 2022, 10:07:35
wenn er "_1:USF1000.pm" sucht,
... ist die erste zu klärende Frage: Warum sucht FHEM nach dieser Datei, wenn keine devices vorhanden sind, die das Laden dieser Datei überhaupt erfordern.
Nur .. wie sucht man am besten? Bzw. erklärt jemanden, wie er zu suchen hat?
Im ersten Schritt würde ich die Datei 09_USF1000.pm erstmal aus dem System löschen und beobachten, was dann passiert.
Such doch mal im FHEM Ordner, wo es auftaucht
grep -rnw '/opt/fhem/FHEM' -e 'USF1000'
Bei mir ergibt das folgende Ausgabe (bei Revision 25551):
/opt/fhem/FHEM/00_TSCUL.pm:401: ':USF1000'.
/opt/fhem/FHEM/00_TSCUL.pm:427: 'O:USF1000' => '^81..(?:04|0c)..0101a001a5ceaa00....',
/opt/fhem/FHEM/00_FHZ.pm:85: $hash->{Clients} = ":FHZ:FS20:FHT:HMS:KS300:USF1000:BS:";
/opt/fhem/FHEM/00_FHZ.pm:87: "1:USF1000" => "^81..(04|0c)..0101a001a5ceaa00....",
/opt/fhem/FHEM/00_CUL.pm:52:my $clientsSlowRF = ":FS20:FHT.*:KS300:USF1000:BS:HMS:FS20V: ".
/opt/fhem/FHEM/00_CUL.pm:63: "1:USF1000" => "^81..(04|0c)..0101a001a5ceaa00....",
/opt/fhem/FHEM/98_autocreate.pm:14:# - No plot files for BS/CUL_FHTTK/USF1000/X10/WS300
/opt/fhem/FHEM/98_autocreate.pm:15:# - check "UNDEFINED" parameters for BS/USF1000/X10
/opt/fhem/FHEM/09_USF1000.pm:41: my $u= "wrong syntax: define <name> USF1000 geometry";
/opt/fhem/FHEM/09_USF1000.pm:42: my $g= "wrong geometry for USF1000";
/opt/fhem/FHEM/09_USF1000.pm:75: $modules{USF1000}{defptr}{$dev} = $hash;
/opt/fhem/FHEM/09_USF1000.pm:84: delete($modules{USF1000}{defptr}{$dev});
/opt/fhem/FHEM/09_USF1000.pm:92: my ($hash, $msg) = @_; # hash points to the FHZ, not to the USF1000
/opt/fhem/FHEM/09_USF1000.pm:94: if(!defined($modules{USF1000}{defptr}{$dev})) {
/opt/fhem/FHEM/09_USF1000.pm:95: Log3 $hash, 3, "USF1000 Unknown device, please define it";
/opt/fhem/FHEM/09_USF1000.pm:96: return "UNDEFINED USF1000 USF1000 cylv 1 1 0.5";
/opt/fhem/FHEM/09_USF1000.pm:99: my $def= $modules{USF1000}{defptr}{$dev};
/opt/fhem/FHEM/09_USF1000.pm:153: #Debug "USF1000 $name: $state";
/opt/fhem/FHEM/09_USF1000.pm:182:<a name="USF1000"></a>
/opt/fhem/FHEM/09_USF1000.pm:183:<h3>USF1000</h3>
/opt/fhem/FHEM/09_USF1000.pm:198: <code>define <name> USF1000 <geometry></code>
/opt/fhem/FHEM/09_USF1000.pm:218: <code>define MyTank USF1000 cylv 2 1 0.3</code>: a cylindrical water tank with
(TSCUL (https://forum.fhem.de/index.php/topic,24436.0.html) ist spezifischer, hast du ggf nicht - da wird aber zB auch die 98_autocreate.pm ersetzt)
man kann den parameter -l hinzufügen, ergibt dann nur die files:
grep -rnwl '/opt/fhem/FHEM' -e 'USF1000'
/opt/fhem/FHEM/00_TSCUL.pm
/opt/fhem/FHEM/00_FHZ.pm
/opt/fhem/FHEM/00_CUL.pm
/opt/fhem/FHEM/98_autocreate.pm
/opt/fhem/FHEM/09_USF1000.pm
Irgendwo hier würde ich ansetzen:
/opt/fhem/FHEM/00_FHZ.pm
/opt/fhem/FHEM/00_CUL.pm
/opt/fhem/FHEM/98_autocreate.pm
Hat vlt ein nachbar ein Wassertank o.ä.?
commandref USF1000 (https://fhem.de/commandref.html#USF1000)
Was mich nur furchtbar wundert, woher kommt das "_1:" im Dateinamen. Das ist doch so etwas "abnormal" in FHEM ...
Ich denke (mit meinem laienhaften Verständnis von FHEM), irgendwo wird das Modul nicht richtig geladen - irgendwo bei MatchList (https://wiki.fhem.de/wiki/DevelopmentModuleIntro#Die_Match-Liste) bin ich ausgestiegen.
Was wahrscheinlich helfen würde ist wenn der TE herausfinden könnte, wann der Fehler auftritt (Regelmäßigkeit?) und dann kurz vor dem nächsten vermuteten event ein stacktrace plus verbose 5 einschaltet und hier teilt.
Das 1:USF1000 riecht nach 00_FHZ.pm (https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/00_FHZ.pm#L87) oder 00_CUL.pm (https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/00_CUL.pm#L63). Aber wie gesagt, dies ist nur eine Vermutung eines (anderen) Ahnungslosen. :-\
Zitat von: Wernieman am 25 Januar 2022, 14:20:54
Was mich nur furchtbar wundert, woher kommt das "_1:" im Dateinamen. Das ist doch so etwas "abnormal" in FHEM ...
Ich vermute, dass das Problem vom Dispatch verursacht wird. Irgendeine Funkhardware empfängt ein Signal, versucht das zu identifizieren und übergibt das dann an den FHEM-internen Dispatcher zur Weiterverarbeitung durch das zugehörige Modul. Und dabei geht irgendwas schief.
An einen Fehler im Dateisystem glaube ich jedenfalls nicht.
Vielleicht sollte man das Ganze mal mit verbose=5 bei den angeschlossenen Funkmodulen protokollieren, um herauszufinden, was da wirklich passiert.
Zitat von: Gernott am 24 Januar 2022, 21:54:11
Seit einem Update letzter Woche erscheint im Systemlog unregelmäßig diese Fehlermeldung
2022.01.16 19:20:40 0: Can't read ./FHEM/_1:USF1000.pm: No such file or directory
Zufälligerweise gab es vor kurzem (11.01. + 17.01.) zwei Änderungen am Dispatch...
Man merkt, das Du viel tiefer in FHEM drinsteckst als ich. Danke für Eure Analysen ....
Testhalber könnte der TE nen Rollback auf die fhem.pl rev 25450 (https://svn.fhem.de/trac/export/25450/trunk/fhem/fhem.pl) machen - und dann sukzessive aktualisieren und schauen ab welcher revision der Fehler auftritt, oder?
Die Änderungen sind ja (für einen geübten perl Programmierer) im SVN (Diff 25309:25544) ersichtlich (https://svn.fhem.de/trac/changeset/25544/trunk/fhem/fhem.pl?old=25309&old_path=trunk%2Ffhem%2Ffhem.pl).
Hier spricht nun der TE:
Nach dem "force update" gestern und dem Neustart danach ist die Meldung nicht mehr aufgetaucht.
Ich danke allen für die Hinweise und setzte das mal auf "gelöst".
Ich tippe auf eine Beschädigte Datei .. immer noch ...
Zitat von: Wernieman am 25 Januar 2022, 21:31:21
Ich tippe auf eine Beschädigte Datei .. immer noch ...
Welcher? Vermutlich werden wir das nicht mehr rausfinden.
Nach diesem Update ging es los:
2022.01.14 22:30:33 1: UPD FHEM/10_KNX.pm
2022.01.14 22:30:33 1: UPD FHEM/31_HUEDevice.pm
2022.01.14 22:30:33 1: UPD FHEM/37_echodevice.pm
2022.01.14 22:30:33 1: UPD FHEM/47_OBIS.pm
2022.01.14 22:30:34 1: UPD FHEM/50_Signalbot.pm
2022.01.14 22:30:34 1: UPD FHEM/71_COE_Node.pm
2022.01.14 22:30:34 1: UPD FHEM/82_LGTV_WebOS.pm
2022.01.14 22:30:34 1: UPD FHEM/88_HMCCU.pm
2022.01.14 22:30:34 1: UPD FHEM/88_HMCCUCHN.pm
2022.01.14 22:30:34 1: UPD FHEM/88_HMCCUDEV.pm
2022.01.14 22:30:34 1: UPD FHEM/88_HMCCURPCPROC.pm
2022.01.14 22:30:34 1: UPD FHEM/93_DbRep.pm
2022.01.14 22:30:34 1: UPD FHEM/HMCCUConf.pm
2022.01.14 22:30:35 1: UPD FHEM/lib/AttrTemplate/mqtt2.template
2022.01.14 22:30:35 1: UPD www/images/fhemSVG/hue2019_archetypesDoubleSpot.svg
2022.01.14 22:30:35 1: UPD www/images/fhemSVG/hue2019_archetypesPendantRound.svg
2022.01.14 22:30:35 1: UPD www/images/fhemSVG/hue2019_archetypesSingleSpot.svg
2022.01.14 22:30:35 1: UPD www/images/fhemSVG/hue_filled_filament.svg
2022.01.14 22:30:35 1: UPD www/images/fhemSVG/hue_filled_foh.svg
2022.01.14 22:30:36 1: UPD www/images/openautomation/hm_module_sensor.svg
2022.01.14 22:30:36 1: UPD www/images/openautomation/hm_module_switch.svg
2022.01.14 22:30:36 1: UPD www/images/openautomation/taster_ch6_8.svg
2022.01.14 22:30:36 1: UPD www/images/openautomation/taster_ch6_9.svg
2022.01.14 22:30:36 1: saving fhem.cfg
2022.01.14 22:30:36 1: saving ./fhem.save
Unmittelbar vor dem ersten Auftreten kam das noch, aber später dann nicht mehr:
2022.01.15 11:15:07 1: PERL WARNING: Use of uninitialized value $o in concatenation (.) or string at fhem.pl line 2039.
2022.01.15 11:15:07 0: Can't read ./FHEM/_1:USF1000.pm: No such file or directory
Kann auch Zufall gewesen sein.
Zitat von: Wernieman am 25 Januar 2022, 21:31:21Ich tippe auf eine Beschädigte Datei .. immer noch ...
Das klingt so abstrus, dass ich es ebenso für fast möglich halte.
Das Update am 14.1. wäre imho rev 25463 (https://svn.fhem.de/trac/browser/trunk/fhem/CHANGED?rev=25463).
Zitat von: Gernott am 25 Januar 2022, 22:36:21Unmittelbar vor dem ersten Auftreten kam das noch, aber später dann nicht mehr:
2022.01.15 11:15:07 1: PERL WARNING: Use of uninitialized value $o in concatenation (.) or string at fhem.pl line 2039.
2022.01.15 11:15:07 0: Can't read ./FHEM/_1:USF1000.pm: No such file or directory
Die fhem.pl Zeile 2039 (https://svn.fhem.de/trac/browser/trunk/fhem/fhem.pl?rev=25463#L2039) passt aber irgendwie zum code:
2031 #####################################
2032 sub
2033 LoadModule($;$)
2034 {
2035 my ($m, $ignoreErr) = @_;
2036
2037 if($modules{$m} && !$modules{$m}{LOADED}) { # autoload
2038 my $o = $modules{$m}{ORDER};
2039 my $ret = CommandReload(undef, "${o}_$m", $ignoreErr); #<--------------------HIER
2040 if($ret) {
2041 Log 0, $ret if(!$ignoreErr);
2042 return "UNDEFINED";
2043 }
2044
2045 if(!$modules{$m}{LOADED}) { # Case corrected by reload?
2046 foreach my $i (keys %modules) {
2047 if(uc($m) eq uc($i) && $modules{$i}{LOADED}) {
2048 delete($modules{$m});
2049 $m = $i;
2050 last;
2051 }
2052 }
2053 }
2054 }
2055 return $m;
2056 }
Und könnte auch das
_1:USF1000.pm erklären.
Interessant wäre noch, wer/was hier das Laden des Moduls anfragt.
@Gernott: hast du mal auf der Konsole dies ausgeführt?
grep -rnw '/opt/fhem/FHEM' -e 'USF1000'
Zitat von: yersinia am 26 Januar 2022, 07:45:41
@Gernott: hast du mal auf der Konsole dies ausgeführt?
grep -rnw '/opt/fhem/FHEM' -e 'USF1000'
Das ist das Ergebnis:
/opt/fhem/FHEM/00_CUL.pm:52:my $clientsSlowRF = ":FS20:FHT.*:KS300:USF1000:BS:HMS:FS20V: ".
/opt/fhem/FHEM/00_CUL.pm:63: "1:USF1000" => "^81..(04|0c)..0101a001a5ceaa00....",
/opt/fhem/FHEM/98_autocreate.pm:13:# - No plot files for BS/CUL_FHTTK/USF1000/X10/WS300
/opt/fhem/FHEM/98_autocreate.pm:14:# - check "UNDEFINED" parameters for BS/USF1000/X10
/opt/fhem/FHEM/00_FHZ.pm:85: $hash->{Clients} = ":FHZ:FS20:FHT:HMS:KS300:USF1000:BS:";
/opt/fhem/FHEM/00_FHZ.pm:87: "1:USF1000" => "^81..(04|0c)..0101a001a5ceaa00....",
/opt/fhem/FHEM/09_USF1000.pm:41: my $u= "wrong syntax: define <name> USF1000 geometry";
/opt/fhem/FHEM/09_USF1000.pm:42: my $g= "wrong geometry for USF1000";
/opt/fhem/FHEM/09_USF1000.pm:75: $modules{USF1000}{defptr}{$dev} = $hash;
/opt/fhem/FHEM/09_USF1000.pm:84: delete($modules{USF1000}{defptr}{$dev});
/opt/fhem/FHEM/09_USF1000.pm:92: my ($hash, $msg) = @_; # hash points to the FHZ, not to the USF1000
/opt/fhem/FHEM/09_USF1000.pm:94: if(!defined($modules{USF1000}{defptr}{$dev})) {
/opt/fhem/FHEM/09_USF1000.pm:95: Log3 $hash, 3, "USF1000 Unknown device, please define it";
/opt/fhem/FHEM/09_USF1000.pm:96: return "UNDEFINED USF1000 USF1000 cylv 1 1 0.5";
/opt/fhem/FHEM/09_USF1000.pm:99: my $def= $modules{USF1000}{defptr}{$dev};
/opt/fhem/FHEM/09_USF1000.pm:153: #Debug "USF1000 $name: $state";
/opt/fhem/FHEM/09_USF1000.pm:182:<a name="USF1000"></a>
/opt/fhem/FHEM/09_USF1000.pm:183:<h3>USF1000</h3>
/opt/fhem/FHEM/09_USF1000.pm:198: <code>define <name> USF1000 <geometry></code>
/opt/fhem/FHEM/09_USF1000.pm:218: <code>define MyTank USF1000 cylv 2 1 0.3</code>: a cylindrical water tank with