Neues Modul 98_alarmclock ein Fhem Wecker

Begonnen von FlorianZ, 18 Dezember 2016, 19:03:23

Vorheriges Thema - Nächstes Thema

Loredo

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

FlorianZ

Hallo zusammen,

Ich habe gerade eine neue Version eingecheckt.
Es gibt jetzt mehr Möglichkeiten für HolidayDevice:

1. HolidayDevice des Typs Holiday
    attr <name> HolidayDevice <devicename>
    AlarmTime 8_Holiday greift wenn state nicht none ist.

2. Auf state eines Device. Bsp. Dummy als HolidayDevice
    attr <name> HolidayDevice <devicename>:<value>
    <value> stellt hierbei den Wert für Urlaub dar und steht im Reading state.
    Bsp.: attr <name> HolidayDevice Mein_Urlaubs_Dummy:Urlaub
    Hier greift die AlarmTime 8_Holiday wenn der state des Dummy den Wert Urlaub besitzt.

3. Auf ein Reading eines Device.
    attr <name> HolidayDevice <devicename>:<readingname>: <value>
    <value> stellt den Wert für Urlaub dar und steht im Reading <readingname>.
    Bsp.: attr <name> HolidayDevice Mein_Urlaubs_Dummy:Heute: Urlaub


Im "laufenden" Betrieb von 98_alarmclock werden jede Nacht um 00:00:05 Uhr die Timer
des aktuellen Tages gesetzt.Sollte also beispielsweise ein Dummy als HolidayDevice eingesetzt werden,
muss dieser um 5 Sekunden nach Mitternacht bereits den Wert des aktuellen Tages besitzen.

vg
Florian


   




FlorianZ

#62
Ab morgen kommt ein Update mit neuen Features von 98_alarmclock.

Neue Attribute:
RepRoutine1
RepRoutine1WaitInSec
RepRoutine1Repeats
RepRoutine1Mode:Alarm,PreAlarm,off
RepRoutine1Stop:Snooze,off
RepRoutine2
RepRoutine2WaitInSec
RepRoutine2Repeats
RepRoutine2Mode:Alarm,PreAlarm,off
RepRoutine2Stop:Snooze,off
RepRoutine3
RepRoutine3WaitInSec
RepRoutine3Repeats
RepRoutine3Mode:Alarm,PreAlarm,off
RepRoutine3Stop:Snooze,off

Mit dem Attribut RepRoutine kann man wiederholende Routinen anlegen zb. für ein Wakeuplight oder
eine Volume-Ramp für Sonos oder langsam öffnende Rollos oder ............


Hier mal ein Beispiel für ein Wakeuplight mit einen Dimmer:

Mit der PreAlarmRoutine wird das Licht auf dim 1 gesetzt. Also die Startposition

attr <name> PreAlarmRoutine set Licht_Schlafzimmer dim 1

Die RepRoutine ist die Routine, die wiederholt wird. In diesem Beispiel wird der aktuelle Dimmstatus abgefragt und um 1 erhöht.

attr <name> RepRoutine1 {my $DimNow = ReadingsNum("Licht_Schlafzimmer", "state", 0);;my $DimNext = $DimNow + 1;;fhem("set Licht_Schlafzimmer dim $DimNext");;}

RepRoutine1Mode hat 3 Optionen.
                 1. PreAlarm : Die RepRoutine wird mit dem PreAlarm gestartet.
                 2. Alarm : Die RepRoutine wird mit dem Alarm gestartet.
                 3. off: RepRoutine ist deaktiviert

attr <name> RepRoutine1Mode PreAlarm

RepRoutine1Repeats gibt die Wiederholungen an, wie oft RepRoutine1 ausgeführt werden soll.

attr <name> RepRoutine1Repeats 49

RepRoutine1Stop hat 2 Optionen:
                 1. Snooze : Die RepRoutine wird mit dem EventForSnooze unterbrochen.
                 2. off: Die RepRoutine ignoriert das EventForSnooze und läuft weiter.

attr <name> RepRoutine1Stop off

Mit RepRoutine1WaitInSec wird in Sekunden angegeben, in welchen Intervall die RepRoutine ausgeführt werden soll.

attr <name> RepRoutine1WaitInSec 10


Im Beispiel wird also das Licht_Schlafzimmer 50 mal alle 10 Sekunden um 1 hochgedimmt.
Nach 500 Sekunden sollte dann das Licht bei dim 50 stehen.
Die RepRoutine läuft hier solange, bis sie entweder komplett abgearbeitet ist, oder
ein EventForAlarmOff eintritt.

