Neues Modul 98_alarmclock ein Fhem Wecker

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

Vorheriges Thema - Nächstes Thema

ThoTo

Zitat von: ComputerZOO am 25 Oktober 2017, 21:18:50
Moin,

in einem DOIF werden die Befehle aber mit einem einzelnen Komma getrennt.

Danke für die Klarstellung!! Ich bin davon ausgegangen dass das gleich sein müsste.
KNX | MQTT | Docker | Sonos | FHEMapp

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher." (Albert Einstein)

Fixel2012

Hallo Florian,

mir ist mit der Zeit aufgefallen, dass ich beim Wecken die Musik von Radio auf Spotify ändere und anschließend einfach aus mache.

Ich habe den trigger zum deaktivieren des Alarms vom Sonos Play/Pause Knopf leider auf einen DashButton ändern müssen. (Ich Hatte Fehlalarme, der Wecker ging alle Paar Wochen nach 5 Sekunden direkt wieder aus). Somit wird beim ausmachen der Musik nicht mehr automatisch der Wecker deaktiviert.

Mein Problem ist nun, dass der Wecker in Fhem am nächsten Morgen teilweise immernoch auf "running" steht. Er klingelt dann nicht mehr  ???

Wäre es möglich ein optionales Attribut hinzuzufügen, dass eine maxAlarmTime definiert? Wenn diese Zeit erreicht wird beispielsweise 2 Stunden (120 Minuten) wird der Wecker automatisch gestoppt.

Zusätzlich ist mir persönlich aufgefallen, dass mir eine HardAlarmRoutine nicht ausreicht ;D Meinst du es wäre möglich das um HarAlarmRoutine_2 zu erweitern?  :P

Wäre echt Super, wenn du das bei Gelegenheit einrichten könntest. Nimm dir ruhig Zeit, ist nicht eilig!

Danke und Gruß,

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

Guten Morgen Fixel,

Zitat von: Fixel2012 am 29 Oktober 2017, 02:46:05
Wäre es möglich ein optionales Attribut hinzuzufügen, dass eine maxAlarmTime definiert? Wenn diese Zeit erreicht wird beispielsweise 2 Stunden (120 Minuten) wird der Wecker automatisch gestoppt.
diese Funktion gibt es bereits:MaxAlarmDurationInSec
attr <name> MaxAlarmDurationInSec 7200

Was meinst du mit Fehlalarme? Gibt es ein Problem mit dem Modul, oder ist es auf dein Setup zurückzuführen?

Gruß
Florian


Fixel2012

Das es dieses Attribut schon gab wusste ich nicht, danke dir!!

Es ist wohl eher ein Problem mit meinem Setup, so ganz genau kann ich nicht sagen woran es lag. Jedenfalls wurde nach nur wenigen Sekunden der Alarm wieder ausgestellt. Nach ändern des alarmoff triggers habe ich keine Fehlalarme mehr. könnte mir vorstellen dass es etwas mit dem Sonos Modul zu tun hat.

Danke noch ein schönes Wochenende,

Fixel

Gesendet von meinem ONEPLUS A3003 mit Tapatalk

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

Borkk

Hallo Zusammen,

ich möchte mit Alarmclock morgens um 5:58 Uhr eine Lampensequenz starten und in ca 30 min soll der Alarm automatisch gestoppt werden und die Lampe ausgeschaltet werden.

für den Start habe ich:
AlarmRoutine = set sz_kugel pct 1 : ct 2000 ; set sz_kugel pct 100 : ct 5000 : transitiontime 1800
gesetzt und das klappt auch:

zum beenden:

MaxAlarmDurationInSec =2000
AlarmRoutineOff = set sz_kugel off; set wecker stop Alarm


