Neues Modul 98_alarmclock ein Fhem Wecker

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

Vorheriges Thema - Nächstes Thema

FlorianZ

Hallo aeronaut,

Zu 1.
Du könntest dir in der PreAlarmRoutine mehrere einmalige At´s anlegen, um vor dem Alarm,
zu verschiedenen Zeiten etwas auszuführen.
attr <name> PreAlarmRoutine define -temporary atTmp_Badheizung_ein at +00:05:00 set Badheizung ein; define -temporary atTmp_Licht_ein at +00:15:00 set Licht ein

Zu 2.
Ja das müsstest du dir aus dem Reading AlarmToday bzw. AlarmTomorrow selbst berechnen.


vg
Florian

aeronaut

Alles klar, dann gehe ich den Weg mit den at's.

AlarmTomorrow wird nicht in jedem Fall reichen, ein AlarmNext schon eher, aber das würde schon frickelig werden, man bräuchte einen Timestamp in Sekunden ...

Danke für dein Modul  :D

lg
aeronaut

habl

Hallo Florian,

ich habe nach Update vom Calendar Modul immer die Empfehlung
2018.05.21 08:09:40 2: get myCalUrlaub events full is deprecated and will be removed soon. Use get myCalUrlaub events instead.
erhalten, was ja eigentlich nicht schlimm ist. Doch seit heute erhallte ich von Stacktrace auch noch diesen Fehler im Log:

2018.05.21 08:09:40 2: get myCalUrlaub full is deprecated and will be removed soon. Use get myCalUrlaub events instead.
2018.05.21 08:09:40 1: PERL WARNING: Use of uninitialized value in subtraction (-) at ./FHEM/98_alarmclock.pm line 1254.
2018.05.21 08:09:40 1: stacktrace:
2018.05.21 08:09:40 1:     main::__ANON__                      called by ./FHEM/98_alarmclock.pm (1254)
2018.05.21 08:09:40 1:     main::alarmclock_vacation_check     called by ./FHEM/98_alarmclock.pm (539)
2018.05.21 08:09:40 1:     main::alarmclock_createtimer        called by ./FHEM/98_alarmclock.pm (424)
2018.05.21 08:09:40 1:     main::alarmclock_Set                called by ./FHEM/98_apptime.pm (205)
2018.05.21 08:09:40 1:     main::apptime_getTiming             called by ./FHEM/98_apptime.pm (165)
2018.05.21 08:09:40 1:     main::CallFn                        called by fhem.pl (1780)
2018.05.21 08:09:40 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.21 08:09:40 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.21 08:09:40 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2523)
2018.05.21 08:09:40 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (898)
2018.05.21 08:09:40 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.05.21 08:09:40 1:     main::FW_Read                       called by ./FHEM/98_apptime.pm (205)
2018.05.21 08:09:40 1:     main::apptime_getTiming             called by ./FHEM/98_apptime.pm (165)
2018.05.21 08:09:40 1:     main::CallFn                        called by fhem.pl (708)
2018.05.21 08:09:40 1: PERL WARNING: Use of uninitialized value in subtraction (-) at ./FHEM/98_alarmclock.pm line 1262.
2018.05.21 08:09:40 1: stacktrace:
2018.05.21 08:09:40 1:     main::__ANON__                      called by ./FHEM/98_alarmclock.pm (1262)
2018.05.21 08:09:40 1:     main::alarmclock_vacation_check     called by ./FHEM/98_alarmclock.pm (539)
2018.05.21 08:09:40 1:     main::alarmclock_createtimer        called by ./FHEM/98_alarmclock.pm (424)
2018.05.21 08:09:40 1:     main::alarmclock_Set                called by ./FHEM/98_apptime.pm (205)
2018.05.21 08:09:40 1:     main::apptime_getTiming             called by ./FHEM/98_apptime.pm (165)
2018.05.21 08:09:40 1:     main::CallFn                        called by fhem.pl (1780)
2018.05.21 08:09:40 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.21 08:09:40 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.21 08:09:40 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2523)
2018.05.21 08:09:40 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (898)
2018.05.21 08:09:40 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.05.21 08:09:40 1:     main::FW_Read                       called by ./FHEM/98_apptime.pm (205)
2018.05.21 08:09:40 1:     main::apptime_getTiming             called by ./FHEM/98_apptime.pm (165)
2018.05.21 08:09:40 1:     main::CallFn                        called by fhem.pl (708)
2018.05.21 08:09:40 1: alarmclock: wecker - holiday => myHoliday - Pfingsten
2018.05.21 08:09:40 3: alarmclock: wecker - activated


