88_Timer.pm - Test und Fragen

Begonnen von kadettilac89, 24 September 2019, 20:56:51

Vorheriges Thema - Nächstes Thema

kadettilac89

Hi, ich habe mir das Modul geladen und gleich Fragen.

Ist es möglich, einen Timer der alle 5 Minuten ausgeführt werden soll anzulegen?

Wie muss ich perl code eintragen? Ich will diesen Befehl ausführen
{ if ($wday == 6) { fhem("set WOL_NAS on") } }

Erhalte aber diesen Fehler wenn ich speichere.

ERROR evaluating {FW_pushed_savebutton("myTimer","3,alle,alle,alle,23,alle,00, { if ($wday == 6) { fhem("set WOL_NAS on") } } ,Def,0,0,0,0,0,1,0,1","Timer")}: syntax error at (eval 111531) line 1, near ""3,alle,alle,alle,23,alle,00, { if ($wday == 6) { fhem("set WOL_NAS "

rabehd

#1
Zitateinen Timer der alle 5 Minuten ausgeführt werden soll
Warum nicht mit einem at ?

ZitatEine Intervallschaltung des Timer ist nur möglich in folgenden Varianten:
minütlich, Sekunde definieren und alle anderen Werte (Minute, Stunde, Tag, Monat, Jahr) auf alle setzen
dann müsstet du bei der Ausführung prüfen welche Minute es ist....
Scheint mir keine sinnvolle Lösung.

Alternative: 12 stündliche Timer. :-\
Auch funktionierende Lösungen kann man hinterfragen.

CoolTux

Zitat von: kadettilac89 am 24 September 2019, 20:56:51
Hi, ich habe mir das Modul geladen und gleich Fragen.

Ist es möglich, einen Timer der alle 5 Minuten ausgeführt werden soll anzulegen?

Wie muss ich perl code eintragen? Ich will diesen Befehl ausführen
{ if ($wday == 6) { fhem("set WOL_NAS on") } }

Erhalte aber diesen Fehler wenn ich speichere.

ERROR evaluating {FW_pushed_savebutton("myTimer","3,alle,alle,alle,23,alle,00, { if ($wday == 6) { fhem("set WOL_NAS on") } } ,Def,0,0,0,0,0,1,0,1","Timer")}: syntax error at (eval 111531) line 1, near ""3,alle,alle,alle,23,alle,00, { if ($wday == 6) { fhem("set WOL_NAS "


Mich erschließt sich nicht ganz wieso Du da noch mal auf Samstag prüfen willst? Du kannst das doch schon im Timer selber wählen.
Im übrigen funktioniert
{ if ($wday == 6) { fhem("set WOL_NAS on") } }
bei mir ohne Probleme.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

kadettilac89

Zitat von: CoolTux am 25 September 2019, 08:11:26
Mich erschließt sich nicht ganz wieso Du da noch mal auf Samstag prüfen willst? Du kannst das doch schon im Timer selber wählen.
Im übrigen funktioniert
{ if ($wday == 6) { fhem("set WOL_NAS on") } }
bei mir ohne Probleme.

welche version nutzt du? Ich habe die aus dem normalen Update. Hast du im Feld vor und nach den geschweiften Klammern "{   }" irgend welche Leerzeichen eingegeben oder entwertet? Bei mir kommt die Meldung im Log und auch als Pop-Up sobald ich auf Save klicke.

88_Timer.pm               20222 2019-09-21 18:34:05Z HomeAuto_User

Sinnhaftigkeit, ich teste das Modul weil es an sich vielversprechend aussieht, die Prüfung an sich macht natürlich keinen Sinn. Wollte damit sehen ob Variablen wie $wday auch funktionieren und Logik wie if-Strukturen ...

CoolTux

#4
Zitat von: kadettilac89 am 25 September 2019, 08:51:54
welche version nutzt du? Ich habe die aus dem normalen Update. Hast du im Feld vor und nach den geschweiften Klammern "{   }" irgend welche Leerzeichen eingegeben oder entwertet? Bei mir kommt die Meldung im Log und auch als Pop-Up sobald ich auf Save klicke.

88_Timer.pm               20222 2019-09-21 18:34:05Z HomeAuto_User

Sinnhaftigkeit, ich teste das Modul weil es an sich vielversprechend aussieht, die Prüfung an sich macht natürlich keinen Sinn. Wollte damit sehen ob Variablen wie $wday auch funktionieren und Logik wie if-Strukturen ...

Ich habe heute ein Update gemacht und mir dann das Modul einmal in FHEM angeschaut. Du musst ihn im Attribut eingeben.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Internals:
   FUUID      5d8b0176-f33f-5153-916f-33df8c97a4cf8a64
   NAME       testTimer
   NOTIFYDEV  global,TYPE=Timer
   NR         96
   NTFY_ORDER 50-testTimer
   STATE      Timer_01 is save and added to userattr
   TYPE       Timer
   READINGS:
     2019-09-25 09:21:49   Timer_01        alle,alle,alle,15,12,00,Office,Def,1,1,1,1,1,1,1,0
     2019-09-25 08:12:00   internalTimer   stop
     2019-09-25 09:21:49   state           Timer_01 is save and added to userattr
Attributes:
   Timer_01_set { if ($wday == 6) { fhem("set WOL_NAS on") } }
   room       Timer
   userattr   Timer_01_set:textField-long


So sieht es dann aus.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

kadettilac89


binford6000

Hallo,
ich habe folgendes nach einem Neustart von FHEM im Log:
2019.09.25 11:49:03 3:  aquarium_wz_timer: time difference too large! interval=57, Sekunde=03
2019.09.25 11:49:03 3:  aquarium_sz_timer: time difference too large! interval=57, Sekunde=03
2019.09.25 11:49:03 3:  aquarium_bad_timer: time difference too large! interval=57, Sekunde=03


Hat das sonst noch jemand? Die Timer funktionieren alle.
VG Sebastian

moskito

HIer ein ganz anderes Problem - ich bekomme die Darstellung im Frontend nicht!

Beim erstellen eines Timers erscheint folgendes im Log:
2019.09.25 14:48:21 1: PERL WARNING: Use of uninitialized value $description_all in concatenation (.) or string at ./FHEM/88_Timer.pm line 226.
2019.09.25 14:48:21 1: PERL WARNING: Use of uninitialized value $description_all in concatenation (.) or string at ./FHEM/88_Timer.pm line 550


Hier noch das list vom Device.
Internals:
   CFGFN     
   FUUID      5d8b620b-f33f-265a-97cb-50331c682cb1adcd
   NAME       timer
   NOTIFYDEV  global,TYPE=Timer
   NR         19291
   NTFY_ORDER 50-timer
   STATE      Defined
   TYPE       Timer
   READINGS:
     2019-09-25 14:48:21   Timer_01        ,,,,,00,,on,1,1,1,1,1,1,1,0
     2019-09-25 14:48:11   internalTimer   stop
     2019-09-25 14:48:11   state           Defined
Attributes:
   DbLogExclude .*
   room       Timer


Gruß
Danny
FHEM auf Intel NUC/Proxmox & Debian 12 + HM-CFG-USB + zigbee2mqtt + Zwave + Enocean

kadettilac89

Zitat von: binford6000 am 25 September 2019, 13:01:46
Hallo,
ich habe folgendes nach einem Neustart von FHEM im Log:
2019.09.25 11:49:03 3:  aquarium_wz_timer: time difference too large! interval=57, Sekunde=03
2019.09.25 11:49:03 3:  aquarium_sz_timer: time difference too large! interval=57, Sekunde=03
2019.09.25 11:49:03 3:  aquarium_bad_timer: time difference too large! interval=57, Sekunde=03


Hat das sonst noch jemand? Die Timer funktionieren alle.
VG Sebastian

Commandref ...

Hinweise:
Einträge im Systemlogfile wie: 2019.09.20 22:15:01 3: Timer: time difference too large! interval=59, Sekunde=01 sagen aus, das der Timer die Zeit neu berechnet hat.

binford6000

Danke! Wie cool  8)
Ist wohl erst in der finalen Version rein gekommen. In der Testversion stand das noch nicht drin...
VG Sebastian

kadettilac89

Zitat von: moskito am 25 September 2019, 15:00:54
HIer ein ganz anderes Problem - ich bekomme die Darstellung im Frontend nicht!


Das sieht ganz anders aus als bei mir. Nutzt du englisch als Sprache? Welche Version des Modul hast du im Einsatz, das aus dem Update oder manuell runtergeladen?

Schreibe mal auf welche Felder du füllst ... wann kommt die Fehlermeldung, wenn du auf Save (Diskette) klickst?

binford6000

ZitatWelche Version des Modul hast du im Einsatz, das aus dem Update oder manuell runtergeladen?
in den Internals fehlt die FVERSION:
FVERSION 88_Timer.pm:0.202220/2019-09-21

Am besten mal ein Update machen und die letzte Version holen!  8)

VG Sebastian

moskito

Habe jetzt nochmal ein update force gemacht und neu gestartet.
Hier der Versionsstand - sollte passen:
88_Timer.pm        20222 2019-09-21 18:34:05Z HomeAuto_User

Timer device neu angelegt - beim list gibt es immer noch kein Internal FVERSION:
Internals:
   CFGFN     
   FUUID      5d8b86fe-f33f-265a-1568-69ad9ea77859c71a
   NAME       timer
   NOTIFYDEV  global,TYPE=Timer
   NR         1574
   NTFY_ORDER 50-timer
   STATE      Timer_01 deleted
   TYPE       Timer
   OLDREADINGS:
   READINGS:
     2019-09-25 17:25:50   internalTimer   stop
     2019-09-25 17:30:53   state           Timer_01 deleted
Attributes:
   DbLogExclude .*
   room       Timer


Dann mit "set timer addTimer" einen neuen Timer angelegt. Im Log kommen jetzt keine Fehlermeldungen mehr, das passende Reading wird angezeigt, aber keine Einstellungen des Timers über die Oberfläche möglich.
Internals:
   CFGFN     
   FUUID      5d8b86fe-f33f-265a-1568-69ad9ea77859c71a
   NAME       timer
   NOTIFYDEV  global,TYPE=Timer
   NR         1574
   NTFY_ORDER 50-timer
   STATE      Timer_01 deleted
   TYPE       Timer
   OLDREADINGS:
   READINGS:
     2019-09-25 17:32:31   Timer_01        ,,,,,00,,on,1,1,1,1,1,1,1,0
     2019-09-25 17:25:50   internalTimer   stop
     2019-09-25 17:30:53   state           Timer_01 deleted
Attributes:
   DbLogExclude .*
   room       Timer


ZitatNutzt du englisch als Sprache?
Sprache ist global als "de" definiert.

Fhem-Style ist f18/dark

Hier mal das Log beim anlegen eines Timers (addTimer) mit verbose 5:
2019.09.25 17:41:19 3: timer: Attr | set verbose to 5
2019.09.25 17:41:20 5: timer: attr2html is running
2019.09.25 17:41:24 4: timer: Set | cmd=addTimer
2019.09.25 17:41:24 5: timer: attr2html is running


Für alle Fälle hier die Perl Version:
This is perl 5, version 24, subversion 1 (v5.24.1) built for x86_64-linux-gnu-thread-multi
(with 85 registered patches, see perl -V for more detail)


Gruß
Danny
FHEM auf Intel NUC/Proxmox & Debian 12 + HM-CFG-USB + zigbee2mqtt + Zwave + Enocean

binford6000

Bei mir sieht
set addTimer
mit Verbose 5 so aus:
2019.09.25 17:53:26.293 2:  test: define FileLog_test FileLog ./log/test-%Y.log test
2019.09.25 17:53:26.299 3:  test: Attr | set room to Timer
2019.09.25 17:54:24.753 3:  test: Attr | set room to Timer
2019.09.25 17:54:32.305 3:  test: Attr | set verbose to 5
2019.09.25 17:54:32.326 5:  test: attr2html is running
2019.09.25 17:54:34.765 4:  test: Set | cmd=addTimer
2019.09.25 17:54:34.775 5:  test: attr2html is running
2019.09.25 17:54:34.775 5:  test: attr2html | Timer=01 Jahr=alle cnt_max=18 (2)
2019.09.25 17:54:34.775 5:  test: attr2html | Timer=01 Monat=alle cnt_max=18 (3)
2019.09.25 17:54:34.775 5:  test: attr2html | Timer=01 Tag=alle cnt_max=18 (4)
2019.09.25 17:54:34.776 5:  test: attr2html | Timer=01 Stunde=alle cnt_max=18 (5)
2019.09.25 17:54:34.776 5:  test: attr2html | Timer=01 Minute=alle cnt_max=18 (6)
2019.09.25 17:54:34.776 5:  test: attr2html | Timer=01 Sekunde=00 cnt_max=18 (7)
2019.09.25 17:54:34.776 5:  test: attr2html | Timer=01 Gerät oder Bezeichnung= cnt_max=18 (8)
2019.09.25 17:54:34.776 5:  test: attr2html | Timer=01 Aktion=on cnt_max=18 (9)
2019.09.25 17:54:34.776 5:  test: attr2html | Timer=01 Mo=1 cnt_max=18 (10)
2019.09.25 17:54:34.776 5:  test: attr2html | Timer=01 Di=1 cnt_max=18 (11)
2019.09.25 17:54:34.776 5:  test: attr2html | Timer=01 Mi=1 cnt_max=18 (12)
2019.09.25 17:54:34.776 5:  test: attr2html | Timer=01 Do=1 cnt_max=18 (13)
2019.09.25 17:54:34.776 5:  test: attr2html | Timer=01 Fr=1 cnt_max=18 (14)
2019.09.25 17:54:34.776 5:  test: attr2html | Timer=01 Sa=1 cnt_max=18 (15)
2019.09.25 17:54:34.776 5:  test: attr2html | Timer=01 So=1 cnt_max=18 (16)
2019.09.25 17:54:34.776 5:  test: attr2html | Timer=01 aktiv=0 cnt_max=18 (17)


Das ist das was dir fehlt...  :o
VG Sebastian