So noch ein Beispiel für eine langsam steigende Lautstärke mit Sonos.
Ausgangspunkt hier ist die Alarmroutine.

attr <name> AlarmRoutine set Sonos_Schlafzimmer Volume 1;set Sonos_Schlafzimmer StartRadio ANTENNE%20BAYERN

Die RepRoutine soll Volume um 1 herhöhen. (Attribut VolumeStep bei Sonos auf 1)

attr <name> RepRoutine2 set Sonos_Schlafzimmer VolumeU

RepRoutine wird diesmal mit dem Alarm gestartet.

attr <name> RepRoutine2Mode Alarm


attr <name> RepRoutine2Repeats 19

Snooze soll die RepRoutine stoppen.

attr <name> RepRoutine2Stop Snooze


attr <name> RepRoutine2WaitInSec 10


Im Beispiel wird also 20 mal alle 10 Sekunden die Lautstärke um 1 erhöht.
EventForSnooze unterbricht die Rampe. Wird der Alarm nach der eingestellten
Zeit ( SnoozeTimeInSec ) erneut gestartet, beginnt die Rampe von vorne.

Wie immer würde ich mich über Feedback freuen.

Gruß
Florian

P.S.  Hier nochmal ein herzliches Dankeschön an CoolTux  ;)

FlorianZ

#63
Um das Verhalten mit Fhem TabletUI zu testen, habe ich mal versucht
ein kleines Template für 98_alarmclock zu erstellen.
Ich muss dazu sagen, dass ich mich mit FTUI noch nicht besonders
auseinandergesetzt habe, und der Html Code wahrscheinlich
sehr verbesserungswürdig ist. Wenn also jemand Zeit und Lust hat
es zu optimieren......  ;)

Einbinden des Templates

<li data-row="1" data-col="1" data-sizex="5" data-sizey="2">
    <header>Wecker Florian</header>
    <div data-template="template_alarmclock.html" data-parameter='{"Device":"Wecker_Florian"}'></div>
</li>
<li data-row="1" data-col="6" data-sizex="5" data-sizey="2">
     <header>Wecker Petra</header>
     <div data-template="template_alarmclock.html" data-parameter='{"Device":"Wecker_Petra"}'></div>
</li>


und hier das Template:   template_alarmclock.html

<div class="col-1-2 top-align top-space">

<div class="sheet">
<div class="row">
   <div class="left big inline darker thin cell-1-40">Montag</div>
   <div data-type="datetimepicker" data-device="Device" data-get="AlarmTime1_Monday" data-set="AlarmTime1_Monday" data-set-value="$v" data-cmd="set" data-step="5" data-datepicker="false" data-format="H:i" class="inline big orange cell-1-40"></div>
   <div data-type="push" data-device="Device" data-cmd="set" data-set="AlarmOff" data-set-on="1_Monday" data-icon="fa-close" data-background-icon="fa-square-o" class="inline tiny cell-1-20"></div>
</div>
<div class="row">
   <div class="left big inline darker thin cell-1-40">Dienstag</div>
   <div data-type="datetimepicker" data-device="Device" data-get="AlarmTime2_Tuesday" data-set="AlarmTime2_Tuesday" data-set-value="$v" data-cmd="set" data-step="5" data-datepicker="false" data-format="H:i" class="inline big orange cell-1-40"></div>
   <div data-type="push" data-device="Device" data-cmd="set" data-set="AlarmOff" data-set-on="2_Tuesday" data-icon="fa-close" data-background-icon="fa-square-o" class="inline cell-1-20 tiny"></div>
</div>
<div class="row">
   <div class="left big inline darker thin cell-1-40">Mittwoch</div>
   <div data-type="datetimepicker" data-device="Device" data-get="AlarmTime3_Wednesday" data-set="AlarmTime3_Wednesday" data-set-value="$v" data-cmd="set" data-step="5" data-datepicker="false" data-format="H:i" class="inline big orange cell-1-40"></div>
   <div data-type="push" data-device="Device" data-cmd="set" data-set="AlarmOff" data-set-on="3_Wednesday" data-icon="fa-close" data-background-icon="fa-square-o" class="inline cell-1-20 tiny"></div>
