Wakeup-Light

2,002 views
Skip to first unread message

UliM

unread,
Jun 18, 2011, 5:51:31 AM6/18/11
to FHEM users
Hallo,
hat jemand bereits ein Wakeup-Light implementiert?
Also z.B. Eingabe der Sollzeit für den nächsten Tag, dann
schrittweises Hochdimmen einer Lampe zB in 5-Minuten-Schritten?
Falls ja, waere ich fuer eine kurze Erlaeuterung eurer Implementierung
incl. Coding dankbar.
Gruss, Uli

wopl

unread,
Jun 18, 2011, 6:44:37 AM6/18/11
to FHEM users
Hi,
ich habs ganz einfach über 3 Timer realisiert die jeden Morgen (jedoch
nicht am Wochenende) arbeiten.
Dimmstufe1, Dimmstufe2 und dann wieder aus. Also nicht ganz so viele
Schritte wie Du willst.
Solange man einen konstanten Arbeitstag hat, funkt das prima.

define wake1 at *06:00:00 {fhem("set dimmer1 dim12%") if (!$we)}
define wake2 at *06:10:00 {fhem("set dimmer1 dim37%") if (!$we)}
define wake3 at *07:00:00 {fhem("set dimmer1 off)}

Gruß Wolfram

UliM

unread,
Jun 18, 2011, 7:34:57 AM6/18/11
to FHEM users
On 18 Jun., 12:44, wopl <wo...@web.de> wrote:
> define wake1 at *06:00:00 {fhem("set dimmer1 dim12%") if (!$we)}
> define wake2 at *06:10:00 {fhem("set dimmer1 dim37%") if (!$we)}
> define wake3 at *07:00:00 {fhem("set dimmer1 off)}

Hi Wolfram,
jepp, so geht's auch. Bin aber anspruchsvoll ;-)

Die Variante, die mir vorschwebt ist, ein neues command zu definieren,
so dass ich im frontend als Befehl z.B. eintippe "wakeup 0700" und
dadurch ab 07:00 am naechsten Morgen der dimup startet.
Luxus-Variante: Das ganze soll wie bei Dir jeden Wochentag passieren,
es sei denn ich bin nicht zuhause (globale Variable), es sei denn ich
gebe o.g. Befehl am Vorabend als Abweichung ein (Sonderfall: Eingabe
nach Mitternacht).

Aus einer Kombi von (angelehnt an Beispiel aus fhem-reference - Lampe
in den 16 Dimmstufen in 2-Minuten-Abständen hochdimmen)
define a7 at +*{16}00:02:00 set lamp dimup

und sowas wie (Beispiel aus Wiki)
define Licht_25_Januar_an at *07:15:00 {if($year==2011 && $month==1 &&
$mday==25) \
{fhem "set Licht1 on";; fhem "delete Licht_25_Januar_an"} }

muesste das ja gehen, also
define Licht_25_Januar_an at *07:15:00 {if($year==2011 && $month==1 &&
$mday==25) \
{fhem "define a7 at +*{16}00:02:00 set lamp dimup";; fhem "delete
Licht_25_Januar_an"} }

Den fs20-Dimmer, um das auszuprobieren, muss ich mir erst noch
besorgen :-)

Die Implementierung des commandwakeup incl. der Ausnahmefaelle ist ja
auch ein bisschen Tipperei - drum die Frage, ob vll. auch sowas schon
jemand hat :-)

=8-)

wopl

unread,
Jun 18, 2011, 8:23:22 AM6/18/11
to FHEM users

Hi Uli,
echt schade, daß ich da Deinen Anforderungen nicht gerecht werden
kann :-)

Yepp, so wie Du es haben willst, ists schon ein bischen aufwändiger.
Viel Spaß.

Schönen Sonntag noch,
Wolfram

Hans-Werner Kneitinger

unread,
Jun 18, 2011, 3:37:22 PM6/18/11
to fhem-...@googlegroups.com
Am 18.06.2011 11:51, schrieb UliM:
> Hallo,
> hat jemand bereits ein Wakeup-Light implementiert?
> Also z.B. Eingabe der Sollzeit f�r den n�chsten Tag, dann

> schrittweises Hochdimmen einer Lampe zB in 5-Minuten-Schritten?
> Falls ja, waere ich fuer eine kurze Erlaeuterung eurer Implementierung
> incl. Coding dankbar.
> Gruss, Uli
>
Vieleicht kannst du ja etwas mit meinem Aquarium Sonnenaufgang anfangen.

Startet zu einem gegeben Zeitpunkt *hh:mm und erzeugt dann einmal
ausf�hrbare Aktionen. +hh:mm:ss gibt den Zeitpunkt relativ zum
Startzeitpunkt an. Kannst du also deinen W�nschen entsprechend anpassen.

Das mit dem setdefaultattr ist damit es in der Oberl�che im richtigen
"Raum" angezeigt wird,kannst du also weglassen.

--
*07:23 set AQ_Sonne dim06% ;
setdefaultattr room 50__Aquarium ;
define AQ_Sonne_2c at +00:02:31 set AQ_Sonne dim12% ;
define AQ_Sonne_3c at +00:05:03 set AQ_Sonne dim18% ;
define AQ_Sonne_4c at +00:08:30 set AQ_Sonne dim25% ;
define AQ_Sonne_5c at +00:10:30 set AQ_Sonne dim31% ;
define AQ_Sonne_6c at +00:12:30 set AQ_Sonne dim37% ;
define AQ_Sonne_7c at +00:15:30 set AQ_Sonne dim43% ;
define AQ_Sonne_8c at +00:25:25 set AQ_Sonne dim50% ;
setdefaultattr
--

cu
Hawe

Jörg71

unread,
Jun 20, 2011, 4:47:12 AM6/20/11
to FHEM users
Hallo,

das automatische Hochdimmen geht auch mit einem Befehl:
set LichtSchlafzimmer dim100% 1200
um innerhalb von 20 Minuten hochzudimmen.

Mein Vorschlag für UliM:

define wakeup at *04:30 set LichtSchlafzimmer dim100% 1200

und dann jeden Tag durch die Eingabe von

modify wakeup *09:00

in der Befehlszeile die Zeit anpassen.

Tschüs,

Jörg

UliM

unread,
Jun 20, 2011, 5:52:38 PM6/20/11
to FHEM users
> define wakeup at *04:30 set LichtSchlafzimmer dim100% 1200
> modify wakeup *09:00


Hallo Joerg,
ganz herzlichen Dank!
Das dim100% 1200 funktioniert perfekt - eine geniale Vereinfachung!

Mit dem modify setzt man aber leider nicht nur die Zeit, sondern den
gesamten at-Befehl um.
Man muesste also
modify wakeup at *09:00 set LichtSchlafzimmer dim100% 1200
eintippen, das ist leider zu lang.

Ich bastele gerade an einem Ansatz, der folgendermassen aussieht:
- dummy 'wakeup' -> man tppt dann also z.B. "set wakeup 07:00:00"
- Ein define1..at *03:00 jeden Morgen zum Festlegen des eigentlichen
define2
- Dahinter ein define2..at Value("wakeup") für die Uhrzeit , die
hinter 'wakeup' liegt
- mit anschl. delete define2
- mit Voraussetzung (!we) und HomeStatus < 3 (Homestatus
[1=AtHome|2=Sleeping|3=AwayShort|4=AwayLong]
- Mit anschliessendem delete dieses define2
Mir fehlt nur noch, wie ich bei define2 ein "..at +01:00:00 .. off"
einbauen kann - wenn ich das auf z.B. +1h lege, dann sind das 60
Minuten nach define1..at, nicht 60 Minuten nach "wakeup".
Waere (wakeup + "01:00:00") eine gueltige perl-Operation? Mit einem
brauchbaren Ergebnis?

Mal schauen ob ich's hinkriege - muss aber leider bis naechste Woche
warten.

Gruessle, Uli

Arne Lochter

unread,
Jun 21, 2011, 4:05:49 AM6/21/11
to fhem-...@googlegroups.com
Hallo zusammen,

ich habe mal folgendes eingebaut, aber habe noh ein kleines Problem mit dem "%".

define WakeUp FS20 2342 04
attr WakeUp fm_order 12
attr WakeUp model fs20st
attr WakeUp room Extras

define WakeUpOn notify WakeUp {\
if ("%" eq "on") {\
    fhem "define wakeup_kind at *6:00 set Lillifeelampe dim100% 1200;;save"}\
}

define WakeUpOff notify WakeUp {\
if ("%" eq "off") {\
    fhem "delete wakeup_kind;;save"}\
}

Hat jemand eine Idee, wie ich das "%" richtig übertragen bekomme?
Der gesetzte Timer sieht nämlich leider nach dem Schalten so aus:

define wakeup_kind at *6:00 set Lillifeelampe dim100on 1200

Gruss,
Arne




--
To unsubscribe from this group, send email to
fhem-users+...@googlegroups.com

UliM

unread,
Jun 21, 2011, 4:27:34 AM6/21/11
to FHEM users
Hi,
"%" => on
'%' => %

Du musst den String in einfache Anfuehrungsstriche setzen, damit das %
nicht interpretiert wird, sondern als %-Zeichen erscheint.

=8-)

Jörg71

unread,
Jun 21, 2011, 6:32:53 AM6/21/11
to FHEM users


On 20 Jun., 23:52, UliM <uli.ma...@googlemail.com> wrote:
> Mit dem modify setzt man aber leider nicht nur die Zeit, sondern den
> gesamten at-Befehl um.
> Man muesste also
>    modify wakeup at *09:00 set LichtSchlafzimmer dim100% 1200
> eintippen, das ist leider zu lang.

Das stimmt nicht! Es funktioniert so wie ich es beschrieben habe!
Siehe auch: http://fhem.de/commandref.html#modify

Tschüs,

Jörg

Rudolf Koenig

unread,
Jun 21, 2011, 6:39:23 AM6/21/11
to fhem-...@googlegroups.com
> Hat jemand eine Idee, wie ich das "%" richtig �bertragen bekomme?

Alternativ gar nicht :), man kann ja on und off direkt im regexp angeben:
define WakeUpOff notify WakeUp:off { ...
define WakeUpOn notify WakeUp:on { ...

Arne Lochter

unread,
Jun 21, 2011, 10:02:54 AM6/21/11
to fhem-...@googlegroups.com
das funktioniert leider so nicht. habe folgendes versucht, aber immer kommt ein "dim100on" dabei raus:

fhem "define wakeup_kind at *6:00 set Lillifeelampe dim100% 1200;;save"

fhem '"define wakeup_kind at *6:00 set Lillifeelampe dim100% 1200;;save"' => eingefasst in einfachen hochkomma

fhem "define wakeup_kind at *6:00 set Lillifeelampe dim100'%' 1200;;save" => nur das % eingefasst in einfache hochkomma

fhem "'define wakeup_kind at *6:00 set Lillifeelampe dim100% 1200;;save'" => innen einfach hochkomma

fhem "define wakeup_kind at *6:00 set Lillifeelampe dim100\% 1200;;save" => Sonderzeichen % maskiert

Arne Lochter

unread,
Jun 21, 2011, 10:15:43 AM6/21/11
to fhem-...@googlegroups.com
Hi,
ich hab das jetzt etwas anders realisiert:

Einfach die fhem.pl etwas angepasst (weitere Sub-Routine wakeup). In dieser Sub starte ich ein Shell-Script und pumpe den Timer schön mit "%" in die fhem.cfg.

Der Aufruf in fhem.cfg sieht dann so aus:

define WakeUpOn notify WakeUp {\
if ("%" eq "on") {\

wakeup()}\
}

In fhem.pl dann so:

Oben die Definition der sub

sub wakeup();

Unten dann die sub selbst

sub
wakeup()
{
system("/usr/syno/synoman/webman/3rdparty/fhem/wakeup.sh &");
}

(sind natürlich meine Pfade auf dem Synology Nas)

Das Ergebnis in der fhem.cfg ist übrigens wie gewünscht: define wakeup_kind at *6:00 set Lillifeelampe dim100% 1200


Funzt super.

Gruss,
Arne

Am 21.06.2011 um 12:39 schrieb Rudolf Koenig:

>> Hat jemand eine Idee, wie ich das "%" richtig übertragen bekomme?


>
> Alternativ gar nicht :), man kann ja on und off direkt im regexp angeben:
> define WakeUpOff notify WakeUp:off { ...
> define WakeUpOn notify WakeUp:on { ...
>

Rudolf Koenig

unread,
Jun 21, 2011, 10:47:08 AM6/21/11
to fhem-...@googlegroups.com
On Tue, Jun 21, 2011 at 04:02:54PM +0200, Arne Lochter wrote:
> das funktioniert leider so nicht. habe folgendes versucht, aber immer kommt ein "dim100on" dabei raus:

Klar, % wird durch "on" oder "off" ersetzt. Falls man wirklich % haben will,
dann muss man %% schreiben. Das gleiche gilt fuer @. Siehe auch
http://fhem.de/commandref.html#notify

Arne Lochter

unread,
Jun 21, 2011, 11:08:23 AM6/21/11
to fhem-...@googlegroups.com
Na super, jetzt wo ich alle Scripte fertig habe;-)))))

