MSwitch: Crash

Begonnen von jgrete, 17 Juli 2019, 07:44:59

Vorheriges Thema - Nächstes Thema

jgrete

Moin,
ich hatte nach der Eingabe von
[00:60*08:00-22:00]
in "execute 'cmd1' at :" einen Absturz von fhem zu verzeichnen. Absturz heißt: WEB-Interface war nicht mehr zugreifbar und Reboot der VM nötig.
Hier das Log zur fraglichen Zeit:

2019.07.16 11:30:00 1: PERL WARNING: Use of uninitialized value $reading[2] in string eq at /opt/fhem/FHEM/98_MSwitch.pm line 7403.
2019.07.16 12:01:00 1: PERL WARNING: Use of uninitialized value $evtparts[0] in join or string at /opt/fhem/FHEM/98_MSwitch.pm line 7169.
2019.07.16 12:01:00 3: ms_Teichbelueftung MSwitch_Restartcm: Befehlsausfuehrung -> set TeichBelueftung on-for-timer 600 6935
2019.07.16 12:01:00 1: PERL WARNING: Use of uninitialized value $shortarg in concatenation (.) or string at /opt/fhem/FHEM/98_apptime.pm line 106.
2019.07.16 12:03:31 1: PERL WARNING: Use of uninitialized value within %savedetails in concatenation (.) or string at /opt/fhem/FHEM/98_MSwitch.pm line 4119.
2019.07.16 12:03:31 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at /opt/fhem/FHEM/98_MSwitch.pm line 4119.
2019.07.16 12:03:31 1: PERL WARNING: Use of uninitialized value within %savedetails in concatenation (.) or string at /opt/fhem/FHEM/98_MSwitch.pm line 4121.
2019.07.16 12:03:31 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at /opt/fhem/FHEM/98_MSwitch.pm line 4121.
2019.07.16 12:03:31 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at /opt/fhem/FHEM/98_MSwitch.pm line 4144.
2019.07.16 12:03:31 1: PERL WARNING: Use of uninitialized value within %savedetails in string eq at /opt/fhem/FHEM/98_MSwitch.pm line 4361.
2019.07.16 12:03:31 1: PERL WARNING: Use of uninitialized value within %savedetails in string eq at /opt/fhem/FHEM/98_MSwitch.pm line 4420.
2019.07.16 12:03:31 1: PERL WARNING: Argument "00:00:00" isn't numeric in division (/) at /opt/fhem/FHEM/98_MSwitch.pm line 4471.
2019.07.16 12:03:31 1: PERL WARNING: Argument "00:00:00" isn't numeric in division (/) at /opt/fhem/FHEM/98_MSwitch.pm line 4495.
2019.07.16 12:03:31 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at /opt/fhem/FHEM/98_MSwitch.pm line 4643.
Hour '60' out of range 0..23 at /opt/fhem/FHEM/98_MSwitch.pm line 7799.


Liste des MSwitch-Device (ich habe keine Ahnung, welche Bedeutung die Fehlermeldungen in der nicht enden wollenden Liste der "devicecmds1" hat):

Internals:
   FUUID      5d2d5be5-f33f-8cf0-3d46-2bc8d0ff324c0ada
   IncommingHandle fromtimer
   MODEL      Notify
   NAME       ms_Teichbelueftung
   NOTIFYDEV  no_trigger
   NR         374
   NTFY_ORDER 45-ms_Teichbelueftung
   STATE      active
   TYPE       MSwitch
   Version_Datenstruktur V2.00
   Version_Modul 2.30
   Version_autoupdate off
   eventsave  unsaved
   READINGS:
     2019-07-17 09   EVENT           ms_Teichbelueftung
     2019-07-17 09   EVTFULL         ms_Teichbelueftung
     2019-07-17 09   EVTPART1        ms_Teichbelueftung
     2019-07-17 09   EVTPART2        execute_timer_P3
     2019-07-17 09   EVTPART3        09
     2019-07-16 15   Trigger_device  no_trigger
     2019-07-16 07   Trigger_log     off
     2019-07-17 09   last_activation_by timer
     2019-07-17 09   last_exec_cmd   set TeichBelueftung on-for-timer 450
     2019-07-17 09   state           active
   helper:
     last_devicecmd_save 1563349615.36468
     bm:
       MSwitch_Get:
         cnt        5
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        16.07. 20
         max        2.19345092773438e-05
         tot        0.000103950500488281
         mAr:
           HASH(0x55c914d44188)
           ms_Teichbelueftung
           ?
       MSwitch_Set:
         cnt        83
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        16.07. 16
         max        0.000481128692626953
         tot        0.00680112838745117
         mAr:
           HASH(0x55c914d44188)
           ms_Teichbelueftung
           ?
     devicecmds1:
       AV_Receiver Unknown argument ?, choose one of on off volumeStraight volume volumeUp volumeDown input mute remoteControl scene straight 3dCinemaDsp adaptiveDrc direct surroundDecoder displayBrightness dsp enhancer hdmiOut1 hdmiOut2 sleep bass treble partyMode tunerFrequency displayBrightness statusRequest
       AZ_Wochenplan Unknown argument ?, choose one of profile_data send_to_device copy_profile remove_profile reread_master
       ActionDetector Unknown argument ?, choose one of assignHmKey clear deviceRename fwUpdate getDevInfo raw reset unpair update 
       AlleLampen Unknown argument ?, choose one of assignHmKey attrTemplate blink bri clear deviceRename dimDown dimUp down eventL eventS fwUpdate
