FHEM Forum

FHEM => fhem-users => Thema gestartet von: LaLeLu am 15 Januar 2012, 17:06:56

Titel: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: LaLeLu am 15 Januar 2012, 17:06:56
                                                       

Hi fhem-Kundige,

an meiner FritzBox 7390 läuft ein FritzBox!Fon. Ich nutze den Wecker
der FritzBox. Die Weckzeit kann ich am Telefon und im Browser
einstellen. Soweit, sogut.

Nun stelle ich aber auch über fhem 10 Minuten vorher das Radio und
Licht an.

Nun zu meiner Idee:

Ich möchte gerne in fhem (webpgm2) die Weckzeit der FritzBox anzeigen
und einstellen können. Dazu muss ich meiner Meinung nach:

1. Die in der FritzBox eingestellte Weckzeit auslesen können.
2. Die ausgelesene Zeit in webpgm2 anzeigen können.
3. Die angezeigte Uhrzeit editieren können.
4. Die editierte Uhrzeit als neue Weckzeit in der FritzBox einstellen
und
5. den Timer in fhem 10 Minuten früher starten lassen.

Hat jemand schon mal so etwas realisiert oder könnt Ihr mir für Teile
einen Tipp geben?
Trotz Suche finde ich keine Tipps für mein Anliegen. Vielleicht könnt
Ihr helfen.

Danke und Gruss
LaLeLu

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: AW: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 15 Januar 2012, 17:34:28
Originally posted by: <email address deleted>

Warum lässt Du nicht einfach Dein Telefon zur Weckzeit von fhem anrufen ?
Peter Maier hat dazu das Notwendige unter dem Betreff " FB 7390:
Benachrichtigung wenn Sensor auslöst, per Anruf und/oder VDR OSD Meldung"
veröffentlicht.


Ignisquivir

Fritz!Box 7390 (84.05.07-21400 ), Fhem 5.2 – 7390 SVN, 2xCUL V 1.44 CUL868,
2xHM-LC-Sw4-SM, 1xHM-LCSw1-FM, KS300




--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: LaLeLu am 15 Januar 2012, 18:20:20
                                                       

Ja danke, das ist durchaus eine Möglichkeit.

- Ich kann so die Weckzeit nicht am Telefon einstellen.

- Wie stelle ich komfortabel die Uhrzeit über fhem ein? Ich stelle wir
das in etwa so vor, wie ich auch bei einen Dimmer über set die
Helligkeit einstellen kann. Dies wäre überhaupt für alle
zeitgesteuerten Aktionen eine schöne Option der Eingabe. Gibt es dazu
nichts? Laienhaft könnte ich mir z.B. ein Dummy-Device vorstellen,
dass nur zur Speicherung einer Uhrzeit dient.

LaLeLu

On 15 Jan., 17:34, ignisquivir wrote:
> Warum lässt Du nicht einfach Dein Telefon zur Weckzeit von fhem anrufen ?
> Peter Maier hat dazu das Notwendige unter dem Betreff " FB 7390:
> Benachrichtigung wenn Sensor auslöst, per Anruf und/oder VDR OSD Meldung"
> veröffentlicht.
>
> Ignisquivir
>
> Fritz!Box 7390 (84.05.07-21400 ), Fhem 5.2 – 7390 SVN, 2xCUL V 1.44 CUL868,
> 2xHM-LC-Sw4-SM, 1xHM-LCSw1-FM, KS300

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 08 März 2012, 09:45:35
Originally posted by: <email address deleted>

Hallo,

ich würde auch gern den Wecker der FritzBox als "Schalter" benutzen und
damit eine Pumpe anschalten, hat niemand eine Idee?

ich komme nicht so recht weiter, letztendlich scheint mir der Wecker nichts
anderes als ein (spezieller) Anruf von der FritzBox zu einem bestimmten
Telefon zu einer festgelegten Zeit zu sein

Grüße,

David

Am Sonntag, 15. Januar 2012 17:06:56 UTC+1 schrieb LaLeLu:
>
> Hi fhem-Kundige,
>
> an meiner FritzBox 7390 läuft ein FritzBox!Fon. Ich nutze den Wecker
> der FritzBox. Die Weckzeit kann ich am Telefon und im Browser
> einstellen. Soweit, sogut.
>
> Nun stelle ich aber auch über fhem 10 Minuten vorher das Radio und
> Licht an.
>
> Nun zu meiner Idee:
>
> Ich möchte gerne in fhem (webpgm2) die Weckzeit der FritzBox anzeigen
> und einstellen können. Dazu muss ich meiner Meinung nach:
>
> 1. Die in der FritzBox eingestellte Weckzeit auslesen können.
> 2. Die ausgelesene Zeit in webpgm2 anzeigen können.
> 3. Die angezeigte Uhrzeit editieren können.
> 4. Die editierte Uhrzeit als neue Weckzeit in der FritzBox einstellen
> und
> 5. den Timer in fhem 10 Minuten früher starten lassen.
>
> Hat jemand schon mal so etwas realisiert oder könnt Ihr mir für Teile
> einen Tipp geben?
> Trotz Suche finde ich keine Tipps für mein Anliegen. Vielleicht könnt
> Ihr helfen.
>
> Danke und Gruss
> LaLeLu
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 08 März 2012, 19:49:54
Originally posted by: <email address deleted>

Hi David!
Gibt es einen speziellen Grund dafür, dass man das nicht gleich in fhem
macht?

Am Donnerstag, 8. März 2012 09:45:35 UTC+1 schrieb David:
>
> Hallo,
>
> ich würde auch gern den Wecker der FritzBox als "Schalter" benutzen und
> damit eine Pumpe anschalten, hat niemand eine Idee?
>
> ich komme nicht so recht weiter, letztendlich scheint mir der Wecker
> nichts anderes als ein (spezieller) Anruf von der FritzBox zu einem
> bestimmten Telefon zu einer festgelegten Zeit zu sein
>
> Grüße,
>
> David
>
> Am Sonntag, 15. Januar 2012 17:06:56 UTC+1 schrieb LaLeLu:
>>
>> Hi fhem-Kundige,
>>
>> an meiner FritzBox 7390 läuft ein FritzBox!Fon. Ich nutze den Wecker
>> der FritzBox. Die Weckzeit kann ich am Telefon und im Browser
>> einstellen. Soweit, sogut.
>>
>> Nun stelle ich aber auch über fhem 10 Minuten vorher das Radio und
>> Licht an.
>>
>> Nun zu meiner Idee:
>>
>> Ich möchte gerne in fhem (webpgm2) die Weckzeit der FritzBox anzeigen
>> und einstellen können. Dazu muss ich meiner Meinung nach:
>>
>> 1. Die in der FritzBox eingestellte Weckzeit auslesen können.
>> 2. Die ausgelesene Zeit in webpgm2 anzeigen können.
>> 3. Die angezeigte Uhrzeit editieren können.
>> 4. Die editierte Uhrzeit als neue Weckzeit in der FritzBox einstellen
>> und
>> 5. den Timer in fhem 10 Minuten früher starten lassen.
>>
>> Hat jemand schon mal so etwas realisiert oder könnt Ihr mir für Teile
>> einen Tipp geben?
>> Trotz Suche finde ich keine Tipps für mein Anliegen. Vielleicht könnt
>> Ihr helfen.
>>
>> Danke und Gruss
>> LaLeLu
>>
>>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Puschel74 am 08 März 2012, 19:55:37
                                               

Du kannst doch in fhem einen "Wecker" definieren der dir eine Pumpe
einschaltet.

Grüße

On 8 Mrz., 19:49, ilmtuelp0815 wrote:
> Hi David!
> Gibt es einen speziellen Grund dafür, dass man das nicht gleich in fhem
> macht?
>
> Am Donnerstag, 8. März 2012 09:45:35 UTC+1 schrieb David:
>
>
>
>
>
>
>
>
>
> > Hallo,
>
> > ich würde auch gern den Wecker der FritzBox als "Schalter" benutzen und
> > damit eine Pumpe anschalten, hat niemand eine Idee?
>
> > ich komme nicht so recht weiter, letztendlich scheint mir der Wecker
> > nichts anderes als ein (spezieller) Anruf von der FritzBox zu einem
> > bestimmten Telefon zu einer festgelegten Zeit zu sein
>
> > Grüße,
>
> > David
>
> > Am Sonntag, 15. Januar 2012 17:06:56 UTC+1 schrieb LaLeLu:
>
> >> Hi fhem-Kundige,
>
> >> an meiner FritzBox 7390 läuft ein FritzBox!Fon. Ich nutze den Wecker
> >> der FritzBox. Die Weckzeit kann ich am Telefon und im Browser
> >> einstellen. Soweit, sogut.
>
> >> Nun stelle ich aber auch über fhem 10 Minuten vorher das Radio und
> >> Licht an.
>
> >> Nun zu meiner Idee:
>
> >> Ich möchte gerne in fhem (webpgm2) die Weckzeit der FritzBox anzeigen
> >> und einstellen können. Dazu muss ich meiner Meinung nach:
>
> >> 1. Die in der FritzBox eingestellte Weckzeit auslesen können.
> >> 2. Die ausgelesene Zeit in webpgm2 anzeigen können.
> >> 3. Die angezeigte Uhrzeit editieren können.
> >> 4. Die editierte Uhrzeit als neue Weckzeit in der FritzBox einstellen
> >> und
> >> 5. den Timer in fhem 10 Minuten früher starten lassen.
>
> >> Hat jemand schon mal so etwas realisiert oder könnt Ihr mir für Teile
> >> einen Tipp geben?
> >> Trotz Suche finde ich keine Tipps für mein Anliegen. Vielleicht könnt
> >> Ihr helfen.
>
> >> Danke und Gruss
> >> LaLeLu

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 08 März 2012, 20:58:38
Originally posted by: <email address deleted>

klar kann ich das, aber der Wecker der Fritzbox wird von meiner Frau jeden
Abend per FritzFon neu gestellt (sie arbeitet im Schichtdienst, aber
unregelmäßig)

der Trigger vom Wecker wäre eben ca. 5 min eher (Snooze) als der erste
Bewegungsmelder ansprechen würde, ich trigger auch auf den Lichtschalter im
Treppenhaus, auch der ist zu spät, die Zirkulationspumpe ist etwas zu
schwach ausgelegt

es wäre wenig praktikabel immer einen zweiten Wecker zu stellen und es ist
ja einfach auch nicht einzusehen, daß die Daten im selben Gerät nicht
abzugreifen sind :-)

ich forsche weiter!

Danke für eure Antworten,

David






Am Donnerstag, 8. März 2012 19:55:37 UTC+1 schrieb puschel74:
>
> Du kannst doch in fhem einen "Wecker" definieren der dir eine Pumpe
> einschaltet.
>
> Grüße
>
> On 8 Mrz., 19:49, ilmtuelp0815 wrote:
> > Hi David!
> > Gibt es einen speziellen Grund dafür, dass man das nicht gleich in fhem
> > macht?
> >
> > Am Donnerstag, 8. März 2012 09:45:35 UTC+1 schrieb David:
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > > Hallo,
> >
> > > ich würde auch gern den Wecker der FritzBox als "Schalter" benutzen
> und
> > > damit eine Pumpe anschalten, hat niemand eine Idee?
> >
> > > ich komme nicht so recht weiter, letztendlich scheint mir der Wecker
> > > nichts anderes als ein (spezieller) Anruf von der FritzBox zu einem
> > > bestimmten Telefon zu einer festgelegten Zeit zu sein
> >
> > > Grüße,
> >
> > > David
> >
> > > Am Sonntag, 15. Januar 2012 17:06:56 UTC+1 schrieb LaLeLu:
> >
> > >> Hi fhem-Kundige,
> >
> > >> an meiner FritzBox 7390 läuft ein FritzBox!Fon. Ich nutze den Wecker
> > >> der FritzBox. Die Weckzeit kann ich am Telefon und im Browser
> > >> einstellen. Soweit, sogut.
> >
> > >> Nun stelle ich aber auch über fhem 10 Minuten vorher das Radio und
> > >> Licht an.
> >
> > >> Nun zu meiner Idee:
> >
> > >> Ich möchte gerne in fhem (webpgm2) die Weckzeit der FritzBox anzeigen
> > >> und einstellen können. Dazu muss ich meiner Meinung nach:
> >
> > >> 1. Die in der FritzBox eingestellte Weckzeit auslesen können.
> > >> 2. Die ausgelesene Zeit in webpgm2 anzeigen können.
> > >> 3. Die angezeigte Uhrzeit editieren können.
> > >> 4. Die editierte Uhrzeit als neue Weckzeit in der FritzBox einstellen
> > >> und
> > >> 5. den Timer in fhem 10 Minuten früher starten lassen.
> >
> > >> Hat jemand schon mal so etwas realisiert oder könnt Ihr mir für Teile
> > >> einen Tipp geben?
> > >> Trotz Suche finde ich keine Tipps für mein Anliegen. Vielleicht könnt
> > >> Ihr helfen.
> >
> > >> Danke und Gruss
> > >> LaLeLu

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 09 März 2012, 15:55:59
Originally posted by: <email address deleted>

Mit dem Callmonitor auf der Fritzbox könnte man per Nummerneingabe am
Telefon (egal ob Fritzfon oder irgendeins) eine WEckzeit stellen (also
nicht den richtigen FB-Wecker) ... vom Callmonitor wird ein Script
ausgelöst, was dnan auch was in FHEM absetzen könnte.

