FHEM crash nach OTA update via MYSController

Begonnen von KarlHeinz2000, 29 September 2019, 18:51:44

Vorheriges Thema - Nächstes Thema

KarlHeinz2000

Ich habe seit langem mal wieder FHEM aktualisiert. Jetzt stürtzt FHEM ab, wenn ich via MYSController meine Nodes updaten will. FHEM läuft auf einem Raspi. MYSController auf einem Win7 Rechner.
Fehlermeldung:

2019.09.29 18:19:33 1: PERL WARNING: substr outside of string at ./FHEM/10_MYSENSORS_DEVICE.pm line 390.
2019.09.29 18:19:33 1: PERL WARNING: Use of uninitialized value in hex at ./FHEM/10_MYSENSORS_DEVICE.pm line 390.
Can't use an undefined value as an ARRAY reference at ./FHEM/10_MYSENSORS_DEVICE.pm line 424.

Version

00_MYSENSORS.pm             19314 2019-05-03 05:02:58Z Beta-User
10_MYSENSORS_DEVICE.pm      19370 2019-05-11 14:49:14Z Beta-User

In der Vergangenheit war das kein Problem. Ich hatte noch die MYS FHEM Module von 2018 ohne OTA etc.
Probiert habe ich es an einem RFM Node mit 2 verschiedenen FW Versionen. Immer gleich.
Das update selbst läuft durch.

Beta-User

Kannst du bitte mal testweise Zeile 418 wie folgt ergänzen:
        last if ($msg->{ack} or !defined $hash->{FW_DATA});
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

KarlHeinz2000

Mit der Änderung gab es keinen Absturz mehr.
Die Meldung im log ist aber weiterhin drin

2019.09.29 23:01:30 1: PERL WARNING: substr outside of string at ./FHEM/10_MYSENSORS_DEVICE.pm line 390.
2019.09.29 23:01:30 1: PERL WARNING: Use of uninitialized value in hex at ./FHEM/10_MYSENSORS_DEVICE.pm line 390.

Beta-User

Danke erst mal für die Zwischeninfo. Dass das die Warnings nicht beseitigt, ist soweit erst mal klar.

Gestern hatte ich erst mal nur die Ursache für den crash lokalisieren wollen, der Fix ist jetzt auch eingecheckt und kommt via update. Den Rest schaue ich bei Gelegenheit mal, scheint ja im Regelbetrieb nicht aufzutreten, sondern nur in der von dir aufgezeigten Konstellation.

Bitte ggf. bei Gelegenheit nochmal nachhaken, wenn da nicht die kommenden beiden Wochen ein update kommt. Ggf. komme ich nochmal auf dich zurück wg. Tests, hoffe, das ist ok?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

KarlHeinz2000

Alles klar. Gib Bescheid, falls es noch was zum Testen gibt.

Beta-User

Bitte verschiebe mal die Zeile 390 an den Anfang des if-Blocks ab Zeile 396

Sollte dann so aussehen:

    my $type = $msg->{subType};
    #my $typeStr = datastreamTypeToStr($type);
    my $blType = AttrVal($name, "OTA_BL_Type", "");
    my $fwType = hex2Short(substr($msg->{payload}, 0, 4));

    TYPE_HANDLER: {
    $type == ST_FIRMWARE_CONFIG_REQUEST and do {
    if (length($msg->{payload}) == 20) {
        my $blVersion = hex(substr($msg->{payload}, 16, 2)) . "." . hex(substr($msg->{payload}, 18, 2));
        readingsBeginUpdate($hash);
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

KarlHeinz2000

Sieht gut aus. Kein Absturz mehr und auch keine log Einträge  :)