ob das geht kann ich nicht sagen da dann mein FHEM crasht: :-(


2017.11.02 06:31:25 1: PERL WARNING: Deep recursion on subroutine "main::alarmclock_alarmroutine_stop" at ./FHEM/98_alarmclock.pm line 355.
2017.11.02 06:31:25 1: PERL WARNING: Deep recursion on subroutine "main::fhem" at ./FHEM/98_alarmclock.pm line 744.
2017.11.02 06:31:25 1: PERL WARNING: Deep recursion on subroutine "main::AnalyzeCommandChain" at fhem.pl line 3488.
2017.11.02 06:31:25 1: PERL WARNING: Deep recursion on subroutine "main::AnalyzeCommand" at fhem.pl line 1027.
2017.11.02 06:31:25 1: PERL WARNING: Deep recursion on subroutine "main::CommandSet" at fhem.pl line 1174.
2017.11.02 06:31:25 1: PERL WARNING: Deep recursion on subroutine "main::DoSet" at fhem.pl line 1778.
2017.11.02 06:31:25 1: PERL WARNING: Deep recursion on subroutine "main::CallFn" at fhem.pl line 1745.
2017.11.02 06:31:25 1: PERL WARNING: Deep recursion on subroutine "main::alarmclock_Set" at fhem.pl line 3443.
Out of memory!



Docker@DS220+ FHEM, ConBeeII, Homebridge, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana,
Raspberrymatic@Raspi3: HmIP Akt- /Sensoren, Shelly´s, Tibber Puls, Alexa, ASC, Gardena, Netatmo, E-Paper, FritzBox; Tado°, HOMEMODE, iBeacon, OLED ; ESP32/8266, SwitchBot ...

FlorianZ

Hallo Borkk,

entferne bitte aus der AlarmRoutineOff: set wecker stop Alarm
Der Alarm wird durch MaxAlarmDurationInSec gestoppt.

Sollte es nicht funktionieren, bitte ein list von Alarmclock posten.

Gruß
Florian


Borkk

Docker@DS220+ FHEM, ConBeeII, Homebridge, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana,
Raspberrymatic@Raspi3: HmIP Akt- /Sensoren, Shelly´s, Tibber Puls, Alexa, ASC, Gardena, Netatmo, E-Paper, FritzBox; Tado°, HOMEMODE, iBeacon, OLED ; ESP32/8266, SwitchBot ...

Borkk

Ok, es klappt jetzt. Danke. Trotzdem sollte das Modul nicht gleich das ganze System wegen sowas auf den Bauch legen  ;)
Docker@DS220+ FHEM, ConBeeII, Homebridge, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana,
Raspberrymatic@Raspi3: HmIP Akt- /Sensoren, Shelly´s, Tibber Puls, Alexa, ASC, Gardena, Netatmo, E-Paper, FritzBox; Tado°, HOMEMODE, iBeacon, OLED ; ESP32/8266, SwitchBot ...

sasquuatch

Moin.
Eine bitte, kann der Text des 1. Post auch im deutschen Teil der Commandref stehen?
Nicht jeder ist dem englischen so mächtig, dass er die Commandref auf englisch gut versteht und dann muss man sich in diesem forum gerne mal (und zwar zurecht!) anhören, lies die commandref. Dann wäre aber der deutsche Text sehr hilfreich.

1. Hat es irgendeiner verwirklicht, dass man ein Drop Down Menü hat, mit allen Uhrzeiten, mit allen Wochentagen, mit allen Befehlen?
Es macht wenig Spaß am Handy in ein Device zu gehen und da irgendetwas einzugeben. Ich nutze FhemWidget und da habe ich für meinen selbst gebauten Wecker ein Dummy (der rest notify und myUtils), bei dem ich einfach nur noch die Uhrzeit auswähle. Abends vorm schlafen gehen, einfach die neue Uhrzeit wählen und gut. Da mag man nicht noch den Befehl raus suchen und die neue Uhrzeit eintragen. Selbst Wochenprofile bringen leider für "mich" nichts, da ich nicht zu so festen Zeiten aufstehe.

2. Gibt es die Möglichkeit bestimmte Befehle vor der Weckzeit auszulösen?
Z.b. soll die Badheizung 40 min vor der Weckzeit hochfahren oder die Kaffeemaschine erst 20 min nach der Weckzeit angehen.

3. Gibt es die Möglichkeiten diese Befehle durch einfaches on/off dazu zu nehmen oder abzuschalten?
Sprich ich kann Abends die Badheizung auf off schalten, damit diese am Morgen nicht hochfährt, aber die Kaffeemaschine und das Radio lasse ich auf on, da nur die beiden sich einschalten sollen, etc.

Fixel2012

Zitat von: sasquuatch am 04 Dezember 2017, 09:51:39
2. Gibt es die Möglichkeit bestimmte Befehle vor der Weckzeit auszulösen?
Z.b. soll die Badheizung 40 min vor der Weckzeit hochfahren oder die Kaffeemaschine erst 20 min nach der Weckzeit angehen..