</div>
<div class="row">
   <div class="left big inline darker thin cell-1-40">Donnerstag</div>
   <div data-type="datetimepicker" data-device="Device" data-get="AlarmTime4_Thursday" data-set="AlarmTime4_Thursday" data-set-value="$v" data-cmd="set" data-step="5" data-datepicker="false" data-format="H:i" class="inline big orange cell-1-40"></div>
   <div data-type="push" data-device="Device" data-cmd="set" data-set="AlarmOff" data-set-on="4_Thursday" data-icon="fa-close" data-background-icon="fa-square-o" class="inline cell-1-20 tiny"></div>
</div>
<div class="row">
   <div class="left big inline darker thin cell-1-40">Freitag</div>
   <div data-type="datetimepicker" data-device="Device" data-get="AlarmTime5_Friday" data-set="AlarmTime5_Friday" data-set-value="$v" data-cmd="set" data-step="5" data-datepicker="false" data-format="H:i" class="inline big orange cell-1-40"></div>
   <div data-type="push" data-device="Device" data-cmd="set" data-set="AlarmOff" data-set-on="5_Friday" data-icon="fa-close" data-background-icon="fa-square-o" class="inline cell-1-20 tiny"></div>
</div>
<div class="row">
   <div class="left big inline darker thin cell-1-40">Samstag</div>
   <div data-type="datetimepicker" data-device="Device" data-get="AlarmTime6_Saturday" data-set="AlarmTime6_Saturday" data-set-value="$v" data-cmd="set" data-step="5" data-datepicker="false" data-format="H:i" class="inline big orange cell-1-40"></div>
   <div data-type="push" data-device="Device" data-cmd="set" data-set="AlarmOff" data-set-on="6_Saturday" data-icon="fa-close" data-background-icon="fa-square-o" class="inline cell-1-20 tiny"></div>
</div>
<div class="row">
   <div class="left big inline darker thin cell-1-40">Sonntag</div>
   <div data-type="datetimepicker" data-device="Device" data-get="AlarmTime7_Sunday" data-set="AlarmTime7_Sunday" data-set-value="$v" data-cmd="set" data-step="5" data-datepicker="false" data-format="H:i" class="inline big orange cell-1-40"></div>
   <div data-type="push" data-device="Device" data-cmd="set" data-set="AlarmOff" data-set-on="7_Sunday" data-icon="fa-close" data-background-icon="fa-square-o" class="inline cell-1-20 tiny"></div>
</div>
</div>
</div>


<div class="col-1-2 top-align top-space">

<div class="sheet">
<div class="row">
   <div class="left big inline darker thin cell-1-40">Feiertage</div>
   <div data-type="datetimepicker" data-device="Device" data-get="AlarmTime8_Holiday" data-set="AlarmTime8_Holiday" data-set-value="$v" data-cmd="set" data-step="5" data-datepicker="false" data-format="H:i" class="inline big darker cell-1-40"></div>
   <div data-type="push" data-device="Device" data-cmd="set" data-set="AlarmOff" data-set-on="8_Holiday" data-icon="fa-close" data-background-icon="fa-square-o" class="inline cell-1-20 tiny"></div>
</div>
<div class="row">
   <div class="left big inline darker thin cell-1-40">Wochentage</div>
   <div data-type="datetimepicker" data-device="Device" data-set="AlarmTime_Weekdays" data-substitution="toDate().hhmm()" data-set-value="$v" data-cmd="set" data-step="5" data-datepicker="false" data-format="H:i" class="inline big darker cell-1-40"></div>
   <div data-type="push" data-device="Device" data-cmd="set"  data-set="AlarmOff" data-set-on="Weekdays" data-icon="fa-close" data-background-icon="fa-square-o" class="inline cell-1-20 tiny"></div>
</div>
<div class="row">
   <div class="left big inline darker thin cell-1-40">Wochenende</div>
   <div data-type="datetimepicker" data-device="Device" data-set="AlarmTime_Weekend" data-substitution="toDate().hhmm()" data-set-value="$v" data-cmd="set" data-step="5" data-datepicker="false" data-format="H:i" class="inline big darker cell-1-40"></div>
   <div data-type="push" data-device="Device" data-cmd="set" data-set="AlarmOff" data-set-on="Weekend" data-icon="fa-close" data-background-icon="fa-square-o" class="inline cell-1-20 tiny"></div>
</div>
</div>


<div class="hbox top-space">
    <div>
        <div data-type="select" data-device="Device" data-items='["Weekprofile_1","Weekprofile_2","Weekprofile_3","Weekprofile_4","Weekprofile_5"]' data-set="save"></div>
        <div data-type="label" class="darker">speichern</div>
    </div>
    <div>
        <div data-type="select" data-device="Device" data-items='["Weekprofile_1","Weekprofile_2","Weekprofile_3","Weekprofile_4","Weekprofile_5"]' data-set="load" class="left-space"></div>
        <div data-type="label" class="left-space darker">laden</div>
    </div>
</div>

<div class="hbox top-space">
   <div data-type="switch" data-device="Device" data-set="disable" data-set-on="0" data-set-off="1" data-get="state" data-get-on="(?!deactivated).*" data-get-off="deactivated" data-states='["(?:(?!deactivated).)*","deactivated"]'
        data-icons='["fs-general_an_fuer_zeit", "fs-general_aus_fuer_zeit"]' data-colors='["white", "white"]'   data-background-colors='["green", "red"]' data-background-icon="fa-square"></div>
    <div data-type="label" class="darker thin big">Status:</div>
    <div data-type="label" data-device="Device" class="w3x big darker"></div>
</div>

</div>


Anbei noch ein Screenshot.

Viel Spaß
Florian

Fixel2012

Hi,
echt ein Super Wecker Modul, welches hier in so kurzer zeit entstanden ist!

Mir ist dieses Wochenende aufgefallen, dass es für mich auch nützlich wäre ein Presence Device anzugeben. Somit würde der Wecker nur bei Anwesenheit Klingeln.

Sprich bei Urlaub oder kurzfristigen Übernachtungen Klingelt der Wecker nicht dumm vor sich hin.


Gibt es da noch andere Interessenten? Bzw wäre es möglich eine Angabe von einem Presence Device ein zu bauen?

Vielen Dank,

Fixel
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

FlorianZ

Zitat von: Fixel2012 am 14 Mai 2017, 23:14:04
Bzw wäre es möglich eine Angabe von einem Presence Device ein zu bauen?
klingt nach einer sinnvollen Erweiterung.
Werde ich mit integrieren.

Gruß
Florian

FlorianZ

Ich habe gerade eine neue Version eingecheckt.

Neue Attribute:
PresenceDevice
PresenceCheck:1,0

Folgende Möglichkeiten für PresenceDevice:

1. PresenceDevice des Typs PRESENCE
    attr <name> PresenceDevice <devicename>
    Alarmclock storniert den anstehenden Alarm, wenn state den Wert absent besitzt.

2. Auf state eines Device. Bsp. Dummy als PresenceDevice
    attr <name> PresenceDevice <devicename>:<value>
    <value> stellt hierbei den Wert für "absent" dar und steht im Reading state.
    Bsp.: attr <name> PresenceDevice Mein_Presence_Dummy:absent
    Alarmclock storniert den anstehenden Alarm,wenn der state des Dummy den Wert absent besitzt.

3. Auf ein Reading eines Device.
    attr <name> PresenceDevice <devicename>:<readingname>: <value>
    <value> stellt den Wert für "absent" dar und steht im Reading <readingname>.
    Bsp.: attr <name> PresenceDevice Mein_Presence_Dummy:Bewohner1: Abwesend

Mit PresenceCheck kann man die Anwesenheitsüberwachung deaktivieren.
1 aktiv
0 deaktiviert

Es können mehrere PresenceDevice getrennt mit | (Pipe-Symbol) angegeben werden.
Ein "Mischbetrieb" der verschiedenen PresenceDevice Möglichkeiten, ist ebenfalls möglich.
<devicename>:<readingname>: <value>|<devicename>|<devicename>:<value>

Desweiteren habe ich HolidayDevice um die Mehrfachangabe erweitert.
Trenner ist ebenfalls | (Pipe-Symbol).
Hier ist das mischen der verschiedenen Möglichkeiten genauso möglich.

vg
Florian


Prof. Dr. Peter Henning

#67
Ich habe das Modul mal getestet, guter Ansatz.

Folgende Verbesserungsvorschläge:

1. Die ausgelösten Aktionen sollten mit einer einstellbaren Verzögerung versehen sein (Syntax z.B. ":"-getrennte Liste so wie bei DOIF). Beispielsweise möchte ich, dass mein Teewasser erst 5 Minuten nach dem Wecken angeschaltet wird.
2. Es wäre nett, wenn wir das Modul besser mit dem 95_Alarm.pm verkoppeln könnten.
3. Es fehlt noch so etwas wie ein Party-Befehl, der gerade nur den nächsten Weckruf auslässt
4. Es wäre schön, ein mit der Maus konfigurierbares Webinterface zu haben

LG

pah

Edit: Ich mache die Wunschliste gleich noch länger

5. Eine weitere "Sonderweckzeit" AlarmTime9_Vacation. Begründung: "Holiday" steht für Feiertage - da braucht man in der Regel nicht früh aufzustehen. "Vacation" aber bezieht sich auf Wochentage, bei denen man nicht regulär (d.h. nach Profil) aufstehen muss. Beispiel: Normale Weckzeit lt. Profil, wenn die Kinder in die Schule müssen, "Vacation"-Zeit, wenn Schulferien sind.
6. Unterschiedliche Alarmroutinen je nach Typ des Tages.
7. Wenn man die Weckzeit per Alexa-Sprachsteuerung setzen möchte (mache ich bei mir), ist es schwierig, einen gemischten Datentyp mit Zeit-Daten und dem Wert "off" zu verwenden - das kann der Amazon Webservice nicht. Es sollte also eine "Offzeit" geben, die vom Modul interpretiert wird als "Wecker ausgeschaltet".
8. Für die Erkennung von Schulferien bzw. Feiertagen aus Kalenderdaten stelle ich gerne die Codebausteine aus den SmartHome Hacks zur Verfügung.
9. Es sollte ein Reading NextWakeTime geben, in dem die nächste Weckzeit gespeichert ist.

Ich bin gerne bereit, mich an den Erweiterungen zu beteiligen und einen Patch zur Verfügung zu stellen.

FlorianZ

Hallo pah,

Erstmal vielen Dank für dein Feedback.
Verbesserungsvorschläge nehme ich jederzeit gerne an.
Im Vorfeld muss ich aber erstmal sagen, dass sich meine Perl Kenntnisse
sich erst mit diesen Modul entwickeln.  ;)

Zitat von: Prof. Dr. Peter Henning am 21 Mai 2017, 17:07:24
1. Die ausgelösten Aktionen sollten mit einer einstellbaren Verzögerung versehen sein (Syntax z.B. ":"-getrennte Liste so wie bei DOIF). Beispielsweise möchte ich, dass mein Teewasser erst 5 Minuten nach dem Wecken angeschaltet wird.
Löse ich aktuell bei mir so:

define -temporary atTmp_Sonos_off_schlafzimmer at +00:02:00 set Powernode_6_Schlafzimmer_3_Sonos off;


Zitat von: Prof. Dr. Peter Henning am 21 Mai 2017, 17:07:24
2. Es wäre nett, wenn wir das Modul besser mit dem 95_Alarm.pm verkoppeln könnten.
Sehr gerne. Bitte weiter ausführen.

Zitat von: Prof. Dr. Peter Henning am 21 Mai 2017, 17:07:24
3. Es fehlt noch so etwas wie ein Party-Befehl, der gerade nur den nächsten Weckruf auslässt
Finde ich gut. Werde ich umsetzen.

Zitat von: Prof. Dr. Peter Henning am 21 Mai 2017, 17:07:24
4. Es wäre schön, ein mit der Maus konfigurierbares Webinterface zu haben
Klingt interessant.Würde mir aber aktuell jeglicher Ansatz fehlen um das umzusetzen.

Zitat von: Prof. Dr. Peter Henning am 21 Mai 2017, 17:07:24
5. Eine weitere "Sonderweckzeit" AlarmTime9_Vacation. Begründung: "Holiday" steht für Feiertage - da braucht man in der Regel nicht früh aufzustehen. "Vacation" aber bezieht sich auf Wochentage, bei denen man nicht regulär (d.h. nach Profil) aufstehen muss. Beispiel: Normale Weckzeit lt. Profil, wenn die Kinder in die Schule müssen, "Vacation"-Zeit, wenn Schulferien sind.
Ein AlarmTime9_Vacation sollte kein Problem sein. Woher würden die Daten zur Differenzierung zwischen Holiday und Vacation kommen?

Zitat von: Prof. Dr. Peter Henning am 21 Mai 2017, 17:07:24
6. Unterschiedliche Alarmroutinen je nach Typ des Tages.
Verstehst Du unter Typ Wochentag und Wochenende?