ich denke, das hängt alles mit dem Update vom Calendar-Modul zusammen!?

VG
  habl

FlorianZ

#153
Hallo habl,

Die Änderung vom Calendar Modul habe ich gar nicht mitbekommen.  :o
Könntest du bitte die angehängte Version von 98_alarmclock bei dir auch noch testen?
Sollte diese wieder sauber funktionieren, werde ich sie
die nächsten Tage einchecken.

vg
Florian

habl

Moin Florian,

kein Problem, dafür sind doch die User da  8)

Ich habe es gerade getestet, schein wieder zu funktionieren.

Danke für den schnellen Fix.

VG
  habl

mark79

Hallo Florian,

ich habe dein Modul auch ausprobiert und finde es bisher sehr gut, es ist leichter zu händeln als das Residents Modul. :)

Ich habe eine Yeelight, die mit der PreAlarmRoutine 30 Minuten vorher eine Lichtscene, die 30 Minuten dauert startet. Dazu ein Tablet für die AlarmRoutine, was über AMAD ein MP3 File abspielt.
Praktisch wie der Philips Lichtwecker, der aber leider keine Wochentage beherscht und man den Wecker am Freitag immer deaktivieren muss.

Unterm Bett habe ich ein Xiaomi Bewegungsmelder für das EventForAlarmOff.
Wenn ich aufstehe, wird dieser ausgelöst und sollte eigentlich den Wecker ausschalten.

Mein Problem ist aber nun, wenn ich in der PreAlarmRoutine Phase aufstehe, was sehr oft passiert, dann schaltet das EventForAlarmOff nicht die PreAlarmRoutine aus.
Das heißt ich bin in der Küche und der Wecker geht an. Auch ein "set WECKER stop Alarm" funktioniert hier nicht, der PreAlarm läuft einfach weiter.
Das EventForAlarmOff oder "set WECKER stop Alarm" funktioniert erst, wenn die PreAlarmRoutine zuende ist und die AlarmRoutine läuft.

Ich habe es dann noch mit RepRoutine1 ausprobiert und "RepRoutine1Mode PreAlarm", aber das verhalten ist dort leider das gleiche.

Ist das so gewollt, oder ein Fehler im Modul?

Du hattest hier geschrieben:
Zitat von: FlorianZ am 11 Mai 2017, 11:24:52

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.

Gibt es eine Möglichkeit den PreAlarm trotzdem auszuschalten? Mit einem DOIF oder Notify über "skip NextAlarm" bestimmt, aber würde das im Modul selber gehen?


Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

FlorianZ

Hallo Mark,

ist mir noch gar nicht aufgefallen. :o
Ja ein beenden sollte natürlich auch während der Prealarm läuft möglich sein.
Ich erweitere das Modul am Wochenende dementsprechend.

Gruß
Florian

mark79

Hallo Florian,

das wäre super, wenn du das fixen würdest. Wird direkt getestet. :)


Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

FlorianZ

Hallo Mark,

neue Version ist eingecheckt und wird ab morgen
per Update verteilt.

Gruß Florian

mark79

Hallo Florian,

vielen dank, darauf habe ich gewartet. :)
Könntest du die Version vielleicht jetzt schon im Forum bereit stellen? Bin heute im Bastellaune :)


Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Esjay