Ich nutze das bei mir auch, dabei löst das Einstellen der WEckzeit
gleichzeitig aus, dass man jetzt schlafen geht (da wird alles mögliche
ausgeschaltet, vorher wird auf dem, falls noch laufenden, Fernseher nochmal
die gespeicherte Weckzeit angezeigt.


Am Donnerstag, 8. März 2012 20:58:38 UTC+1 schrieb David:
>
> klar kann ich das, aber der Wecker der Fritzbox wird von meiner Frau jeden
> Abend per FritzFon neu gestellt (sie arbeitet im Schichtdienst, aber
> unregelmäßig)
>
> der Trigger vom Wecker wäre eben ca. 5 min eher (Snooze) als der erste
> Bewegungsmelder ansprechen würde, ich trigger auch auf den Lichtschalter im
> Treppenhaus, auch der ist zu spät, die Zirkulationspumpe ist etwas zu
> schwach ausgelegt
>
> es wäre wenig praktikabel immer einen zweiten Wecker zu stellen und es ist
> ja einfach auch nicht einzusehen, daß die Daten im selben Gerät nicht
> abzugreifen sind :-)
>
> ich forsche weiter!
>
> Danke für eure Antworten,
>
> David
>
>
>
>
>
>
> Am Donnerstag, 8. März 2012 19:55:37 UTC+1 schrieb puschel74:
>>
>> Du kannst doch in fhem einen "Wecker" definieren der dir eine Pumpe
>> einschaltet.
>>
>> Grüße
>>
>> On 8 Mrz., 19:49, ilmtuelp0815 wrote:
>> > Hi David!
>> > Gibt es einen speziellen Grund dafür, dass man das nicht gleich in fhem
>> > macht?
>> >
>> > Am Donnerstag, 8. März 2012 09:45:35 UTC+1 schrieb David:
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > > Hallo,
>> >
>> > > ich würde auch gern den Wecker der FritzBox als "Schalter" benutzen
>> und
>> > > damit eine Pumpe anschalten, hat niemand eine Idee?
>> >
>> > > ich komme nicht so recht weiter, letztendlich scheint mir der Wecker
>> > > nichts anderes als ein (spezieller) Anruf von der FritzBox zu einem
>> > > bestimmten Telefon zu einer festgelegten Zeit zu sein
>> >
>> > > Grüße,
>> >
>> > > David
>> >
>> > > Am Sonntag, 15. Januar 2012 17:06:56 UTC+1 schrieb LaLeLu:
>> >
>> > >> Hi fhem-Kundige,
>> >
>> > >> an meiner FritzBox 7390 läuft ein FritzBox!Fon. Ich nutze den Wecker
>> > >> der FritzBox. Die Weckzeit kann ich am Telefon und im Browser
>> > >> einstellen. Soweit, sogut.
>> >
>> > >> Nun stelle ich aber auch über fhem 10 Minuten vorher das Radio und
>> > >> Licht an.
>> >
>> > >> Nun zu meiner Idee:
>> >
>> > >> Ich möchte gerne in fhem (webpgm2) die Weckzeit der FritzBox
>> anzeigen
>> > >> und einstellen können. Dazu muss ich meiner Meinung nach:
>> >
>> > >> 1. Die in der FritzBox eingestellte Weckzeit auslesen können.
>> > >> 2. Die ausgelesene Zeit in webpgm2 anzeigen können.
>> > >> 3. Die angezeigte Uhrzeit editieren können.
>> > >> 4. Die editierte Uhrzeit als neue Weckzeit in der FritzBox
>> einstellen
>> > >> und
>> > >> 5. den Timer in fhem 10 Minuten früher starten lassen.
>> >
>> > >> Hat jemand schon mal so etwas realisiert oder könnt Ihr mir für
>> Teile
>> > >> einen Tipp geben?
>> > >> Trotz Suche finde ich keine Tipps für mein Anliegen. Vielleicht
>> könnt
>> > >> Ihr helfen.
>> >
>> > >> Danke und Gruss
>> > >> LaLeLu
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 24 März 2012, 19:31:52
Originally posted by: <email address deleted>

Am Sonntag, 15. Januar 2012 17:06:56 UTC+1 schrieb LaLeLu:
>
> Hi fhem-Kundige,
>
> an meiner FritzBox 7390 läuft ein FritzBox!Fon. Ich nutze den Wecker
> der FritzBox. Die Weckzeit kann ich am Telefon und im Browser
> einstellen. Soweit, sogut.
>
> Nun stelle ich aber auch über fhem 10 Minuten vorher das Radio und
> Licht an.
>
> Nun zu meiner Idee:
>
> Ich möchte gerne in fhem (webpgm2) die Weckzeit der FritzBox anzeigen
> und einstellen können. Dazu muss ich meiner Meinung nach:
>
> 1. Die in der FritzBox eingestellte Weckzeit auslesen können.
> 2. Die ausgelesene Zeit in webpgm2 anzeigen können.
> 3. Die angezeigte Uhrzeit editieren können.
> 4. Die editierte Uhrzeit als neue Weckzeit in der FritzBox einstellen
> und
> 5. den Timer in fhem 10 Minuten früher starten lassen.
>
> Hat jemand schon mal so etwas realisiert oder könnt Ihr mir für Teile
> einen Tipp geben?
> Trotz Suche finde ich keine Tipps für mein Anliegen. Vielleicht könnt
> Ihr helfen.
>
> Danke und Gruss
> LaLeLu
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 24 März 2012, 19:32:24
Originally posted by: <email address deleted>

Nach den Antworten die keine waren mußte ich selbst aktiv werden. Die
Lösung sind folgende Befehle in der shell:

für die Weckzeit, Antwort ist so etwas wie "0635" für 6:35 Uhr
ctlmgr_ctl r telcfg settings/AlarmClock0/Time

ob der Wecker aktiv zeigt sich hier mit 0 bzw. 1:
ctlmgr_ctl r telcfg settings/AlarmClock0/Active

keine Ahnung, was das ist:
ctlmgr_ctl r telcfg settings/AlarmClock0/Number

die Wochentage:
ctlmgr_ctl r telcfg settings/AlarmClock0/Weekdays


AlarmClock0 ist übrigens der 1. Wecker, der 2. wird AlarmClock1 sein, usw,

nun muß ich nur noch aus "0635" eine fhem kompatible Zeit machen (, hat da
jemand was zum abgucken?) und das Problem ist gelöst


Grüße,

David




Am Freitag, 9. März 2012 15:55:59 UTC+1 schrieb unimatrix:
>
> Mit dem Callmonitor auf der Fritzbox könnte man per Nummerneingabe am
> Telefon (egal ob Fritzfon oder irgendeins) eine WEckzeit stellen (also
> nicht den richtigen FB-Wecker) ... vom Callmonitor wird ein Script
> ausgelöst, was dnan auch was in FHEM absetzen könnte.
>
> Ich nutze das bei mir auch, dabei löst das Einstellen der WEckzeit
> gleichzeitig aus, dass man jetzt schlafen geht (da wird alles mögliche
> ausgeschaltet, vorher wird auf dem, falls noch laufenden, Fernseher nochmal
> die gespeicherte Weckzeit angezeigt.
>
>
> Am Donnerstag, 8. März 2012 20:58:38 UTC+1 schrieb David:
>>
>> klar kann ich das, aber der Wecker der Fritzbox wird von meiner Frau
>> jeden Abend per FritzFon neu gestellt (sie arbeitet im Schichtdienst, aber
>> unregelmäßig)
>>
>> der Trigger vom Wecker wäre eben ca. 5 min eher (Snooze) als der erste
>> Bewegungsmelder ansprechen würde, ich trigger auch auf den Lichtschalter im
>> Treppenhaus, auch der ist zu spät, die Zirkulationspumpe ist etwas zu
>> schwach ausgelegt
>>
>> es wäre wenig praktikabel immer einen zweiten Wecker zu stellen und es
>> ist ja einfach auch nicht einzusehen, daß die Daten im selben Gerät nicht
>> abzugreifen sind :-)
>>
>> ich forsche weiter!
>>
>> Danke für eure Antworten,
>>
>> David
>>
>>
>>
>>
>>
>>
>> Am Donnerstag, 8. März 2012 19:55:37 UTC+1 schrieb puschel74:
>>>
>>> Du kannst doch in fhem einen "Wecker" definieren der dir eine Pumpe
>>> einschaltet.
>>>
>>> Grüße
>>>
>>> On 8 Mrz., 19:49, ilmtuelp0815 wrote:
>>> > Hi David!
>>> > Gibt es einen speziellen Grund dafür, dass man das nicht gleich in
>>> fhem
>>> > macht?
>>> >
>>> > Am Donnerstag, 8. März 2012 09:45:35 UTC+1 schrieb David:
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > > Hallo,
>>> >
>>> > > ich würde auch gern den Wecker der FritzBox als "Schalter" benutzen
>>> und
>>> > > damit eine Pumpe anschalten, hat niemand eine Idee?
>>> >
>>> > > ich komme nicht so recht weiter, letztendlich scheint mir der Wecker
>>> > > nichts anderes als ein (spezieller) Anruf von der FritzBox zu einem
>>> > > bestimmten Telefon zu einer festgelegten Zeit zu sein
>>> >
>>> > > Grüße,
>>> >
>>> > > David
>>> >
>>> > > Am Sonntag, 15. Januar 2012 17:06:56 UTC+1 schrieb LaLeLu:
>>> >
>>> > >> Hi fhem-Kundige,
>>> >
>>> > >> an meiner FritzBox 7390 läuft ein FritzBox!Fon. Ich nutze den
>>> Wecker
>>> > >> der FritzBox. Die Weckzeit kann ich am Telefon und im Browser
>>> > >> einstellen. Soweit, sogut.
>>> >
>>> > >> Nun stelle ich aber auch über fhem 10 Minuten vorher das Radio und
>>> > >> Licht an.
>>> >
>>> > >> Nun zu meiner Idee:
>>> >
>>> > >> Ich möchte gerne in fhem (webpgm2) die Weckzeit der FritzBox
>>> anzeigen
>>> > >> und einstellen können. Dazu muss ich meiner Meinung nach:
>>> >
>>> > >> 1. Die in der FritzBox eingestellte Weckzeit auslesen können.
>>> > >> 2. Die ausgelesene Zeit in webpgm2 anzeigen können.
>>> > >> 3. Die angezeigte Uhrzeit editieren können.
>>> > >> 4. Die editierte Uhrzeit als neue Weckzeit in der FritzBox
>>> einstellen
>>> > >> und
>>> > >> 5. den Timer in fhem 10 Minuten früher starten lassen.
>>> >
>>> > >> Hat jemand schon mal so etwas realisiert oder könnt Ihr mir für
>>> Teile
>>> > >> einen Tipp geben?
>>> > >> Trotz Suche finde ich keine Tipps für mein Anliegen. Vielleicht
>>> könnt
>>> > >> Ihr helfen.
>>> >
>>> > >> Danke und Gruss
>>> > >> LaLeLu
>>
>>
Am Freitag, 9. März 2012 15:55:59 UTC+1 schrieb unimatrix:
>
> Mit dem Callmonitor auf der Fritzbox könnte man per Nummerneingabe am
> Telefon (egal ob Fritzfon oder irgendeins) eine WEckzeit stellen (also
> nicht den richtigen FB-Wecker) ... vom Callmonitor wird ein Script
> ausgelöst, was dnan auch was in FHEM absetzen könnte.
>
> Ich nutze das bei mir auch, dabei löst das Einstellen der WEckzeit
> gleichzeitig aus, dass man jetzt schlafen geht (da wird alles mögliche
> ausgeschaltet, vorher wird auf dem, falls noch laufenden, Fernseher nochmal
> die gespeicherte Weckzeit angezeigt.
>
>
> Am Donnerstag, 8. März 2012 20:58:38 UTC+1 schrieb David:
>>
>> klar kann ich das, aber der Wecker der Fritzbox wird von meiner Frau
>> jeden Abend per FritzFon neu gestellt (sie arbeitet im Schichtdienst, aber
>> unregelmäßig)
>>
>> der Trigger vom Wecker wäre eben ca. 5 min eher (Snooze) als der erste
>> Bewegungsmelder ansprechen würde, ich trigger auch auf den Lichtschalter im
>> Treppenhaus, auch der ist zu spät, die Zirkulationspumpe ist etwas zu
>> schwach ausgelegt
>>
>> es wäre wenig praktikabel immer einen zweiten Wecker zu stellen und es
>> ist ja einfach auch nicht einzusehen, daß die Daten im selben Gerät nicht
>> abzugreifen sind :-)
>>
>> ich forsche weiter!
>>
>> Danke für eure Antworten,
>>
>> David
>>
>>
>>
>>
>>
>>
>> Am Donnerstag, 8. März 2012 19:55:37 UTC+1 schrieb puschel74:
>>>
>>> Du kannst doch in fhem einen "Wecker" definieren der dir eine Pumpe
>>> einschaltet.
>>>
>>> Grüße
>>>
>>> On 8 Mrz., 19:49, ilmtuelp0815 wrote:
>>> > Hi David!
>>> > Gibt es einen speziellen Grund dafür, dass man das nicht gleich in
>>> fhem
>>> > macht?
>>> >
>>> > Am Donnerstag, 8. März 2012 09:45:35 UTC+1 schrieb David:
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > > Hallo,
>>> >
>>> > > ich würde auch gern den Wecker der FritzBox als "Schalter" benutzen
>>> und
>>> > > damit eine Pumpe anschalten, hat niemand eine Idee?
>>> >
>>> > > ich komme nicht so recht weiter, letztendlich scheint mir der Wecker
>>> > > nichts anderes als ein (spezieller) Anruf von der FritzBox zu einem
>>> > > bestimmten Telefon zu einer festgelegten Zeit zu sein
>>> >
>>> > > Grüße,
>>> >
>>> > > David
>>> >
>>> > > Am Sonntag, 15. Januar 2012 17:06:56 UTC+1 schrieb LaLeLu:
>>> >
>>> > >> Hi fhem-Kundige,
>>> >
>>> > >> an meiner FritzBox 7390 läuft ein FritzBox!Fon. Ich nutze den
>>> Wecker
>>> > >> der FritzBox. Die Weckzeit kann ich am Telefon und im Browser
>>> > >> einstellen. Soweit, sogut.
>>> >
>>> > >> Nun stelle ich aber auch über fhem 10 Minuten vorher das Radio und
>>> > >> Licht an.
>>> >
>>> > >> Nun zu meiner Idee:
>>> >
>>> > >> Ich möchte gerne in fhem (webpgm2) die Weckzeit der FritzBox
>>> anzeigen
>>> > >> und einstellen können. Dazu muss ich meiner Meinung nach:
>>> >
>>> > >> 1. Die in der FritzBox eingestellte Weckzeit auslesen können.
>>> > >> 2. Die ausgelesene Zeit in webpgm2 anzeigen können.
>>> > >> 3. Die angezeigte Uhrzeit editieren können.
>>> > >> 4. Die editierte Uhrzeit als neue Weckzeit in der FritzBox
>>> einstellen
>>> > >> und
>>> > >> 5. den Timer in fhem 10 Minuten früher starten lassen.
>>> >
>>> > >> Hat jemand schon mal so etwas realisiert oder könnt Ihr mir für
>>> Teile
>>> > >> einen Tipp geben?
>>> > >> Trotz Suche finde ich keine Tipps für mein Anliegen. Vielleicht
>>> könnt
>>> > >> Ihr helfen.
>>> >
>>> > >> Danke und Gruss
>>> > >> LaLeLu
>>
>>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 24 März 2012, 21:46:08
Originally posted by: <email address deleted>