...
...


Irgendwie hat das lange Devicelisting das Posting zerbröselt... Hab's jetzt gekürzt.

Könnte man nicht die Eingaben auf unsinngie Werte hin überpüfen und womöglich sogar per Fehlermeldung darauf hinweisen?

Besten Dank schon mal
Jürgen

Homematic HM-LGW, div HM Komponenten, div Arduino/ESP8266/ESPeasy, FHEM in KVM, V. 2019-04

Byte09

Zitat von: jgrete am 17 Juli 2019, 07:44:59
Moin,
ich hatte nach der Eingabe von
[00:60*08:00-22:00]
in "execute 'cmd1' at :" einen Absturz von fhem zu verzeichnen. Absturz heißt: WEB-Interface war nicht mehr zugreifbar und Reboot der VM nötig.
Hier das Log zur fraglichen Zeit:

2019.07.16 11:30:00 1: PERL WARNING: Use of uninitialized value $reading[2] in string eq at /opt/fhem/FHEM/98_MSwitch.pm line 7403.
2019.07.16 12:01:00 1: PERL WARNING: Use of uninitialized value $evtparts[0] in join or string at /opt/fhem/FHEM/98_MSwitch.pm line 7169.
2019.07.16 12:01:00 3: ms_Teichbelueftung MSwitch_Restartcm: Befehlsausfuehrung -> set TeichBelueftung on-for-timer 600 6935
2019.07.16 12:01:00 1: PERL WARNING: Use of uninitialized value $shortarg in concatenation (.) or string at /opt/fhem/FHEM/98_apptime.pm line 106.
2019.07.16 12:03:31 1: PERL WARNING: Use of uninitialized value within %savedetails in concatenation (.) or string at /opt/fhem/FHEM/98_MSwitch.pm line 4119.
2019.07.16 12:03:31 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at /opt/fhem/FHEM/98_MSwitch.pm line 4119.
2019.07.16 12:03:31 1: PERL WARNING: Use of uninitialized value within %savedetails in concatenation (.) or string at /opt/fhem/FHEM/98_MSwitch.pm line 4121.
2019.07.16 12:03:31 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at /opt/fhem/FHEM/98_MSwitch.pm line 4121.
2019.07.16 12:03:31 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at /opt/fhem/FHEM/98_MSwitch.pm line 4144.
2019.07.16 12:03:31 1: PERL WARNING: Use of uninitialized value within %savedetails in string eq at /opt/fhem/FHEM/98_MSwitch.pm line 4361.
2019.07.16 12:03:31 1: PERL WARNING: Use of uninitialized value within %savedetails in string eq at /opt/fhem/FHEM/98_MSwitch.pm line 4420.
2019.07.16 12:03:31 1: PERL WARNING: Argument "00:00:00" isn't numeric in division (/) at /opt/fhem/FHEM/98_MSwitch.pm line 4471.
2019.07.16 12:03:31 1: PERL WARNING: Argument "00:00:00" isn't numeric in division (/) at /opt/fhem/FHEM/98_MSwitch.pm line 4495.
2019.07.16 12:03:31 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at /opt/fhem/FHEM/98_MSwitch.pm line 4643.
Hour '60' out of range 0..23 at /opt/fhem/FHEM/98_MSwitch.pm line 7799.


Liste des MSwitch-Device (ich habe keine Ahnung, welche Bedeutung die Fehlermeldungen in der nicht enden wollenden Liste der "devicecmds1" hat):

