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 ?
Zitat von: Ralph am 15 Oktober 2021, 16:34:44
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.
Zitat von: Damian am 16 Oktober 2021, 10:31:59
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.