Trotzdem vielen Dank.

Arne

fhem-fighter

unread,
Jun 22, 2011, 4:09:22 AM6/22/11
to FHEM users
Eine Frage noch: Wie kann ich denn eine Lampe von 100% auf Null
dimmen? Gibt es da auch schon einen Befehl? Wäre doch nett als
Einschlaflicht für das Kindchen;-)

Gruss,
Arne

Arne Lochter

unread,
Jun 22, 2011, 4:43:38 AM6/22/11
to fhem-...@googlegroups.com
Ich habe da noch etwas gefunden, was sich gut anhört, aber so ganz verstehe ich die Funktion noch nicht:

ramp-on-time 
ramp-off-time

Wie nutzt man das richtig? Ich habe festgestellt, dass nach einem "set Lampe1 ramp-off-time 10"
dann z.B. bei einem Off der Lampe1 immer ein Dimmen in 10 Sekunden stattfindet. Das möchte ich
eigentlich nicht. Ich möchte einen Timer setzen, der nur zum Einschlafen die "ramp-off-time"
Funktion nutzt.

Jörg71

unread,
Jun 22, 2011, 1:17:46 PM6/22/11
to FHEM users
Langsam runterdimmen funktioniert genauso:
set Lampe off 20

Vorher muss die Lampe natürlich an sein...

