-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSchaltuhr.txt
131 lines (100 loc) · 6.48 KB
/
Schaltuhr.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
SET>>INFO>>Erstell ein Zeitschaltuhr,die über das Frontend gestellt werden kann.<br>Auslösung kann täglich oder einmalig sein.<br> <br>
Alternativ kann dieses Device über Sunset und Sunrise gesteuert werden
MINIMAL>>4
DEBUG>>off
PREASSIGMENT>>
TEXT>>Das Device wird weitestgehend vorkonfiguriert und es müssen lediglich die Schaltbefehle angegeben werden.<br>Schaltzeit und Typ kann später im Frontend eingestellt werden.
INQ>>nosunset>>sunset>>Zeitgesteuert,Sonnenstandgesteuert>>Soll es sich um ein rein zeitgesteuertes Device handeln, oder um ein Sonnenaufgang-/untergang gesteuertes ?
sunset>>GOTO>>#Sunsetgesteuert
nosunset>>GOTO>>#Zeitgesteuert
# Auswahl je nach Modus
#Zeitgesteuert
SET>>Time_cmd1>>TIME={ReadingsVal("$name","zeit",0)}|WDAY=[$SELF:daysformat]
#SET>>Time_cmd2>>TIME={ReadingsVal("$name","zeit",0)}
SET>>READING>>.Distributor>>(zeit|sun|operator|Horizon|min|max|days):.*=>cmd1 ID 1#[nl]
ATTR>>SET>>setList>>zeit:time status:Timer_an,Timer_aus daily:einmalig,täglich comand:textFieldNL-long days:multiple-strict,Montag,Dienstag,Mitwoch,Donnerstag,Freitag,Samstag,Sonntag daysformat
ATTR>>SET>>readingList>>daysformat zeit status daily days comand
ATTR>>SET>>webCmd>>zeit:days:daily
SET>>READING>>.Trigger_condition>>([$SELF#[dp]status]#[sp]eq#[sp]"Timer_an"#[sp]||#[sp]$EVENT#[sp]=#[ti]#[sp]m/(.*?)(zeit|sun|operator|Horizon|min|max|days)#[dp].*/#[sp])
SET>>READING>>zeit>>0
SET>>READING>>days>>Montag,Dienstag,Mitwoch,Donnerstag,Freitag,Samstag,Sonntag
SET>>READING>>daysformat>>1,2,3,4,5,6,7
SET>>Device_to_switch>>FreeCmd
SET>>comand_cmd1>>{#[nl]my#[sp]%tage#[sp]=#[sp]("Montag"#[sp]=>#[sp]1#[ko]"Dienstag"#[sp]=>#[sp]2#[ko]"Mitwoch"#[sp]=>#[sp]3#[ko]"Donnerstag"#[sp]=>#[sp]4#[ko]"Freitag"#[sp]=>#[sp]5#[ko]"Samstag"#[sp]=>#[sp]6#[ko]"Sonntag"#[sp]=>#[sp]7)#[se]#[nl]my#[sp]$days="[$SELF#[dp]days]"#[se]#[nl]foreach#[sp]my#[sp]$a#[sp](#[sp]keys#[sp]%tage#[sp])#[nl]#[sp]#[sp]#[sp]#[sp]{#[nl]#[sp]#[sp]#[sp]#[sp]my#[sp]$code#[sp]=#[sp]$tage{$a}#[se]#[nl]#[sp]#[sp]#[sp]#[sp]fhem#[sp]("set#[sp]$SELF#[sp]writelog#[sp]0#[sp]aktkey#[sp]$a#[sp]-#[sp]$code#[sp]")#[se]#[nl]#[sp]#[sp]#[sp]#[sp]$days#[sp]=~#[sp]s/$a/$code/g#[se]#[nl]#[sp]#[sp]#[sp]#[sp]}#[nl]fhem#[sp]("set#[sp]$SELF#[sp]daysformat#[sp]$days")#[se]#[nl]}#[sp]#[sp]
SET>>ID>>1
SET>>HIDE>>1
SET>>cmd_repeat>>0
SET>>cmd_repeat_time>>0
SET>>PRIORITY>>1
GOTO>>#allgemein
#Sunsetgesteuert
SET>>Time_cmd1>>TIME={[$SELF:sun]("[$SELF:Horizon]",[$SELF:operator]([$SELF:zeit]*60),"[$SELF:min]","[$SELF:max]")}|WDAY=[$SELF:daysformat]
SET>>READING>>.Distributor>>(zeit|sun|operator|Horizon|min|max|days):.*=>cmd1 ID 1#[nl]
ATTR>>SET>>setList>>zeit:selectnumbers,0,1,120,0,lin status:Timer_an,Timer_aus daily:einmalig,täglich sun:sunset,sunrise operator:+,- Horizon:REAL,CIVIL,NAUTIC,ASTRONOMIC min:time max:time days:multiple-strict,Montag,Dienstag,Mitwoch,Donnerstag,Freitag,Samstag,Sonntag daysformat comand:textFieldNL-long
ATTR>>SET>>readingList>>zeit status daily sun operator sunsetreg sunrisereg aktsetsun Horizon min max days daysformat comand
ATTR>>SET>>webCmd>>sun:Horizon:operator:zeit:min:max:days:daily
SET>>READING>>zeit>>0
SET>>READING>>operator>>+
SET>>READING>>sun>>sunset
SET>>READING>>.Trigger_condition>>([$SELF#[dp]status]#[sp]eq#[sp]"Timer_an"#[sp]||#[sp]$EVENT#[sp]=#[ti]#[sp]m/(.*?)(zeit|sun|operator|Horizon|min|max|days)#[dp].*/#[sp])
SET>>READING>>Horizon>>REAL
SET>>READING>>min>>00:01
SET>>READING>>max>>23:59
SET>>READING>>days>>Montag,Dienstag,Mitwoch,Donnerstag,Freitag,Samstag,Sonntag
SET>>READING>>daysformat>>1,2,3,4,5,6,7
SET>>Device_to_switch>>FreeCmd
SET>>comand_cmd1>>{#[nl]my#[sp]%tage#[sp]=#[sp]("Montag"#[sp]=>#[sp]1#[ko]"Dienstag"#[sp]=>#[sp]2#[ko]"Mitwoch"#[sp]=>#[sp]3#[ko]"Donnerstag"#[sp]=>#[sp]4#[ko]"Freitag"#[sp]=>#[sp]5#[ko]"Samstag"#[sp]=>#[sp]6#[ko]"Sonntag"#[sp]=>#[sp]7)#[se]#[nl]my#[sp]$days="[$SELF#[dp]days]"#[se]#[nl]foreach#[sp]my#[sp]$a#[sp](#[sp]keys#[sp]%tage#[sp])#[nl]#[sp]#[sp]#[sp]#[sp]{#[nl]#[sp]#[sp]#[sp]#[sp]my#[sp]$code#[sp]=#[sp]$tage{$a}#[se]#[nl]#[sp]#[sp]#[sp]#[sp]fhem#[sp]("set#[sp]$SELF#[sp]writelog#[sp]0#[sp]aktkey#[sp]$a#[sp]-#[sp]$code#[sp]")#[se]#[nl]#[sp]#[sp]#[sp]#[sp]$days#[sp]=~#[sp]s/$a/$code/g#[se]#[nl]#[sp]#[sp]#[sp]#[sp]}#[nl]fhem#[sp]("set#[sp]$SELF#[sp]daysformat#[sp]$days")#[se]#[nl]}#[sp]#[sp]
SET>>ID>>1
SET>>HIDE>>1
SET>>cmd_repeat>>0
SET>>cmd_repeat_time>>0
SET>>PRIORITY>>1
GOTO>>#allgemein
#Modusauswahl ende
#allgemein
ATTR>>SET>>MSwitch_Expert>>1
ATTR>>SET>>MSwitch_SysExtension>>1
ATTR>>SET>>MSwitch_Mode>>Notify
ATTR>>SET>>devStateIcon>>Timer_aus:clock@red:status+Timer_an Timer_an:clock@green:status+Timer_aus
ATTR>>SET>>stateFormat>>status#[nl]daily um Next_Timer
ATTR>>SET>>MSwitch_Selftrigger_always>>1
ATTR>>SET>>MSwitch_Condition_Time>>1
ATTR>>SET>>MSwitch_Delete_Delays>>0
ATTR>>SET>>MSwitch_Modul_Mode>>1
SET>>READING>>status>>Timer_aus
SET>>READING>>zeit>>01:00
SET>>READING>>daily>>einmalig
SET>>READING>>.sysconf>><table#[sp]border=#[st]0#[st]#[sp]class=#[st]block#[sp]wide#[st]#[sp]cellpadding=#[st]0#[st]#[sp]style=#[st]border-spacing#[dp]0px#[se]#[st]>#[nl]#[nl]<tr>#[nl]<td>auszuführender#[sp]Befehl#[dp]#[sp]</td>#[nl]<td#[sp]nowrap>[Widget#[dp]comand]</td>#[nl]</tr>#[nl]#[nl]#[nl]#[nl]</table>#[nl]<br>
SET>>Device_to_switch>>MSwitch_Self
SET>>comand_cmd1>>reload_timer
SET>>delay_cmd1>>00:00:01
SET>>ID>>1
SET>>HIDE>>1
SET>>cmd_repeat>>0
SET>>cmd_repeat_time>>0
SET>>Device_to_switch>>MSwitch_Self
SET>>comand_cmd1>>[FREECMD] set $SELF status Timer_aus
SET>>condition_cmd1>>[$SELF:daily] eq "einmalig"
SET>>HIDE>>1
SET>>cmd_repeat>>0
SET>>cmd_repeat_time>>0
SET>>PRIORITY>>100
SET>>delay_cmd1>>00:00:03
VARASK>>$BEFEHL>>Bitte den vollständigen Schaltbefehl angeben, der zur angegebenen Zeit ausgeführt werden soll.<br>z.B: set DEVICE on<br><br>Diese Zeile kann auch später angegeben werden oder im Frontend geändert werden
SET>>Device_to_switch>>FreeCmd
SET>>comand_cmd1>>[$SELF:comand]
SET>>cmd_repeat>>0
SET>>cmd_repeat_time>>0
SET>>READING>>comand>>$BEFEHL
sunset>>GOTO>>#END
nosunset>>GOTO>>#END
INQ>>second>>nosecond>>Ja,Nein>>Soll ein zweiter Befehl ( zeitverzögert ) ausgeführt werden ?
nosecond>>GOTO>>#END
VARASK>>$BEFEHL1>>Bitte den vollständigen zweiten Schaltbefehl angeben.<br>z.B: set DEVICE on<br><br>Diese Zeile kann auch später angegeben oder im Frontend geändert werden
SET>>comand_cmd2>>$BEFEHL1;
INQ>>delay>>nodelay>>Ja,Nein>>Soll der zweite Befehl verzögert ausgeführt werden ?
nodelay>>GOTO>>#END
PREASSIGMENT>>00:00:00
ASK>>delay_cmd2>>Bitte die Verzögerung angeben (HH:MM:SS).
#END
TEXT>>Das Device ist nun vollständig Konfiguriert und kann angelegt werden