FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Ralph am 15 Oktober 2021, 16:34:44

Titel: [erleddischd] ? Neuer ? DOIF - Logbuch - Fehlereintrag
Beitrag von: Ralph am 15 Oktober 2021, 16:34:44
Hallo, ich bitte um Nachhilfe, ich kapiers nicht.

Seit - ich weiß es leider nicht genau, könnte? mit einem Update am Monatsanfang zusammen hängen - spinnt eine DOIF bei mir.

defmod di_o2spot DOIF ([o2ok:"^present$"]) {my $count=0;;;;\
my $str = (GetHttpFile("o2.spot", "/cgi-bin/mycgi?ACT=GetLTECellinfo"));;;;\
if ( $str ne "" ) {my @val = split(/,/,$str);;;;\
  foreach('RSRP' , 'RSRQ' , 'RSSI', 'TAC' , 'PCI' , 'CELL-ID' , 'EARFCN'){\
    fhem("setreading o2spot $_ $val[$count]");;;;\
    $count++;;;;}\
if ( ( Value("o2spot") ne 18096129) ){\
     schrdatei((ReadingsTimestamp("di_o2spot","state","0")."  $str"),'>>/opt/fhem/log/cell-id.txt');;;;\
       fhem "set Y_LED blink 1 50" ;;;;\
       fhem "set o2spot_Rel off" ;;;;\
       } \
  else {fhem "set Internet statusRequest" ;;;;}\
   }\
\
} DOELSE {schrdatei((ReadingsTimestamp("o2ok","state","0"))."   ".(ReadingsVal("o2ok","state","0"))."\n\n",'>>/opt/fhem/log/cell-id.txt');;;;}\
\
\

Der zu holende String sieht üblicherweise so aus:
-88,-8,-64,47130,416,18096129,6200,0,0,0,0,0,0,0

Im Logbuch ist neuerdings ( das ging schon mal fehlerfrei) vermerkt:
2021.10.15 15:01:34 3: eval: {my $count=0;; my $str = (GetHttpFile("o2.spot", "/cgi-bin/mycgi?ACT=GetLTECellinfo"));; if ( $str ne "" ) {my @val = split(/,/,$str);;   foreach('RSRP' , 'RSRQ' , 'RSSI', 'TAC' , 'PCI' , 'CELL-ID' , 'EARFCN'){     fhem("setreading o2spot $_ $val[$count]");;     $count++;;} if ( ( Value("o2spot") ne 18096129) ){      schrdatei((ReadingsTimestamp("di_o2spot","state","0")."  $str"),'>>/opt/fhem/log/cell-id.txt');;        fhem "set Y_LED blink 1 50" ;;        fhem "set o2spot_Rel off" ;;        }    else {fhem "set Internet statusRequest" ;;}    }  }
2021.10.15 15:01:34 1: PERL WARNING: Use of uninitialized value $str in string ne at (eval 192445) line 1.

Aber was bitte mache ich denn falsch ?
Titel: Antw:? Neuer ? DOIF - Logbuch - Fehlereintrag
Beitrag von: Damian am 16 Oktober 2021, 10:31:59
2021.10.15 15:01:34 3: eval: {my $count=0;; my $str = (GetHttpFile("o2.spot", "/cgi-bin/mycgi?ACT=GetLTECellinfo"));; if ( $str ne "" ) {my @val = split(/,/,$str);;   foreach('RSRP' , 'RSRQ' , 'RSSI', 'TAC' , 'PCI' , 'CELL-ID' , 'EARFCN'){     fhem("setreading o2spot $_ $val[$count]");;     $count++;;} if ( ( Value("o2spot") ne 18096129) ){      schrdatei((ReadingsTimestamp("di_o2spot","state","0")."  $str"),'>>/opt/fhem/log/cell-id.txt');;        fhem "set Y_LED blink 1 50" ;;        fhem "set o2spot_Rel off" ;;        }    else {fhem "set Internet statusRequest" ;;}    }  }
2021.10.15 15:01:34 1: PERL WARNING: Use of uninitialized value $str in string ne at (eval 192445) line 1.

Die Warnung bedeutet dass $str nicht belegt ist, dh. GetHttpFile("o2.spot", "/cgi-bin/mycgi?ACT=GetLTECellinfo") hat nichts geliefert.
Titel: Antw:? Neuer ? DOIF - Logbuch - Fehlereintrag
Beitrag von: Ralph am 16 Oktober 2021, 18:37:18
Die Warnung bedeutet dass $str nicht belegt ist, dh. GetHttpFile("o2.spot", "/cgi-bin/mycgi?ACT=GetLTECellinfo") hat nichts geliefert.

Jaul, Danke, oh Sch...., Asche über mein Haupt, DAS hatte ich nicht bedacht.