Autor Thema: FHEM crash nach OTA update via MYSController  (Gelesen 2490 mal)

Offline KarlHeinz2000

  • Full Member
  • ***
  • Beiträge: 183
FHEM crash nach OTA update via MYSController
« am: 29 September 2019, 18:51:44 »
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.

Offline Beta-User

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 13672
  • "Developer"?!? Meistens doch eher "User"
Antw:FHEM crash nach OTA update via MYSController
« Antwort #1 am: 29 September 2019, 21:54:47 »
Kannst du bitte mal testweise Zeile 418 wie folgt ergänzen:
        last if ($msg->{ack} or !defined $hash->{FW_DATA});
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, Twilight,  AttrTemplate => {mqtt2, mysensors, zwave}

Offline KarlHeinz2000

  • Full Member
  • ***
  • Beiträge: 183
Antw:FHEM crash nach OTA update via MYSController
« Antwort #2 am: 29 September 2019, 23:07:20 »
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.

Offline Beta-User

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 13672
  • "Developer"?!? Meistens doch eher "User"
Antw:FHEM crash nach OTA update via MYSController
« Antwort #3 am: 30 September 2019, 07:36:42 »
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-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, Twilight,  AttrTemplate => {mqtt2, mysensors, zwave}

Offline KarlHeinz2000

  • Full Member
  • ***
  • Beiträge: 183
Antw:FHEM crash nach OTA update via MYSController
« Antwort #4 am: 30 September 2019, 08:27:24 »
Alles klar. Gib Bescheid, falls es noch was zum Testen gibt.

Offline Beta-User

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 13672
  • "Developer"?!? Meistens doch eher "User"
Antw:FHEM crash nach OTA update via MYSController
« Antwort #5 am: 30 September 2019, 10:10:42 »
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-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, Twilight,  AttrTemplate => {mqtt2, mysensors, zwave}

Offline KarlHeinz2000

  • Full Member
  • ***
  • Beiträge: 183
Antw:FHEM crash nach OTA update via MYSController
« Antwort #6 am: 30 September 2019, 16:30:31 »
Sieht gut aus. Kein Absturz mehr und auch keine log Einträge  :)

 

decade-submarginal