Fenster oder Tür auf dann Heizung runterstellen

Hier eine Szene die bei öffnen des Fensers oder der Tür den Heizplan auf Manuell stellen und beim schließen den Heizplan wieder auf Automatik stellen

--Declaration

  conditions = { {
      isTrigger = true,
      operator = "match",
      property = "cron",
      type = "date",
      value = { "*", "*", "*", "*", "*", "*" }
    } },
  operator = "any"
}

--Aktion
--[[
Globale Variablen

Für die einzelnen Heizkreise

Bezeichnung                     Global-Variable        ID des Heizkreises
------------------------------------------------------------------
Dachgeschoss WII Zimmer         Heiz_DG_WII                 2
Dachgeschoss Noras Zimmer       Heiz_DG_Noras               3
Dachgeschoss Sonjas Zimmer      Heiz_DG_Sonjas              4
Dachgeschoss Badezimmer         Heiz_DG_Bad                 8
Erdgeschoss Flur                Heiz_EG_Flur                5
Erdgeschoss Toilette            Heiz_EG_Toil                6
Erdgeschoss Computerraum        Heiz_EG_Comp                7
Erdgeschoss Küche               Heiz_EG_Kueche              10
Erdgeschoss Esszimmer           Heiz_EG_Essz                11
Erdgeschoss Wohnzimmer          Heiz_EG_Wohnz               12
Kellergeschoss Wohnzimmer       Heiz_KG_Wohnz               13
Kellergeschoss Kueche           Heiz_KG_Kueche              14
Kellergeschoss Eingang          Heiz_KG_Eing                15
--]]



---------------------------------------------------------------------------------------
--------------- Funcition Tür zu, Fenster zu sonst Heizung runterregeln ---------------
-- Solte es eine Tür oder ein Fenster nicht geben, so das Feld mit 0 oder "" besetzen.
-- Beispiel hzone_tuer_fenster(Z_1,168,210,"",12)
-- Z_1 = Globale Zählvariabel der jeweiligen Heizzohne (String)
-- 168 = ID des Türkontaktes
-- 210 = ID des Fenster1 Kontaktes
-- "" = Platzhalter für 2. Fenster
-- 12 = ID der Heizzohne
---------------------------------------------------------------------------------------
function hzone_tuer_fenster(v_global,tuer,fenster1,fenster2,zone_id)
    local z_fenster1 = false
    local z_fenster2 = false
    local z_tuer = false
    -- Zählvariabel Global nach Local holen
    local v_local = tonumber(fibaro.getGlobalVariable(v_global))
    --Gibt es ein Fenster1 oder nicht
    if fenster1 == 0 or fenster1 == "" then
        z_fenster1 = false
    else
        z_fenster1 = fibaro.getValue(tonumber(fenster1), "value")
    end
     --Gibt es ein Fenster2 oder nicht
    if fenster2 == 0 or fenster2 == "" then
        z_fenster2 = false
    else
        z_fenster2 = fibaro.getValue(tonumber(fenster2), "value")
    end
    --Gibt es eine Tür oder nicht
    if tuer == 0 or tuer == "" then
        z_tuer = false
    else
        z_tuer = fibaro.getValue(tonumber(tuer), "value")
    end
    --print(" zustand in Reihenfolge ",v_local," ",z_tuer, " ", z_fenster1, " ", z_fenster2)
    if v_local > 0 or (z_tuer == true) or (z_fenster1 == true) or (z_fenster2 == true) then
        --print("Los gehts Tür, Fenster1 oder Fenster2 ist auf")
        v_local = v_local + 1
        --print("Öffnungszeit in Minuten = ",v_local)  
    end
    if v_local == 6 then -- 5min
        --print("Heizplan ", zone_id ," auf 8°C")
        fibaro.homeCenter.climate.setClimateZoneToManualMode(tonumber(zone_id), 'Heat',"Hold", 8, nil)
    end
    if (z_tuer == false) and (z_fenster1 == false) and (z_fenster2 == false) and (v_local ~= 0) then
        --print("Heizplan ",zone_id ," wieder aktivieren")
        fibaro.homeCenter.climate.setClimateZoneToScheduleMode(tonumber(zone_id))
        v_local = 0
    end
    --Zählvariabel Local auf Global zurückschreiben
    fibaro.setGlobalVariable(v_global,tostring(v_local))
end --function


------------------------------------------------------------------------------------
---------------------------------- Hauptprogramm -----------------------------------
------------------------------------------------------------------------------------

--print("Start Heiz-F.oT.Steuerung")

-----------------------------------------------------------------------------
hzone_tuer_fenster("Heiz_DG_WII",143,148,0,2) --Dachgeschoss WII-Zimmer
hzone_tuer_fenster("Heiz_DG_Noras",0,158,0,3) --Dachgeschoss Noras-Zimmer
hzone_tuer_fenster("Heiz_DG_Sonjas",474,134,0,4) --Dachgeschoss Sonjas-Zimmer
hzone_tuer_fenster("Heiz_DG_Bad",110,113,0,8) --Dachgeschoss Badezimmer
hzone_tuer_fenster("Heiz_EG_Flur",544,0,0,5) --Erdgeschoss Flur zur Garage
hzone_tuer_fenster("Heiz_EG_Toil",0,65,0,6) --Erdgeschoss Toilette
hzone_tuer_fenster("Heiz_EG_Comp",0,539,0,7) --Erdgeschoss Computerraum
hzone_tuer_fenster("Heiz_EG_Kueche",0,202,0,10) --Erdgeschoss Küche
hzone_tuer_fenster("Heiz_EG_Essz",0,213,243,11) --Erdgeschoss Esszimmer
hzone_tuer_fenster("Heiz_EG_Wohnz",0,213,243,12) --Erdgeschoss Wohnzimmer
hzone_tuer_fenster("Heiz_KG_Eing",344,0,0,15) --Kellergeschoss Eingang
hzone_tuer_fenster("Heiz_KG_Kueche",0,350,0,14) --Kellergeschoss Küche
hzone_tuer_fenster("Heiz_KG_Wohnz",313,321,0,13) --Kellergeschoss Wohnzimmer
-----------------------------------------------------------------------------

Auch hier nichts besonderes aber gut zum Abschauen und lernen.

Gruss Frank