Zitat von: mark79 am 14 Juli 2018, 15:10:09
Hallo Florian,

vielen dank, darauf habe ich gewartet. :)
Könntest du die Version vielleicht jetzt schon im Forum bereit stellen? Bin heute im Bastellaune :)


Viele Grüße
Mark
Ich bin Meinung,dass du dir die Version selbst aus dem SVN holen kannst..Grüße

FlorianZ


mark79

Wieder was gelernt. :) Danke euch beiden.

Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

balu1

Hallo zusammen,

ich hoffe ich habe nichts überlesen.

Bei mir greift der Trigger für EventForSnooze und EventForAlarmOff nicht.
Eingestellt habe ich den Trigger auf

  • EventForAlarmOff=aufwachen:state: off
    EventForSnooze=aufwachen:state: snooze
wobei aufwachen ein dummy-device ist:
Internals:
   NAME       aufwachen
   NR         355
   STATE      off
   TYPE       dummy
   Helper:
     DBLOG:
       state:
         logdb:
           TIME       1535295988.81329
           VALUE      off
   READINGS:
     2018-08-26 17:06:28   state           off
Attributes:
   devStateIcon on:ios-on-green off:ios-off
   event-on-update-reading state
   room       A_Wecker,A_Dummy
   setList    on off snooze
   webCmd     on:off


Ich hatte es auch zeitweise nur mit aufwachen:off bzw. aufwachen:snooze versucht, aber auch dann wird kein event getriggert.
Hat jemand eine Idee was ich hier falsch mache?

adjanz

Hallo zusammen,

ich habe auch ein kleines Problem. Bin mir nicht sicher ob es am Alarmclock Modul oder am Wifilight liegt.
Wecker ist folgend eingestellt.
Alarmzeit 6Uhr, 15Minuten davor soll das Licht angehen und  15 Minuten lang alle 60 Sekunden um 5 hochgedimmt werden.
PreAlarmTimeInSec 900
PreAlarmRoutine set SZ.LEDLeiste dim 10
RepRoutine1Mode PreAlarm
RepRoutine1 {my $DimNow = ReadingsNum("SZ.LEDLeiste", "brightness", 0);;my $DimNext = $DimNow + 5;;fhem("set SZ.LEDLeiste dim $DimNext");;}
RepRoutine1Repeats 15
RepRoutine1WaitInSec 60

Um 6 Uhr geht die Yamaha Box an, das funktioniert.
AlarmRoutine set SZ.WX030 on;set SZ.WX030 volume 5

Um 6:45 geht dann alles aus, funktioniert ebenfalls.
AlarmRoutineOff set SZ.LEDLeiste off;set SZ.WX030 off

Was nicht funktioniert ist, dass um 05:45Uhr die LED-Leiste an geht.
Logfile:
2018.08.28 05:45:00 3: SZ.LEDLeiste RGBW LD382A dim 10 0
2018.08.28 05:45:00 3: SZ.LEDLeiste set HSV 252, 70, 10 with ramp: 0, flags:
2018.08.28 05:45:01 3: SZ.LEDLeiste low level cmd queue send ERROR 3101000502000f48, qlen 1 (reconnect giving up)
2018.08.28 05:45:01 3: alarmclock: SZ.Wecker - PreAlarmRoutine started.

Der Fehler mit "low level cmd queue" kommt dann jede Minute im Log.
Interessant ist jetzt, dass um 6 Uhr die LED Leiste dann angeht, also mit der AlarmRoutine ?
2018.08.28 06:00:00 3: alarmclock: SZ.Wecker - AlarmRoutine started.
2018.08.28 06:00:15 3: SZ.LEDLeiste RGBW LD382A dim 85 0
2018.08.28 06:00:15 3: SZ.LEDLeiste set HSV 252, 70, 85 with ramp: 0, flags:

Manuell kann ich die LED Leiste an und aus schalten.

Hat vielleicht jemand eine Idee woran das liegen könnte?
Danke schon mal.

LG
Armin