Ich bekomme folgenden Fehler mit der HMInfo nach dem update von heute, und fhem startet nicht mehr.
Can't use string ("") as a HASH ref while "strict refs" in use at ./FHEM/98_HMinfo.pm line 691.
Diff zur alten version (oben die neue) zeigt:
< my $IoDev = $ehash->{IODev} ? $ehash->{IODev} :"";
< if (!$IoDev->{NAME}){push @noIoDev,"$eName:\t";next;}
---
> my $IoDev = $ehash->{IODev} if ($ehash->{IODev});
Hallo Martin, hallo Jamo,
Zeile 690 und 691
my $IoDev = $ehash->{IODev} ? $ehash->{IODev} :"";
if (!$IoDev->{NAME}){push @noIoDev,"$eName:\t";next;}
ändern in
my $IoDev = $ehash->{IODev} ? $ehash->{IODev} : undef;
if (!$IoDev || !$IoDev->{NAME}) {push @noIoDev,"$eName:\t";next;}
sollte es beheben.
Gruß, Ansgar.
Das unveränderte Original hatte ich heute testweise drin, mehrere Neustarts, keine Probleme. Allerdings habe ich auch überall korrekte IODev eingetragen...
Hallo Ansgar,
wie kann ich die evtl nicht korrekten IODev identifizieren? Bei mir läuft seit Jahren alles stabil, und ich kenne keinen fhem Befehl um das rauszufinden. HAst Du einen Tip? Danke!
list TYPE=CUL_HM:FILTER=DEF=......:FILTER=subType!=ACTIONDETECTOR a:IODev a:IOgrp
hiermit solltest du bei allen hm devices 2 sinnvolle einträge sehen, falls du eine vccu hast, sonst einen eintrag.
So siehts aus bei allen meinen devices. Nicht alle devices haben allerdings ein festes IODev, nur Window1_Kueche und Window1_Wohn. Soweit ich verstanden habe, kümmert sich ja die VCCU darum, das IODev mit der besten Signalstärke zu assignen. Also das ist doch alles in Ordnung, oder?
HKT_Bad1 IOgrp VCCU
HKT_Flur1 IOgrp VCCU
HKT_Kueche1 IOgrp VCCU
HKT_Schlaf1 IOgrp VCCU
HKT_Wohn1 IOgrp VCCU
HKT_Wohn2 IOgrp VCCU
RTC_Bad IOgrp VCCU
RTC_Flur IOgrp VCCU
RTC_Kueche IOgrp VCCU
RTC_Schlaf IOgrp VCCU
RTC_Wohn IOgrp VCCU
Window1_Bad IOgrp VCCU
Window1_Flur IOgrp VCCU
Window1_Kueche IODev HMUART3
IOgrp VCCU
Window1_Schlaf IOgrp VCCU
Window1_Wohn IODev HMUART3
IOgrp VCCU
Window2_Wohn IOgrp VCCU
Ich würde sagen, wenn Du franks Befehl benutzt hast, hast Du lediglich in zwei Geräten IODev definiert. Es sollten aber überall IODev und IOgrp, also zwei vorhanden sein, wie frank sagt.
Ob es Sinn macht und was bringt, steht auf einem anderen Blatt, aber das Fehlen von IODev führt eben zu dem beschriebenen Problemen, wenn nicht Ansgars Fix benutzt wird.
Hallo Zusammen,
es handelt sich um einen neuen Bug in HMinfo, siehe oben!
Martin muss den nur beheben. Martin hat ihn inzwischen behoben!
Das attribut IODev zu setzen umgeht nur den Bug in der Prüfung, ob es gesetzt ist.
Gruß, Ansgar.
Zitat von: noansi am 13 Juli 2020, 21:40:34
Das attribut IODev zu setzen umgeht nur den Bug in der Prüfung, ob es gesetzt ist.
falsch.
alle IODev attribute zu setzen,
repariert vor allem die falsche konfiguration. ;)