ramp-xx-time ist nur zum programmieren
der Timer im Dimmer.

Tschüs,

Jörg

Arne Lochter

unread,
Jun 22, 2011, 1:38:04 PM6/22/11
to fhem-...@googlegroups.com
Hallo Jörg,

also bei mir tut sich da absolut gar nichts.
Der Befehl wird zwar angenommen, aber die Lampe geht nicht aus.

Gruss,
Arne

Jörg71

unread,
Jun 22, 2011, 2:38:59 PM6/22/11
to FHEM users
> also bei mir tut sich da absolut gar nichts.
> Der Befehl wird zwar angenommen, aber die Lampe geht nicht aus.

Keine Ahnung, bei mir funktioniert es mit einem FS20DU und einem
FS20 Steckdosendimmer. Allerdings habe ich bei beiden eine
ramp-on und ramp-off von jeweils einer Sekunde programmiert.
(Damit das Licht sanfter an und aus geht.)

Tschüs,

Jörg

Arne Lochter

unread,
Jun 22, 2011, 3:21:24 PM6/22/11
to fhem-...@googlegroups.com
Hi,

ich habe den Steckdosendimmer 

Funk-Dimmer FS20 DI-4, Phasenanschnittdimmer


Jetzt mit ramp-on und ramp-off von 1 Sek. tut sich leider auch nichts bei

