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