Internals:
   FUUID      5d2d5be5-f33f-8cf0-3d46-2bc8d0ff324c0ada
   IncommingHandle fromtimer
   MODEL      Notify
   NAME       ms_Teichbelueftung
   NOTIFYDEV  no_trigger
   NR         374
   NTFY_ORDER 45-ms_Teichbelueftung
   STATE      active
   TYPE       MSwitch
   Version_Datenstruktur V2.00
   Version_Modul 2.30
   Version_autoupdate off
   eventsave  unsaved
   READINGS:
     2019-07-17 09   EVENT           ms_Teichbelueftung
     2019-07-17 09   EVTFULL         ms_Teichbelueftung
     2019-07-17 09   EVTPART1        ms_Teichbelueftung
     2019-07-17 09   EVTPART2        execute_timer_P3
     2019-07-17 09   EVTPART3        09
     2019-07-16 15   Trigger_device  no_trigger
     2019-07-16 07   Trigger_log     off
     2019-07-17 09   last_activation_by timer
     2019-07-17 09   last_exec_cmd   set TeichBelueftung on-for-timer 450
     2019-07-17 09   state           active
   helper:
     last_devicecmd_save 1563349615.36468
     bm:
       MSwitch_Get:
         cnt        5
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        16.07. 20
         max        2.19345092773438e-05
         tot        0.000103950500488281
         mAr:
           HASH(0x55c914d44188)
           ms_Teichbelueftung
           ?
       MSwitch_Set:
         cnt        83
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        16.07. 16
         max        0.000481128692626953
         tot        0.00680112838745117
         mAr:
           HASH(0x55c914d44188)
           ms_Teichbelueftung
           ?
     devicecmds1:
       AV_Receiver Unknown argument ?, choose one of on off volumeStraight volume volumeUp volumeDown input mute remoteControl scene straight 3dCinemaDsp adaptiveDrc direct surroundDecoder displayBrightness dsp enhancer hdmiOut1 hdmiOut2 sleep bass treble partyMode tunerFrequency displayBrightness statusRequest
       AZ_Wochenplan Unknown argument ?, choose one of profile_data send_to_device copy_profile remove_profile reread_master
       ActionDetector Unknown argument ?, choose one of assignHmKey clear deviceRename fwUpdate getDevInfo raw reset unpair update 
       AlleLampen Unknown argument ?, choose one of assignHmKey attrTemplate blink bri clear deviceRename dimDown dimUp down eventL eventS fwUpdate
...
...


Irgendwie hat das lange Devicelisting das Posting zerbröselt... Hab's jetzt gekürzt.

Könnte man nicht die Eingaben auf unsinngie Werte hin überpüfen und womöglich sogar per Fehlermeldung darauf hinweisen?

Besten Dank schon mal
Jürgen

sorry, ich habe den post gerade erst gesehen - ist mir irgendwie entgangen.

natürlich kann man das , und ich tue das ja auch sobals es bekannt ist. das problem ist eher , das für mich nicht alle unsinnigen eingaben vorhersehbar sind - und dann entsteht sowas . ich werde das beheben und heute noch ein Update einstellen. Sorry für den Crash.

Gruss Byte09

Byte09

#2
nachtrag:


'devicecmds1:' sind keine fehlermeldungen , sondern zwischengepeicherte daten aller im system vorhandenen devices, um diese im webinterface darstellen zu können.


das lange listing kannst du übrigens unterdrücken , indem du das attribut 'MSwitch_delete_CMDs' auf 'nosave' setzt.

Ist dann etwas weniger resourcenfressend, dafür kann das laden der detailseite des MSwitchdevices etwas länger dauern.

der mittelweg ist die Einstellung 'automatic' , damit werde diese daten nur 'gespeichert' wenn du das webinterface aufrufst , um hier wartezeiten zu verkürzen ( die entstehen , wenn viele devices im system sind ) , nach einer gewissen zeit aber wieder gelöscht.


gruss Byte09

jgrete

Keine Hektik, ich hätte das ja auch im MSwitch-Support-Thread posten können - hab ich leider erst hinterher gesehen. Ein Posting kann man wohl nicht in einen anderen Thread verschieben, oder?
Naja, was die Unsinnigkeit von Eingaben angeht: ich  hab ein Händchen für unsinnige Eingaben - hat berufliche Gründe  :)
Besten Dank jedenfalls, auch für den Tipp!
Jürgen
Homematic HM-LGW, div HM Komponenten, div Arduino/ESP8266/ESPeasy, FHEM in KVM, V. 2019-04

Byte09

Zitat von: jgrete am 18 Juli 2019, 18:32:06
Keine Hektik, ich hätte das ja auch im MSwitch-Support-Thread posten können - hab ich leider erst hinterher gesehen. Ein Posting kann man wohl nicht in einen anderen Thread verschieben, oder?
Naja, was die Unsinnigkeit von Eingaben angeht: ich  hab ein Händchen für unsinnige Eingaben - hat berufliche Gründe  :)
Besten Dank jedenfalls, auch für den Tipp!
Jürgen

ist mit der nächsten version korrigiert, werde es aber heute nicht mehr schaffen.

gruss Byte09