[Behoben] Fehler in 98_HMinfo.pm version 2020-07-11 ? - fhem startet nicht mehr

Begonnen von Jamo, 12 Juli 2020, 20:47:34

Vorheriges Thema - Nächstes Thema

Jamo

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});
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

noansi

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.

Pfriemler

Das unveränderte Original hatte ich heute testweise drin, mehrere Neustarts, keine Probleme. Allerdings habe ich auch überall korrekte IODev eingetragen...
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Jamo

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!
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

frank

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.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Jamo

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
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

Pfriemler

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.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

noansi

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.

frank

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.   ;)
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html