Atlas Scientific Sensoren I2C_EZODO Fehler in Zeile 222

Begonnen von Burny4600, 05 Mai 2017, 08:23:28

Vorheriges Thema - Nächstes Thema

Burny4600

In dem Modul 52_I2C_EZODO.pm muss sich ein Fehler befinden den ich bzw. der Modulentwickler nicht lösen kann.
Zudem wird das Sauerstoffsaettigung Reading nicht ausgeführt.

Im FHEM LOG steht folgender Eintrag.
2017.05.03 20:20:49 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/52_I2C_EZODO.pm line 222.

Die Schreibweise in der Zeile 222 finde ich ein bischen eigen und ich vermute dass hier der Fehler besteht
..... . 'mg/l SAT: ' . $split1[1] . '%')
bzw. in diesem Bereich.
sub I2C_EZODO_I2CRec ($$) {
my ($hash, $clientmsg) = @_;
my $name = $hash->{NAME};
my $phash = $hash->{IODev};
my $pname = $phash->{NAME};
while ( my ( $k, $v ) = each %$clientmsg ) { #erzeugen von Internals fuer alle Keys in $clientmsg die mit dem physical Namen beginnen
$hash->{$k} = $v if $k =~ /^$pname/ ;
}
   
    if ( $clientmsg->{direction} && $clientmsg->{$pname . "_SENDSTAT"} && $clientmsg->{$pname . "_SENDSTAT"} eq "Ok" ) {
    if ( $clientmsg->{direction} eq "i2cread" && defined($clientmsg->{received}) ) {
    Log3 $hash, 5, "empfangen: $clientmsg->{received}";
        my $raw = $clientmsg->{received};
my @ascii = split(" ", $raw);
my $erster = shift(@ascii);
my $new = pack("C*", @ascii);
$new =~ s/\0+$//;
my @split1 = split(",", $new);

readingsBeginUpdate($hash);
readingsBulkUpdate($hash,'state','S: ' . $erster . ' DO: ' . $split1[0] . 'mg/l SAT: ' . $split1[1] . '%');
readingsBulkUpdate($hash, 'Sauerstoffgehalt', $split1[0]);
readingsBulkUpdate($hash, 'Sauerstoffsaettigung', $split1[1]);
readingsBulkUpdate($hash, 'Status', $erster);
readingsEndUpdate($hash, 1);
        }
    }
}


Da meine Programmierkenntnisse hierfür nicht ausreichend sind, hoffe ich dass mir jemand dabei helfen kann.
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

Burny4600

Kann uns wirklich keiner bei diesem Perl Fehler behilflich sein.
danieljo und ich stehen bei der Auswertung des Reading Sauerstoffsaettigung leider an.
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess