NEWS
Licht per Google Kalender steuern
-
@homoran said in Licht per Google Kalender steuern:
@grml sagte in Licht per Google Kalender steuern:
Mir geht es in dem Fall eher darum, wie ich entsprechend (in Blockly) filtere und den ganzen Inhalt des Feldes "text" strippe, trimme etc. Gerade auch dann, wenn es mehrere "Lichteinträge" bzw. verschiedene Lichter am Tag gibt.
um das sagen zu können brauchte ich die Zusatzinformation.
Wie sieht denn so ein Eintrag bei dir aus?
Naja, wie im Eingangspost geschrieben:
Den Google-Kalender habe ich bereits im iCal-Adapter eingebunden und sehe auch meinen Testeintrag neben denen des Abfallkalenders (anderer Google-Kalender). In ical.0.data.text steht "Heute 11:35-11:40 hue.0.Studio.on In 4 Tagen 07:00-07:15 Gelber Sack+Papiertonne Bereitstellung In 5 Tagen 07:00-07:15 Biomüll Bereitstellung In einer Woche 07:00-07:15 Restmüll Bereitstellung 06.03.2021 07:00-07:15 Altpapier Bereitstellung 08.03.2021 07:00-07:15 Gelber Sack Bereitstellung 09.03.2021 07:00-07:15 Biomüll Bereitstellung 11.03.2021 07:00-07:15 Restmüll Bereitstellung "
Das fett Geschriebene wäre der Part, auf den es ankommt. In dem Fall ist es nur ein Termin am Tag. Aber gerade in "Live"-Situationen (also im Urlaub) schalte ich natürlich mehrere Lichter zu unterschiedlichen Zeiten, oft auch überlappend.
Ich habe gerade noch drei neue Einträge gemacht die alle heute stattfinden würden, auch überlappend. Dann sieht das Objekt ical.0.data.text so aus:
Heute 13:05-13:10 hue.0.Studio.on Heute 15:30-17:00 hue.0.Wohnzimmer.on Heute 16:00-16:30 hue.0.Studio.on In 4 Tagen 07:00-07:15 Gelber Sack+Papiertonne Bereitstellung In 5 Tagen 07:00-07:15 Biomüll Bereitstellung In einer Woche 07:00-07:15 Restmüll Bereitstellung 06.03.2021 07:00-07:15 Altpapier Bereitstellung 08.03.2021 07:00-07:15 Gelber Sack Bereitstellung 09.03.2021 07:00-07:15 Biomüll Bereitstellung 11.03.2021 07:00-07:15 Restmüll Bereitstellung
Fett wieder die entsprechenden Termine.
Die Logik, wie ich sie in FHEM hatte war (vereinfacht ausgedrückt): "Schaue ob es im Kalender einen Eintrag gibt der zur aktuellen Anfangszeit (inkl Datum) passt und schalte das Gerät ein, dass gleich heißt wie der Titel des Kalendereintrags." Dann noch das Gleiche für die Endzeit des Termins. Zu der gegebenen Uhrzeit das Gerät mit dem Namen gleich dem Terminnamen ausschalten.
-
@grml
Dachte ich mir, Dein Ansatz ist zu kompliziert
Du kannst mit dem iCal Adapter Termine filtern und dann geht simpel ein DP auf true oder eben false und damit lässt sich das wesentlich einfacher gestalten. -
@jan1 said in Licht per Google Kalender steuern:
@grml
Dachte ich mir, Dein Ansatz ist zu kompliziert
Du kannst mit dem iCal Adapter Termine filtern und dann geht simpel ein DP auf true oder eben false und damit lässt sich das wesentlich einfacher gestalten.Das mag sein, dass ich da zu kompliziert denke
Dann werde ich mal recherchieren, wie ich da filtere um nur das Nötige zu bekommen. Vielleicht wird es mir dann einfacher verständlich. -
@grml
Du siehst ja im Adapter die Möglichkeit was man so alles einstellen kann und wenn die Stichworte im Kallender auftauchen, wird eben der zugehörige DP gesetzt. Sollte eben auch mit Stunden Bezogenen Ereignissen funktionieren und ist eigentlich ne recht elegante Lösung, wie man hier schnell und einfach ein paar Zenarien über den Kallender erstellen könnte.
Da Du hier im Gegensatz zu einem kompletten Neuling schon einiges an Wissen mitbringst, dürfte das auch nicht zu schwer fallen. -
@jan1 @Homoran
Ok, ich glaube es wird gerade etwas klarer.Nachdem ich die Doku zum Adapter gerade nicht nur (nochmal) gelesen, sondern nun (glaube ich) auch halbwegs verstanden habe, werde ich in der Tabelle "Ereignisse" für jede Lampe(ngruppe) einen Eintrag anlegen. Der entsprechende DP sollte dann zum gegebenen Zeitpunkt TRUE werden, wenn genau diese Bezeichnung im Kalender steht.
Darauf sollte ich in Blockly problemlos triggern können.Aber noch eine Frage: In der Doku finde ich nix zur Spalte "Control ID" (https://www.iobroker.net/docu/index-298.htm?page_id=154&lang=de). Was macht die denn?
-
@grml sagte in Licht per Google Kalender steuern:
In der Doku finde ich nix zur Spalte "Control ID"
Danke für den 5 Jahre alten Link
Ich muss das mal mit der neuen Doku:
https://www.iobroker.net/#de/adapters/adapterref/iobroker.ical/README.md
zusammenführen -
@homoran said in Licht per Google Kalender steuern:
@grml sagte in Licht per Google Kalender steuern:
In der Doku finde ich nix zur Spalte "Control ID"
Danke für den 5 Jahre alten Link
Ich muss das mal mit der neuen Doku:
https://www.iobroker.net/#de/adapters/adapterref/iobroker.ical/README.md
zusammenführenUps sorry
Der kam in der Google Suche auf Platz 1 bei den Begriffen ioBroker ical Control ID.
Ich habe dann nicht geschaut, ob/wie aktuell das ist...EDIT: Wobei im obigen Link auch nix zur Control ID steht
Und zu den Spalten "on off" auch nicht... Da suche ich gerade auch noch, was es damit auf sich hat.
-
@grml sagte in Licht per Google Kalender steuern:
Ups sorry
kein Problem.
Ich hab das vor 5 Jahren geschrieben und wusste nicht mehr wie man rankam -
@grml
Gute Frage. ich habs gerade mal getestet, ob man so direkt was schalten kann (so hatte ich das verstanden), funktioniert aber nicht und din der "neuen" Doku steht da auch nichts.Ja Deine Erkenntnis zum Rest des Adapter passt soweit
-
@jan1 said in Licht per Google Kalender steuern:
@grml
Gute Frage. ich habs gerade mal getestet, ob man so direkt was schalten kann (so hatte ich das verstanden), funktioniert aber nicht und din der "neuen" Doku steht da auch nichts.Ja Deine Erkenntnis zum Rest des Adapter passt soweit
Hm, da scheint was nicht zu funktionieren
Ich hatte einen Termin mit dem Titel "Studiolicht" von 16:02 bis 16:05 im Kalender. Ein Ereignis mit Namen "Studiolicht" habe ich im Adapter auch angelegt. Im Datenpunkt "Studiolicht" im Channel "iCal\1\Events\0\ Later" habe ich auch ein TRUE stehen. Der Kalendereintrag wurde also korrekt gefunden und zugeordnet.
Meine Erwartung wäre gewesen, dass der DP "Studiolicht" im Channel "iCal\1\Events\0\ Now" dann um 16:02 auf TRUE springt. Hat er aber nicht getan. Er bleibt auf FALSE.
Und "Later" wurde nun, nachdem alle Termin rum sind, auch nicht aktualisiert. Das steht weiterhin auf TRUE.Wo liegt da mein Denkfehler?
-
@grml
Ich teste das gerade selber und mein Ereignis ist um 16:30, dann bin ich schlauer. -
@jan1
Ich habe gerade die Vermutung, dass der iCal-Adapter da (designtechnisch) evtl. etwas starr ist. Zumindest für den von mir angedachten Zweck.
Mein Gefühl sagt mir, dass mein DP "Later" um 16:30 auf FALSE springen wird. Da ist auch bei mir die nächste CRON-Abfrage.
Die DP werden vermutlich nur bei jedem Durchlauf aktualisiert. Ein Abgleich mit der aktuellen Uhrzeit wird nicht enthalten sein.Im Gegenzug bedeutet das, dass der DP in "Now" nur dann TRUE wird, wenn während der iCal-Abfrage tatsächlich was zu genau diesem Zeitpunkt ansteht.
-
@grml sagte in Licht per Google Kalender steuern:
dass der iCal-Adapter da (designtechnisch) evtl. etwas starr ist.
kann sein, dass es daran liegt, dass der ical-Adapter scheduled arbeitet.
Wenn der also nur alle halbe Stunde startet, bearbeitet er auch nur auf eine halbe Stunde genau -
@homoran
Ja, das ist es.
Wie vermutet ist mein "Later" nun FALSE. Und ein "Now" ist nur dann TRUE, wenn der Eintrag im Kalender stattfindet, während der Scheduler aktualisiert.Heißt in der Konsequenz: Entweder den Scheduler wesentlich öfter laufen lassen oder doch den Adapter "fullcalendar" anschauen...
Aber dann habe ich zumindest meine Antwort
-
@grml
Ja da hast wohl recht, bei Uhrzeit basieren Ereignissen ist das etwas kniffliger und man muss den Zeitplan in dem er neu einliest sehr eng halten. Das würde funktionieren, lässt aber nur eine recht grobe zeitliche Steuerung zu ohne den alle paar Sekunden abfragen zu lassen.
Mein Ereignis wurde auch erst eingelesen, als ich manuell den iCal gestartet habe. -
wäre hier nicht auch die Verwendung eines Events denkbar? Habe mich schon immer gefragt, wie man das einsetzt und könnte mir gut hier vorstellen.
-
@maloross
Jetzt ist die Frage was Du mit Events meinst? -
@maloross sagte in Licht per Google Kalender steuern:
wäre hier nicht auch die Verwendung eines Events denkbar?
Das hat er ja versucht.
Aber der Event (=Ereignis) sprang nicht auf Now=true, weil in der Zeit des Events kein scheduled Start des Adapters stattgefunden hat.@Grml
Was mich mal reizen würde zu probieren:
Man könnte wahrscheinlich morgens den ical Datenpunkt auslesen, den Eintrag über Blockly herausparsen und wenn alles gut läuft daraus einen CRON zusammenbasteln, der dann um die Uhrzeit die Lampe anstelltLeider habe ich keine solche "Termine"
-
@jan1 im ical-Adapter gibt es den Punkt "Ereignisse" mit den Optionen on/off. Ich dachte, hier könnte man "Licht x" mit Uhrzeit an und aus eintragen - so die Theorie
-
@maloross womit meine Frage oben beantwortet wurde..