Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Ich brauche wieder Hilfe den ich habe ein neues Bedürfnisse entdeckt.
Ich mochte gerne Termine aus meinem Google Kalender auslesen.
Später möchte ich dann Regeln erstellen die mich in definierten Zeitspannen vor eintreffen eines bestimmten Termins akustisch via TTS erinnern.
Hat jemand eine Ahnung wie ich den Google Kalender auslesen kann.
Wenn Du das Wiki zum Google-Kalender befolgst, reicht es, einen Termin anzulegen und in der Beschreibung etwas wie
Code:
start {
send Shutter_FF_Child1 UP
}
end {
send Shutter_FF_Child1 DOWN
}
einzutragen. In diesem Fall fährt der Rollladen im Kinderzimmer 1 zu Beginn des Termins hoch und zum Ende des Termins runter. Für eine Ansage sollte z.B.
Danke udo1toni, das kenne ich, hilft mir in diesem Fall aber nicht. Es ist etwas Anspruchsvoller.
Ich importiere meinen Arbeitsplan in meine Google Calender.
Mein Arbeitstag beginnt immer zu verschieden Zeiten im Calender habe ich dann immer einen Termin mit dem Betreff "office". Am morgen verliehre ich immer ein bisschen die Zeit aus dem Auge. Darum würde ich gerne 60 Minuten, dann 45 und zum Schluss 30 Minuten vor dem Termin eine Ansage bekommen die via TTS ausgegeben wird.
Dazu sollte geprüft werden ob am heutigen Tag ein Termin mit dem Betreff "office" ansteht. Wenn ja wird via Rule im definierten Rythmus ein Text wieder gegeben.
Die Informationen müsste man via XSLT extrahieren, ich kenne mich damit aber nicht aus.
Wie importierst Du denn Deinen Dienstplan? (Ich arbeite im Schichtdienst und stehe damit vor einem ähnlichen Problem)
Vielleicht wäre es am einfachsten, beim Import automatisch entsprechende Reminder in Google Kalender zu erstellen? - Falls der Import irgendwie automatisiert ist...
Ich habe meine 'openhab-Termine' in einem eigenen Unterkalender und lese auch nur diesen aus. Tauchen denn Deine Dienste im openhab-log auf?
Wir haben ein Tool mit dem wir unseren Plan in Outlook auf unsere Mitarbieteradresse impotieren können danach speicher ich den Kalender als ical Datei und importiere ihn bei google in einen seperaten Kalender.
Die idee ist auch nicht schlecht das ich versuche mit dem googler Kalender eine Regel erstelle. Aber nur als Workaround.
gibt es die Möglichkeit überhaupt dem google kalender zu sagen wenn der Betreff "office" ist füge folgende Information hinzu. Ich habe gerade nichts gefunden. Ich glaube Openhab kann das besser wenn ich nur diesen Termin auslesen könnte.
Ich hab jetzt für mich eine Möglichkeit gefunden, den Kalender direkt mit openHAB auszulesen.
Ich hole mir das ICS File mit dem HTTP Binding und parse den empfangenen String nach den Datums- und Inhaltsfeldern.
Ist etwas zeit/rechenintensiv aber den Kalender holt man ja nicht alle paar Minuten.
[QUOTE=Jockel;353452]Kein fertiges getestetes, aber im Prinzip folgendermaßen:
Code:
var Timer BlinkTimer = null
when
Item Eingehender_Anruf received update ON
then
if(BlinkTimer==null) {
BlinkTimer = createTimer(now.plusSeconds(1)) [|
sendCommand(STEHLEUCHTE_WOHNZIMMER, !STEHLEUCHTE_WOHNZIMMER.state)
if (Eingehender_Anruf.state == ON) {
BlinkTimer.reschedule(now.plusSeconds(1))
}
]
} else {
BlinkTimer.reschedule(now.plusSeconds(1))
}
end
Wie gesagt, ungetestet. Außerdem bin ich nicht sicher on die Negierung im Parameter des send Command funktioniert, ansonsten müsste da noch eine Abfrage hin.
So, endlich mal Zeit zum testen gehabt ;-)
Mit dem Automatischen Negieren des States mit "!" klappt es wohl nicht:
Code:
java.lang.RuntimeException: The name '! <XMemberFeatureCallImplCustom>' cannot be resolved to an item or type
Naja - nun habe ich endlich eine Funktionierende Lösung ohne Tread:Sleep - auch wenn diese ungemein komplizierter ist ;-)
Code:
rule SCHARF_IMPULSE
when
Item AZ_SSB1_SIGNAL_SCHARF_IMPULSE received command ON
then
if(HTLightsBlink!=null)
{
HTLightsBlink.cancel()
}
if(HTLightsBlink==null)
{
HTLightsBlink = createTimer(now.plusMillis(1000)) [|
if (LICHT_AN_AUS_AUSSEN_HAUSTUER.state == ON)
{
sendCommand(LICHT_AN_AUS_AUSSEN_HAUSTUER, OFF)
}
else
{
sendCommand(LICHT_AN_AUS_AUSSEN_HAUSTUER, ON)
}
if (AZ_SSB1_SIGNAL_SCHARF_IMPULSE.state == ON)
{
HTLightsBlink.reschedule(now.plusMillis(1000))
}
]
}
else
{
HTLightsBlink.reschedule(now.plusMillis(1000))
}
end
Sorry - habe gerade gesehen das ich im ersten Beispiel noch andere Items hatte - aber das Prinzip ist das gleiche.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar