Gelöst - Frage Syntax neues Timer Modul

Begonnen von tfriedrich85, 12 Dezember 2019, 11:23:24

Vorheriges Thema - Nächstes Thema

tfriedrich85

Hallo zusammen,

ich möchte mit dem neuen Timer Modul gerne mein Backup auf einmal die Woche setzen. Aber leider verstehe ich die Syntax vom DEF Parameter nicht.
https://fhem.de/commandref_DE.html#Timer

Wie sieht die Alternatvie zu:

Code: [Auswählen]
define NTFY_BackupRun at *23:59:00 set SYS_Backup Ausführen

mit dem DEF vom Timer-Modul aus?

https://wiki.fhem.de/wiki/Backup

Danke Euch!

binford6000

#1
Zitat von: tfriedrich85 am 12 Dezember 2019, 11:23:24
Hallo zusammen,

ich möchte mit dem neuen Timer Modul gerne mein Backup auf einmal die Woche setzen. Aber leider verstehe ich die Syntax vom DEF Parameter nicht.
https://fhem.de/commandref_DE.html#Timer

Wie sieht die Alternatvie zu:

Code: [Auswählen]
define NTFY_BackupRun at *23:59:00 set SYS_Backup Ausführen

mit dem DEF vom Timer-Modul aus?

https://wiki.fhem.de/wiki/Backup

Danke Euch!

Hallo,
define test timer und dann
set addTimer und dann dein Intervall einstellen und Aktion auf "DEF" stellen.
Dann kannst du mit
{if ($wday == 0) {fhem("backup");;}}
jeden Sonntag ein Backup erstellen.

VG Sebastian

tfriedrich85

#2
Zitat von: binford6000 am 12 Dezember 2019, 11:47:34
Hallo,
define test timer und dann
set addTimer und dann dein Intervall einstellen und Aktion auf "DEF" stellen.
Dann kannst du mit
{if ($wday == 0) {fhem("backup");;}}
jeden Sonntag ein Backup erstellen.

VG Sebastian


Vielen Dank, die Funktion habe ich verstanden, aber in welches Texfeld schreibe ich diesen Perl-Code?

{if ($wday == 0) {fhem("backup");;}}

Ich sehe nur das Feld "Device or Label"?

binford6000

#3
Wenn du auf das Speichern Symbol klickst bekommst du folgendes angezeigt:

Hinweis:

Das Attribut userattr wurde automatisch angepasst.
Um DEF zu definieren, geben Sie bitte das FHEM Kommando oder den PERL Code in das Attribut Timer_01_set ein.
attr test1 Timer_01_set "DEF Code" (ohne " ")

Die Eingabe entspricht der FHEM-Befehlszeile im Browser.
DEF Beispiele:

• FHEM Kommando: set TYPE=IT:FILTER=room=03_Stube.*:FILTER=state=on off
• PERL Code: { Log 1, "test1: schaltet jetzt" }

Weitere Beispiele oder Intervallschaltungen finden Sie in der gerätespezifischen Hilfe.

Klicken Sie auf close, um fortzufahren.


Bsp: Immer sonntags um 03.00 Uhr:
Jahr: alle Monat: alle Tag: alle Stunde: 03 Minute: 00 Sekunde: 00
attr Timer_01_set {if ($wday == 0) {fhem("backup");;}}

Und ja, es wird täglich ausgeführt mit der Prüfung ob Sonntag ist  ;)

VG Sebastian

tfriedrich85


jkriegl

#5
Wenn Du bei Aktion "DEF" wählst, wird ein userattr "Timer_01_set" erzeugt.
Nun musst Du mit "attr test Timer_01_set  { Log 1, "Timer: schaltet jetzt" }" Deinen Befehl eingeben. Nicht vergessen bei "aktiv" einen Haken zu setzen.

Braucht man eigentlich die if-Abfrage? Ein Haken nur bei So müsste das gleiche bewirken.

Ein besonderer Tag währe zusätzlich der Ultimo eines Monats, um bestimmte Sachen zu erledigen.
Rpi 3/4, buster, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

binford6000

ZitatBraucht man eigentlich die if-Abfrage? Ein Haken nur bei So müsste das gleiche bewirken.

Korrekt  ;)

tfriedrich85

#7
Hallo zusammen,

ich habe nochmal versucht mein Backup über den Timer abzubilden, aber der Prozess startet nicht. Könnt ihr den Fehler im List erkennen?

Internals:
   CHANGED   
   FUUID      5df34c0e-f33f-aed9-769a-96253af64696ff31
   NAME       Timers
   NOTIFYDEV  global,TYPE=Timer
   NR         1309
   NTFY_ORDER 50-Timers
   STATE      Timer_02 saved
   TYPE       Timer
   READINGS:
     2019-12-13 09:33:40   Timer_01        all,all,all,07,all,00,Master,on,1,1,1,1,1,1,1,1
     2019-12-13 09:46:51   Timer_02        all,all,all,09,48,00,Backup,DEF,1,1,1,1,1,1,1,1
     2019-12-13 09:47:00   internalTimer   59.994473
     2019-12-13 09:46:51   state           Timer_02 saved
Attributes:
   Show_DeviceInfo alias
   Table_Size_TextBox 20
   Table_Style on
   room       System
   userattr   Timer_02_set {fhem("backup");}


Folgende Fehlermeldung:
Timer_02 missing userattr to work!

Beste Grüße
Tobias

binford6000

Probier mal
userattr   Timer_02_set { fhem("backup"); }

Ich meine noch in Erinnerung zu haben dass da Leerzeichen hinter und vor die {} müssen...
VG Sebastian

tfriedrich85

Hallo,

die Syntax ist wirklich nicht einfach bei diesem Modul. Für nur einen Timer geht es jetzt, aber für mehrere schon wieder nicht...

userattr   Timer_02_set { fhem("backup"); } Timer_03_set { fhem("set Tobi home"); } Timer_04_set { fhem("set Tobi absent"); }

Hat jemand Beispiele....

binford6000

defmod testtimer Timer
attr testtimer userattr Timer_01_set:textField-long Timer_02_set:textField-long Timer_03_set:textField-long
attr testtimer Timer_01_set { fhem("backup");; }
attr testtimer Timer_02_set { fhem("set Tobi home");; }
attr testtimer Timer_03_set { fhem("set Tobi absent");; }
attr testtimer room Timer



binford6000

Zitat von: binford6000 am 13 Dezember 2019, 11:15:12
Probier mal
userattr   Timer_02_set { fhem("backup"); }

Ich meine noch in Erinnerung zu haben dass da Leerzeichen hinter und vor die {} müssen...
VG Sebastian

Sorry das war wohl etwas verwirrend...   ::)
Sollte so aussehen:
attr testtimer Timer_02_set { fhem("backup");; }

Und das halt für jeden Timer mit DEF als Aktion.

VG Sebastian

tfriedrich85

Danke nun läuft es endlich und sieht syntaktisch auch ok aus!


binford6000

Dann bleibt nur noch noch den Thread als gelöst zu markieren  ;)
VG Sebastian