set Lamp1 off 20

Sehr schade, trotzdem danke.

Gruss,
Arne



Jörg71

unread,
Jun 22, 2011, 4:00:39 PM6/22/11
to FHEM users
> Funk-Dimmer FS20 DI-4, Phasenanschnittdimmer

Sehr seltsam, genau den habe ich auch.

Jetzt tippe ich mal darauf, daß Du nicht das aktuellste 10_FS20.pm
hast, denn die letzten Änderungen bezog sich offenbar darauf:
"Fix of the Fix of the Fix. Hopefully the last timed dimmer command
fix"
http://cvs.berlios.de/cgi-bin/viewvc.cgi/fhem/fhem/FHEM/10_FS20.pm?sortby=date&view=log

Sonst könnte es höchstens noch an der Firmware des CUL/CUN/CUNO
liegen...

Tschüs,

Jörg

Arne Lochter

unread,
Jun 22, 2011, 4:14:53 PM6/22/11
to fhem-...@googlegroups.com
Danke für den Tip. Ist nicht schlimm, ich habe mir gerade ein Shell-Script geschrieben, das funzt;-)
Wen es interessiert, bitteschön.

#!/bin/sh

check1=`/volume1/@appstore/fhem/fhem/fhem.pl 7072 "list LillifeeDI state" | awk '{print $4}'`