Hi,
klasse dass Du das rausfinden konntest.
Stellst Du's ins Wiki?
Gruß, Uli

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: jorge am 27 März 2012, 18:46:01
                                         

Tolle Sache, wird bei mir an passender Stelle im Floorplan angezeigt.

ctlmgr_ctl r telcfg settings/AlarmClock0/Number
ist die Nummer, die zum Wecken angerufen wird.

Weiß jemand, wie sich die 'weekdays' enstchlüsseln lassen? Bei mir
erscheinen Zahlen wie 32, 23, 8 für die drei Weckzeiten.

Gruß

Jörg (JWK)

>
> keine Ahnung, was das ist:
> ctlmgr_ctl r telcfg settings/AlarmClock0/Number
>
> die Wochentage:
> ctlmgr_ctl r telcfg settings/AlarmClock0/Weekdays
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: erwin am 28 März 2012, 10:39:03
                                                   

Bin jetzt nicht an der Fritzbox, daher ohne "Gewähr":

Die Zahlen sind "binär"

2**0 = 1 -> Montag
2**1 = 2 -> Dienstag
2**2 = 4 -> Mi
2**3 = 8 -> Do
2**4 = 16 -> Fr.
2**5 = 32 -> Sa.
2**6 = 64 -> So.

wenn du jetzt z.b. Mittwoch und Donnerstag im Alarm hast, dann muss die
Zahl 12 sein....

Wo ich mir jetzt nicht sicher bin ist, ob die Woche mit Montag oder Sonntag
anfängt....

l.g erwin

Am Dienstag, 27. März 2012 18:46:01 UTC+2 schrieb jwk:
>
> Tolle Sache, wird bei mir an passender Stelle im Floorplan angezeigt.
>
> ctlmgr_ctl r telcfg settings/AlarmClock0/Number
> ist die Nummer, die zum Wecken angerufen wird.
>
> Weiß jemand, wie sich die 'weekdays' enstchlüsseln lassen? Bei mir
> erscheinen Zahlen wie 32, 23, 8 für die drei Weckzeiten.
>
> Gruß
>
> Jörg (JWK)
>
> >
> > keine Ahnung, was das ist:
> > ctlmgr_ctl r telcfg settings/AlarmClock0/Number
> >
> > die Wochentage:
> > ctlmgr_ctl r telcfg settings/AlarmClock0/Weekdays
> >

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: jorge am 31 März 2012, 07:22:08
                                         

Hallo Erwin,
Habe empirisch erforscht, dass die Kombination tatsächlich aus
Zweierpotenzen (+1) aufgebaut ist:
1 = Mo
3 = Di
5 = Mi
9 = Do
17 = Fr
33 = Sa
65 = So

Durch Addition der Tageswerte kommt man auf die Tageskombinationen ,
ZB Mo und Di == 4

Es müsste also 127 Kombinationen geben

Gibt es dafür eine Datumsformel in Perl oder Unix? (irgendwie
berechnet AVM das ja auch ... )

Gruß

Jörg


On 28 Mrz., 10:39, Erwin wrote:
> Bin jetzt nicht an der Fritzbox, daher ohne "Gewähr":
>
> Die Zahlen sind "binär"
>
> 2**0 = 1 -> Montag
> 2**1 = 2 -> Dienstag
> 2**2 = 4 -> Mi
> 2**3 = 8 -> Do
> 2**4 = 16 -> Fr.
> 2**5 = 32 -> Sa.
> 2**6 = 64 -> So.
>
> wenn du jetzt z.b. Mittwoch und Donnerstag im Alarm hast, dann muss die
> Zahl 12 sein....
>
> Wo ich mir jetzt nicht sicher bin ist, ob die Woche mit Montag oder Sonntag
> anfängt....
>
> l.g erwin
>
> Am Dienstag, 27. März 2012 18:46:01 UTC+2 schrieb jwk:
>
>
>
>
>
>
>
>
>
> > Tolle Sache, wird bei mir an passender Stelle im Floorplan angezeigt.
>
> > ctlmgr_ctl r telcfg settings/AlarmClock0/Number
> > ist die Nummer, die zum Wecken angerufen wird.
>
> > Weiß jemand, wie sich die 'weekdays' enstchlüsseln lassen? Bei mir
> > erscheinen Zahlen wie 32, 23, 8 für die drei Weckzeiten.
>
> > Gruß
>
> > Jörg (JWK)
>
> > > keine Ahnung, was das ist:
> > > ctlmgr_ctl r telcfg settings/AlarmClock0/Number
>
> > > die Wochentage:
> > > ctlmgr_ctl r telcfg settings/AlarmClock0/Weekdays

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: tiptronic am 31 März 2012, 12:47:03
                                                 

Hi Jörg,

das kann so aber nicht stimmen, denn was wäre dann  z.B. '9'? ;-)

andy



Am 31.03.2012 um 07:22 schrieb jwk:

> Hallo Erwin,
> Habe empirisch erforscht, dass die Kombination tatsächlich aus
> Zweierpotenzen (+1) aufgebaut ist:
> 1 = Mo
> 3 = Di
> 5 = Mi
> 9 = Do
> 17 = Fr
> 33 = Sa
> 65 = So
>
> Durch Addition der Tageswerte kommt man auf die Tageskombinationen ,
> ZB Mo und Di == 4
>
> Es müsste also 127 Kombinationen geben
>
> Gibt es dafür eine Datumsformel in Perl oder Unix? (irgendwie
> berechnet AVM das ja auch ... )
>
> Gruß
>
> Jörg
>
>
> On 28 Mrz., 10:39, Erwin wrote:
>> Bin jetzt nicht an der Fritzbox, daher ohne "Gewähr":
>>
>> Die Zahlen sind "binär"
>>
>> 2**0 = 1 -> Montag
>> 2**1 = 2 -> Dienstag
>> 2**2 = 4 -> Mi
>> 2**3 = 8 -> Do
>> 2**4 = 16 -> Fr.
>> 2**5 = 32 -> Sa.
>> 2**6 = 64 -> So.
>>
>> wenn du jetzt z.b. Mittwoch und Donnerstag im Alarm hast, dann muss die
>> Zahl 12 sein....
>>
>> Wo ich mir jetzt nicht sicher bin ist, ob die Woche mit Montag oder Sonntag
>> anfängt....
>>
>> l.g erwin
>>
>> Am Dienstag, 27. März 2012 18:46:01 UTC+2 schrieb jwk:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>> Tolle Sache, wird bei mir an passender Stelle im Floorplan angezeigt.
>>
>>> ctlmgr_ctl r telcfg settings/AlarmClock0/Number
>>> ist die Nummer, die zum Wecken angerufen wird.
>>
>>> Weiß jemand, wie sich die 'weekdays' enstchlüsseln lassen? Bei mir
>>> erscheinen Zahlen wie 32, 23, 8 für die drei Weckzeiten.
>>
>>> Gruß
>>
>>> Jörg (JWK)
>>
>>>> keine Ahnung, was das ist:
>>>> ctlmgr_ctl r telcfg settings/AlarmClock0/Number
>>
>>>> die Wochentage:
>>>> ctlmgr_ctl r telcfg settings/AlarmClock0/Weekdays
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: borsti67 am 31 März 2012, 14:12:26
                                                 

> das kann so aber nicht stimmen, denn was wäre dann  z.B. '9'? ;-)

wieso nicht, steht doch sogar in der Liste drin?!?

>> Habe empirisch erforscht, dass die Kombination tatsächlich aus
>> Zweierpotenzen (+1) aufgebaut ist:
>> 9 = Do

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Oskar am 02 April 2012, 13:14:19
                                                     

9 wäre Donnerstag oder Mo+Di+Mi: 1+3+5=9.

Wäre zumindest nicht ganz vollständig eindeutig...

Grüße
   Oskar
Am 31.03.2012 um 14:12 schrieb borsti:

>> das kann so aber nicht stimmen, denn was wäre dann  z.B. '9'? ;-)
>
> wieso nicht, steht doch sogar in der Liste drin?!?
>
>>> Habe empirisch erforscht, dass die Kombination tatsächlich aus
>>> Zweierpotenzen (+1) aufgebaut ist:
>>> 9 = Do
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 24 Mai 2012, 08:19:10
Originally posted by: <email address deleted>

Hallo,

ich komme mit der Formatierung der Variable für die Zeit nicht zurecht  und
finde auch nichts dazu. Die Fehlermeldung ist:

the at function "Wecker1" must return a timespec and not Bareword "Wecker1"
not allowed while "strict subs" in use at (eval 19178) line 1, <$fh> line
120.

Ich habe mir die Uhrzeit so gebaut:

...
my $weckzeit= sprintf("%%02d:%%02d:00", $wb, $wc);;\
fhem "set Wecker1 $weckzeit";;\
...

$wb, $wc sind Stunden/Minuten der Weckzeit, die Zeit wird als Dummy auch
korrekt angezeigt, nur beim Aufruf (at) kommt obige Fehlermeldung

(Mit dem Weg über mktime() bin ich auch gescheitert, da gab es ein Problem
mit $mon.)

Was Kann ich tun?


Am Sonntag, 25. März 2012 11:34:38 UTC+2 schrieb unimatrix:
>
> super sache!
>
> die Umrechnung sollte kein Problem sein. Meistens dürfte einen der
> Zeitpunkt des NÄCHSTEN Weck-Events interessieren, man muss also prüfen, ob
> der heute schon vorbei ist oder nicht:
>
> ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime(time);
> # also JETZT
>
> $hh=6;
> $mm=30;
> # als Beispiel für Wecker um 6:30 (musst du entsprechend befüllen)
>
> if($hour>$hh || ($hour==$hh && $min>$mm)){
>   $offset=86400 # (24*60*60)
> }
> # war es heute schon, dann Offset dazu, also der Wecker "klingelt" erst
> morgen wieder
>
> $wecker=(mktime( $sec, $mm, $hh, $mday, $mon, $year))+$offset;
> #Epoch-Zeit des nächsten Weckers ist nun in $wecker
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 16 November 2012, 20:21:41
Originally posted by: <email address deleted>

Hat noch jemand andere Weckerlösungen ? Ich dachte zuerst an eine ipad App, welche, sobald der Alarm scharf geschalten wird, außer Musik auch noch einen Kalendereintrag ( mit 30 min Erinnerung ) erzeugt. Danach könnte man e.g. die  Erinnerungszeit dazu benutzen die Heizung hochzufahren.

Aber ggf. gibt es schon einfachere Lösungen.

Danke
Andreas

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: UliM am 17 November 2012, 10:13:32
                                                 

mit FB-Weckzeit oder ohne?
Ich nutze timeslider, um die Weckzeit zu setzen.
Sehr komfortabel.
=8-)

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 17 November 2012, 13:19:55
Originally posted by: <email address deleted>

Danke für den Tip
( http://www.highspheres.com/products/wakemeup/time_slider.htm)

Der Hintergrund meiner Frage ist, dass ich gerne von einer reinen Uhrzeit
bezogenen Steuerung zu einer mehr personenbezogenen Steuerung  im FHEM
wechseln würde.

Eine mögliches Szenario dabei wäre, dass eine Weckfunktion (auf einem
Tablet ? ) automatisch die Wohnung auf Standby (Nachtmodus)  schaltet
sobald ich die Weckfunktion scharf schalte ( Liege im Bett) , z.B durch ein
"Set all devices off".
Die Weckfunktion selbst könnte ein Kalenderevent sein , incl
Erinnerungsfunktion. Sobald FHEM die Erinnerungsfunktion ( für Wecker = on
) mit notify erkennt , würden sich alle Geräte "Set all devices on".wieder
anschalten, damit die Wohnung "hochgefahren" ist wenn der Wecker klingelt
und ich aufstehe muss.

Damit wäre die "Nachtabschaltung" nicht mehr Uhrzeit-bezogen sondern
Personen-bezogen realisiert.

Gibt es sowas ?

Andreas
P.S: Durch die Zuhause-Erkennung über WLAN, die Google Kalenderfunktion,
die FB Anruferkennung, Twilight Function,... kann man fast alle Ereignisse
von einer Uhrzeit in Personen/Situtions-bezogene Steuerung umstellen.  
     

Am Samstag, 17. November 2012 10:13:32 UTC+1 schrieb UliM:
>
> mit FB-Weckzeit oder ohne?
> Ich nutze timeslider, um die Weckzeit zu setzen.
> Sehr komfortabel.
> =8-)

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: UliM am 17 November 2012, 18:34:21
                                                 

Hi,
siehe http://www.fhemwiki.de/wiki/Zuhause-Status sowie
http://www.fhemwiki.de/wiki/Zuhause-Status_per_WLAN_Anmeldung_(Fritzbox)
und http://www.fhemwiki.de/wiki/Wakeuplight
Evtl gibt Dir das Anregungen :)
Gruß Uli

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: UliM am 17 November 2012, 19:09:39
                                                 

