Kalender zur Steuerung von Dummies

Begonnen von bene_dicere, 06 Mai 2016, 14:26:41

Vorheriges Thema - Nächstes Thema

bene_dicere

Ich würde gerne mit einem Google Kalender meine Rollladen steuern.

Zum Teste habe ich mich an folgendem Wiki orientiert.
http://www.fhemwiki.de/wiki/Google-Kalender_zur_Steuerung_von_Dummies

Der Kalender scheint auch aktualisiert zu werden. Jedoch schaltet der Dummie leider nicht ;( ich habe zu Testzwecken eigentlich erstmal alles wie beschrieben übernommen, nur habe ich meine Bezeichnungen angepasst so wie die Abfrage nach Test.

Leider verstehe ich das notify auch nicht wirklich. Wo in meinem Kalender wird überhaupt nach der Abfrage (in meinem Fall Test) gesucht?

Warum:
......:start:.*googlecom.* {\Kalenderstart("$EVENT");;\}
der hintere Teil ist mir klar ist der Verweis zur Funktion aber was bedeutet der vordere Teil mit start?

Es wäre super wenn ihr mir helfen könnt.

Danke schon mal

Ellert

Der Kalender erzeugt Events, die kannst Du Dir im WEB-Frontend über Event_monitor ansehen, siehe http://fhem.de/commandref_DE.html#Calendar
Ein notify reagiert auf Events, auf welche, kannst Du durch Angabe eines Regulären Ausdrucks bestimmen, siehe http://fhem.de/commandref_DE.html#notify und https://wiki.selfhtml.org/wiki/Perl/Regul%C3%A4re_Ausdr%C3%BCcke
ZitatLeider verstehe ich das notify auch nicht wirklich.
Durch Lesen der angegebenen Stellen kannst Du Dir das Verständnis erarbeiten, es ist grundlegend in FHEM.

bene_dicere

Zitat von: Ellert am 06 Mai 2016, 15:02:35
Lesen der angegebenen Stellen kannst Du Dir das Verständnis erarbeiten, es ist grundlegend in FHEM.


Danke für den Link  :) 

bene_dicere

#3
ich komme jetzt doch noch mal auf das Thema zurück und hoffe es kann mir jemand weiterhelfen.

Habe mich jetzt intensiv mit den Links beschäftigt, was mir auch viel geholfen hat. Leider scheint es jedoch noch immer einen Fehler zu geben, den ich übersehe.