if /usr/bin/test "$check1" != "off"; then
/volume1/@appstore/fhem/fhem/fhem.pl 7072 "set LillifeeDI dim100%"
sleep 1
/volume1/@appstore/fhem/fhem/fhem.pl 7072 "set LillifeeDI dim93%"
sleep 1
/volume1/@appstore/fhem/fhem/fhem.pl 7072 "set LillifeeDI dim87%"
sleep 1
/volume1/@appstore/fhem/fhem/fhem.pl 7072 "set LillifeeDI dim81%"
sleep 1
/volume1/@appstore/fhem/fhem/fhem.pl 7072 "set LillifeeDI dim75%"
sleep 1
/volume1/@appstore/fhem/fhem/fhem.pl 7072 "set LillifeeDI dim68%"
sleep 1
/volume1/@appstore/fhem/fhem/fhem.pl 7072 "set LillifeeDI dim62%"
sleep 1
/volume1/@appstore/fhem/fhem/fhem.pl 7072 "set LillifeeDI dim56%"
sleep 5
/volume1/@appstore/fhem/fhem/fhem.pl 7072 "set LillifeeDI dim50%"
sleep 1
/volume1/@appstore/fhem/fhem/fhem.pl 7072 "set LillifeeDI dim43%"
sleep 1
/volume1/@appstore/fhem/fhem/fhem.pl 7072 "set LillifeeDI dim37%"
sleep 1
/volume1/@appstore/fhem/fhem/fhem.pl 7072 "set LillifeeDI dim31%"
sleep 1
/volume1/@appstore/fhem/fhem/fhem.pl 7072 "set LillifeeDI dim25%"
sleep 1
/volume1/@appstore/fhem/fhem/fhem.pl 7072 "set LillifeeDI dim18%"
sleep 1
/volume1/@appstore/fhem/fhem/fhem.pl 7072 "set LillifeeDI dim12%"
sleep 1
/volume1/@appstore/fhem/fhem/fhem.pl 7072 "set LillifeeDI dim06%"
sleep 1
/volume1/@appstore/fhem/fhem/fhem.pl 7072 "set LillifeeDI off"
fi

