Rule Google Kalender Lüftungssteuerung

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
hulda
Beiträge: 68
Registriert: 13. Jan 2018 19:43
Answers: 0

Rule Google Kalender Lüftungssteuerung

Beitrag von hulda »

Hallo zusammen,
wer kann sich bitte mal meine Rule anschauen, die funktioniert nur sporadisch...
Was möchte ich?
Ein Event aus dem Googlekalender auswerten und darauf reagieren.
Also Lüftung soll zwischen manuell und automatic wechseln. je nach dem was ich im Kalender eingetragen habe.
Irgendwo habe ich einen Fehler in der Regel. Es funktioniert nur wenn ich den Hauptschalter einmal betätige.
Ich möchte auch das die regel alle 5 minuten einmal ausgeführt wird damit Änderungen auch vor dem Kalenderbefehlwechsel ausgeführt werden

item:

Code: Alles auswählen

Switch                KWL_Wochenprogrammhauptschalter                  "Wochenprogramm Hauptschalter"
Switch                KWL_kalendermanuell
Switch                KWL_Wochenprogramm
Switch                KWL_WochenprogrammStatus                         "Status Kalenderbetrieb[MAP(lueftungstatus.map):%s]"            

Code: Alles auswählen

 rule "Kalender auslesen OG"
when
 Time cron "0 0/5 * * * ?" or //every 5 Minutes
    Item KWL_kalendermanuell changed  //von kalender BEGIN:KWL_kalendermanuell:ON und END:KWL_kalendermanuell:OFF
    
    then
        if (KWL_Wochenprogramm.state ==NULL) //Abfrage wenn Item NULL
{
    KWL_Wochenprogramm.postUpdate(ON)
}


    	if(KWL_kalendermanuell.state == ON)   	//ist on gleich Manuell	
        {
          KWL_Wochenprogramm.sendCommand(ON)
        }
else
{
   KWL_Wochenprogramm.sendCommand(OFF)     //ist off gleich automatic
   KWL_Manuell.sendCommand(0) //auf automatic wechseln
   
   logInfo("myRules","Automatic ein")
}    
end



rule "Wochenprogramm Lüftung OG"
when

  Time cron "0 0/5 * * * ?" or //every 5 Minutes
    Item KWL_Wochenprogrammhauptschalter changed or   //ist der Hauptschalter an oder der Kalenderbefehl kommt
    Item KWL_kalendermanuell changed
then
    if ((KWL_Wochenprogrammhauptschalter.state == ON) && (KWL_Manuell.state == 0) && (KWL_Wochenprogramm.state == ON)) {   

      logInfo("myRules","Manuell ein")
    KWL_Manuell.sendCommand(1)  //Lüftung auf manuelle
      KWL_Stufe.sendCommand(0)  //Lüfterstufe 1
      KWL_WochenprogrammStatus.sendCommand(ON)  //Staus zur Anzeige setzen
    }
          else 
          {
            KWL_Manuell.sendCommand(0)   //ansonsten manuell aus= automatic
            KWL_WochenprogrammStatus.sendCommand(OFF)
          }
            
    

end
Gruß Dirk

Antworten