FHEM stürzt ab...

Begonnen von mergat, 29 Juni 2020, 08:56:03

Vorheriges Thema - Nächstes Thema

mergat

Guten Morgen zusammen,

seit dem letzten Update stürzt FHEM immer mal wieder komplett ab. Nach einem Neustart geht's dann wieder eine Weile...
Habe im FHEM.LOG (am Ende  ;) )gerade einen Hinweis auf Problem in der 10_CUL_HM gefunden. Kann es das sein? Ich bin leider des Perls nicht so mächtig...  ;D

Vielen Dank...

2020.06.29 06:51:00 3: CUL_HM set kg_hk_Gartenstrom_vorn_Sw_02 off
Unmatched ) in regex; marked by <-- HERE in m/^off
) <-- HERE :/ at ./FHEM/10_CUL_HM.pm line 4261.

Otto123

Hi,

kannst Du das bitte besser ins Homematicboard verschieben.
Was gibt Dirversion 10_CUL_HMaus?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Beta-User

...und packe ggf. noch ein list von "kg_hk_Gartenstrom_vorn_Sw_02" dazu. Da die aktuelle Version immerhin schon 6 Tage am Start ist/war, würde ich davon ausgehen, dass es auch irgendwas mit der konkreten Konfiguration dieses Gerätes zu tun hat.

Und Code, list + log-Auszüge bitte in code-Tags...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

mergat

Guten Morgen,

@Otto123
"Homematic" macht mehr Sinn, dass sehe ich ein...  ;)

Da "böse" Konstrukt ist anscheinend ein Standard "AT", wie er seit Jahren unverändert läuft. Ich habe mir das Ding noch einmal angesehen, finde aber ersteinmal nichts. Der Absturz erfolgt bei dem letzten "SET", deshalb denke ich es ist dieser Ausdruck und nicht das Gerät, oder?

*{sunrise(600,"06:16","09:30")} { if ( !($we) && !(Value("NRW_Ferientag")) ) { fhem("set kg_hk_Gartenstrom_Sw_01 off; set kg_hk_Gartenstrom_Sw_02 off; set kg_hk_Gartenstrom_Sw_03 off; set kg_hk_Gartenstrom_Sw_04 off; set kg_hk_Gartenstrom_vorn_Sw_01 off; set kg_hk_Gartenstrom_vorn_Sw_02 off"); } }

