--[[ Globale Variablen Für die einzelnen Heizkreise Bezeichnung Global-Variable ID des Heizkreises ------------------------------------------------------------------ Dachgeschoss Galerie Zimmer Heiz_DG_Galerie 2 Dachgeschoss Leonies Zimmer Heiz_DG_Leonie 3 Dachgeschoss Ankleidezimmer Heiz_DG_Ankleide 4 Erdgeschoss WC Heiz_EG_WC 5 Erdgeschoss Küche Heiz_EG_Kueche 6 Erdgeschoss Wintergarten Heiz_EG_Winterg 7 Erdgeschoss Wohnzimmer Heiz_EG_Wohnz 8 Obergeschoss Fernsehzimmer Heiz_OG_Fernsehz 9 Obergeschoss Arbeitszimmer Heiz_OG_Arbeitsz 10 Obergeschoss Badezimmer Heiz_OG_Bad 11 ]] --------------------------------------------------------------------------------------- --------------- 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 Heizzone --------------------------------------------------------------------------------------- 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_Galerie",0,0,0,0) --Dachgeschoss Galerie -- hzone_tuer_fenster("Heiz_DG_Leonie",0,0,0,0) --Dachgeschoss Leonies-Zimmer -- hzone_tuer_fenster("Heiz_DG_Ankleide",0,0,0,0) --Dachgeschoss Ankleidezimmer -- hzone_tuer_fenster("Heiz_EG_WC",0,120,0,16) --Erdgeschoss WC -- hzone_tuer_fenster("Heiz_EG_Kueche",0,220,0,13) --Erdgeschoss Küche -- hzone_tuer_fenster("Heiz_EG_Winterg",0,176,176,13) --Erdgeschoss Wintergarten -- hzone_tuer_fenster("Heiz_EG_Wohnz",0,0,0,13) --Erdgeschoss Wohnzimmer -- hzone_tuer_fenster("Heiz_OG_Fernsehz",0,77,0,15) --Obergeschoss Fernsehzimmer hzone_tuer_fenster("Heiz_OG_Arbeitsz",0,74,73,14) --Obergeschoss Arbeitszimmer -- hzone_tuer_fenster("Heiz_OG_Bad",0,88,0,12) --Obergeschoss Badezimmer -----------------------------------------------------------------------------