Am Samstag, 17. November 2012 13:19:55 UTC+1 schrieb Andreas Schaller:
>
> Danke für den Tip (
> http://www.highspheres.com/products/wakemeup/time_slider.htm)

Hi, ich meinte timeslider in fhem. Beispiel ist im unteren Teil von  
http://www.fhemwiki.de/wiki/Wakeuplight dargestellt.
Sieht in fhem aus wie auf dem screesnhot. Die länglichen Kästen enthalten
"Stellknöpfe", die sich mit der Maus oder auf dem touchpad mit dem Finger
bedienen lassen. Damit kann man die Weckzeit prima einstellen. Codebeispiel
wie gesagt in o.g. Wiki-Eintrag.

Funktioniert in fhemweb und in floorplan.

Gruß, Uli

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 19 November 2012, 21:35:52
Originally posted by: <email address deleted>

Hi,

ich habe eine Funktion geschrieben,
die die Weckzeiten der FritzBox ausliest (Danke für die Vorarbeiten! Das
hätte ich nie geschafft.),
die nächste Weckzeit ausgibt
und bei Wunsch durch einen Parameter eine hierzu verschobene Uhrzeit
berechnet:

*Beispiele*
{FB_NextAlarmClockTime('next',-10)}
23:20

{FB_NextAlarmClockTime('next full',-10)}
HEUTE ist ein Wecktag, Weckzeit ist (23:30) Alarm-Nr. 1, Telefon: 60,
Wecktage: Einmal-Alarm Offset:-10 Min. => 23:20

{FB_NextAlarmClockTime('all',0)}

HEUTE ist ein  Wecktag, Weckzeit ist abgelaufen (06:50)  Alarm-Nr. 0, Telefon: 60, Wecktage: MO DI MI DO FR  Offset:0
HEUTE ist ein  Wecktag, Weckzeit ist (23:30)  Alarm-Nr. 1, Telefon: 60, Wecktage: Einmal-Alarm Offset:0
HEUTE ist ein  Wecktag, Weckzeit ist (23:50)  Alarm-Nr. 2, Telefon: 60, Wecktage: MO MI FR SO  Offset:0


{FB_NextAlarmClockTime('sort',10)}

HEUTE ist ein  Wecktag, Weckzeit ist (23:30)  Alarm-Nr. 1, Telefon: 60, Wecktage: Einmal-Alarm Offset:10
HEUTE ist ein  Wecktag, Weckzeit ist (23:50)  Alarm-Nr. 2, Telefon: 60, Wecktage: MO MI FR SO  Offset:10
HEUTE ist ein  Wecktag, Weckzeit ist abgelaufen (06:50)  Alarm-Nr. 0, Telefon: 60, Wecktage: MO DI MI DO FR  Offset:10


##############################################
# $Id: 99_myUtils.pm 1932 2012-10-07 20:15:33Z LaLeLu $
package main;

use strict;
use warnings;
use POSIX;
 
## Ermittelt die nächste Weckzeit aus der FritzBox.
## Es werden auch die Nr. des Alarms und die Nr. des Telefons ausgegeben.
## Damit können ggf. verschiedene Schaltaufgaben gesteuert werden.
## Modi für den 1. Parameter: all, sort, next full, next
## Der 2. Parameter gibt an, um wie viele Minuten der ursprüngliche Alarm
verschoben werden soll.

 sub FB_NextAlarmClockTime($$)
 
  {
    my $PreturnMode = shift;
    my $Poffset = shift;

    my @FritzAlarmClockTime;
    my @FritzAlarmClockActive; my @FritzAlarmClockActiveJN;
    my @FritzAlarmClockNumber;
    my @FritzAlarmClockWeekdays; my @FritzAlarmClockWeekdaysMod;
    my @FAArray; my @FAArraySort;
    my $k; my $i;
    my @Weekdays;
    my $AlarmDay; my $AlarmTime; my $ToLate;
    my $NextAlarmTime = "KEIN Alarm vorhanden";

    my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime;
    my $we    = (($wday==0 || $wday==6) ? 1 : 0);
    my $myNow = $hour.':'.$min;

    my $ReturnText;


    foreach $k (0..2) {
      # Die Weckerdaten aus der FritzBox lesen
      my $AStr_Time     = "ctlmgr_ctl r telcfg
settings/AlarmClock".$k."/Time";
      my $AStr_Active   = "ctlmgr_ctl r telcfg
settings/AlarmClock".$k."/Active";
      my $AStr_Number   = "ctlmgr_ctl r telcfg
settings/AlarmClock".$k."/Number";
      my $AStr_Weekdays = "ctlmgr_ctl r telcfg
settings/AlarmClock".$k."/Weekdays";
      $FritzAlarmClockTime[$k]        =  `$AStr_Time`;
      $FritzAlarmClockActive[$k]      =  `$AStr_Active`;
      $FritzAlarmClockNumber[$k]      =  `$AStr_Number`;
      $FritzAlarmClockWeekdays[$k]    =  `$AStr_Weekdays`;
      $FritzAlarmClockWeekdaysMod[$k] =  $FritzAlarmClockWeekdays[$k];
      $FritzAlarmClockActive[$k]      =~ s/\s*$//g;

      # Wecktage ermitteln
      $Weekdays[$k] = "";
      foreach $i (reverse 0..6) {
        if ($FritzAlarmClockWeekdaysMod[$k] - 2**$i >= 0) {
          if ($i == 6) {$Weekdays[$k] = "SO ".$Weekdays[$k]};
          if ($i == 5) {$Weekdays[$k] = "SA ".$Weekdays[$k]};
          if ($i == 4) {$Weekdays[$k] = "FR ".$Weekdays[$k]};
          if ($i == 3) {$Weekdays[$k] = "DO ".$Weekdays[$k]};
          if ($i == 2) {$Weekdays[$k] = "MI ".$Weekdays[$k]};
          if ($i == 1) {$Weekdays[$k] = "DI ".$Weekdays[$k]};
          if ($i == 0) {$Weekdays[$k] = "MO ".$Weekdays[$k]};
          $FritzAlarmClockWeekdaysMod[$k] = $FritzAlarmClockWeekdaysMod[$k]
- 2**$i;
        };
      };
  # Falls keine Wiederholung eingerichtet ist = Einmal-Alarm
  if ($FritzAlarmClockWeekdays[$k] == 0) {
   $Weekdays[$k] = 'Einmal-Alarm';
  };

      my %Days = (0,"SO",1,"MO",2,"DI",3,"MI",4,"DO",5,"FR",6,"SA");

  # Ist heute ein Wecktag?
      if ($Weekdays[$k] =~ /$Days{$wday}/ or
      $FritzAlarmClockWeekdays[$k] == 0) {
      $AlarmDay = 'HEUTE ist ein  Wecktag'
      }
  else {$AlarmDay = 'HEUTE ist kein Wecktag'};

  # Ist die Weckzeit schon abgelaufen?
  $AlarmTime =
substr($FritzAlarmClockTime[$k],0,2).":".substr($FritzAlarmClockTime[$k],2,2);
  if ($AlarmTime le $myNow) {$ToLate = ', Weckzeit ist abgelaufen'}
else                    {$ToLate = ', Weckzeit ist'};

  # Info über eine Weckzeit
    $FAArray[$k] = ($AlarmDay.$ToLate.' ('.$AlarmTime.') '.' Alarm-Nr.
'.$k.', Telefon: '.$FritzAlarmClockNumber[$k].', Wecktage:
'.$Weekdays[$k].' Offset:'.$Poffset);
      if ($FritzAlarmClockActive[$k] != 1) {
      $FAArray[$k] = ('Kein aktiver Alarm, Alarm-Nr. '.$k)
      };
$FAArray[$k] =~ s/\n//; # Zeilenvorschub entfernen

  # Welches ist die nächste Weckzeit?
     if (($Weekdays[$k]                =~ /$Days{$wday}/  or
        $FritzAlarmClockWeekdays[$k] == 0             ) and
          $AlarmTime                   ge $myNow          and
          $NextAlarmTime               gt $AlarmTime      and
          $FritzAlarmClockActive[$k] == 1                    )
        {$NextAlarmTime = $AlarmTime};
         
    };


     # Rückgabe aller aktiven Weckzeiten
 if ($PreturnMode =~ /all/) {
 $ReturnText = join("\n", @FAArray)
 }

     # Nach Zeit sortierte Rückgabe aller aktiven Weckzeiten
 elsif ($PreturnMode =~ /sort/) {
  $ReturnText = join("\n", sort(@FAArray))
 }

     # Rückgabe der ersten aktiven Weckzeit als Uhrzeit
 elsif ($PreturnMode =~ /next/) {

 # Offset mit Parameter 2 berechnen (Rechnen mit Zeiten)
     my $NextAlarmTimeP =
mktime(0,substr($NextAlarmTime,3,2),substr($NextAlarmTime,0,2),$mday,$month,$year,$wday,$yday,$isdst);
 my $NextAlarmTimePM = $NextAlarmTimeP + $Poffset * 60;
     my ($Psec,$Pmin,$Phour,$Pmday,$Pmonth,$Pyear,$Pwday,$Pyday,$Pisdst) =
localtime($NextAlarmTimePM);
 my $NextAlarmTimePHM = $Phour.':'.$Pmin;
      # Rückgabe der ersten aktiven Weckzeit als Text
  if ($PreturnMode =~ /next full/) {
  @FAArraySort = sort(@FAArray);
     $ReturnText = $FAArraySort[0].' Min. => '.$NextAlarmTimePHM
    }
 else {$ReturnText = $NextAlarmTimePHM};
 }
 
 # ggf. Fehlermeldung
 else {
  $ReturnText = "\'Bsp.: FB_NextAlarmClockTime(\'next\',-10) Werte für den
1. Parameter sind: all, sort, next full, next; Der 2. Parameter muss eine
positive oder negative Zahl sein."
 };


    return $ReturnText;
   
  }

#Ende
1;

Viel Spaß beim Testen. Ich hoffe es funktioniert.

LaLeLu

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 19 November 2012, 22:04:23
Originally posted by: <email address deleted>

Gratuliere ! Funktionieren damit auch Routinen wie

Define device_on at *{FB_NextAlarmClockTime('next',-10)} {\
  .......

Schaltet z.B. ein Device jeden Tag 10 min vor dem FB Alarm an ?

Danke
Andreas

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 19 November 2012, 22:49:25
Originally posted by: <email address deleted>

Ich würde das * weglassen, denn ob geweckt wird oder nicht, bestimmt ja ab
sofort die FritzBox :-))

Ansonsten habe ich es gerade getestet => funktioniert.

Übrigens: Über die bei 'next full' gelieferten Werte für die Telefonnummer
oder die Alarm-Nr. kann man auch verschiedene Dinge steuern. Wie zum
Beipiel bei Alarm-Nr. 0 morgens einschalten und den Alarm-Nr. 2
grundsätzlich zum Ausschalten nutzen. Man muss sich nur den richtigen Teil
z.B. über substr() herausholen.   *Dies könnte den WAF deutlich erhöhen!*

LaLeLu

Am Montag, 19. November 2012 22:04:23 UTC+1 schrieb Andreas Schaller:
>
> Gratuliere ! Funktionieren damit auch Routinen wie
>
> Define device_on at *{FB_NextAlarmClockTime('next',-10)} {\
>   .......
>
> Schaltet z.B. ein Device jeden Tag 10 min vor dem FB Alarm an ?
>
> Danke
> Andreas
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 19 November 2012, 23:34:22
Originally posted by: <email address deleted>

Halt stopp, ich glaube, dass das mit at nur exakt einmal funktioniert.

Ich werde ein define t_FBakt at +*00:30 {...} schreiben. Darin wird jede
halbe Stunde die Weckzeit aktualisiert und über das beschriebene     {fhem("Define
t_xyz at *{FB_NextAlarmClockTime('next',-10)} gesetzt. Dies schaffe ich
aber erst in ein paar Tagen. Falls jemand anderes schon mal aktiv wird,
ungefähr so sollte es aussehen?

define t_FBakt at +*00:30 {\
    if($defs{"t_xyz"}) {\
   {Log 4, ('  t_Aufstehen:  Das bereits existierende NOTIFY t_Aufstehen
löschen.') }\
   {fhem("delete t_xyz") }\
    }\
    {fhem("Define t_xyz at +*".{FB_NextAlarmClockTime('next',-10)}." set
Kueche_Licht off")}
}\

Leider funktioniert das aber nicht so wie gedacht. Da muss ich einfach
weiter Fehler suchen. Jetzt gehe ich aber erst mal schlafen.

Vielleicht gibt es aber auch einen eleganteren Weg?

LaLeLu




Am Montag, 19. November 2012 22:49:25 UTC+1 schrieb LaLeLu:
>
> Ich würde das * weglassen, denn ob geweckt wird oder nicht, bestimmt ja ab
> sofort die FritzBox :-))
>
> Ansonsten habe ich es gerade getestet => funktioniert.
>
> Übrigens: Über die bei 'next full' gelieferten Werte für die Telefonnummer
> oder die Alarm-Nr. kann man auch verschiedene Dinge steuern. Wie zum
> Beipiel bei Alarm-Nr. 0 morgens einschalten und den Alarm-Nr. 2
> grundsätzlich zum Ausschalten nutzen. Man muss sich nur den richtigen Teil
> z.B. über substr() herausholen.   *Dies könnte den WAF deutlich erhöhen!*
>
> LaLeLu
>
> Am Montag, 19. November 2012 22:04:23 UTC+1 schrieb Andreas Schaller:
>>
>> Gratuliere ! Funktionieren damit auch Routinen wie
>>
>> Define device_on at *{FB_NextAlarmClockTime('next',-10)} {\
>>   .......
>>
>> Schaltet z.B. ein Device jeden Tag 10 min vor dem FB Alarm an ?
>>
>> Danke
>> Andreas
>>
>>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 20 November 2012, 19:15:00
Originally posted by: <email address deleted>

Klingt sehr wie bei der Zuhausefunktion über WLAN. Was ich nicht verstehe ist warum da alle 30 min den Alarm überprüfen willst. Fuer mich wuerde 1 mal täglich reichen e.g. um 1 Uhr Nachts werden alle (3) Alarme für den nächsten Tag scharf geschaltet.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 20 November 2012, 23:04:40
Originally posted by: <email address deleted>

Prima!


Am Montag, 19. November 2012 21:35:52 UTC+1 schrieb LaLeLu:
>
> Hi,
>
> ich habe eine Funktion geschrieben,
> die die Weckzeiten der FritzBox ausliest (Danke für die Vorarbeiten! Das
> hätte ich nie geschafft.),
> die nächste Weckzeit ausgibt
> und bei Wunsch durch einen Parameter eine hierzu verschobene Uhrzeit
> berechnet:
>
> *Beispiele*
> {FB_NextAlarmClockTime('next',-10)}
> 23:20
>
> {FB_NextAlarmClockTime('next full',-10)}
> HEUTE ist ein Wecktag, Weckzeit ist (23:30) Alarm-Nr. 1, Telefon: 60,
> Wecktage: Einmal-Alarm Offset:-10 Min. => 23:20
>
> {FB_NextAlarmClockTime('all',0)}
>
> HEUTE ist ein  Wecktag, Weckzeit ist abgelaufen (06:50)  Alarm-Nr. 0, Telefon: 60, Wecktage: MO DI MI DO FR  Offset:0
> HEUTE ist ein  Wecktag, Weckzeit ist (23:30)  Alarm-Nr. 1, Telefon: 60, Wecktage: Einmal-Alarm Offset:0
> HEUTE ist ein  Wecktag, Weckzeit ist (23:50)  Alarm-Nr. 2, Telefon: 60, Wecktage: MO MI FR SO  Offset:0
>
>
> {FB_NextAlarmClockTime('sort',10)}
>
> HEUTE ist ein  Wecktag, Weckzeit ist (23:30)  Alarm-Nr. 1, Telefon: 60, Wecktage: Einmal-Alarm Offset:10
> HEUTE ist ein  Wecktag, Weckzeit ist (23:50)  Alarm-Nr. 2, Telefon: 60, Wecktage: MO MI FR SO  Offset:10
> HEUTE ist ein  Wecktag, Weckzeit ist abgelaufen (06:50)  Alarm-Nr. 0, Telefon: 60, Wecktage: MO DI MI DO FR  Offset:10
>
>
> ##############################################
> # $Id: 99_myUtils.pm 1932 2012-10-07 20:15:33Z LaLeLu $
> package main;
>
> use strict;
> use warnings;
> use POSIX;
>  
> ## Ermittelt die nächste Weckzeit aus der FritzBox.
> ## Es werden auch die Nr. des Alarms und die Nr. des Telefons ausgegeben.
> ## Damit können ggf. verschiedene Schaltaufgaben gesteuert werden.
> ## Modi für den 1. Parameter: all, sort, next full, next
> ## Der 2. Parameter gibt an, um wie viele Minuten der ursprüngliche Alarm
> verschoben werden soll.
>
>  sub FB_NextAlarmClockTime($$)
>  
>   {
>     my $PreturnMode = shift;
>     my $Poffset = shift;
>
>     my @FritzAlarmClockTime;
>     my @FritzAlarmClockActive; my @FritzAlarmClockActiveJN;
>     my @FritzAlarmClockNumber;
>     my @FritzAlarmClockWeekdays; my @FritzAlarmClockWeekdaysMod;
>     my @FAArray; my @FAArraySort;
>     my $k; my $i;
>     my @Weekdays;
>     my $AlarmDay; my $AlarmTime; my $ToLate;
>     my $NextAlarmTime = "KEIN Alarm vorhanden";
>
>     my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime;
>     my $we    = (($wday==0 || $wday==6) ? 1 : 0);
>     my $myNow = $hour.':'.$min;
>
>     my $ReturnText;
>
>
>     foreach $k (0..2) {
>       # Die Weckerdaten aus der FritzBox lesen
>       my $AStr_Time     = "ctlmgr_ctl r telcfg
> settings/AlarmClock".$k."/Time";
>       my $AStr_Active   = "ctlmgr_ctl r telcfg
> settings/AlarmClock".$k."/Active";
>       my $AStr_Number   = "ctlmgr_ctl r telcfg
> settings/AlarmClock".$k."/Number";
>       my $AStr_Weekdays = "ctlmgr_ctl r telcfg
> settings/AlarmClock".$k."/Weekdays";
>       $FritzAlarmClockTime[$k]        =  `$AStr_Time`;
>       $FritzAlarmClockActive[$k]      =  `$AStr_Active`;
>       $FritzAlarmClockNumber[$k]      =  `$AStr_Number`;
>       $FritzAlarmClockWeekdays[$k]    =  `$AStr_Weekdays`;
>       $FritzAlarmClockWeekdaysMod[$k] =  $FritzAlarmClockWeekdays[$k];
>       $FritzAlarmClockActive[$k]      =~ s/\s*$//g;
>
>       # Wecktage ermitteln
>       $Weekdays[$k] = "";
>       foreach $i (reverse 0..6) {
>         if ($FritzAlarmClockWeekdaysMod[$k] - 2**$i >= 0) {
>           if ($i == 6) {$Weekdays[$k] = "SO ".$Weekdays[$k]};
>           if ($i == 5) {$Weekdays[$k] = "SA ".$Weekdays[$k]};
>           if ($i == 4) {$Weekdays[$k] = "FR ".$Weekdays[$k]};
>           if ($i == 3) {$Weekdays[$k] = "DO ".$Weekdays[$k]};
>           if ($i == 2) {$Weekdays[$k] = "MI ".$Weekdays[$k]};
>           if ($i == 1) {$Weekdays[$k] = "DI ".$Weekdays[$k]};
>           if ($i == 0) {$Weekdays[$k] = "MO ".$Weekdays[$k]};
>           $FritzAlarmClockWeekdaysMod[$k] =
> $FritzAlarmClockWeekdaysMod[$k] - 2**$i;
>         };
>       };
>   # Falls keine Wiederholung eingerichtet ist = Einmal-Alarm
>   if ($FritzAlarmClockWeekdays[$k] == 0) {
>    $Weekdays[$k] = 'Einmal-Alarm';
>   };
>
>       my %Days = (0,"SO",1,"MO",2,"DI",3,"MI",4,"DO",5,"FR",6,"SA");
>
>   # Ist heute ein Wecktag?
>       if ($Weekdays[$k] =~ /$Days{$wday}/ or
>       $FritzAlarmClockWeekdays[$k] == 0) {
>       $AlarmDay = 'HEUTE ist ein  Wecktag'
>       }
>   else {$AlarmDay = 'HEUTE ist kein Wecktag'};
>
>   # Ist die Weckzeit schon abgelaufen?
>   $AlarmTime =
> substr($FritzAlarmClockTime[$k],0,2).":".substr($FritzAlarmClockTime[$k],2,2);
>   if ($AlarmTime le $myNow) {$ToLate = ', Weckzeit ist abgelaufen'}
> else                    {$ToLate = ', Weckzeit ist'};
>
>   # Info über eine Weckzeit
>     $FAArray[$k] = ($AlarmDay.$ToLate.' ('.$AlarmTime.') '.' Alarm-Nr.
> '.$k.', Telefon: '.$FritzAlarmClockNumber[$k].', Wecktage:
> '.$Weekdays[$k].' Offset:'.$Poffset);
>       if ($FritzAlarmClockActive[$k] != 1) {
>       $FAArray[$k] = ('Kein aktiver Alarm, Alarm-Nr. '.$k)
>       };
> $FAArray[$k] =~ s/\n//; # Zeilenvorschub entfernen
>
>   # Welches ist die nächste Weckzeit?
>      if (($Weekdays[$k]                =~ /$Days{$wday}/  or
>         $FritzAlarmClockWeekdays[$k] == 0             ) and
>           $AlarmTime                   ge $myNow          and
>           $NextAlarmTime               gt $AlarmTime      and
>           $FritzAlarmClockActive[$k] == 1                    )
>         {$NextAlarmTime = $AlarmTime};
>          
>     };
>
>
>      # Rückgabe aller aktiven Weckzeiten
>  if ($PreturnMode =~ /all/) {
>  $ReturnText = join("\n", @FAArray)
>  }
>
>      # Nach Zeit sortierte Rückgabe aller aktiven Weckzeiten
>  elsif ($PreturnMode =~ /sort/) {
>   $ReturnText = join("\n", sort(@FAArray))
>  }
>
>      # Rückgabe der ersten aktiven Weckzeit als Uhrzeit
>  elsif ($PreturnMode =~ /next/) {
>
>  # Offset mit Parameter 2 berechnen (Rechnen mit Zeiten)
>      my $NextAlarmTimeP =
> mktime(0,substr($NextAlarmTime,3,2),substr($NextAlarmTime,0,2),$mday,$month,$year,$wday,$yday,$isdst);
>  my $NextAlarmTimePM = $NextAlarmTimeP + $Poffset * 60;
>      my ($Psec,$Pmin,$Phour,$Pmday,$Pmonth,$Pyear,$Pwday,$Pyday,$Pisdst)
> = localtime($NextAlarmTimePM);
>  my $NextAlarmTimePHM = $Phour.':'.$Pmin;
>       # Rückgabe der ersten aktiven Weckzeit als Text
>   if ($PreturnMode =~ /next full/) {
>   @FAArraySort = sort(@FAArray);
>      $ReturnText = $FAArraySort[0].' Min. => '.$NextAlarmTimePHM
>     }
>  else {$ReturnText = $NextAlarmTimePHM};
>  }
>  
>  # ggf. Fehlermeldung
>  else {
>   $ReturnText = "\'Bsp.: FB_NextAlarmClockTime(\'next\',-10) Werte für
> den 1. Parameter sind: all, sort, next full, next; Der 2. Parameter muss
> eine positive oder negative Zahl sein."
>  };
>
>
>     return $ReturnText;
>    
>   }
>
> #Ende
> 1;
>
> Viel Spaß beim Testen. Ich hoffe es funktioniert.
>
> LaLeLu
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 20 November 2012, 23:47:39
Originally posted by: <email address deleted>

Hallo Andreas,

Am Dienstag, 20. November 2012 19:15:00 UTC+1 schrieb Andreas Schaller:
>
> Klingt sehr wie bei der Zuhausefunktion über WLAN.


Ja danke, so muss es gehen. Das ist eleganter. Ich komme noch nicht dazu,
es jetzt zu realisieren.

Was ich nicht verstehe ist warum da alle 30 min den Alarm überprüfen
> willst. Fuer mich wuerde 1 mal täglich reichen e.g. um 1 Uhr Nachts werden
> alle (3) Alarme für den nächsten Tag scharf geschaltet.

 
Das ist die sichere Variante, die fast alle evtl. Nutzungsmöglichkeiten
abdeckt (Der Wecker muss ja nicht nur wecken.). Ich kann aber auch jede
andere Einstellung verstehen.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 26 November 2012, 19:45:16
Originally posted by: <email address deleted>

Hallo LaLeLu ,

ich bekomme noch folgende Fehlermeldung aus deiner Routine. Kannst du damit
was anfangen ? Danke

Argument "N " isn't numeric in subroutine entry at ./FHEM/99_Utils.pm line
255.

Argument "KE" isn't numeric in subroutine entry at ./FHEM/99_Utils.pm line 255.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: UliM am 26 November 2012, 20:04:43
                                                 

Hi,
Vorsicht: 99_Utils.pm wird über update verteilt, damit wird ggf Deine
Version überschrieben. (Auch wenn nur selten neue Versionen von 99_Utils.pm
kommen).
Würde das an Deiner Stelle nach 99_myUtils.pm schieben.
Gruß, Uli



Am Montag, 26. November 2012 19:45:16 UTC+1 schrieb Andreas Schaller:anke

>
> Argument "N " isn't numeric in subroutine entry at ./FHEM/99_Utils.pmline 255.
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 27 November 2012, 13:58:52
Originally posted by: <email address deleted>

Hallo Andreas,

nein, leider kann ich dazu nichts sagen. Ich denke, da hast Du beim Ändern
irgendwas unpassend gemacht.

Allerdings entwickle und teste ich zur Zeit fleißig weiter. Wenn Du etwas
warten kannst? Die nächsten Tage werde ich eine neue Version hier posten.
Dann kommt auch eine separate Funktion zur Zeitberechnung.

Schönen Tag noch
LaLeLu

Am Montag, 26. November 2012 19:45:16 UTC+1 schrieb Andreas Schaller:
>
> Hallo LaLeLu ,
>
> ich bekomme noch folgende Fehlermeldung aus deiner Routine. Kannst du
> damit was anfangen ? Danke
>
> Argument "N " isn't numeric in subroutine entry at ./FHEM/99_Utils.pm line
> 255.
>
> Argument "KE" isn't numeric in subroutine entry at ./FHEM/99_Utils.pm line 255.
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 28 November 2012, 22:34:32
Originally posted by: <email address deleted>

Hallo an alle Interessierte,

hier die hoffentlich bugfreie Version zur Übernahme der Weckzeiten von
einer FritzBox 7390. Zu anderen kann ich nichts sagen. Ich denke, dass die
Kommentare genügende Erklärungen bieten. Hier mal die Ansicht in FHEMWEB:



Schalter
 FBWeckzeit

22:05
FBWeckzeitNextFull

HEUTE ist ein Wecktag, Weckzeit ist MI (22:06) Offset:-10 => 21:56,
Telefon: 61, Nr. 2: Aktiv: 1, Wecktage: MI
FBWeckzeitOffset

21:56


*In 99_myUtils.pm wird der Code eingetragen:*

########################################################################################################
## Ermittelt die nächste Weckzeit aus der FritzBox.                        
Erstellt: LaLeLu, 28.11.2012
##
## Eigentlich ist aber anstelle der Weckzeit die Offset-Uhrzeit die
relevante Zeit zur Steuerung
## von beliebigen Aufgaben in fhem. Deshalb ist die Steuerung auf die
Offset-Uhrzeit ausgelegt.
## Möchte man über die Weckzeit steuern, muss der Offset auf 0 gesetzt
werden.
##
## Der 1. Parameter bestimmt die Art der Rückgabe der Funktion. Mögliche
Parameter sind:
##  next Offset,next Alarm,next Alarm full,next Offset
full,all,Alarms,Offsets
##
## Durch den 2. Parameter wird eine Offset-Uhrzeit ermittelt, die um x
Minuten versetzt ist.
## Beispiel: Weckzeit 06:40 => {FB_NextAlarmClockTime('next Offset',-10)}
=> 06:30
##
## urspr. Version:
http://www.fhemwiki.de/wiki/FritzBox_Parameter_in_fhem_anzeigen. Danke an
den Autor!
##
## Es wird auch die Nr. des Alarms und die Nr. des Telefons ausgegeben.
## Damit können verschiedene Schaltaufgaben gesteuert werden.
## Eingabe Kommandozeile fhem: reload 99_myUtils.pm
##    Aktualisierung auslösen: trigger n_FBWeckzeitAuswerten
## {FB_AlarmClockTimes('next Offset',-10)}
## oder:  {FB_AlarmClockTimes('all',-10)}
##
## Gebrauch z.B. über: define at {FB_NextAlarmClockTime('next',-10)} set
lamp on
########################################################################################################

 sub FB_AlarmClockTimes($$)
 
  {
    my $PreturnMode = shift;
my $Poffset = shift;

    my @FritzAlarmClockTime;
    my @FritzAlarmClockActive; my @FritzAlarmClockActiveJN;
    my @FritzAlarmClockNumber;
    my @FritzAlarmClockWeekdays; my @FritzAlarmClockWeekdaysMod;
    my @AlarmFull;
    my $k; my $i;
    my @Weekdays;
    my $AlarmDay; my $AlarmTime; my $OffsetTime;
  my @ToLate; my @AlarmTimeOrgHM; my @AlarmTimeHM; my @OffsetTimeHM;
    my $ReturnText;

  my %Days = (0,"SO",1,"MO",2,"DI",3,"MI",4,"DO",5,"FR",6,"SA");
    my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime;
    my $myNow = sprintf("%02d:%02d", $hour, $min);


    foreach $k (0..2) {
      # Die Weckerdaten aus der FritzBox lesen
      my $AStr_Time     = "ctlmgr_ctl r telcfg
settings/AlarmClock".$k."/Time";
      my $AStr_Active   = "ctlmgr_ctl r telcfg
settings/AlarmClock".$k."/Active";
      my $AStr_Number   = "ctlmgr_ctl r telcfg
settings/AlarmClock".$k."/Number";
      my $AStr_Weekdays = "ctlmgr_ctl r telcfg
settings/AlarmClock".$k."/Weekdays";
      $FritzAlarmClockTime[$k]        =  `$AStr_Time`;
      $FritzAlarmClockActive[$k]      =  `$AStr_Active`;
      $FritzAlarmClockNumber[$k]      =  `$AStr_Number`;
      $FritzAlarmClockWeekdays[$k]    =  `$AStr_Weekdays`;
      $FritzAlarmClockWeekdaysMod[$k] =  $FritzAlarmClockWeekdays[$k];
      $FritzAlarmClockActive[$k]      =~ s/\s*$//g;

      # Wecktage ermitteln
      $Weekdays[$k] = "";
      foreach $i (reverse 0..6) {
        if ($FritzAlarmClockWeekdaysMod[$k] - 2**$i >= 0) {
          if ($i == 6) {$Weekdays[$k] = "SO ".$Weekdays[$k]};
          if ($i == 5) {$Weekdays[$k] = "SA ".$Weekdays[$k]};
          if ($i == 4) {$Weekdays[$k] = "FR ".$Weekdays[$k]};
          if ($i == 3) {$Weekdays[$k] = "DO ".$Weekdays[$k]};
          if ($i == 2) {$Weekdays[$k] = "MI ".$Weekdays[$k]};
          if ($i == 1) {$Weekdays[$k] = "DI ".$Weekdays[$k]};
          if ($i == 0) {$Weekdays[$k] = "MO ".$Weekdays[$k]};
          $FritzAlarmClockWeekdaysMod[$k] = $FritzAlarmClockWeekdaysMod[$k]
- 2**$i;
        };
      };
  # Falls keine Wiederholung eingerichtet ist = Einmal-Alarm
  if ($FritzAlarmClockWeekdays[$k] == 0) {
   $Weekdays[$k] = 'Einmal-Alarm';
  };

  $AlarmTime  =
substr($FritzAlarmClockTime[$k],0,2).":".substr($FritzAlarmClockTime[$k],2,2);
  $OffsetTime = TimeOffset($AlarmTime,$Poffset);
 
  # Check, ob Alarm relevant ist:
  #   - Ist der Alarm aktiv?
  #    - Ist heute ein Wecktag?
  #     - Ist die Weckzeit schon abgelaufen?
      if ($FritzAlarmClockActive[$k] != 1) {
$ToLate[$k]          =  'Weckzeit nicht aktiv ';
$AlarmTimeOrgHM[$k]  =  $AlarmTime;
$AlarmTimeHM[$k]     =  'Nicht aktiv ';
$OffsetTimeHM[$k]    =  'Nein ';
      }
      elsif ($Weekdays[$k] =~ /$Days{$wday}/ or
        $FritzAlarmClockWeekdays[$k] == 1) {
       $AlarmDay = 'HEUTE ist ein  Wecktag';
if ($AlarmTime le $myNow) {
$ToLate[$k]          =  'Weckzeit abgelaufen  ';
$AlarmTimeOrgHM[$k]  =  $AlarmTime;
$AlarmTimeHM[$k]     =  'Nein ';
$OffsetTimeHM[$k]    =  'Nein ';
   }
elsif ($OffsetTime le $myNow) {
$ToLate[$k]          =  'Offsetzeit abgelaufen';
$AlarmTimeOrgHM[$k]  =  $AlarmTime;
$AlarmTimeHM[$k]     =  $AlarmTime;
$OffsetTimeHM[$k]    =  'Nein ';
   }
else {
$ToLate[$k]          =  '         Weckzeit ist';
$AlarmTimeOrgHM[$k]  =  $AlarmTime;
$AlarmTimeHM[$k]     =  $AlarmTime;
$OffsetTimeHM[$k]    =  $OffsetTime;
   };
  }
  else {
   $AlarmDay            = 'HEUTE ist kein Wecktag';
$ToLate[$k]          = 'Weckzeit nicht aktiv';
$AlarmTimeOrgHM[$k]  =  $AlarmTime;
   $AlarmTimeHM[$k]     = 'Kein Wecktag';
   $OffsetTimeHM[$k]    = 'Nein ';
  };

  # Info über die Weckzeit
      if ($FritzAlarmClockActive[$k] != 1) {
       $AlarmFull[$k]    = ('Nicht aktiver Alarm-Nr. '.$k);
      }
  else {
$AlarmFull[$k] = ($AlarmDay.', '.$ToLate[$k].' '.$Days{$wday}.'
('.$AlarmTimeOrgHM[$k].') Offset:'.$Poffset.' => '.$OffsetTimeHM[$k].',
Telefon: '.$FritzAlarmClockNumber[$k].', Nr. '.$k.': '.' Aktiv:
'.$FritzAlarmClockActive[$k].', Wecktage: '.$Weekdays[$k]);
   $AlarmFull[$k] =~ s/\n//; # Zeilenvorschub entfernen
  };
};


     # Rückgabe aller aktiven Weckzeiten mit kompletter Info
 if  ($PreturnMode =~ /all/)  {$ReturnText      = join("\n", @AlarmFull)}
     # Rückgabe aller Weckzeiten
 elsif  ($PreturnMode =~ /Alarms/)  {@AlarmTimeOrgHM  =
sort(@AlarmTimeOrgHM);
   $ReturnText      = join("\n", @AlarmTimeOrgHM)}
     # Rückgabe aller Offset-Uhrzeiten
 elsif  ($PreturnMode =~ /Offsets/) {@OffsetTimeHM    = sort(@OffsetTimeHM);
   $ReturnText      = join("\n", @OffsetTimeHM)}
     # Rückgabe der ersten aktiven Alarm-Zeit
 elsif  ($PreturnMode =~ /next Alarm/)   {@AlarmTimeHM     =
sort(@AlarmTimeHM);
     $ReturnText      = $AlarmTimeHM[0]}
     # Rückgabe der ersten aktiven Offset-Zeit
 elsif  ($PreturnMode =~ /next Offset/)  {@OffsetTimeHM    =
sort(@OffsetTimeHM);
     $ReturnText      = $OffsetTimeHM[0]}
     # Rückgabe der ersten aktiven Weckzeit als Text
 elsif  ($PreturnMode =~ /next full/)  {@AlarmFull       = sort(@AlarmFull);
          $ReturnText      = $AlarmFull[0]}
 # Bei Fehleingabe
 else  {@OffsetTimeHM    = sort(@OffsetTimeHM);
   $ReturnText      = $OffsetTimeHM[0]};
return $ReturnText;
}


########################################################################################################
## Ermittelt die nächste Weckzeit aus der FritzBox.                        
Erstellt: LaLeLu, 26.11.2012
## Berechnet die Offset-Zeit einer Uhrzeit
## Parameter 1: Uhrzeit
## Parameter 2: Offset in Minuten
## Return:      Die Offset-Uhrzeit
## Beispiel: {TimeOffset("09:05",-10)}  oder auch
TimeOffset(Value("FBWeckzeitOffset"),-10)
########################################################################################################

 sub TimeOffset($$)
 
  {
    my $PtimeOrg = shift;
my $Poffset = shift;

    my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime;

    my $TimeP     =
mktime(0,substr($PtimeOrg,3,2),substr($PtimeOrg,0,2),$mday,$month,$year,$wday,$yday,$isdst);
my $TimePM    = $TimeP + $Poffset * 60;
    my ($Psec,$Pmin,$Phour,$Pmday,$Pmonth,$Pyear,$Pwday,$Pyday,$Pisdst) =
localtime($TimePM);
my $ReturnText = sprintf("%02d:%02d", $Phour, $Pmin);
  }

#Ende
1;


Die am Ende stehende Funktion kann auch für andere Berechnungen von Zeiten
genutzt werden.
Übrigens: Wer auch über Tage hinweg berechnen möchte, kann diese Funktion
leicht auch dazu nutzen. Alle Infos stehen dafür zur Verfügung.

Jetzt aber zurück zum eigentlichen Thema.

*In fhem.cfg habe ich folgendes stehen.* Es funktioniert wie gewünscht. Ich
kann damit je nach eingestelltem Telefon verschiedene Aktionen starten. Das
Telefon im Schlafzimmer schaltet andere Dinge, als das Telefon im
Wohnzimmer.


##############################################################################################
## Das Auswerten der Weckzeit der Fritzbox (7390) regelmäßig auslösen.
## Anstelle von +*01:00:00 kann natürlich auch einfach nur eine Uhrzeit
z.B. *{03:00:00} stehen.
##############################################################################################
define t_FBWeckzeitAktRegel at +*01:00:00 {\
{Log 3, ('  t_FBWeckzeitAktRegel:  n_FBWeckzeitAuswerten regelmäßig
auslösen.')}\
{fhem("trigger n_FBWeckzeitAuswerten") }\
}
attr t_FBWeckzeitAktualisieren room SYSTEM
attr t_FBWeckzeitAktualisieren group AT

##############################################################################################
## Makro wir gestartet durch: trigger t_FBWeckzeitAktualisieren
## Dies notify erstellt ein AT, das durch Trigger sich selbst wieder
## 1 Min. nach Ablauf der nächsten Offset-Zeit aufruft.
## Damit ist sichergestellt, dass unmittelbar folgende Offset-Zeiten sicher
ausgeführt werden.
## Nicht abgefangen werden mehrere identische Weckzeiten. Dieser Fall kann
über Telefon: 9 (Alle) gelöst werden.
##############################################################################################
define n_FBWeckzeitAuswerten notify n_FBWeckzeitAuswerten {\
{Log 3, ('  n_FBWeckzeitAuswerten:  Weckzeiten der FritzBox aktualisieren
und auswerten.')}\
  {fhem("set FBWeckzeit         ".FB_AlarmClockTimes('next Alarm',-10))  }\
{fhem("set FBWeckzeitOffset   ".FB_AlarmClockTimes('next Offset',-10)) }\
{fhem("set FBWeckzeitNextFull ".FB_AlarmClockTimes('next full',-10))   }\
  if ($defs{"t_AufstehenMuster"}) {\
    {Log 3, ('  n_FBWeckzeitAuswerten: Das existierende t_AufstehenMuster
löschen.') }\
    {fhem("delete t_AufstehenMuster") }\
  }\
  if ($defs{"t_FBWeckzeitAktTrig"}) {\
    {Log 3, ('  n_FBWeckzeitAuswerten: Das existierende t_FBWeckzeitAktTrig
löschen.') }\
    {fhem("delete t_FBWeckzeitAktTrig") }\
  }\
   if (Value("FBWeckzeitOffset") =~ /NEIN/) {\
{Log 3, ('  n_FBWeckzeitAuswerten:  Kein aktiver Alarm => nichts machen.')
}\
}\
else {\
if (Value("FBWeckzeitNextFull") =~ /Telefon: 60/) {\
     {Log 3, ('  n_FBWeckzeitAuswerten: Telefon: 60 (Schlafzimmer) =>
n_AufstMakroSchlafZi  starten.') }\
{fhem("Define t_AufstehenMuster at ".Value("FBWeckzeitOffset")."  trigger
n_AufstMakroSchlafZi") }\
     }\
elsif (Value("FBWeckzeitNextFull") =~ /Telefon: 61/) {\
     {Log 3, ('  n_FBWeckzeitAuswerten: Telefon: 61 (Wohnzimmer) =>
n_AufstMakroWoZi  starten.') }\
{fhem("Define t_AufstehenMuster at ".Value("FBWeckzeitOffset")."  trigger
n_AufstMakroWoZi") }\
     }\
elsif (Value("FBWeckzeitNextFull") =~ /Telefon: 9/) {\
     {Log 3, ('  n_FBWeckzeitAuswerten: Telefon: 9 (Alle) =>
n_AufstMakroSchlafZi  erstellen.') }\
{fhem("Define t_AufstehenMuster at ".Value("FBWeckzeitOffset")."  trigger
n_AufstMakroSchlafZi") }\
     }\
     else {\
         {Log 3, ('  n_FBWeckzeitAuswerten:   Nichts machen.') }\
}\
{fhem("Define t_FBWeckzeitAktTrig at ".Value("FBWeckzeitOffset").":45
 trigger n_FBWeckzeitAuswerten") }\
{fhem("attr t_FBWeckzeitAktTrig room SYSTEM") }\
{fhem("attr t_FBWeckzeitAktTrig group AT") }\
}\
}
attr n_FBWeckzeitAuswerten room SYSTEM
attr n_FBWeckzeitAuswerten group NOTIFY


#########################################################################
## AufstehenInDerWoche
#########################################################################
## Makro wird gestartet durch: trigger n_AufstehenMakro
define n_AufstMakroWoZi notify n_AufstMakroWoZi {\
{Log 3, ('  n_AufstMakroWoZi  NOTIFY:  ****** Anfang ******')}\
if( Value("Flur_Wohnungstuer") ne "off") {\
    {Log 3, ('  n_AufstMakroWoZi  Die Wohnungstuer ist offen.') }\
    {fhem("set Kueche_Licht off") }\
    {fhem("set Kueche_Radio off") }\
  }\
  elsif (Value("Flur_Wohnungstuer") eq "off") {\
    {Log 3, ('  n_AufstMakroWoZi  Keine Aktion. Die WohnungsTuer ist
abgeschlossen.') }\
  }\
  {Log 3, ('  n_AufstMakroWoZi  NOTIFY:  ****** Ende ******')}\
}

## Makro wird gestartet durch: trigger n_AufstehenMakro
define n_AufstMakroSchlafZi notify n_AufstMakroSchlafZi {\
{Log 3, ('  n_AufstMakroSchlafZi  NOTIFY:  ****** Anfang ******')}\
if( Value("Flur_Wohnungstuer") ne "off") {\
    {Log 3, ('  n_AufstMakroSchlafZi  Die Wohnungstuer ist offen.') }\
    {fhem("set Flur_Licht dim81% 20") }\
    {fhem("set Kueche_Licht on") }\
    {fhem("set Kueche_Arbeitslicht dim75% 15") }\
    {fhem("set Kueche_Arbeitslicht on-till {sunrise(+1800)}") }\
    {fhem("set Kueche_Radio on") }\
    {fhem("setstate ImBett off") }\
    {fhem("set Bad_Heizung desired-temp 20.5") }\
    {fhem("set Kueche_Heizung desired-temp 20.5") }\
    if (Value("KinderDa") ne "on") {\
       {Log 3, ('  n_AufstMakroSchlafZi  NOTIFY:  * Kinder sind nicht da
*') }\
       {fhem("set Schlafen_Bett_Licht on-till {sunrise(+1800)}") }\
       {fhem("set Schlafen_Radio on") }\
     } else {\
       {Log 3, ('  n_AufstMakroSchlafZi  NOTIFY:  * Kinder sind da *') }\
       {fhem("set Wohnen_Schrank_Licht off") }\
     }\
  }\
  elsif (Value("Flur_Wohnungstuer") eq "off") {\
    {Log 3, ('  n_AufstMakroSchlafZi  Keine Aktion. Die WohnungsTuer ist
abgeschlossen.') }\
  }\
  {Log 3, ('  n_AufstMakroSchlafZi  NOTIFY:  ****** Ende ******')}\
}
attr n_Aufstehen group NOTIFY
attr n_Aufstehen room SCHLAFEN



So, ich hoffe genug erklärt zu haben und damit anderen etwas zu helfen.
Falls ihr es für sinnvoll erachtet, kann ich mich auch am Einstellen ins
fhemwiki versuchen.

LaLeLu

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 28 November 2012, 22:46:12
Originally posted by: <email address deleted>

Hi Uli,

ich glaube, Du hast mir nicht in Groups geschrieben, sondern als Email.
Deswegen auch die Mail zurück.
Ich habe die Funktion eigentlich exakt so wie Du.

Du bist doch der Schöpfer von floorplan? Super vielen Dank. So sieht
übrigens mein Floorplan aus:




Ich wünsche einen schönen Abend!
Peter Kansy (LaLeLu)

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 30 November 2012, 12:14:14
Originally posted by: <email address deleted>

Eine kleine, aber wesentliche Änderung muss man noch vornehmen:
   if (Value("FBWeckzeitOffset") =~ /NEIN/) {\
{Log 3, ('  n_FBWeckzeitAuswerten:  Kein aktiver Alarm => nichts machen.')
}\
}\

muss geändert werden in:
   if (Value("FBWeckzeitOffset") =~ /Nein/) {\
{Log 3, ('  n_FBWeckzeitAuswerten:  Kein aktiver Alarm => nichts machen.')
}\
}\
Sorry,
LaLeLu
Am Mittwoch, 28. November 2012 22:34:32 UTC+1 schrieb LaLeLu:
>
>
>
>
> Hallo an alle Interessierte,
>
> hier die hoffentlich bugfreie Version zur Übernahme der Weckzeiten von
> einer FritzBox 7390. Zu anderen kann ich nichts sagen. Ich denke, dass die
> Kommentare genügende Erklärungen bieten. Hier mal die Ansicht in FHEMWEB:
>
>
>
> Schalter
>  FBWeckzeit
>
> 22:05
> FBWeckzeitNextFull
>
> HEUTE ist ein Wecktag, Weckzeit ist MI (22:06) Offset:-10 => 21:56,
> Telefon: 61, Nr. 2: Aktiv: 1, Wecktage: MI
> FBWeckzeitOffset
>
> 21:56
>
>
> *In 99_myUtils.pm wird der Code eingetragen:*
>
>
> ########################################################################################################
> ## Ermittelt die nächste Weckzeit aus der FritzBox.                      
>   Erstellt: LaLeLu, 28.11.2012
> ##
> ## Eigentlich ist aber anstelle der Weckzeit die Offset-Uhrzeit die
> relevante Zeit zur Steuerung
> ## von beliebigen Aufgaben in fhem. Deshalb ist die Steuerung auf die
> Offset-Uhrzeit ausgelegt.
> ## Möchte man über die Weckzeit steuern, muss der Offset auf 0 gesetzt
> werden.
> ##
> ## Der 1. Parameter bestimmt die Art der Rückgabe der Funktion. Mögliche
> Parameter sind:
> ##  next Offset,next Alarm,next Alarm full,next Offset
> full,all,Alarms,Offsets
> ##
> ## Durch den 2. Parameter wird eine Offset-Uhrzeit ermittelt, die um x
> Minuten versetzt ist.
> ## Beispiel: Weckzeit 06:40 => {FB_NextAlarmClockTime('next Offset',-10)}
> => 06:30
> ##
> ## urspr. Version:
> http://www.fhemwiki.de/wiki/FritzBox_Parameter_in_fhem_anzeigen. Danke an
> den Autor!
> ##
> ## Es wird auch die Nr. des Alarms und die Nr. des Telefons ausgegeben.
> ## Damit können verschiedene Schaltaufgaben gesteuert werden.
> ## Eingabe Kommandozeile fhem: reload 99_myUtils.pm
> ##    Aktualisierung auslösen: trigger n_FBWeckzeitAuswerten
> ## {FB_AlarmClockTimes('next Offset',-10)}
> ## oder:  {FB_AlarmClockTimes('all',-10)}
> ##
> ## Gebrauch z.B. über: define at {FB_NextAlarmClockTime('next',-10)} set
> lamp on
>
> ########################################################################################################
>
>  sub FB_AlarmClockTimes($$)
>  
>   {
>     my $PreturnMode = shift;
> my $Poffset = shift;
>
>     my @FritzAlarmClockTime;
>     my @FritzAlarmClockActive; my @FritzAlarmClockActiveJN;
>     my @FritzAlarmClockNumber;
>     my @FritzAlarmClockWeekdays; my @FritzAlarmClockWeekdaysMod;
>     my @AlarmFull;
>     my $k; my $i;
>     my @Weekdays;
>     my $AlarmDay; my $AlarmTime; my $OffsetTime;
>   my @ToLate; my @AlarmTimeOrgHM; my @AlarmTimeHM; my @OffsetTimeHM;
>     my $ReturnText;
>
>   my %Days = (0,"SO",1,"MO",2,"DI",3,"MI",4,"DO",5,"FR",6,"SA");
>     my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime;
>     my $myNow = sprintf("%02d:%02d", $hour, $min);
>
>
>     foreach $k (0..2) {
>       # Die Weckerdaten aus der FritzBox lesen
>       my $AStr_Time     = "ctlmgr_ctl r telcfg
> settings/AlarmClock".$k."/Time";
>       my $AStr_Active   = "ctlmgr_ctl r telcfg
> settings/AlarmClock".$k."/Active";
>       my $AStr_Number   = "ctlmgr_ctl r telcfg
> settings/AlarmClock".$k."/Number";
>       my $AStr_Weekdays = "ctlmgr_ctl r telcfg
> settings/AlarmClock".$k."/Weekdays";
>       $FritzAlarmClockTime[$k]        =  `$AStr_Time`;
>       $FritzAlarmClockActive[$k]      =  `$AStr_Active`;
>       $FritzAlarmClockNumber[$k]      =  `$AStr_Number`;
>       $FritzAlarmClockWeekdays[$k]    =  `$AStr_Weekdays`;
>       $FritzAlarmClockWeekdaysMod[$k] =  $FritzAlarmClockWeekdays[$k];
>       $FritzAlarmClockActive[$k]      =~ s/\s*$//g;
>
>       # Wecktage ermitteln
>       $Weekdays[$k] = "";
>       foreach $i (reverse 0..6) {
>         if ($FritzAlarmClockWeekdaysMod[$k] - 2**$i >= 0) {
>           if ($i == 6) {$Weekdays[$k] = "SO ".$Weekdays[$k]};
>           if ($i == 5) {$Weekdays[$k] = "SA ".$Weekdays[$k]};
>           if ($i == 4) {$Weekdays[$k] = "FR ".$Weekdays[$k]};
>           if ($i == 3) {$Weekdays[$k] = "DO ".$Weekdays[$k]};
>           if ($i == 2) {$Weekdays[$k] = "MI ".$Weekdays[$k]};
>           if ($i == 1) {$Weekdays[$k] = "DI ".$Weekdays[$k]};
>           if ($i == 0) {$Weekdays[$k] = "MO ".$Weekdays[$k]};
>           $FritzAlarmClockWeekdaysMod[$k] =
> $FritzAlarmClockWeekdaysMod[$k] - 2**$i;
>         };
>       };
>   # Falls keine Wiederholung eingerichtet ist = Einmal-Alarm
>   if ($FritzAlarmClockWeekdays[$k] == 0) {
>    $Weekdays[$k] = 'Einmal-Alarm';
>   };
>
>   $AlarmTime  =
> substr($FritzAlarmClockTime[$k],0,2).":".substr($FritzAlarmClockTime[$k],2,2);
>   $OffsetTime = TimeOffset($AlarmTime,$Poffset);
>  
>   # Check, ob Alarm relevant ist:
>   #   - Ist der Alarm aktiv?
>   #    - Ist heute ein Wecktag?
>   #     - Ist die Weckzeit schon abgelaufen?
>       if ($FritzAlarmClockActive[$k] != 1) {
> $ToLate[$k]          =  'Weckzeit nicht aktiv ';
> $AlarmTimeOrgHM[$k]  =  $AlarmTime;
> $AlarmTimeHM[$k]     =  'Nicht aktiv ';
> $OffsetTimeHM[$k]    =  'Nein ';
>       }
>       elsif ($Weekdays[$k] =~ /$Days{$wday}/ or
>         $FritzAlarmClockWeekdays[$k] == 1) {
>        $AlarmDay = 'HEUTE ist ein  Wecktag';
> if ($AlarmTime le $myNow) {
> $ToLate[$k]          =  'Weckzeit abgelaufen  ';
> $AlarmTimeOrgHM[$k]  =  $AlarmTime;
> $AlarmTimeHM[$k]     =  'Nein ';
> $OffsetTimeHM[$k]    =  'Nein ';
>    }
> elsif ($OffsetTime le $myNow) {
> $ToLate[$k]          =  'Offsetzeit abgelaufen';
> $AlarmTimeOrgHM[$k]  =  $AlarmTime;
> $AlarmTimeHM[$k]     =  $AlarmTime;
> $OffsetTimeHM[$k]    =  'Nein ';
>    }
> else {
> $ToLate[$k]          =  '         Weckzeit ist';
> $AlarmTimeOrgHM[$k]  =  $AlarmTime;
> $AlarmTimeHM[$k]     =  $AlarmTime;
> $OffsetTimeHM[$k]    =  $OffsetTime;
>    };
>   }
>   else {
>    $AlarmDay            = 'HEUTE ist kein Wecktag';
> $ToLate[$k]          = 'Weckzeit nicht aktiv';
> $AlarmTimeOrgHM[$k]  =  $AlarmTime;
>    $AlarmTimeHM[$k]     = 'Kein Wecktag';
>    $OffsetTimeHM[$k]    = 'Nein ';
>   };
>
>   # Info über die Weckzeit
>       if ($FritzAlarmClockActive[$k] != 1) {
>        $AlarmFull[$k]    = ('Nicht aktiver Alarm-Nr. '.$k);
>       }
>   else {
> $AlarmFull[$k] = ($AlarmDay.', '.$ToLate[$k].' '.$Days{$wday}.'
> ('.$AlarmTimeOrgHM[$k].') Offset:'.$Poffset.' => '.$OffsetTimeHM[$k].',
> Telefon: '.$FritzAlarmClockNumber[$k].', Nr. '.$k.': '.' Aktiv:
> '.$FritzAlarmClockActive[$k].', Wecktage: '.$Weekdays[$k]);
>    $AlarmFull[$k] =~ s/\n//; # Zeilenvorschub entfernen
>   };
> };
>
>
>      # Rückgabe aller aktiven Weckzeiten mit kompletter Info
>  if  ($PreturnMode =~ /all/)  {$ReturnText      = join("\n", @AlarmFull)}
>      # Rückgabe aller Weckzeiten
>  elsif  ($PreturnMode =~ /Alarms/)  {@AlarmTimeOrgHM  =
> sort(@AlarmTimeOrgHM);
>    $ReturnText      = join("\n", @AlarmTimeOrgHM)}
>      # Rückgabe aller Offset-Uhrzeiten
>  elsif  ($PreturnMode =~ /Offsets/) {@OffsetTimeHM    =
> sort(@OffsetTimeHM);
>    $ReturnText      = join("\n", @OffsetTimeHM)}
>      # Rückgabe der ersten aktiven Alarm-Zeit
>  elsif  ($PreturnMode =~ /next Alarm/)   {@AlarmTimeHM     =
> sort(@AlarmTimeHM);
>      $ReturnText      = $AlarmTimeHM[0]}
>      # Rückgabe der ersten aktiven Offset-Zeit
>  elsif  ($PreturnMode =~ /next Offset/)  {@OffsetTimeHM    =
> sort(@OffsetTimeHM);
>      $ReturnText      = $OffsetTimeHM[0]}
>      # Rückgabe der ersten aktiven Weckzeit als Text
>  elsif  ($PreturnMode =~ /next full/)  {@AlarmFull       =
> sort(@AlarmFull);
>           $ReturnText      = $AlarmFull[0]}
>  # Bei Fehleingabe
>  else  {@OffsetTimeHM    = sort(@OffsetTimeHM);
>    $ReturnText      = $OffsetTimeHM[0]};
> return $ReturnText;
> }
>
>
>
> ########################################################################################################
> ## Ermittelt die nächste Weckzeit aus der FritzBox.                      
>   Erstellt: LaLeLu, 26.11.2012
> ## Berechnet die Offset-Zeit einer Uhrzeit
> ## Parameter 1: Uhrzeit
> ## Parameter 2: Offset in Minuten
> ## Return:      Die Offset-Uhrzeit
> ## Beispiel: {TimeOffset("09:05",-10)}  oder auch
> TimeOffset(Value("FBWeckzeitOffset"),-10)
>
> ########################################################################################################
>
>  sub TimeOffset($$)
>  
>   {
>     my $PtimeOrg = shift;
> my $Poffset = shift;
>
>     my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime;
>
>     my $TimeP     =
> mktime(0,substr($PtimeOrg,3,2),substr($PtimeOrg,0,2),$mday,$month,$year,$wday,$yday,$isdst);
> my $TimePM    = $TimeP + $Poffset * 60;
>     my ($Psec,$Pmin,$Phour,$Pmday,$Pmonth,$Pyear,$Pwday,$Pyday,$Pisdst) =
> localtime($TimePM);
> my $ReturnText = sprintf("%02d:%02d", $Phour, $Pmin);
>   }
>
> #Ende
> 1;
>
>
> Die am Ende stehende Funktion kann auch für andere Berechnungen von Zeiten
> genutzt werden.
> Übrigens: Wer auch über Tage hinweg berechnen möchte, kann diese Funktion
> leicht auch dazu nutzen. Alle Infos stehen dafür zur Verfügung.
>
> Jetzt aber zurück zum eigentlichen Thema.
>
> *In fhem.cfg habe ich folgendes stehen.* Es funktioniert wie gewünscht.
> Ich kann damit je nach eingestelltem Telefon verschiedene Aktionen starten.
> Das Telefon im Schlafzimmer schaltet andere Dinge, als das Telefon im
> Wohnzimmer.
>
>
>
> ##############################################################################################
> ## Das Auswerten der Weckzeit der Fritzbox (7390) regelmäßig auslösen.
> ## Anstelle von +*01:00:00 kann natürlich auch einfach nur eine Uhrzeit
> z.B. *{03:00:00} stehen.
>
> ##############################################################################################
> define t_FBWeckzeitAktRegel at +*01:00:00 {\
> {Log 3, ('  t_FBWeckzeitAktRegel:  n_FBWeckzeitAuswerten regelmäßig
> auslösen.')}\
> {fhem("trigger n_FBWeckzeitAuswerten") }\
> }
> attr t_FBWeckzeitAktualisieren room SYSTEM
> attr t_FBWeckzeitAktualisieren group AT
>
>
> ##############################################################################################
> ## Makro wir gestartet durch: trigger t_FBWeckzeitAktualisieren
> ## Dies notify erstellt ein AT, das durch Trigger sich selbst wieder
> ## 1 Min. nach Ablauf der nächsten Offset-Zeit aufruft.
> ## Damit ist sichergestellt, dass unmittelbar folgende Offset-Zeiten
> sicher ausgeführt werden.
> ## Nicht abgefangen werden mehrere identische Weckzeiten. Dieser Fall kann
> über Telefon: 9 (Alle) gelöst werden.
>
> ##############################################################################################
> define n_FBWeckzeitAuswerten notify n_FBWeckzeitAuswerten {\
> {Log 3, ('  n_FBWeckzeitAuswerten:  Weckzeiten der FritzBox aktualisieren
> und auswerten.')}\
>   {fhem("set FBWeckzeit         ".FB_AlarmClockTimes('next Alarm',-10))
>  }\
> {fhem("set FBWeckzeitOffset   ".FB_AlarmClockTimes('next Offset',-10)) }\
> {fhem("set FBWeckzeitNextFull ".FB_AlarmClockTimes('next full',-10))   }\
>   if ($defs{"t_AufstehenMuster"}) {\
>     {Log 3, ('  n_FBWeckzeitAuswerten: Das existierende t_AufstehenMuster
> löschen.') }\
>     {fhem("delete t_AufstehenMuster") }\
>   }\
>   if ($defs{"t_FBWeckzeitAktTrig"}) {\
>     {Log 3, ('  n_FBWeckzeitAuswerten: Das existierende
> t_FBWeckzeitAktTrig löschen.') }\
>     {fhem("delete t_FBWeckzeitAktTrig") }\
>   }\
>    if (Value("FBWeckzeitOffset") =~ /NEIN/) {\
> {Log 3, ('  n_FBWeckzeitAuswerten:  Kein aktiver Alarm => nichts machen.')
> }\
> }\
> else {\
> if (Value("FBWeckzeitNextFull") =~ /Telefon: 60/) {\
>      {Log 3, ('  n_FBWeckzeitAuswerten: Telefon: 60 (Schlafzimmer) =>
> n_AufstMakroSchlafZi  starten.') }\
> {fhem("Define t_AufstehenMuster at ".Value("FBWeckzeitOffset")."  trigger
> n_AufstMakroSchlafZi") }\
>      }\
> elsif (Value("FBWeckzeitNextFull") =~ /Telefon: 61/) {\
>      {Log 3, ('  n_FBWeckzeitAuswerten: Telefon: 61 (Wohnzimmer) =>
> n_AufstMakroWoZi  starten.') }\
> {fhem("Define t_AufstehenMuster at ".Value("FBWeckzeitOffset")."  trigger
> n_AufstMakroWoZi") }\
>      }\
> elsif (Value("FBWeckzeitNextFull") =~ /Telefon: 9/) {\
>      {Log 3, ('  n_FBWeckzeitAuswerten: Telefon: 9 (Alle) =>
> n_AufstMakroSchlafZi  erstellen.') }\
> {fhem("Define t_AufstehenMuster at ".Value("FBWeckzeitOffset")."  trigger
> n_AufstMakroSchlafZi") }\
>      }\
>      else {\
>          {Log 3, ('  n_FBWeckzeitAuswerten:   Nichts machen.') }\
> }\
> {fhem("Define t_FBWeckzeitAktTrig at ".Value("FBWeckzeitOffset").":45
>  trigger n_FBWeckzeitAuswerten") }\
> {fhem("attr t_FBWeckzeitAktTrig room SYSTEM") }\
> {fhem("attr t_FBWeckzeitAktTrig group AT") }\
> }\
> }
> attr n_FBWeckzeitAuswerten room SYSTEM
> attr n_FBWeckzeitAuswerten group NOTIFY
>
>
> #########################################################################
> ## AufstehenInDerWoche
> #########################################################################
> ## Makro wird gestartet durch: trigger n_AufstehenMakro
> define n_AufstMakroWoZi notify n_AufstMakroWoZi {\
> {Log 3, ('  n_AufstMakroWoZi  NOTIFY:  ****** Anfang ******')}\
> if( Value("Flur_Wohnungstuer") ne "off") {\
>     {Log 3, ('  n_AufstMakroWoZi  Die Wohnungstuer ist offen.') }\
>     {fhem("set Kueche_Licht off") }\
>     {fhem("set Kueche_Radio off") }\
>   }\
>   elsif (Value("Flur_Wohnungstuer") eq "off") {\
>     {Log 3, ('  n_AufstMakroWoZi  Keine Aktion. Die WohnungsTuer ist
> abgeschlossen.') }\
>   }\
>   {Log 3, ('  n_AufstMakroWoZi  NOTIFY:  ****** Ende ******')}\
> }
>
> ## Makro wird gestartet durch: trigger n_AufstehenMakro
> define n_AufstMakroSchlafZi notify n_AufstMakroSchlafZi {\
> {Log 3, ('  n_AufstMakroSchlafZi  NOTIFY:  ****** Anfang ******')}\
> if( Value("Flur_Wohnungstuer") ne "off") {\
>     {Log 3, ('  n_AufstMakroSchlafZi  Die Wohnungstuer ist offen.') }\
>     {fhem("set Flur_Licht dim81% 20") }\
>     {fhem("set Kueche_Licht on") }\
>     {fhem("set Kueche_Arbeitslicht dim75% 15") }\
>     {fhem("set Kueche_Arbeitslicht on-till {sunrise(+1800)}") }\
>     {fhem("set Kueche_Radio on") }\
>     {fhem("setstate ImBett off") }\
>     {fhem("set Bad_Heizung desired-temp 20.5") }\
>     {fhem("set Kueche_Heizung desired-temp 20.5") }\
>     if (Value("KinderDa") ne "on") {\
>        {Log 3, ('  n_AufstMakroSchlafZi  NOTIFY:  * Kinder sind nicht da
> *') }\
>        {fhem("set Schlafen_Bett_Licht on-till {sunrise(+1800)}") }\
>        {fhem("set Schlafen_Radio on") }\
>      } else {\
>        {Log 3, ('  n_AufstMakroSchlafZi  NOTIFY:  * Kinder sind da *') }\
>        {fhem("set Wohnen_Schrank_Licht off") }\
>      }\
>   }\
>   elsif (Value("Flur_Wohnungstuer") eq "off") {\
>     {Log 3, ('  n_AufstMakroSchlafZi  Keine Aktion. Die WohnungsTuer ist
> abgeschlossen.') }\
>   }\
>   {Log 3, ('  n_AufstMakroSchlafZi  NOTIFY:  ****** Ende ******')}\
> }
> attr n_Aufstehen group NOTIFY
> attr n_Aufstehen room SCHLAFEN
>
>
>
> So, ich hoffe genug erklärt zu haben und damit anderen etwas zu helfen.
> Falls ihr es für sinnvoll erachtet, kann ich mich auch am Einstellen ins
> fhemwiki versuchen.
>
> LaLeLu
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: UliM am 30 November 2012, 20:05:23
                                                 

Cool :)
Wiki ! ?
Gruß, Uli

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 01 Dezember 2012, 08:55:49
Originally posted by: <email address deleted>

Danke, ich habe noch keinen Wiki-Zugang erhalten. Sobald ich ihn habe,
stelle ich es ein.

Heute morgen musste ich noch mal eine Korrektur vornehmen:

      elsif ($Weekdays[$k] =~ /$Days{$wday}/ or
       $Weekdays[$k] eq 'Einmal-Alarm') {
      $AlarmDay = 'HEUTE ist ein  Wecktag';

Gruß
LaLeLu

Am Freitag, 30. November 2012 20:05:23 UTC+1 schrieb UliM:
>
> Cool :)
> Wiki ! ?
> Gruß, Uli
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 03 Dezember 2012, 00:14:13
Originally posted by: <email address deleted>

Es gibt jetzt zwei Wiki-Einträge:

- http://www.fhemwiki.de/wiki/FritzBox_Offset-Uhrzeit_aus_Weckzeit_berechnen

- http://www.fhemwiki.de/wiki/Uhrzeit:_Offset_berechnen

Viel Spaß beim Nachbauen
LaLeLu

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 25 März 2012, 11:34:38
Originally posted by: <email address deleted>

super sache!

die Umrechnung sollte kein Problem sein. Meistens dürfte einen der
Zeitpunkt des NÄCHSTEN Weck-Events interessieren, man muss also prüfen, ob
der heute schon vorbei ist oder nicht:

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime(time);
# also JETZT

$hh=6;
$mm=30;
# als Beispiel für Wecker um 6:30 (musst du entsprechend befüllen)

if($hour>$hh || ($hour==$hh && $min>$mm)){
  $offset=86400 # (24*60*60)
}
# war es heute schon, dann Offset dazu, also der Wecker "klingelt" erst
morgen wieder

$wecker=(mktime( $sec, $mm, $hh, $mday, $mon, $year))+$offset;
#Epoch-Zeit des nächsten Weckers ist nun in $wecker

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Weckzeit anzeigen und einstellen (FritzBox!Fon FHEM webpgm2 )
Beitrag von: Guest am 19 Dezember 2012, 20:47:49
Originally posted by: <email address deleted>

Ich komme einmal auf meine ursprüngliche Frage vom 15. Januar zurück.
Alle Punkte sind jetzt gelöst und auch im Wiki vorhanden:

Auf meiner FritzBox 7390 läuft ein FritzBox!Fon. Ich nutze den Wecker
> der FritzBox. Die Weckzeit kann ich am Telefon und im Browser
> einstellen. Soweit, sogut.
>
...

> Nun zu meiner Idee:
>
> Ich möchte gerne in fhem (webpgm2) die Weckzeit der FritzBox anzeigen
> und einstellen können. Dazu muss ich meiner Meinung nach:
>
> 1. Die in der FritzBox eingestellte Weckzeit auslesen können.  

2. Die ausgelesene Zeit in webpgm2 anzeigen können.

5. den Timer in fhem 10 Minuten früher starten lassen.  

 
gelöst:
http://www.fhemwiki.de/wiki/FritzBox_Offset-Uhrzeit_aus_Weckzeit_berechnen
 

> 3. Die angezeigte Uhrzeit editieren können.  

4. Die editierte Uhrzeit als neue Weckzeit in der FritzBox einstellen.

 
gelöst: http://www.fhemwiki.de/wiki/FritzBox:_Weckzeit_einstellen
Diesen Eintrag habe ich gerade neu erstellt.

LaLeLu





>

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