Internals:
   DEF        3A5BA302
   FUUID      5c8d34dd-f33f-71ca-f2d7-c78c689ce8b24b07
   NAME       kg_hk_Gartenstrom_vorn_Sw_02
   NOTIFYDEV  global
   NR         686
   NTFY_ORDER 50-kg_hk_Gartenstrom_vorn_Sw_02
   STATE      off
   TYPE       CUL_HM
   chanNo     02
   device     kg_hk_Gartenstrom_vorn
   peerList   HM_1C0E80_Btn_07,HM_1C0E80_Btn_08,
   READINGS:
     2020-06-25 06:51:09   CommandAccepted yes
     2020-05-10 20:22:51   R-HM_1C0E80_Btn_07-lgActionType jmpToTarget
     2020-05-10 20:22:51   R-HM_1C0E80_Btn_07-shActionType jmpToTarget
     2020-05-10 20:22:53   R-HM_1C0E80_Btn_08-lgActionType jmpToTarget
     2020-05-10 20:22:53   R-HM_1C0E80_Btn_08-shActionType jmpToTarget
     2018-08-23 19:22:01   R-powerUpAction off
     2018-08-23 19:22:01   R-sign          off
     2020-05-10 20:22:32   RegL_01.        00:00 08:00 30:06 56:00 57:24
     2020-05-10 20:22:51   RegL_03.HM_1C0E80_Btn_07 00:00 02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:64 0C:66 82:00 83:00 84:32 85:64 86:00 87:FF 88:00 89:FF 8A:21 8B:64 8C:66
     2020-05-10 20:22:53   RegL_03.HM_1C0E80_Btn_08 00:00 02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:13 0C:33 82:00 83:00 84:32 85:64 86:00 87:FF 88:00 89:FF 8A:21 8B:13 8C:33
     2020-06-25 06:51:09   deviceMsg       off (to VCCU)
     2020-06-25 06:51:09   level           0
     2020-06-25 06:51:09   pct             0
     2020-06-30 08:26:42   peerList        HM_1C0E80_Btn_07,HM_1C0E80_Btn_08,
     2020-06-25 06:51:09   recentStateType ack
     2020-06-25 06:51:09   state           off
     2020-06-25 06:51:09   timedOn         off
     2020-06-25 06:51:09   trigLast        fhem:02
     2020-06-13 02:18:28   trig_HM_1C0E80_Btn_07 Short_2
     2020-05-10 19:27:33   trig_HM_1C0E80_Btn_08 Short_1
   helper:
     peerFriend peerSens,peerVirt
     peerOpt    3:switch
     regLst     1,3p
     cmds:
       TmplKey    HM_1C0E80_Btn_07,HM_1C0E80_Btn_08,:no:1593498402.13076
       TmplTs     1593498402.13076
       cmdKey     :1:0:0::0003:02HM_1C0E80_Btn_07,HM_1C0E80_Btn_08,
       TmplCmds:
         tplSet_HM_1C0E80_Btn_08:[SwCondAbove_long|SwCondAbove_short|SwCondBelow_long|SwCondBelow_short|SwOff_long|SwOff_short|SwOnCond_long|SwOnCond_short|SwOn_long|SwOn_short|SwToggle_long|SwToggle_short|autoOff_long|autoOff_short|motionOnSw_long|motionOnSw_short]
         tplSet_HM_1C0E80_Btn_07:[SwCondAbove_long|SwCondAbove_short|SwCondBelow_long|SwCondBelow_short|SwOff_long|SwOff_short|SwOnCond_long|SwOnCond_short|SwOn_long|SwOn_short|SwToggle_long|SwToggle_short|autoOff_long|autoOff_short|motionOnSw_long|motionOnSw_short]
       cmdList:
         clear:[readings|trigger|register|oldRegs|rssi|msgEvents|msgErrors|attack|all]
         eventL:-peer- -cond-
         eventS:-peer- -cond-
         getConfig:
         getRegRaw:[List0|List1|List2|List3|List4|List5|List6] ... [-PeerChannel-]
         inhibit:[on|off]
         off:
         on-for-timer:-ontime-
         on-till:-time-
         on:
         peerBulk:-peer1,peer2,...- [set|unset]
         peerIODev:[IO] -btn- [set|unset]... not for future use
         peerSmart:[remove_HM_1C0E80_Btn_07|remove_HM_1C0E80_Btn_08|CUL_HM_HM_PBI_4_FM_25FE69_Btn_02|CUL_HM_HM_PBI_4_FM_25FE69_Btn_03|CUL_HM_HM_PBI_4_FM_25FE69_Btn_04|CUL_HM_HM_PBI_4_FM_25FEEC_Btn_02|CUL_HM_HM_PBI_4_FM_25FEEC_Btn_03|CUL_HM_HM_PBI_4_FM_25FEEC_Btn_04|HM_1C0E80_Btn_01|HM_1C0E80_Btn_02|HM_1C0E80_Btn_03|HM_1C0E80_Btn_04|HM_1C0E80_Btn_05|HM_1C0E80_Btn_06|HM_1C0E80_Btn_09|HM_1C0E80_Btn_10|HM_1C0E80_Btn_11|HM_1C0E80_Btn_12|HM_1C0E80_Btn_13|HM_1C0E80_Btn_14|HM_1C0E80_Btn_15|HM_1C0E80_Btn_16|HM_1C0E80_Btn_17|HM_1C0E80_Btn_18|HM_1C0E80_Btn_19|HM_1C0E80_Btn_20|HM_2B023D|HM_32678D|VCCU|aussen_bewegungsmelder_einfahrt|aussen_bewegungsmelder_einfahrt2|aussen_bewegungsmelder_haustuer|aussen_bewegungsmelder_vorn|aussen_garage_tor.re|eg_flur_bewegungsmelder|eg_flur_haustuerklingel|eg_flur_virt_Temp_Sensor1|eg_kueche_siebtraeger_SenF|eg_kueche_siebtraeger_SenI|eg_kueche_siebtraeger_SenPwr|eg_kueche_siebtraeger_SenU|eg_wz_indirekteLampe_SenF|eg_wz_indirekteLampe_SenI|eg_wz_indirekteLampe_SenPwr|eg_wz_indirekteLampe_SenU|garten_bewegungsmelder_einfahrt_unten|kg_flur_bewegungsmelder|og_flur_bewegungsmelder|og_flur_licht2_Btn_01|og_flur_licht2_Btn_02|og_flur_licht_taster2|og_mia_licht_tasterbett_Btn_01|og_mia_licht_tasterbett_Btn_02|og_mia_licht_tasterbett_Motion|og_mia_virt_Temp_Sensor1|og_nele_licht_tasterbett_Btn_01|og_nele_licht_tasterbett_Btn_02|og_nele_licht_tasterbett_Motion|og_nele_virt_Temp_Sensor1|og_schlafzimmer_virt_Temp_Sensor1|ug_buero_motion1|ug_buero_virt_Temp_Sensor1|ug_flur_licht_taster2]
         press:[long|short] -peer- [-repCount(long only)-] [-repDelay-] ...
         regBulk:-list-.-peer- -addr1:data1- -addr2:data2- ...
         regSet:[prep|exec] -regName- -value- ... [-peerChannel-]
         sign:[on|off]
         statusRequest:
         toggle:
         tplDel:tmplt
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     role:
       chn        1
     tmpl:
Attributes:
   alias      Licht Böschung vorn
   group      Licht Garten
   icon       light_light_dim_100
   model      HM-LC-SW4-DR
   peerIDs    00000000,1C0E8007,1C0E8008,
   room       Heizungskeller
   webCmd     on:off


mergat

Zitat von: Otto123 am 29 Juni 2020, 10:41:48
Hi,

kannst Du das bitte besser ins Homematicboard verschieben.
Was gibt Dirversion 10_CUL_HMaus?

Gruß Otto

Hier noch die Version:
File         Rev   Last Change

10_CUL_HM.pm 22227 2020-06-22 07:59:57Z martinp876

f18.js                     21848 2020-05-03 12:18:00Z rudolfkoenig
fhemweb.js                 22260 2020-06-25 08:15:36Z rudolfkoenig

Beta-User

Würde auch auf das at tippen. Bin bein escapen auch gerne am Raten, aber das letzte ";" sollte mMn. entweder nicht da stehen, oder wenn dann doppelt:
*{sunrise(600,"06:16","09:30")} { if ( !($we) && !(Value("NRW_Ferientag")) ) { fhem("set kg_hk_Gartenstrom_Sw_01 off; set kg_hk_Gartenstrom_Sw_02 off; set kg_hk_Gartenstrom_Sw_03 off; set kg_hk_Gartenstrom_Sw_04 off; set kg_hk_Gartenstrom_vorn_Sw_01 off; set kg_hk_Gartenstrom_vorn_Sw_02 off");; } }
Würde aber den ganzen Ausdruck anders fassen:
*{sunrise(600,"06:16","09:30")} { if ( !($we) && !(Value("NRW_Ferientag")) ) { fhem("set kg_hk_Gartenstrom_Sw_0[1-4],kg_hk_Gartenstrom_vorn_Sw_0[12] off") } }
Und falls "NRW_Ferientag" in global/holiday2we steht kannst du auch auf diese 2. Abfrage verzichten, das macht die Abfrage nach $we dann sowieso schon mit...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

mergat

Hallo Beta-User,

vielen Dank für Deinen Hinweis. Zusammengefasst ist die Zeile natürlich viel übersichtlicher, da hast Du völlig recht.

Ich vermute der Fehler wurde durch das schliessende ";" ausgelöst, welches nicht vorhanden war. Also so:
*{sunrise(600,"06:16","09:30")} { if ( !($we) && !(Value("NRW_Ferientag")) ) { fhem("set kg_hk_Gartenstrom_Sw_0[1-4],kg_hk_Gartenstrom_vorn_Sw_0[12] off"); } }

Ich bin noch nicht ganz sicher, gehe aber davon aus...  :) Warum das nun zeitlich gerade mit dem Update zusammenfiel kann ich mir nicht erklären, denn bewusst habe ich das nicht entfernt.

Vielen Dank für die Unterstützung!

Otto123

ich würde eher sagen, das kann weg :)
*{sunrise(600,"06:16","09:30")} { if ( !($we) && !(Value("NRW_Ferientag")) ) { fhem("set kg_hk_Gartenstrom_Sw_0[1-4],kg_hk_Gartenstrom_vorn_Sw_0[12] off") } }
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

mergat

Jetzt verunsichere mich doch nicht wieder...  ;) Ich werde morgen früh berichten...  ;D

Kann man so einen "AT" eigentlich auch manuell testen/auslösen? Am selben Tag eingestellt tut er es ja oft nicht und mit dem Ausführen in der CMD Zeile von FHEM hatte ich auch noch kein Glück. Einen NOTIFY kann man ja wenigstens triggern...

Otto123

Na klar
set tralala execNow
und man darf zum testen auch mal die Zeit verstellen (2min in die Zukunft) - man kann sich die Zeit ja merken und zurück stellen ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

mergat

Nee, der ExecNow geht nur ohne if Abfrage, zumindest bei mir...

Und die Zeit habe ich natürlich auch mehrfach verstellt, aber da gab es doch einmal ein Problem, dass so ein neuer AT erst am Folgetag aktiv wurde, oder?

Oder ich krieg die Dinger einfach nicht mehr gestartet, weil ein Fehler drin ist. Habe aber mit und ohne ";" probiert. Seltsam ist nur, dass die eigentlich schon uralt sind. Die Selbstzweifel wachsen...  ;) ;D

Otto123

#11
also execNow gibt es bei mir immer.
und wenn ich jetzt 18:41 ein at erstelle mit 18:43 - dann wird das in 2 min ausgeführt. Du darfst es natürlich nicht mit dem sunrise ausdruck machen


