NEWS
Javascript Wecker (1 Std vor Beginn eines Kalendereintrags)
-
Hallo zusammen,
mit hilfe des ical adapters habe ich es geschafft ein javascript zu basteln, welches zu beginn eines Events im Google Calendar meine Hue Lampen einschaltet.
on({id: "ical.0.events.F-Schicht", change: 'true'}, function (obj) { setState('hue.0.Philips_hue.Schlafzimmer.on', true); } );Das ist so schön und gut aber für meine persönlichen Bedürfnisse nicht ganz zu gebrauchen.
Ich habe meinen Schichtplan im Googlecalendar hinterlegt und möchte nun aber in einer bestimmten Zeit vor Schichtgebinn die Lampen im Schlafzimmer aktivieren.
Doch leider fehlen mir Javascriptkenntnisse um mein Vorhaben in Code umzusetzen.
Ein Kollege hat mir folgenden Ansatz gegeben um schonmal die Event startzeit auszulesen und in einer Variablen zu speichern:
var kalender = getState("ical.0.data.html").val; var suche_heute = kalender.indexOf('Heute'); var wecker = kalender.slice((suche_heute + 6), (suche_heute + 11));Damit hätte ich dann z.B. "06:00" als string in der Variablen.
Wie bekomme ich es nun hin dass um beispielsweise 05:10 Uhr das Script ausgeführt wird?
Vorab: Vielen Dank für eure Hilfe!
-
Habe es hinbekommen (über Cronjob x Minuten vor dem Event). Falls noch jemand ähnliches vor hat, hier der Code.
! schedule("15 5 * * *", function () { // Weckzeit hier einstellen (Bsp: 05:15) - Dann wird der Cronjob gestartet
! var kalender = getState("ical.0.data.html").val;
! var suche_heute = kalender.indexOf('Heute');
! var wecker = kalender.slice((suche_heute + 6), (suche_heute + 11));
! if (wecker == "06:00")
! {
! setState('hue.0.Philips_hue.Schlafzimmer.on', true);
! }
! log(kalender);
! log(suche_heute);
! log(wecker);
! });Im Codebeispiel wird davon ausgegangen dass das Event (Frühschicht) als einziges Event für den heutigen Tag im Kalender mit Startzeit 06:00 Uhr eingetragen ist und "Zeit als Wort anzeigen" in den Adaptereinstellungen aktiviert ist.
Der Wecker soll um 05:15 Uhr das Licht im Schlafzimmer anschalten.
Dazu wird um 05:15 Uhr der Cronjob gestartet und geprüft ob ein Event mit Beginn 6 Uhr existiert, wenn ja dann geht das Licht an. Wenn nicht, dann passiert nichts.
Für weitere Wecker einfach ein weiteres Script mit anderen Zeiten erstellen.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden