NEWS
Ical Events als Bedingung?
-
Hallo zusammen,
ich bin zwar nicht blutiger Anfänger, aber mit scripten habe ich es gar nicht.
Könnte mir jemand einen Tipp geben, wie man Ical Events als Bedingung (es handelt sich um einen Dienstplan) einsetzt? Am liebsten Blockly.
Ich möchte bei Frühdienst einige Sachen automatisieren wie z.B. Licht oder Heizung.
Wenn es also im Google Kalender heute den Event "Früh" gibt, soll das Licht um 4:00 Uhr in der Früh angehen um 3:30 die Heizung im Bad losgehen.
Ich verwende bei mir HomeMatic. Dort ist sind die jeweiligen Philips HUE integriert. Für den Frühdienst gibt es auch eine Systemvariable, die im Moment manuell mittels eines Tasters eingeschaltet wird, dass die erwünschten Aktionen beim Frühdienst laufen.
Ich habe sämtliche Instanzen installiert und kann auch schalten und walten damit.
Auch die Instanz ical ist installiert, kann jedoch damit, was da kommt so gar nix anfangen, bzw. dies als Bedingung einsetzen.
-
So ganz habe ich Dein Problem nicht kapiert. Wenn Du im Google Kalender ein Event, z.B "Früh" einträgst und das dann über ical abfägst, geht doch der DP für das Event "Früh" auf true und genau das willst doch haben. ical ist eigentlich an sich schon selbsterklärend und der Rest steht Google Kalender importiert wird ist mit Bildern erklärt (wobei das nicht mehr aktuell ist, aber in die Richtung passt es noch).
-
Schon Folgendes gelesen?
-
Schon Folgendes gelesen?
Die deutsche Version ist mit Bilder https://github.com/ioBroker/ioBroker.ic … ADME-de.md
-
Sorry ich komme da nicht klar!
wie realisiere ich …
wenn (im Google-Kalender heute ein Event "Früh" steht) in Blockly
dann (das weiß ich dann selbst) Licht anschalten, Heizung an etc.
Ich weiß nicht,wie ich den Google-Kalender abfrage um z.B. ein true zu bekommen.
-
Hier mal auf die Schnelle etwas, was ich bei mir laufen habe. Ist vielleicht nicht schön, aber erfüllt seinen Zweck.
Dazu muss man sagen, dass Krank.Zuhause.Allgemein eine selber erstellte Variable ist. Die Objekte Krank-Zuhause-Name1, Krank-Zuhause-Name2, Krank-Zuhause-Name3 werden durch den Adapter ical mit Inhalt befüllt.
Wenn im Kalender der Eintrag "Krank-Zuhause - Name1", "Krank-Zuhause - Name2" oder "Krank-Zuhause - Name3" auftauchen, setzt ical diese Objekte auf True, sonst auf false.
4032_2018-10-25_-09_58-iobroker-admn-_krankheitscheck.png -
Du scheinst recht oft "krank zu Hausse" zu sein, oder warum ist Dein Zeitplan alle Minute aktiv?
Ich würde hier eh nicht mit "Zeitplan" als Trigger arbeiten, sondern mit einem "Falls" Trigger. Der Zeitplan im Minuten Takt bringt Dir eh nix, wenn Du den Ical Adapter nur einem am Tag aktualisieren lässt, da der Rest vom Tag dann sowieso keine Änderung erhält und das dann so oft zu checken ist schlicht überflüssig.
-
Sorry ich komme da nicht klar!
wie realisiere ich …
wenn (im Google-Kalender heute ein Event "Früh" steht) in Blockly
dann (das weiß ich dann selbst) Licht anschalten, Heizung an etc.
Ich weiß nicht,wie ich den Google-Kalender abfrage um z.B. ein true zu bekommen. `
Na mit dem Ical Adapter und der ist eigentlich recht einfach. Das was sich nicht eh von selbst erklärt, seht in der Anleitung dazu.
Kurz zusammen gefasst, den Kalender und die Event Namen im Adapter eintragen und schon läuft das.
-
Du scheinst recht oft "krank zu Hausse" zu sein, oder warum ist Dein Zeitplan alle Minute aktiv?
Ich würde hier eh nicht mit "Zeitplan" als Trigger arbeiten, sondern mit einem "Falls" Trigger. Der Zeitplan im Minuten Takt bringt Dir eh nix, wenn Du den Ical Adapter nur einem am Tag aktualisieren lässt, da der Rest vom Tag dann sowieso keine Änderung erhält und das dann so oft zu checken ist schlicht überflüssig. `
So gesehen hast Du recht. Und dann ändert sich der Krankheitsstatus von Minute zu Minute :shock:
Aber… Nachdem ich den Post abgesandt hatte, habe ich den Cron auch tatsächlich auf eine Minute nach dem ICal-Aufruf gesetzt
Aber zurück zum "Falls" Trigger. Werde mal ausprobieren, wie ich es damit umsetzen kann. Ist immer noch viel "Neuland"
-
Ich würde hier eh nicht mit "Zeitplan" als Trigger arbeiten, sondern mit einem "Falls" Trigger. `
Nochmals dank für den Tipp mit anderem Trigger. Habe nun mit meinen bescheidenen Kenntnissen von Blockly auf Folgendes umgeändert:
Soweit so gut. Und wie würde ich das obige Beispiel dahingehend ergänzen, dass die Variable "Anwesenheit.KrankZuhause" auf false gesetzt wird, wenn alle drei Trigger-Variablen den Zustand false haben sollten?
Ich meine natürlich die elegante Ergänzung und nicht die "Holzhammermethode", wie ich es vielleicht als Blockly-Anfänger machen würde :lol:
-
> Wenn im Kalender der Eintrag "Krank-Zuhause - Name1", "Krank-Zuhause - Name2" oder "Krank-Zuhause - Name3" auftauchen, setzt ical diese Objekte auf True, sonst auf false.
Genau da ist der Hund begraben.
Wie bringe ich es ical bei, dass der Wert auf true geht, wenn ich Krank bin /Frühdienst habe?
Bei mir sieht es so aus unter den Objekten:
-
dass die Variable "Anwesenheit.KrankZuhause" auf false gesetzt wird, wenn alle drei Trigger-Variablen den Zustand false haben sollten? `
-
OK, so ein wenig bin ich dahinter gekommen, dass man in der Instanz jeweils ein Ereignis erstellen muss.
So bekomme ich endlich ein true, weil heute Frühdienst ist.
Trotzdem gelingt es mir nicht die Palmen anzuschalten (mal so zum Test)
oder so …
Erkennt jemand einen Fehler?
-
Du nimmst den Trigger vom ersten Bild, änderst den auf "geändert" und packst die "falls" Bedingung vom 2. Bild rein, fertig.
-
Das zweite Bild soll zum Test jede Minute abfragen, ob der Wert im ical auf Früh steht, deshalb sowas simples.
Die Steckdose Palme steht neben mir und ich kann sofort erkennen, ob der Trigger funktioniert. Später soll es mal die Heizung und das Licht werden.
Da meine Frau heute Spätdienst hat, in den Objekten auch Spät heute auf true steht, trigger ich heute nach true bei "spät".
Ich habe mal deinen Vorschlag umgesetzt, es funktioniert jedoch auch nicht. Ich habe das Gefühl, dass der Trigger nicht funktioniert.
-
Asche auf mein Haupt …. Vielen Dank mal, für eure bisherige Hilfe!
-
aaaaaaaaaaaahhhhhhhhhhhrg es geht ! ! !
Ich vergaß den ersten Trigger auf Spät zu stellen.
Vielen lieben Dank zusammen!
-
Aber ohne den Zeitplan! Sonst bist wieder bei der Trigger im Trigger Geschichte. Das kann man machen, muss dann aber auch wirklich sehr genau wissen wie die Abhängigkeiten sind und was man macht.
Also noch mal ein Blockly ist in der Regel wie folgt aufgebaut. Zuerst kommt der Trigger (rosa) und da kommt das eigentliche Skript (blau usw) rein und nicht noch ein Trigger.
-
Dank an Paul53 :mrgreen:
-
Ohje zu früh gefreut, es funktioniert nicht.
Mir ist gerade was aufgefallen. Zur tatsächlichen IST-Situation. Meine Frau hat heute Spätdienst. Also steht heute bei den Objekten Spät auf wahr.
Wenn ich allerdings in Blockly auf das Objekt klicke, bekomme ich den Frühdienst auf wahr.
Habe ich etwa bei der Instanz – Ereignissen den Wurm drin?