Hi herrmannj,
nach dem Release von Freitag und dem Update von 98_JsonMod.pm (https://forum.fhem.de/index.php?topic=134797.0) verweigert FHEM den Start, letzter Log-Eintrag:
Can't call method "next" on an undefined value at ./FHEM/98_JsonMod.pm line 565, <$fh> line 5283.
Kannst du dir das mal ansehen? Einspielen der vorherigen Version fixt dies (natürlich nicht unerwartet).
Weitere Meldungen im Log?
Zitat von: yersinia am 02 September 2023, 10:00:45nach dem Release von Freitag und dem Update von 98_JsonMod.pm verweigert FHEM den Start
Blöde Frage: hast Du nur 98_JsonMod.pm aktualisiert oder hast Du auch die zugehörigen neuen Libraries im update mit installiert?
@Jörg: bei mir keine Auffälligkeiten bezüglich cron, sonst hätte ich mich schon vorab gemeldet :)
offtopic: Meine Hoffnung war, dass auch mein vorgeschlagener patch (https://forum.fhem.de/index.php?topic=134554.0) zu JsonMod im zu erwartenden Update mit berücksichtigt wird 8)
Zitat von: herrmannj am 02 September 2023, 11:24:02Weitere Meldungen im Log?
Nein, danach endet der Log und beginnt mit dem FHEM-Start; die mind 10 Meldungen davor beziehen sich nicht auf ein JsonMod-Device.
Zitat von: betateilchen am 02 September 2023, 13:32:25Blöde Frage: hast Du nur 98_JsonMod.pm aktualisiert oder hast Du auch die zugehörigen neuen Libraries im update mit installiert?
Nee, hab das Update über fhem update geholt - und die neue lib war dabei:
2023.09.02 09:26:36 1: Downloading https://fhem.de/fhemupdate/controls_fhem.txt
2023.09.02 09:26:36 1: fhem
2023.09.02 09:26:36 1: RMDIR: ./restoreDir/update/2023-06-30
2023.09.02 09:26:36 1: UPD ./CHANGED
[...]
2023.09.02 09:26:37 1: UPD FHEM/98_JsonMod.pm
[...]
2023.09.02 09:26:37 1: UPD lib/FHEM/Scheduler/Cron.pm
Es hat es auch aufs Filesystem geschafft:
pi@fhem-pi: /opt/fhem/lib/FHEM/Scheduler $ ls -lah
insgesamt 44K
-rw-r--r-- 1 fhem dialout 35K 2. Sep 09:26 Cron.pm
Ich nutze auch keine (nicht im SVN vorhandenen) Modifikationen von JsonMod.
Kann es sein, dass es ggf mit deaktivierten JsonMod Devices zu tun haben kann? Der Bezug zu "next" fand ich merkwürdig.
Ich habe einige Devices, die zwar ein Intervall definiert haben aber
attr disable 1
haben - ich aktualisiere dann via reread. Im Internals NEXT steht dort auch NEVER.
Zitat von: yersinia am 02 September 2023, 16:11:34Ich habe einige Devices, die zwar ein Intervall definiert haben aber
attr disable 1
haben - ich aktualisiere dann via reread.
Solche devices habe ich auch, aber trotzdem startet mein FHEM problemlos.
Hast Du mal fhem manuell mit der debug option gestartet?
Vielleicht erkennt man da eine Problemursache.
Produktiv (RPi 4):
This is perl 5, version 36, subversion 0 (v5.36.0) built for arm-linux-gnueabihf-thread-multi-64int
(with 52 registered patches, see perl -V for more detail)
Entwicklung & Test (AWS Lightsail):
This is perl 5, version 36, subversion 0 (v5.36.0) built for x86_64-linux-gnu-thread-multi
(with 52 registered patches, see perl -V for more detail)
Hallo yersinia,
starte mal so (terminal): perl fhem.pl -t t/FHEM/90_Cron/10_Cronlib.t
Danach werde ich vmtl wissen wollen welches perl + version das ist.
Danke, vg
Joerg
Bei mir das gleiche, fhem startet nach dem heutigen update nicht: Can't call method "next" on an undefined value at ./FHEM/98_JsonMod.pm line 565, <$fh> line 9263
perl --version
This is perl 5, version 32, subversion 1 (v5.32.1) built for x86_64-linux-gnu-thread-multi
(with 47 registered patches, see perl -V for more detail)
starte mal so (terminal): perl fhem.pl -t t/FHEM/90_Cron/10_Cronlib.t
Und dann den Output, bitte
Mach ich heute abend!
Mein Verdacht wäre das ihr ein älteres List::Utils verwendet, wo nicht alles implementiert ist. Wenn ich das simuliere bekomme ich aber klare logmeldungen und fhem fängt das ab. Von daher ist das Verhalten mysteriös. So oder so, ich brauche Daten...
2023.09.03 14:08:59 1: reload: Error:Modul 98_JsonMod deactivated:
"foo" is not exported by the List::Util module
Can't continue after import errors at lib/FHEM/Scheduler/Cron.pm line 10.
BEGIN failed--compilation aborted at lib/FHEM/Scheduler/Cron.pm line 10, <$fh> line 26.
Compilation failed in require at ./FHEM/98_JsonMod.pm line 30, <$fh> line 26.
BEGIN failed--compilation aborted at ./FHEM/98_JsonMod.pm line 30, <$fh> line 26.
ich glaube™ ich verstehe was passiert ...
Zitat von: herrmannj am 02 September 2023, 21:28:47starte mal so (terminal): perl fhem.pl -t t/FHEM/90_Cron/10_Cronlib.t
pi@fhem-pi:/opt/fhem $ perl fhem.pl -t t/FHEM/90_Cron/10_Cronlib.t
Need a .t file as argument for -t
Anscheinend ist Ordner t kein Teil des regulären Updates (https://svn.fhem.de/trac/browser/trunk/fhem/controls_fhem.txt).
Aber diesen kann man anlegen...
pi@fhem-pi:/opt/fhem $ perl fhem.pl -t t/FHEM/90_Cron/10_Cronlib.t
2023.09.03 15:55:52 1: Including t/FHEM/90_Cron/10_Cronlib.cfg
2023.09.03 15:55:52 0: Featurelevel: 6.2
2023.09.03 15:55:52 0: Server started with 1 defined entities (fhem.pl:27895/2023-08-24 perl:5.032001 os:linux user:pi pid:3173955)
ok 1 - FHEM::Scheduler::Cron loaded
ok 2 - must throw an error if no cron text given (got 'no cron expression')
ok 3 - must throw an error if cron expression exceeds 255 chars (got 'cron expression exceeds limit')
ok 4 - accept '* * * * *' (\# of successful passes: 1)
ok 5 - handle '1 * * * *' (\# of successful passes: 24)
ok 6 - handle '1-5 * * * *' (\# of successful passes: 120)
ok 7 - handle '1-5/1 * * * *' (\# of successful passes: 120)
ok 8 - handle '1-5/2 * * * *' (\# of successful passes: 72)
ok 9 - accept '0 * * * *' (\# of successful passes: 0)
ok 10 - accept '00 * * * *' (\# of successful passes: 0)
ok 11 - accept '1 * * * *' (\# of successful passes: 0)
ok 12 - accept '01 * * * *' (\# of successful passes: 0)
ok 13 - accept '1-59 * * * *' (\# of successful passes: 59)
ok 14 - accept '01-059 * * * *' (\# of successful passes: 0)
ok 15 - accept '1-59/1 * * * *' (\# of successful passes: 59)
ok 16 - accept '1-59/30 * * * *' (\# of successful passes: 2)
ok 17 - accept '01-059/01 * * * *' (\# of successful passes: 0)
ok 18 - accept '1-59/59 * * * *' (\# of successful passes: 1)
ok 19 - accept '01-059/059 * * * *' (\# of successful passes: 0)
ok 20 - accept '10~20 * * * *' (\# of successful passes: 0)
ok 21 - accept '10~20,30~40 * * * *' (\# of successful passes: 0)
ok 22 - reject 'a * * * *' (got 'syntax error in minute item: a')
ok 23 - reject '*,a * * * *' (got 'syntax error in minute item: a')
ok 24 - reject '1,a * * * *' (got 'syntax error in minute item: a')
ok 25 - reject '*-5 * * * *' (got 'syntax error in minute item: *-5')
ok 26 - reject '5-1 * * * *' (got 'syntax error in minute item: 5-1')
ok 27 - reject '60 * * * *' (got 'syntax error in minute item: 60')
ok 28 - reject '0-60 * * * *' (got 'syntax error in minute item: 0-60')
ok 29 - reject '0-59/60 * * * *' (got 'syntax error in minute item: 0-59/60')
ok 30 - reject '20~10 * * * *' (got 'syntax error in minute item: 20~10')
ok 31 - accept '0 0 * * *' (\# of successful passes: 2)
ok 32 - accept '0 00 * * *' (\# of successful passes: 0)
ok 33 - accept '0 1 * * *' (\# of successful passes: 0)
ok 34 - accept '0 01 * * *' (\# of successful passes: 0)
ok 35 - accept '0 1-23 * * *' (\# of successful passes: 23)
ok 36 - accept '0 01-023 * * *' (\# of successful passes: 23)
ok 37 - accept '0 1-23/1 * * *' (\# of successful passes: 23)
ok 38 - accept '0 01-023/01 * * *' (\# of successful passes: 23)
ok 39 - accept '0 1-23/12 * * *' (\# of successful passes: 2)
ok 40 - accept '0 1-23/23 * * *' (\# of successful passes: 2)
ok 41 - accept '0 1~10 * * *' (\# of successful passes: 0)
ok 42 - accept '0 1~10,11~20 * * *' (\# of successful passes: 0)
ok 43 - handle '0 0 * * *' (\# of successful passes: 30)
ok 44 - handle '0 0 * * 1' (\# of successful passes: 3)
ok 45 - handle '0 0 * * 1-5' (\# of successful passes: 5)
ok 46 - handle '0 0 * * 1-5/1' (\# of successful passes: 5)
ok 47 - handle '0 0 * * 1-5/2' (\# of successful passes: 3)
ok 48 - handle '0 0 * * 1-5,6' (\# of successful passes: 6)
ok 49 - handle '0 0 8 * 1-5,6' (\# of successful passes: 7)
ok 50 - handle '0 0 8 * Mon-Fri,Sat' (\# of successful passes: 7)
ok 51 - handle '0 0 8 * mon-fri,sat' (\# of successful passes: 7)
ok 52 - handle '0 0 8 * MON-FRI,SAT' (\# of successful passes: 7)
ok 53 - handle '0 0 2-8 * &1-5,6' (\# of successful passes: 7)
ok 54 - handle '0 0 2-8 * &Mon-Fri,Sat' (\# of successful passes: 7)
ok 55 - handle '0 0 * 2 0\#F' (\# of successful passes: 6)
ok 56 - handle '0 0 * 2 Sun\#F' (\# of successful passes: 6)
ok 57 - handle '0 0 * * 4\#L' (\# of successful passes: 6)
ok 58 - handle '0 0 * * Thu\#L' (\# of successful passes: 6)
ok 59 - handle '0 0 * 2 6\#5' (\# of successful passes: 6)
ok 60 - handle '0 0 * 2 6\#-5' (\# of successful passes: 6)
ok 61 - reject '0 0 * 2 8' (got 'syntax error in wday item: 8')
ok 62 - reject '0 0 * 2 0/Mon' (got 'syntax error in wday item: 0/Mon')
ok 63 - reject '0 0 * 2 0\#0' (got 'syntax error in wday item: 0\#0')
ok 64 - reject '0 0 * 2 0\#6' (got 'syntax error in wday item: 0\#6')
ok 65 - reject '0 0 * 2 0\#-6' (got 'syntax error in wday item: 0\#-6')
ok 66 - reject '0 0 * 2 0\#A' (got 'syntax error in wday item: 0\#A')
ok 67 - reject '0 0 * 2 0\#Mon' (got 'syntax error in wday item: 0\#Mon')
ok 68 - reject '0 0 * 2 FOO' (got 'syntax error in wday item: FOO')
ok 69 - reject '0 0 * 2 Sunday' (got 'syntax error in wday item: Sunday')
ok 70 - Timeseries '0 12 3,4,5 2 0,2,3,4' (\# of successful passes: 4)
ok 71 - Feb-29 (leap year)'0 12 29 2 *' (\# of successful passes: 3)
ok 72 - Feb-29 & Sunday '0 12 29 2 &Sun' (\# of successful passes: 1)
ok 73 - Fri 13 '0 12 13 * &Fri' (\# of successful passes: 3)
ok 74 - daylight eu '0 2 * 3,10 Sun\#L' (\# of successful passes: 3)
1..74
Perl Version ist v5.32.1 bzw 5.32.1-4+deb11u2
Zitat von: betateilchen am 02 September 2023, 20:22:39Hast Du mal fhem manuell mit der debug option gestartet?
Wie kann ich die debug option mitgeben? Irgendwie finde ich dazu nichts passendes in der commandref, wiki oder hier (Suche nach debug ist auch fuzzy).
Zitat von: herrmannj am 03 September 2023, 14:13:41Mein Verdacht wäre das ihr ein älteres List::Utils verwendet, wo nicht alles implementiert ist. Wenn ich das simuliere bekomme ich aber klare logmeldungen und fhem fängt das ab. Von daher ist das Verhalten mysteriös. So oder so, ich brauche Daten...
Kann sein, ich nehm das, was mir debian/raspbian hier unter bullseye bietet.
Ich habe den Fehler gefunden, tritt tatsächlich mit disabled auf wenn noch andere Umstände dazukommen. Update kommt heute Abend. Dankeschön
Zitat von: yersinia am 03 September 2023, 16:07:54Zitat von: betateilchen am 02 September 2023, 20:22:39Hast Du mal fhem manuell mit der debug option gestartet?
Wie kann ich die debug option mitgeben? Irgendwie finde ich dazu nichts passendes in der commandref, wiki oder hier
perl fhem.pl -d fhem.cfg
Es gibt irgendwo eine Anleitung, in der das drinsteht, aber ich hab jetzt keine Lust, die zu suchen.
Dankeschön, mit dem update von heute morgen läuft wieder alles, der Fehler ist verschwunden!