Folgend noch mal das Notify aus dem Beispiel (http://www.fhemwiki.de/wiki/Google-Kalender_zur_Steuerung_von_Dummies)
define Kalender_Christian_Start notify Kalender_Christian:start:.*googlecom.* {\
Kalenderstart("$EVENT");;\}


Aufbau des Notify:
define <name> notify <Suchmuster> <Anweisung>

<Suchmuster> : Kalender_Christian:start:.*googlecom.*
<Anweisung> : {\Kalenderstart("$EVENT");;\}   (Perl Code)

Wenn ich mir jedoch unter meinem Kalender folgendes aufrufe:
get <Kalender_Name> start all
werden nur Uhrzeiten ausgelesen jedoch nicht die UID aus den Readings in denen auch googlecom vorkommt.

get <Kalender_Name> start uid=.*googlecom.*
Auch hierbei wird nur das Startdatum und die Uhrzeit angezeigt.
Heißt das nicht, dass hier bei schon keine Übergabe mehr an das Programm unter 99_MyUtils.pm erfolgt?

Silicium

Hallo,

ich hatte das Problem auch, leider wurde das wiki "noch" nicht aktualiesiert!

Das Problem liegt im Notify, bei mir klappte es so:

define Kalender_Christian_Start notify Kalender_Christian:modeStart:.*googlecom.* {
Kalenderende("$EVENT");
}


LG

no_Legend

Ich frage wie folgt ab und das Notify reagiert:

define Kalender_Rob_FHEM_Start notify Kalender_Rob_FHEM:modeStart.* {Kalenderstart("$EVENT")}
define Kalender_Rob_FHEM_Ende notify Kalender_Rob_FHEM:modeEnd.* {Kalenderende("$EVENT")}


Meins basiert auch auf dem Wiki eintrag

Das einzigste was ich mir momentan nicht erklären kann ist, dass wenn der Dummie On ist und ich ein Update voM Kalender machen, der Dummie Off geht.
Der Eintrag bei Start ist aber immer noch vorhanden.
Kann mir das Verhalten nicht wirklich erklären.

Gruß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

hosimpson

Bei mir geht es auch nicht.


define Kalender_Familie_Start notify Kalender_Familie:modeStart.* {Kalenderstart("$EVENT")}
define Kalender_Familie_Ende notify Kalender_Familie:modeEnd.* {Kalenderende("$EVENT")}


Der ENDE Trigger löst aus. Der START Trigger nicht.
googlecom.*

macht dabei keinen Unterschied.

Eigentlich möchte ich nur an Urlaubstage das Licht anders steuern. Muss mir wohl einen anderen Weg überlegen.

no_Legend

@hosimpson
Also der Start Trigger löst bei mir definitiv aus.
Hast du mal in Log geschaut?

Poste mal bitte deine Kalender definition, die URL bitte unkenntlich machen.

Gruß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

hosimpson

#8
Demnach hätte ich auch erwartet, dass etwas kommt:
Internals:
   DEF        ical url https://calendar.google.com/calendar/ical/xxxxgmail.com/yyyy/basic.ics 28800
   NAME       Kalender_Familie
   NOTIFYDEV  global
   NR         142
   NTFY_ORDER 50-Kalender_Familie
   STATE      triggered
   TYPE       Calendar
   Readings:
     2016-10-07 17:05:09   lastUpdate      2016-10-07 17:05:07
     2016-10-07 08:22:25   modeAlarm
     2016-10-07 13:01:11   modeAlarmOrStart aaagooglecom
     2016-10-07 08:22:25   modeAlarmed
     2016-10-07 08:22:25   modeChanged
     2016-10-07 17:05:09   modeEnd         bbbgooglecom
     2016-10-07 08:22:25   modeEnded
     2016-10-07 13:01:11   modeStart       cccgooglecom
     2016-10-07 08:22:25   modeStarted
     2016-10-07 17:05:09   modeUpcoming    ddddgooglecom
     2016-10-07 17:05:09   nextUpdate      2016-10-08 01:05:07
     2016-10-07 17:05:11   nextWakeup      2016-10-08 00:00:00
     2016-10-07 17:05:09   state           triggered
Attributes:
   room       Kalender


und das Notify dazu:
Internals:
   DEF        Kalender_Familie:modeStart.* {Kalenderstart("$EVENT")}
   NAME       Kalender_Familie_Start
   NOTIFYDEV  Kalender_Familie
   NR         148
   NTFY_ORDER 50-Kalender_Familie_Start
   REGEXP     Kalender_Familie:modeStart.*
   STATE      active
   TYPE       notify
   Readings:
     2016-10-07 16:24:28   state           active
Attributes:
   room       Kalender

juergen012

Hallo

bei mir sind 2 notifys definiert:

Google_Kalender:start:.* {my $reading="$EVTPART0"; my $uid= "$EVTPART1"; my $actor= fhem("get Google_Kalender summary $uid 1"); if(defined $actor) { fhem("set $actor on") }}


Google_Kalender:end:.* {my $reading="$EVTPART0"; my $uid= "$EVTPART1"; my $actor= fhem("get Google_Kalender summary $uid 1"); if(defined $actor) { fhem("set $actor off") }}

Habe einen Googlekalender "fhem" eingerichtet, wo die Termine eingetragen sind.
Gruß
Jürgen K.
Fhem unter Proxmox

hosimpson

Zitat von: no_Legend am 04 Oktober 2016, 13:37:14
....
Das einzigste was ich mir momentan nicht erklären kann ist, dass wenn der Dummie On ist und ich ein Update voM Kalender machen, der Dummie Off geht.
Der Eintrag bei Start ist aber immer noch vorhanden.
...

Soweit bin ich jetzt auch. Beim ersten einlesen des Termins "Urlaub blabla" wird der Dummie richtig geschaltet.
Am nächsten Tag (Ganztagestermin über 2 Tage) ist er auf OFF.

Nach dem Anlegen eines beliebigen anderen Termins (1/2 h "Test") und UPDATE geht der Dummie wieder auf ON ?!

Hat jemand von euch die Kalender -> Dummy Steuerung zuverlässig laufen - auch mit Langzeitterminen, wie 1 Woche Urlaub?

Alternativ muss ich mal mit dem direkten Notify von @juergen012 experimentieren und meinen Termin "Urlaub_dummy" nennen.

VG
Stefan

juergen012

Hallo,
Genau, in meinem Googlekalender "fhem" habe ich Termine mit der Bezeichnung frueh eingetragen. Wenn nun der Termin fällig ist, wird der Dummy frueh geschaltet. Nach Ablauf der eingestellten Zeit im Kalender schaltet sich er Dummy wieder aus. Klappt sehr gut..

Gruß
Jürgen K. 
Fhem unter Proxmox

no_Legend

Zitat von: hosimpson am 10 Oktober 2016, 13:20:55
Soweit bin ich jetzt auch. Beim ersten einlesen des Termins "Urlaub blabla" wird der Dummie richtig geschaltet.
Am nächsten Tag (Ganztagestermin über 2 Tage) ist er auf OFF.

Das gleiche hab ich auch.
Es scheint als wenn der Kalender geupdated wird, also nach der eingestellten Zeit, dass dann das Verhalten auftaucht.

Ich hab das ganze ja schon länger in Betrieb, mir ist aber nicht aufgefallen, dass je so ein problem gehabt hätte.
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

hosimpson

Zitat von: juergen012 am 10 Oktober 2016, 13:34:46
Genau, in meinem Googlekalender "fhem" habe ich Termine mit der Bezeichnung frueh eingetragen. Wenn nun der Termin fällig ist, wird der Dummy frueh geschaltet. Nach Ablauf der eingestellten Zeit im Kalender schaltet sich er Dummy wieder aus. Klappt sehr gut..

Danke für den Hinweis. Werde heute Abend mit dem Test beginnen und dann hier berichten.
Frage: Funktioniert das bei Dir auch mit Serienevents bzw. mehrtägigen Einträgen? "Urlaub von Freitag bis Dienstag"...



juergen012

Serientermine klappen! Termine über mehrere Tage habe ich noch nicht getestet, sollte aber klappen..
Gruß
Jürgen K.
Fhem unter Proxmox