Gibt es, nennt sich prealarmtime. Allerdings kann man nur eine Zeit angeben.
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

sasquuatch

ist für eine Schaltung nach Alarmzeit was geplant, quasi "afteralarmtime"?

FlorianZ

Hallo sasquuatch,

um eine Aktion nach Beendigung des Alarms auszulösen, würde ich dir ein temporäres at
in der AlarmRoutineOff empfehlen.

attr <name> AlarmRoutineOff define -temporary atTmp_Kaffeemaschine_aus at +00:20:00 set Kaffeemaschine aus

So wird die Kaffeemaschine 20 Minuten nach AlarmOff ausgeschalten.

Gruß
Florian

sasquuatch

stimmt, so könnte man auch mehrere Befehle in einem prealarmtime verwirklichen mit unterschiedlichen Zeiten. Mit einem at hat man ohnehin viele Möglichkeiten wie variablen, in Verbindung mit einem Dummy ob, etc..

arthur_dent_2015

Moin Florian,
ich hab mir auch mal einen Wecker eingerichtet und will damit diverse selbst geschriebene Timer ablösen. So ganz bekomm ich es aber noch nicht gebacken. Was will mir alarmcklock mit diesen Meldungen sagen:

2017.12.26 09:00:01 1: alarmclock: Wecker - absent
2017.12.26 09:00:01 1: alarmclock: Wecker - holiday => Nds - 2. Weihnachtstag, Urlaub
2017.12.26 09:00:01 5: alarmclock: Wecker - midnight-timer created with 54004 sec.
2017.12.26 09:00:01 5: alarmclock: Wecker - alarm time today has been in the past => midnight-timer started.


List vom device:

Internals:
   CFGFN     
   NAME       Wecker
   NR         1082
   NTFY_ORDER 50-Wecker
   STATE      OK
   TYPE       alarmclock
   READINGS:
     2017-12-22 15:11:01   AlarmTime1_Monday 07:00
     2017-12-22 15:11:01   AlarmTime2_Tuesday 07:00
     2017-12-22 15:11:01   AlarmTime3_Wednesday 07:00
     2017-12-22 15:11:01   AlarmTime4_Thursday 07:00
     2017-12-22 15:11:01   AlarmTime5_Friday 07:00
     2017-12-24 09:34:12   AlarmTime6_Saturday 09:00
     2017-12-24 09:34:12   AlarmTime7_Sunday 09:00
     2017-12-22 15:11:20   AlarmTime8_Holiday 09:00
     2017-12-26 19:15:48   AlarmToday      09:00
     2017-12-26 19:15:48   AlarmTomorrow   09:00
     2017-12-26 19:15:48   state           OK
   helper:
     Repeat1    0
     Repeat2    0
     Repeat3    0
     Today      8
     Tomorrow   8
     bm:
       alarmclock_Notify:
         cnt        1509
         mAr        HASH(0x589d410); HASH(0x43beff8)
         max        2
         tot        4
Attributes:
   AlarmRoutine {fhem("set MyTTS2 tts Guten Morgen. Es ist jetzt $hour Uhr $min . Zeit um aufzustehen.")}
   EventForAlarmOff ET1:state:opened
   HardAlarmRoutine set Fritzbox ring 612 60
   HardAlarmTimeInSec 1500
   HolidayCheck 1
   HolidayDevice Nds
   PresenceCheck 1
   PresenceDevice atHome:state:present|ET1:state:closed
   SnoozeTimeInSec 600
   event-on-update-reading AlarmToday
   verbose    5


Gruß
Arthur

FlorianZ

Hallo Arthur

Die Meldungen sind nur Hinweise und keine Fehlermeldungen.

Alarmclock sollte bei dir heute um 09:00 Uhr wecken

AlarmTime8_Holiday 09:00

Holiday wurde auch erkannt mit der Logmeldung

alarmclock: Wecker - holiday => Nds - 2. Weihnachtstag, Urlaub


Alarmclock hat aber wegen dem PresenceDevice nicht ausgelöst.
Logmeldung:

alarmclock: Wecker - absent


Ich sehe gerade in deinem List vom alarmclock, dass du das PresenceDevice
falsch angelegt hast.

Richtig wäre:

PresenceDevice atHome:state:absent|ET1:state:open


Bei PresenceDevice wird der Wert für nicht anwesend angegeben.

Gruß
Florian