Zitat von: Prof. Dr. Peter Henning am 21 Mai 2017, 17:07:24
7. Wenn man die Weckzeit per Alexa-Sprachsteuerung setzen möchte (mache ich bei mir), ist es schwierig, einen gemischten Datentyp mit Zeit-Daten und dem Wert "off" zu verwenden - das kann der Amazon Webservice nicht. Es sollte also eine "Offzeit" geben, die vom Modul interpretiert wird als "Wecker ausgeschaltet".
So nach dem Motto 00:56 steht für off?Wenn ja sollte das kein Problem sein, und könnte ich gerne einbauen.

Zitat von: Prof. Dr. Peter Henning am 21 Mai 2017, 17:07:24
8. Für die Erkennung von Schulferien bzw. Feiertagen aus Kalenderdaten stelle ich gerne die Codebausteine aus den SmartHome Hacks zur Verfügung.
Für die Umsetzung von Punkt 5?

Zitat von: Prof. Dr. Peter Henning am 21 Mai 2017, 17:07:24
9. Es sollte ein Reading NextWakeTime geben, in dem die nächste Weckzeit gespeichert ist.
Würde mir prinzipiell zusagen. Problem hierbei ist, dass das Modul derzeit erst um 00:00:05
nach der nächsten Weckzeit sucht und diese stellt.

An Erweiterungen darfst Du dich sehr gerne beteiligen.
Für mich ist nur wichtig, den Ablauf und Code zu verstehen.Wie gesagt Anfänger.

vg
Florian

FlorianZ

Zum Thema Vacation nochmal ein paar Ideen.
Ich würde gerne AlarmTime9_Vacation identisch zu AlarmTime8_Holiday integrieren.
Über VacationDevice sollte man jedes Device also auch Kalender abfragen können.
Zusätzlich 2 neue Attribute:
VacationDays
HolidayDays
Mit diesen kann der User festlegen, an welchen Tagen Vacation und Holiday greifen darf.
Bsp.: VacationDays 1|2|3|4|5
Vacation würde nur an Wochentagen greifen.
Was mir noch nicht klar ist, ist die Priorisierung wenn Holiday und Vacation am selben Tag ist.

Gruß
Florian

Prof. Dr. Peter Henning

ZitatWas mir noch nicht klar ist, ist die Priorisierung wenn Holiday und Vacation am selben Tag ist.
Das ist doch klar: Holiday hat die höhere Prio, weil da nicht nur die Kinder frei haben, sondern man selber auch ...

LG

pah

FlorianZ

OK, Ja das macht Sinn.
Wäre eine identische Einbindung im Vergleich zu Holiday ok, oder
ist dein Codebaustein zu bevorzugen?
Wenn ja, könntest Du mir diesen geben, oder würdest du hier lieber einen Patch zur Verfügung stellen?
Vacation würde ich gerne als erstes der Punkte umsetzen.

Gruß
Florian

FlorianZ

#72
Nur kurze Info:

Zitat von: Prof. Dr. Peter Henning am 21 Mai 2017, 17:07:24
3. Es fehlt noch so etwas wie ein Party-Befehl, der gerade nur den nächsten Weckruf auslässt

Ist integriert und nennt sich: set <name> skip NextAlarm

Kommt mit dem nächsten Update.

Gruß
Florian

Prof. Dr. Peter Henning

Bin derzeit nicht daheim am Rechner.
In den SmartHome Hacks habe ich den Code veröffentlicht, liest aus zwei verschiedenen Kalender-Instanzen.

Poste ich demnächst.

LG

pah




FlorianZ

Neue Version ist eingecheckt.

Neu ist:

set <name> skip (NextAlarm|None)
Überspringt den nächsten Alarm.
None setzt den Befehl skip wieder zurück

set <name> AlarmTime9_Vacation HH:MM
Alarmzeit für Ferien.

attr <name> HolidayDays
Hier kann man optional angeben, an welchen Tagen
Holiday greifen darf.
Beispiel:
attr <name> HolidayDays 1|2|3|4|5
Holiday würde nur an Wochentagen greifen
Default ist: 1|2|3|4|5|6|7

attr <name> VacationDevice
Kalender/Dummy usw... für Ferien.
Syntax/Möglichkeiten identisch zu HolidayDevice

attr <name> VacationCheck
1: aktiviert
0: deaktiviert

attr <name> VacationDays
siehe HolidayDays
Default: 1|2|3|4|5|6|7

Neues Reading skip
skip next Alarm => der nächste Alarm wird übersprungen
skip none => skip nicht aktiv


Gruß
Florian