Jörg71

unread,
Jun 23, 2011, 9:22:57 AM6/23/11
to FHEM users
On 22 Jun., 22:14, Arne Lochter <aloch...@googlemail.com> wrote:
> Danke für den Tip. Ist nicht schlimm, ich habe mir gerade ein Shell-Script geschrieben, das funzt;-)
> Wen es interessiert, bitteschön.

Also das hat mir ja jetzt keine Ruhe gelassen.
Für alle anderen, die einen Fehler lieber beheben als ein workaround
zu bauen,
hier die Auflösung:

Mit allen Versionen die älter als die aktuelle CVS-Version vom
27.12.10
(1.28, Link siehe mein letztes Posting) funktioniert zwar das
raufdimmen,
aber nicht das runterdimmen auf Zeit.

Tschüs und noch einen schönen Feiertag,

Jörg

Arne Lochter

unread,
Jun 23, 2011, 4:33:44 PM6/23/11
to fhem-...@googlegroups.com
Kann ich bestätigen, geht mit dieser Version tatsächlich. Habe mein Script nun auch noch etwas angepasst. Ist ja wirklich schöner so;-)

Danke.

Arne

UliM

unread,
Jul 9, 2011, 4:27:00 AM7/9/11
to FHEM users


On 21 Jun., 12:32, Jörg71 <j...@gmx.de> wrote:
> On 20 Jun., 23:52, UliM <uli.ma...@googlemail.com> wrote:
>
> > Mit dem modify setzt man aber leider nicht nur die Zeit, sondern den
> > gesamten at-Befehl um.
> > Man muesste also
> >    modifywakeupat *09:00 set LichtSchlafzimmer dim100% 1200
> > eintippen, das ist leider zu lang.
>
> Das stimmt nicht! Es funktioniert so wie ich es beschrieben habe!
> Siehe auch:http://fhem.de/commandref.html#modify
>
> Tschüs,
>
> Jörg

Hi,
so, nun komme ich endlcih auch mal zu diesem Thema.
@Jörg: Muss mich bei Dir entschuldigen, Du hast Recht. Als ich das
'seinerzeit' probiert hab, ist der gesamte perl-code nach dem at-
command im Nirvana verschwunden, nur die erste öffnende { blieb übrig.
Muss aber wohl an was anderem gelegen haben.

Hier also der letzte Stand meiner Wakeuplight-Variante (ohne shell-
script):

define wakeup at *07:10:00 {\
if ((!$we) and (Value("HomeStatus") < 4) )\
{fhem("define wakeupOff at +00:40:00 set sz_Leselampe off") };;\
{fhem("set sz_Leselampe dim100% 1200") };;\
}

Aktuell kämpfe ich mit dem Nenbenkriegschauplatz "holiday2we", für das
mir offenbar noch DateTime::Event::Easter fehlt, ich aber nicht weiss,
wie man's runterlädt. Überall steht was von cpan, dieser Befehl bringt
bei mir aber auf allen 3 Ebenen (Linux, Perl, fhem) ne Fehlermeldung.
Laut Rudi müsste AVM DateTime::Event::Easter in die Distribution
aufnehmen, auch die Aufnahme von cpan in die AVM-operl-Distribution
ist nun angefragt. Mal schauen wie das feedback ausschaut.
Habe jetzt erstmal alle Oster-bezogenenen Feiertage aus meiner holiday-
Datei auskommentiert.
Ml schauen wie's weitergeht.
Grüßle, Uli

UliM

unread,
Jul 20, 2011, 4:18:51 PM7/20/11
to FHEM users
Hi,
Wiki verfasst: http://fhemwiki.de/index.php/Wakeuplight

fyi: AVM ist dabei, das DateTime::Event::Easter -Modul in den Umfang
zukünftiger AVM-fhem-Distributionen aufzunehmen.

Gruß, Uli
Reply all
Reply to author
Forward
0 new messages