--[[ 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_Arbeit 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,"",178,"179",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 -- 178 = ID des Motor1 E-Fensters1 elekrisch auf/zu -- 179 = ID des Motor2 E-Fensters2 elekrisch auf/zu -- 12 = ID der Heizzone --------------------------------------------------------------------------------------- function hzone_tuer_fenster(v_global,tuer,fenster1,fenster2,motor1, motor2,zone_id) local z_motor1 = false local z_motor2 = false 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)) --print(" v_global",v_global," v_local",v_local," Tür ",z_tuer, " Fenster1 ", z_fenster1, " Fenster 2 ", z_fenster2, " Motor 1 ", z_motor1, " Motor 2 ", z_motor2) --print("Global = ", tonumber(fibaro.getGlobalVariable(v_global))) --Gibt es ein Motor1 oder nicht if motor1 == 0 or motor1 == "" then z_motor1 = 0 else z_motor1 = fibaro.getValue(tonumber(motor1), "value") end --Gibt es ein Motor2 oder nicht if motor2 == 0 or motor2 == "" then z_motor2 = 0 else z_motor2 = fibaro.getValue(tonumber(motor2), "value") end --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, z_motor1, " ", z_motor2) if v_local > 0 or (z_tuer == true) or (z_fenster1 == true) or (z_fenster2 == true) or (z_motor1 > 0) or (z_motor2 > 0) then print("Los gehts Tür, Fenster1, Fenster2, E-Fenster1 oder E-Fenster2 ist auf") v_local = v_local + 1 print("Öffnungszeit in Minuten = ",v_local) end if v_local == 2 then -- 1min 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 (z_motor1 == 0) and (z_motor2 == 0) 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,0,0,16) --Erdgeschoss WC hzone_tuer_fenster("Heiz_EG_Kueche",0,220,0,0,0,17) --Erdgeschoss Küche hzone_tuer_fenster("Heiz_EG_Winterg",0,0,0,176,179,13) --Erdgeschoss Wintergarten hzone_tuer_fenster("Heiz_EG_Wohnz",0,0,0,0,0,13) --Erdgeschoss Wohnzimmer hzone_tuer_fenster("Heiz_OG_Fernsehz",0,77,0,0,0,15) --Obergeschoss Fernsehzimmer hzone_tuer_fenster("Heiz_OG_Arbeit",0,74,0,0,0,14) --Obergeschoss Arbeitszimmer hzone_tuer_fenster("Heiz_OG_Bad",0,88,0,0,0,12) --Obergeschoss Badezimmer -----------------------------------------------------------------------------