Ganz andere Weg: Den Ausdruck einfach in die FHEM Kommandozeile werfen - wird sofort ausgeführt. Wenn die Bedingung erfüllt ist :)
{ if ( !($we) && !(Value("NRW_Ferientag")) ) { fhem("set kg_hk_Gartenstrom_Sw_0[1-4],kg_hk_Gartenstrom_vorn_Sw_0[12] off") } }
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

mergat

Ja, sorry wenn ich Euch beschäftigt habe, das ist natürlich völlig richtig. Asche auf mein Haupt...

Es ist nicht nur der sunrise sondern wir haben auch bereits Ferien (zumindest meine Kids  ;) ) und damit führt er das Ding natürlich nicht aus. Da habe ich mich völlig verhaspelt. Ich habe immer versucht, das Ding zur Fehlersuche zum laufen zu bringen dabei liegt da das Problem nicht.

Ich weiss nicht wie der Parser vom Perl arbeitet, er führt natürlich den Befehlsteil der if Bedingung nicht aus, aber würde er trotzdem einen Syntaxfehler bemängeln oder diesen Ast dann aus Perfromancegründen völlig ignorieren?

Auch heute morgen ist der FHEM pünktlich abgestürzt in diesem Ausdruck. Gestern hatte ich noch ein erneutes Update der 10_CUL_HM.pm gemacht. Ich hoffe nun, dass das hinzugefügte ";" morgen "funktioniert".

2020.07.01 06:51:00 3: CUL_HM set kg_hk_Gartenstrom_Sw_02 off
2020.07.01 06:51:00 3: CUL_HM set kg_hk_Gartenstrom_Sw_03 off
2020.07.01 06:51:00 3: CUL_HM set kg_hk_Gartenstrom_Sw_04 off
2020.07.01 06:51:00 3: CUL_HM set kg_hk_Gartenstrom_vorn_Sw_01 off
2020.07.01 06:51:00 3: CUL_HM set kg_hk_Gartenstrom_vorn_Sw_02 off
Unmatched ) in regex; marked by <-- HERE in m/^off
) <-- HERE :/ at ./FHEM/10_CUL_HM.pm line 4273.
2020.07.01 09:06:55 1: Including fhem.cfg


06:51 Uhr Absturz und 09:06 Neustart des Prozesses...

Otto123

ZitatIch hoffe nun, dass das hinzugefügte ";" morgen "funktioniert".
Ich weiß nicht warum Du so hartnäckig darauf beharrst, aber das Semikolon ist dort nicht nötig.

Was macht er denn wenn Du nur dies in die Befehlszeile wirfst?
{ fhem("set kg_hk_Gartenstrom_Sw_0[1-4],kg_hk_Gartenstrom_vorn_Sw_0[12] off") }
bzw.:
set kg_hk_Gartenstrom_Sw_0[1-4],kg_hk_Gartenstrom_vorn_Sw_0[12] off

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

mergat

Guten Morgen,
also das ";" hat den Absturz heute morgen nicht verhindert...  ;) ;D

Was dies angeht will ich auch nicht stur beharren, aber das war das einzige was ich hatte als Unterschied zu anderen Ausdrücken die funktionierten. Ich habe auch den Wiki Eintrag gefunden, bei dem ich anscheinen vor vielen Jahren "geklaut " hatte. Daher stammt das Ding wohl...  :)

https://wiki.fhem.de/wiki/Wochenende,_Feiertage_und_Schulferien (ganz unten)

Also ich bekenne ab heute ganz offiziell das ";" ist überflüssig, da hattest Du völlig recht!   :D

Nichtsdestotrotz habe ich den Übeltäter wohl gefunden. Es war ein undokumentierter "Testeintrag", der die gleichen Schalter bediente (daher Namensgleichheit) und etwa zur gleichen Zeit startete. Darin habe ich anscheinend einen ungünstigen CR benutzt der den Absturz auslöste.

Ich habe heute noch einmal die ganzen Logdateien durchsucht, da der Eintrag auch schon sehr alt ist. Bis zum 25. Juni wurde er nur angemeckert, hatte aber sonst keine Auswirkungen. Am Abend des gleichen Tages habe ich die 10_CUL_HM.pm upgedatet. Diese verschluckt sich wohl an dem Eintrag und bringt den ganzen FHEM Prozess zum Absturz. Von dem eigentlichen Ausdruck gibt es aber nicht einmal mehr eine Teilfehlermeldung. Deshalb war ich bei den letzten (erfolgreichen) Befehlen an der völlig falschen Stelle.

Insofern habe ich mal wieder gelernt, die Logs regelmässig einmal anzusehen. Ich hoffe das war es jetzt und es geht wieder so zuverlässig weiter wie gewohnt. Dir Otto und dem Beta-User vielen herzlichen Dank für die Geduld und die guten Anregungen. Ich habe wieder eine Menge gelernt.