GEA Showroom

Post Reply
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

Här är lite kod för GEA som jag använder mig utav. - Uppdaterad 20161001

Code: Select all

 
local WC = {Tak = 76, Spegel = 74, flakt_wc = 129, dorr = 342}
local KOK = {lilla_fonster = 85, fonster = 31, kaffebryggare = 158, floodsensor = 242, flowstop = 247, bankbelysning = 119, rorelse = 87, lux = 89}
local VRUM = {bokhyllan = 334, altan_dorr = 48, fonster_tv = 121, rorelse = 92, lux=94, RGBW = 184, fonster_altan = 338, ledlistkruka= 336}  
local HALL = {taklampa = 297, ledlist_kruka = 14, trappen = 326}
local HALL_UPPE = {Motion = 249}
local SOVRUM = {lampa_jonny = 123, lampa_mona = 125, fonster = 113, rullgardin = 281}
local GASTRUM = {fonster = 153, rullgardin = 283}
local GARAGE = {port = 316, lampa = 5}
local KALLARE = {lyse_kallare = 23}
local UTE = {lyktstolpe = 115}
local ALTAN = {altan_krukor = 83}
local SENSORS = {dSensor_basement = 16, mSensor_basement = 18, dSensor_ytterdorr = 278, dSensor_altan = 223, mSensor1wc = 62, mSensor2wc = 67}
local VD = {SONOS_SAY_IT = 358, HC2_DIAGNOSTICS = 356, sunrise_sunset = 287, netatmo_rain = 290, netatmo_wind = 291, openweather = 289, calender = 6, ADMIN_WIFI = 80, VD_tempnu = 50, VD_energy = 127, TTS = 163, Sonos = 298, thingspeak = 263, freememory = 155, battTelegram = 272, VD_presence = 301, VD_huset= 140, mona = 303, jonny = 304}
local PORTALBLE = {iPhoneJonny = 284, iPhoneMona = 32}
local action_to_keypress_number = {["Pressed"] = 0, ["Pressed2"] = 3, ["HeldDown"] = 2, ["Released"] = 1}
local NodON = {koket = 258}
local LARM = {Garageporten = 316}
local GEA_ALARM = {jonny = 317, mona = 318}

local currenttime  = os.date('*t');
local currentmonth = currenttime['month']
local TTS_Sonos = {"VirtualDevice", VD["SONOS_SAY_IT"], 1}


Code: Select all

------------------------ FUNCTIONS --------------------------------------
-- Calendar event
  function isEventNow()
  local day = os.date("%d/%m %H:%M")
  for i = 1, 10 do
    local event = fibaro:getGlobalValue("Event"..i) 
    if (string.find(event, day)) then
      return true, event
    end
  end
  return false
  end

  function checkSeason()
    if ( currentmonth >= 3 and currentmonth <= 5) then
      fibaro:setGlobal("SeasonState", "Spring");
      elseif ( currentmonth >= 6 and currentmonth <= 8) then
      fibaro:setGlobal("SeasonState", "Summer");
      elseif  ( currentmonth >= 9 and currentmonth <= 11) then  
      fibaro:setGlobal("SeasonState", "Autumn");
      else fibaro:setGlobal("SeasonState", "Winter");
    end
  end

  
-- Check Presence 
  function checkPresence()
    local jonnyHome=fibaro:getGlobalValue("Phone_JL_Present")
    local geoJonnyHome=fibaro:getGlobalValue("Geo_Jonny_Home")
    local monaHome=fibaro:getGlobalValue("Phone_ML_Present")
    local geoMonaHome=fibaro:getGlobalValue("Geo_Mona_Home")
    local sandraHome=fibaro:getGlobalValue("Phone_SW_Present")
    local tijnHome=fibaro:getGlobalValue("Phone_MW_Present")
    local sofiaHome=fibaro:getGlobalValue("Phone_SL_Present")
    local driesHome=fibaro:getGlobalValue("Phone_DD_Present")

    if tijnHome > "0" or sandraHome > "0" or sofiaHome > "0" or driesHome > "0" then
      fibaro:setGlobal("GuestMode", "1")
      else fibaro:setGlobal("GuestMode", "0")
    end
    local guests=fibaro:getGlobal("GuestMode")
    local total=jonnyHome+geoJonnyHome+monaHome+geoMonaHome+guests
    if (total == 0) then
        fibaro:setGlobal("Status", "Borta")
        --print("Borta")
    else
        fibaro:setGlobal("Status", "Hemma")
        --print("Hemma")
    end
  end

-- Convert NodON Soft remote CentralSceneEvent command to sceneActivation ID by speedy @ forum.fibaro.com
  function key_action_to_number()
    local keypress_ID
      if (startSource.type == "event" and startSource.event.type == "CentralSceneEvent") then
        keypress_ID = tonumber(startSource.event.data.keyId .. action_to_keypress_number[tostring(startSource.event.data.keyAttribute)])  
      if keypress_ID == 10 then
      elseif keypress_ID == 30 then
      end
      return keypress_ID
      else
        return false
      end 
  end

---------------------------------------------------------------------------
-- ALARM --
  -- GEA ALARM CLOCK - Om personen är hemma, kör GEA ALARM på utsatta tider som sätts med VD
  GEA.add({"Alarm", GEA_ALARM["jonny"]}, 0, "", {{"If",{{"Global","Geo_Jonny_Home","1"}}},{"Global", "SleepState", "Vaken"}})
  GEA.add({"Alarm", GEA_ALARM["mona"]}, 0, "", {{"If",{{"Global","Geo_Mona_Home","1"}}},{"Global", "SleepState", "Vaken"}})
  -- SONOS - Sätt på play1 på P3 när GEA Alarm har utförts
  GEA.add({"Alarm", GEA_ALARM["jonny"]}, 0, "", {{"If",{{"Global","Geo_Jonny_Home","1"}}},{"VirtualDevice", VD["Sonos"], "24"},{"Function", function() fibaro:sleep(4000) end}, {"VirtualDevice", VD["Sonos"], "7"}})
  GEA.add({"Alarm", GEA_ALARM["mona"]}, 0, "", {{"If",{{"Global","Geo_Mona_Home","1"}}},{"VirtualDevice", VD["Sonos"], "24"},{"Function", function() fibaro:sleep(4000) end}, {"VirtualDevice", VD["Sonos"], "7"}})
  -- SONOS - Sätt volymen till 8 när Sonos VD har status Stopped
  GEA.add({"Label", VD["Sonos"], "lblState", "Stopped"}, -1, "", {{"Slider", VD["Sonos"], 15, 8}, {"Repeat"}})

-- TIMEOFDAY ACTIONS --
  -- 15min efter soluppgång sätt TimeOfDay till Dag
  GEA.add(true, 30,"",{{"Time", "Sunrise+15", "Sunrise+15"},{"Global", "TimeOfDay", "Dag"}})
  -- 15min före solnedgång sätt TimeOfDay till Skymning
  GEA.add(true, 30,"",{{"Time", "Sunset-15", "Sunset-15"},{"Global", "TimeOfDay", "Skymning"},{"Global", "LightState", "Auto"}})
  -- När någon vaknar och TimeOfDay är lika med Natt, sätt TimeOfDay till Morgon
  GEA.add({"Global", "SleepState", "Vaken"}, -1,"",{{"If",{{"Global", "TimeOfDay", "Natt"}}},{"Global", "TimeOfDay", "Morgon"}})
  -- När huset sätts till Sova lägen, sätt TimeOfDay till Natt
  GEA.add({"Global", "SleepState", "Sova"},-1,"",{{"Global", "TimeOfDay", "Natt"}})
 -- Om huset är tomt sätt huset i Sova läge på fast tid 
  GEA.add(true, 30,"",{{"If",{{"Global", "Status", "Borta"}}},{"Time","23:15","23:15"},{"Global", "SleepState", "Sova"}})

-- KALENDER EVENT --
  -- Vilken årstid är det?
  GEA.add(true, 60, "Kollar vilken årstid det är", {{"Dates", "31/01", "31/01"},{"Dates", "28/02", "28/02"},{"Dates", "31/03", "31/03"},{"Dates", "30/04", "30/04"},{"Dates", "31/05", "31/05"},{"Dates", "30/06", "30/06"},{"Dates", "31/07", "31/07"},{"Dates", "31/08", "31/08"},{"Dates", "30/09", "30/09"},{"Dates", "31/10", "31/10"},{"Dates", "30/11", "30/11"},{"Dates", "31/12", "31/12"},{"Time", "00:00", "00:01"},{"Function", function() return checkSeason() end}})

  -- Kolla Google kalender var 30:e minut
  GEA.add(true , 30*60, "", {{"VirtualDevice", VD["calender"], "11"}, {"Repeat"}})
  -- Skicka push när kalender event händer
  GEA.add({"Function", function() return isEventNow() end}, 30, "#value#",{{"Portable", PORTALBLE["iPhoneJonny"]},{"Portable", PORTALBLE["iPhoneMona"]}})

-- VD --
  -- Kolla om familjen är hemma 
  GEA.add(true, 30, "", {{"Repeat"},{"VirtualDevice", VD["VD_huset"], "13"}})   -- Check status
  GEA.add(true, 60*60, "", {{"Repeat"},{"VirtualDevice", VD["sunrise_sunset"], "9"}})   -- Check sunrise/sunset time
  GEA.add({"Global","Geo_Jonny_Home","1"}, -1, "",{{"Function", function() return checkPresence() end}})
  GEA.add({"Global","Geo_Jonny_Home","0"}, -1, "",{{"Function", function() return checkPresence() end}})
  GEA.add({"Global","Geo_Mona_Home","1"}, -1, "",{{"Function", function() return checkPresence() end}})
  GEA.add({"Global","Geo_Mona_Home","0"}, -1, "",{{"Function", function() return checkPresence() end}})
  GEA.add({"Global","Phone_ML_Present","1"}, -1, "",{{"If",{{"Global", "SleepState", "Vaken"}}},{"Function", function() return checkPresence() end}})
  GEA.add({"Global","Phone_ML_Present","0"}, -1, "",{{"If",{{"Global", "SleepState", "Vaken"}}},{"Function", function() return checkPresence() end}})
  GEA.add({"Global","Phone_JL_Present","1"}, -1, "",{{"If",{{"Global", "SleepState", "Vaken"}}},{"Function", function() return checkPresence() end}})
  GEA.add({"Global","Phone_JL_Present","0"}, -1, "",{{"If",{{"Global", "SleepState", "Vaken"}}},{"Function", function() return checkPresence() end}})
  GEA.add({"Global","Phone_SW_Present","1"}, -1, "",{{"If",{{"Global", "SleepState", "Vaken"}}},{"Function", function() return checkPresence() end}})
  GEA.add({"Global","Phone_SW_Present","0"}, -1, "",{{"If",{{"Global", "SleepState", "Vaken"}}},{"Function", function() return checkPresence() end}})
  GEA.add({"Global","Phone_MW_Present","1"}, -1, "",{{"If",{{"Global", "SleepState", "Vaken"}}},{"Function", function() return checkPresence() end}})
  GEA.add({"Global","Phone_MW_Present","0"}, -1, "",{{"If",{{"Global", "SleepState", "Vaken"}}},{"Function", function() return checkPresence() end}})
  GEA.add({"Global","Phone_SL_Present","1"}, -1, "",{{"If",{{"Global", "SleepState", "Vaken"}}},{"Function", function() return checkPresence() end}})
  GEA.add({"Global","Phone_SL_Present","0"}, -1, "",{{"If",{{"Global", "SleepState", "Vaken"}}},{"Function", function() return checkPresence() end}})
  GEA.add({"Global","Phone_DD_Present","1"}, -1, "",{{"If",{{"Global", "SleepState", "Vaken"}}},{"Function", function() return checkPresence() end}})
  GEA.add({"Global","Phone_DD_Present","0"}, -1, "",{{"If",{{"Global", "SleepState", "Vaken"}}},{"Function", function() return checkPresence() end}})
  GEA.add({"Global","Status","Borta"}, -1, "",{{"Global", "Telegram", "Ingen hemma längre hos Larssons"}})
  

  -- Set GEA_ALARM för helger
  GEA.add(true, 60, "",{{"Time", "00:00", "00:01"},{"Days", "Weekend"},{"Label", GEA_ALARM["jonny"], "lblAlarme", "08:00"}})
  GEA.add(true, 60, "",{{"Time", "00:00", "00:01"},{"Days", "Weekend"},{"Label", GEA_ALARM["jonny"], "lblJours", "Lör Sön"}})
  GEA.add(true, 60, "",{{"Time", "00:00", "00:01"},{"Days", "Weekend"},{"Label", GEA_ALARM["mona"], "lblAlarme", "08:00"}})
  GEA.add(true, 60, "",{{"Time", "00:00", "00:01"},{"Days", "Weekend"},{"Label", GEA_ALARM["mona"], "lblJours", "Lör Sön"}})

  -- Set GEA_ALARM för vardagar
  GEA.add(true, 60, "",{{"Time", "00:00", "00:01"},{"Days", "Weekday"},{"Label", GEA_ALARM["jonny"], "lblAlarme", "05:00"}})
  GEA.add(true, 60, "",{{"Time", "00:00", "00:01"},{"Days", "Weekday"},{"Label", GEA_ALARM["jonny"], "lblJours", "Må Ti Ons Tor Fre"}})
  GEA.add(true, 60, "",{{"Time", "00:00", "00:01"},{"Days", "Weekday"},{"Label", GEA_ALARM["mona"], "lblAlarme", "07:00"}})
  GEA.add(true, 60, "",{{"Time", "00:00", "00:01"},{"Days", "Weekday"},{"Label", GEA_ALARM["mona"], "lblJours", "Må Ti Ons Tor Fre"}})
  
   -- Thingspeak
  GEA.add(true, 60, "", {{"Dates", "31/01", "31/01"},{"Dates", "28/02", "28/02"},{"Dates", "31/03", "31/03"},{"Dates", "30/04", "30/04"},{"Dates", "31/05", "31/05"},{"Dates", "30/06", "30/06"},{"Dates", "31/07", "31/07"},{"Dates", "31/08", "31/08"},{"Dates", "30/09", "30/09"},{"Dates", "31/10", "31/10"},{"Dates", "30/11", "30/11"},{"Dates", "31/12", "31/12"},{"Time", "23:59", "23:59"},{"VirtualDevice", VD["thingspeak"], "3"}})
  GEA.add(true, 60, "", {{"Repeat"},{"VirtualDevice", VD["thingspeak"], "2"}})
  
  -- FreeMemory
  GEA.add({{"Global-", "RamFree", 25}}, 30, "RAM value less than #value# - will reboot tonight", {{"Time", "21:00", "21:01"}}) --  Push si Ram faible
  GEA.add({{"Global-", "RamFree", 25}}, 30, "Reboot HC2 because less than 25% (#value#)", {{"Time", "02:45", "02:46"},{"VirtualDevice", VD["HC2_DIAGNOSTICS"], 15},{"Function", function() fibaro:sleep(1000) end},{"VirtualDevice", VD["HC2_DIAGNOSTICS"], 15}})
  
  -- energiförbrukning
  GEA.add(true, 1*60, "", {{"Repeat"},{"VirtualDevice", VD["VD_energy"], "6"}})
  -- to EMONCMS  
  GEA.add(true, 30, "", {{"Repeat"},{"VirtualDevice", VD["VD_energy"], "7"}})  

  -- temperatur.nu
  GEA.add(true, 2*60, "", {{"Repeat"},{"VirtualDevice", VD["VD_tempnu"], "1"}})

  -- check batteries
  GEA.add(true, 60, "", {{"Days","Saturday"},{"Time", "09:00", "09:01"},{"VirtualDevice", VD["battTelegram"], "1"}})  

  -- CopyGlobal  
  GEA.add(true, 30, "", {{"Time", "23:59", "23:59"},{"CopyGlobal", "todayKW", "yeasterdayKW"}})

  -- Netatmo and OpenWeather
  GEA.add(true, 5*60, "", {{"Repeat"},{"VirtualDevice", VD["netatmo_wind"], "6"}}) 
  GEA.add(true, 5*60, "", {{"Repeat"},{"VirtualDevice", VD["netatmo_rain"], "6"}}) 
  GEA.add(true, 5*60, "", {{"Repeat"},{"VirtualDevice", VD["openweather"], "9"}})

  -- skicka Telegram om gårdagens och månadens elförbrukning
  GEA.add({"Global!", "yeasterdayKW", ""}, 60, "", {{"Time", "07:00", "07:01"}, {"Global", "Telegram", "Gårdagens elförbrukning: #value# kWh"}})
  GEA.add({"Global!", "monthKW", ""}, 30, "", {{"Dates", "31/01", "31/01"},{"Dates", "28/02", "28/02"},{"Dates", "31/03", "31/03"},{"Dates", "30/04", "30/04"},{"Dates", "31/05", "31/05"},{"Dates", "30/06", "30/06"},{"Dates", "31/07", "31/07"},{"Dates", "31/08", "31/08"},{"Dates", "30/09", "30/09"},{"Dates", "31/10", "31/10"},{"Dates", "30/11", "30/11"},{"Dates", "31/12", "31/12"},{"Time", "23:59", "23:59"},{"Global", "Telegram", "Månadens elförbrukning: #value# kWh"}})
  
-- TTS --
  GEA.add(true, 30, "", {{"Time", "Sunrise+14", "Sunrise+14"}, {"Label", VD["SONOS_SAY_IT"], "Message", "Sätter variabel Status till Dag"},TTS_Sonos})
  GEA.add(true, 30, "", {{"Time", "Sunset-16", "Sunset-16"}, {"Label", VD["SONOS_SAY_IT"], "Message", "Sätter variabel Status till Skymmning"},TTS_Sonos})
  GEA.add(KOK["kaffebryggare"], -1, "",{{"Inverse"},{"Label", VD["SONOS_SAY_IT"], "Message", "Timer för kaffebryggaren har nu löpt ut, stänger av kaffebryggaren"},TTS_Sonos})
  GEA.add({"Global", "SleepState", "Sova"}, -1, "", {{"Label", VD["SONOS_SAY_IT"], "Message", "Godnatt familjen Larsson."},TTS_Sonos})
  GEA.add({"Global","Geo_Jonny_Home","1"}, -1, "",{{"Label", VD["SONOS_SAY_IT"], "Message", "Jonny kommer hem nu"},TTS_Sonos})

-- ACTIONS --
  -- KÖKET
  -- Tänd när TimeOfDay är Morgon
  GEA.add({"Global", "TimeOfDay", "Morgon"}, -1, "",{{"If",{{"Global", "SleepState", "Vaken"}}} ,{"turnOn", KOK["lilla_fonster"]},{"turnOn", KOK["fonster"]}})  
  -- Tänk bänkbelysning vid rörelse
  local turnoffRorelse = GEA.add(true, 30*60, "", {{"Inverse"}, {"turnOff", KOK["bankbelysning"]}, {"NotStarted"}})
  GEA.add({KOK["rorelse"], {"Value-", KOK["lux"], 30}, {"Global", "SleepState", "Vaken"},{"Global", "LightState", "Auto"},{"Global", "Status", "Hemma"}}, -1, "", {{"turnOn", KOK["bankbelysning"]}, {"RestartTask", turnoffRorelse}})
  -- Släck om LightStatus = Manual
  GEA.add({"Global", "LightState", "Manual"}, -1, "", {{"turnOff", KOK["bankbelysning"]}})
  -- Tänd när TimeOfDay är Skymning
  GEA.add({"Global", "TimeOfDay", "Skymning"}, -1, "",{{"turnOn", KOK["lilla_fonster"]}}) 
  GEA.add({"Global", "TimeOfDay", "Skymning"}, -1, "",{{"turnOn", KOK["fonster"]}})
  -- NonON - Left button up/down
  GEA.add({"SceneActivation", NodON["koket"], 10}, -1, "", {{"turnOn", KOK["flowstop"]}})
  GEA.add({"SceneActivation", NodON["koket"], 30}, -1, "", {{"turnOff", KOK["flowstop"]}})
  -- NonON - Right button up/down
  GEA.add({"SceneActivation", NodON["koket"], 20}, -1, "", {{"turnOn", KOK["bankbelysning"]}})
  GEA.add({"SceneActivation", NodON["koket"], 40}, -1, "", {{"turnOff", KOK["bankbelysning"]}})
  -- Stänger av kaffebryggaren efter 120min och skickar push
  GEA.add({"Sensor+", KOK["kaffebryggare"], 50}, 120*60, "Stänger av kaffebryggaren #time#", {{"turnOff", KOK["kaffebryggare"]}, {"VirtualDevice", VD["TTS"], "3"},{"Portable", PORTALBLE["iPhoneJonny"]},{"Portable", PORTALBLE["iPhoneMona"]}})
   -- Fibaro floodsensor, flow stop protection
  GEA.add(KOK["flowstop"], 200*60, "", {{"turnOff"}})
  GEA.add(KOK["floodsensor"], -1, "VATTEN LÄCKAGE DISKMASKIN! (#date# #time#)", {{"Portable", PORTALBLE["iPhoneJonny"]},{"Portable", PORTALBLE["iPhoneMona"]}, {"turnOff", KOK["flowstop"]}})

  -- HALLEN
    -- Tänd när TimeOfDay är Skymning
  GEA.add({"Global", "TimeOfDay", "Skymning"}, -1, "",{{"If",{{"Global", "Status", "Hemma"}}},{"turnOn", HALL["ledlist_kruka"]}})
  GEA.add(HALL["taklampa"], 10*60, "", {{"turnOff"}})
  GEA.add(true, 30, "",{{"If",{{"Global", "TimeOfDay", "Morgon"},{"Global", "SleepState", "Vaken"}}} ,{"turnOn", HALL["ledlist_kruka"]}})
  GEA.add({"SceneActivation", HALL["taklampa"], 24}, -1, "", {{"Global", "SleepState", "Sova"}})

  -- TRAPPEN
  -- Tänd när TimeOfDay är Skymning
  GEA.add({"Global", "TimeOfDay", "Skymning"}, -1, "",{{"If",{{"Global", "Status", "Hemma"}}}, {"turnOn", HALL["trappen"]}})


  -- VARDAGSRUM
  -- Tänk belysning vid rörelse
  local turnoffVRUM = GEA.add(true, 20*60, "", {{"Inverse"}, {"turnOff", VRUM["bokhyllan"]}, {"NotStarted"}})
  GEA.add({VRUM["rorelse"], {"Value-", VRUM["lux"], 17}, {"Global", "SleepState", "Vaken"},{"Global", "LightState", "Auto"},{"Global", "Status", "Hemma"},{"Global", "Filmmys", "ejAktiv"}}, -1, "", {{"turnOn", VRUM["bokhyllan"]}, {"RestartTask", turnoffVRUM}})
  -- Släck om LUX är 18 eller mer
  GEA.add({"Value+", VRUM["lux"], 18}, -1, "",{{"turnOff", VRUM["bokhyllan"]}}) 
  -- Tänd när TimeOfDay är Morgon
  GEA.add({"Global", "TimeOfDay", "Morgon"}, -1, "",{{"If",{{"Global", "SleepState", "Vaken"},{"Global", "Status", "Hemma"}}} ,{"turnOn", VRUM["bokhyllan"]}}) 
  GEA.add({"Global", "TimeOfDay", "Morgon"}, -1, "",{{"If",{{"Global", "SleepState", "Vaken"},{"Global", "Status", "Hemma"}}} ,{"turnOn", VRUM["fonster_altan"]}})  
  -- Släck om LightStatus = Manual
  GEA.add({"Global", "LightState", "Manual"}, -1, "", {{"turnOff", VRUM["bokhyllan"]}})
  -- Släck om Filmmys = Aktiv
  GEA.add({"Global", "Filmmys", "Aktiv"}, -1, "", {{"turnOff", VRUM["bokhyllan"]}})
  GEA.add({"Global", "Filmmys", "Aktiv"}, -1, "", {{"turnOff", VRUM["fonster_altan"]}})
  GEA.add({"Global", "Filmmys", "Aktiv"}, -1, "", {{"turnOff", VRUM["fonster_tv"]}})
  GEA.add({"Global", "Filmmys", "Aktiv"}, -1, "", {{"turnOff", VRUM["ledlistkruka"]}})
  -- Tänd om Filmmys = ejAktiv
  GEA.add({"Global", "Filmmys", "ejAktiv"}, -1, "", {{"If",{{"Global", "TimeOfDay", "Skymning"},{"Global", "SleepState", "Vaken"}}},{"turnOn", VRUM["plug_kamin"]}})
  GEA.add({"Global", "Filmmys", "ejAktiv"}, -1, "", {{"If",{{"Global", "TimeOfDay", "Skymning"},{"Global", "SleepState", "Vaken"}}},{"turnOn", VRUM["bokhyllan"]}})
  GEA.add({"Global", "Filmmys", "ejAktiv"}, -1, "", {{"If",{{"Global", "TimeOfDay", "Skymning"},{"Global", "SleepState", "Vaken"}}},{"turnOn", VRUM["fonster_altan"]}})
  GEA.add({"Global", "Filmmys", "ejAktiv"}, -1, "", {{"If",{{"Global", "TimeOfDay", "Skymning"},{"Global", "SleepState", "Vaken"}}},{"turnOn", VRUM["fonster_tv"]}})
  GEA.add({"Global", "Filmmys", "ejAktiv"}, -1, "", {{"If",{{"Global", "TimeOfDay", "Skymning"},{"Global", "SleepState", "Vaken"}}},{"turnOn", VRUM["ledlistkruka"]}})
  -- Tänd när TimeOfDay är Skymning
  GEA.add({"Global", "TimeOfDay", "Skymning"}, -1, "",{{"If",{{"Global", "Status", "Hemma"}}} ,{"turnOn", VRUM["fonster_tv"]}}) 
  GEA.add({"Global", "TimeOfDay", "Skymning"}, -1, "",{{"If",{{"Global", "Status", "Hemma"}}} ,{"turnOn", VRUM["RGBW"]}})
  GEA.add({"Global", "TimeOfDay", "Skymning"}, -1, "",{{"If",{{"Global", "Status", "Hemma"}}} ,{"turnOn", VRUM["ledlistkruka"]}}) 
  GEA.add({"Global", "TimeOfDay", "Skymning"}, -1, "",{{"If",{{"Global", "Status", "Hemma"}}} ,{"turnOn", VRUM["bokhyllan"]}})  
  GEA.add({"Global", "TimeOfDay", "Skymning"}, -1, "",{{"If",{{"Global", "Status", "Hemma"}}} ,{"turnOn", VRUM["fonster_tv"]}})
  GEA.add({"Global", "TimeOfDay", "Skymning"}, -1, "",{{"If",{{"Global", "Status", "Hemma"}}} ,{"turnOn", VRUM["fonster_altan"]}})

  -- WC
  -- Fläkt fuktighet
  local humidity = {"If", {{"Value+",70,50}}}
  GEA.add(true, 7*60, "", {{"Repeat"},{"turnOn", WC["flakt_wc"]}, humidity})
  local flaktTask = GEA.add(WC["flakt_wc"], 7*60, "", {{"turnOff"}}) 
  GEA.add(WC["dorr"], -1, "", {{"turnOn", WC["flakt_wc"]},{"RestartTask", flaktTask}})
 -- Tänder vid rörelse
  GEA.add(SENSORS["mSensor2wc"], -1, "", {{"Time", "07:00", "22:00"},{"turnOn", WC["Tak"]},{"turnOn", WC["Spegel"]}})
  GEA.add(SENSORS["mSensor1wc"], -1, "", {{"Time", "07:00", "22:00"},{"turnOn", WC["Tak"]},{"turnOn", WC["Spegel"]}})
  -- Släcker efter 12 minuter om ej rörelse registrerats
  GEA.add(SENSORS["mSensor2wc"], 12*60, "", {{"Inverse"}, {"turnOff", WC["Tak"]},{"turnOff", WC["Spegel"]}})
  GEA.add(SENSORS["mSensor1wc"], 12*60, "", {{"Inverse"}, {"turnOff", WC["Tak"]},{"turnOff", WC["Spegel"]}})
  -- Om någon lampa släcks manuellt, släck den andra med automatik
  GEA.add(WC["Tak"], -1, "", {{"Inverse"}, {"turnOff", WC["Spegel"]}})
  GEA.add(WC["Spegel"], -1, "", {{"Inverse"}, {"turnOff", WC["Tak"]}})
 
  -- ALTAN
  -- Tänd när TimeOfDay är Skymning
  GEA.add({"Global", "TimeOfDay", "Skymning"}, -1, "",{{"turnOn", ALTAN["altan_krukor"]}})

  -- TRÄDGÅRD
  -- Tänd när TimeOfDay är Skymning
  GEA.add({"Global", "TimeOfDay", "Skymning"}, -1, "",{{"turnOn", UTE["lyktstolpe"]}})
  -- Släck vid soluppgång
  GEA.add(true, 30, "",{{"Time", "Sunrise", "Sunrise"} ,{"turnOff", UTE["lyktstolpe"]}})

  -- GARAGE
  -- Tänd när TimeOfDay är Skymning
  GEA.add({"Global", "TimeOfDay", "Skymning"}, -1, "",{{"turnOn", GARAGE["lampa"]}})
   -- Släck vid soluppgång
  GEA.add(true, 30, "",{{"Time", "Sunrise", "Sunrise"} ,{"turnOff", GARAGE["lampa"]}})

  -- SOVRUM
  -- Tänd när TimeOfDay är Skymning
  GEA.add({"Global", "TimeOfDay", "Skymning"}, -1, "",{{"turnOn", SOVRUM["fonster"]}})
  -- Tänd sänglampor när SleepState är Sova
  GEA.add({"Global", "SleepState", "Sova"}, -1, "",{{"turnOn", SOVRUM["lampa_jonny"]}})
  GEA.add({"Global", "SleepState", "Sova"}, -1, "",{{"turnOn", SOVRUM["lampa_mona"]}})
  -- Släcker sänglampor efter 20min
  GEA.add(SOVRUM["lampa_jonny"], 20*60, "", {{"turnOff"}}) 
  GEA.add(SOVRUM["lampa_mona"], 20*60, "", {{"turnOff"}})
  -- Rullgardinen går ner när SleepState är Sova 
  GEA.add({"Global", "SleepState", "Sova"}, -1, "",{{"Close", SOVRUM["rullgardin"], 100}})
  --GEA.add( {"Value-", SOVRUM["rullgardin"], 31}, 10*60, "", {{"Close",SOVRUM["rullgardin"],100}})

  -- GÄSTRUM
  -- Tänd när TimeOfDay är Skymning
  GEA.add({"Global", "TimeOfDay", "Skymning"}, -1, "",{{"If",{{"Global", "Status", "Hemma"}}},{"turnOn", GASTRUM["fonster"]}})
  -- Släcker fönsterlampan när SleepState är Sova
  GEA.add({"Global", "SleepState", "Sova"},-1,"",{{"turnOff", GASTRUM["fonster"]}}) 

  -- KÄLLAREN
  local basementTask = GEA.add(KALLARE["lyse_kallare"], 5*60, "", {{"turnOff"}}) 
  local basementmotion = SENSORS["mSensor_basement"]
  GEA.add(SENSORS["dSensor_basement"], -1, "", {{"turnOn", KALLARE["lyse_kallare"]}, {"RestartTask", basementTask}})
  GEA.add(basementmotion, -1, "", {{"turnOn", KALLARE["lyse_kallare"]}, {"RestartTask", basementTask}})

-- GLOBALA ACTIONS
  -- groupLights
  local groupLights = {
    ALTAN["altan_krukor"],
    HALL["ledlist_kruka"],
    HALL["trappen"],
    VRUM["ledlistkruka"],
    VRUM["bokhyllan"],
    VRUM["fonster_altan"],
    VRUM["fonster_tv"],
    VRUM["altan_dorr"],
    VRUM["RGBW"],
    KOK["lilla_fonster"],
    KOK["bankbelysning"],
    KOK["fonster"],
    SOVRUM["fonster"],
  }

  -- Släcker alla lampor när TimeOfDay är Dag
  for _,v in ipairs(groupLights) do
    GEA.add({"Global", "TimeOfDay", "Dag"}, -1, "", {{"turnOff", v}})
  end

  -- Släcker alla lampor när SleepState är Sova
  for _,v in ipairs(groupLights) do
    GEA.add({"Global", "SleepState", "Sova"}, -1, "", {{"turnOff", v}})
  end
  -- Sätter Filmmys till ejAktiv vid SleepState = Sova
  GEA.add({"Global", "SleepState", "Sova"}, -1, "", {{"Global", "Filmmys", "ejAktiv"}})

  -- Tänder upp huset när familjen kommer hem och det är skymning
  GEA.add(SENSORS["dSensor_ytterdorr"], -1, "", {{"If",{{"Global", "TimeOfDay", "Skymning"}}},{"turnOn", HALL["taklampa_hall"]}})
  GEA.add(SENSORS["dSensor_ytterdorr"], 2*60, "", {{"Inverse"}, {"turnOff", HALL["taklampa_hall"]}})  
  GEA.add({"Global", "Status", "Hemma"}, -1, "",{{"If",{{"Global", "TimeOfDay", "Skymning"}}} ,{"turnOn", ALTAN["altan_krukor"]}})  
  GEA.add({"Global", "Status", "Hemma"}, -1, "",{{"If",{{"Global", "TimeOfDay", "Skymning"}}} ,{"turnOn", VRUM["ledlistkruka"]}}) 
  GEA.add({"Global", "Status", "Hemma"}, -1, "",{{"If",{{"Global", "TimeOfDay", "Skymning"}}} ,{"turnOn", VRUM["bokhyllan"]}})  
  GEA.add({"Global", "Status", "Hemma"}, -1, "",{{"If",{{"Global", "TimeOfDay", "Skymning"}}} ,{"turnOn", HALL["ledlist_kruka"]}})  
  GEA.add({"Global", "Status", "Hemma"}, -1, "",{{"If",{{"Global", "TimeOfDay", "Skymning"}}}, {"turnOn", VRUM["RGBW"]}}) 
  GEA.add({"Global", "Status", "Hemma"}, -1, "",{{"If",{{"Global", "TimeOfDay", "Skymning"}}}, {"turnOn", VRUM["altan_dorr"]}})
  GEA.add({"Global", "Status", "Hemma"}, -1, "",{{"If",{{"Global", "TimeOfDay", "Skymning"}}}, {"turnOn", HALL["trappen"]}}) 

-- ALARM --
  -- Skalskydd
  GEA.add({GARAGE["port"]}, -1, "Garageporten öppnades (#date# #time#)", {{"If",{{"Global", "Status", "Borta"}}},{"Portable", PORTALBLE["iPhoneJonny"]},{"VirtualDevice", VD["TTS"], "7"}})

  local SensorGroup1 = {
    SENSORS["dSensor_ytterdorr"],
    GARAGE["port"],
    }

  GEA.add({{"Global", "SensorGroup1", "Safe"}}, 20*60, "All safe for #duration#, activate shell alarm", {{"Time", "22:00", "05:30"},{"Portable", PORTALBLE["iPhoneJonny"]}})
  GEA.add({HALL_UPPE["Motion"]}, -1, "Movement on upperfloor Deactivate shell alarm", {{"Time", "23:00", "Sunrise"},{"Portable", PORTALBLE["iPhoneJonny"]}})

-- SCENES --
  -- Netatmo scene
  GEA.add(true, 5*60, "",{{"Repeat"},{"Scenario", 186}})

-- TEST ZONE --
  


-- ANVÄNDS EJ -- 
  --GEA.add(true, 120, "",{{"Days","Weekday"},{"Time", "05:20", "22:00"},{"Function", function() return checkPresence() end},{"Repeat"}})
  --GEA.add(true, 120, "",{{"Days","Weekend"},{"Time", "08:00", "22:00"},{"Function", function() return checkPresence() end},{"Repeat"}})

  --local condPresence = {{"Global","LastSeenJonny",""},{"Global","LastSeenMona",""},{"Global","LastSeenTijn",""},{"Global","LastSeenSandra",""}}
  --GEA.add(condPresence, -1, "",{{"Inverse"},{"Function", function() return checkPresence() end}})
  --local condGeo = {"If", {{"Global","Geo_Mona_Home",""},{"Global","Geo_Jonny_Home",""}}}
  --GEA.add(condGeo, -1, "",{{"Inverse"},{"Function", function() return checkPresence() end}})
  --local condWifi = {{"Global","wifiML",""},{"Global","wifiJL",""},{"Global","wifiMW",""},{"Global","wifiSW",""},{"Global","Phone_JL_Present",""},{"Global","Phone_ML_Present",""}}
  --GEA.add(condWifi, -1, "",{{"Inverse"},{"Time", "08:00", "22:00"},{"Function", function() return checkPresence() end}})

 
KristianO
Medlem
Posts: 461
Joined: 10 Mar 2014, 09:50
10

Riktigt snyggt! Imponerande!

Tänkte på kaffebryggaren, räcker det inte med följande?

-- Kitchen Coffee
GEA.add({"Sensor+", id["KITCHEN_COFFEE"], 50}, 120*60, "", {{"turnOff", id["KITCHEN_COFFEE"]}, {"Global", "Telegram", "Turning of Coffee Machine"}})
Robert
Medlem
Posts: 346
Joined: 17 Oct 2013, 22:40
11

Wow! Riktigt snyggt och tack för att du delar med dig!
PeterM5
Medlem
Posts: 64
Joined: 13 Jul 2016, 10:55
8

Jag har försökt att använda function i GEA, men det går inte bra.
Rumstermostaten är som exempel 20.63 gr.
Den vill jag avrunda till varje halvgrad istället, är det någon som har något förslag.
Använder Home Assistant till min hemautomation, väldigt nöjd med det valet :D
Clabbe
Medlem
Posts: 357
Joined: 25 May 2015, 21:53
9
Location: Torslanda

Wow jompa.

Känns som om min hc2 skulle se ut som din.

Automagisk omstart osv..
Hade behövts, min GEA stannar titt som tätt.
Hur fixar du TTS ? O alarm?
Har ni var sin timer vd?

Jag har missat mycket senaste tiden, allt med telegram osv.

Har väl de flesta funktionerna redan men inte hälften så komplext.

Sen ditt larm. Är det inte fel i det???
Om det inte är rörelse uppe på 20min efter 2200.
Slå på skal larm. Om någon rör sig mellan 23 o sunrise slå av larmet...
Men.. om någon rör sig vid 22:40 då?
Samt ser inte att det stängs av på morgonen.
Tex om ni sover till 10 har den då stängt av skal larmet??

Kanske missade något då jag läst allt i mobilen o fått skrolla mycket.

Men som sagt verkar som du kör allt fullt ut, det är ju så man drömmer att man hade orkat få till :)
-----------------------------------------------------------------
HC2
Aeon Labs, Fibaro, Danfoss enheter (30++st)
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

Har gjort om en hel del i mitt gea skript, uppdaterar fösta posten ikväll och svarar på dina frågor då :)


Skickat från min iPhone med Tapatalk
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

Clabbe wrote:Wow jompa.

Känns som om min hc2 skulle se ut som din.

Automagisk omstart osv..
Hade behövts, min GEA stannar titt som tätt.
Hur fixar du TTS ? O alarm?
Har ni var sin timer vd?

Jag har missat mycket senaste tiden, allt med telegram osv.

Har väl de flesta funktionerna redan men inte hälften så komplext.

Sen ditt larm. Är det inte fel i det???
Om det inte är rörelse uppe på 20min efter 2200.
Slå på skal larm. Om någon rör sig mellan 23 o sunrise slå av larmet...
Men.. om någon rör sig vid 22:40 då?
Samt ser inte att det stängs av på morgonen.
Tex om ni sover till 10 har den då stängt av skal larmet??

Kanske missade något då jag läst allt i mobilen o fått skrolla mycket.

Men som sagt verkar som du kör allt fullt ut, det är ju så man drömmer att man hade orkat få till :)
Hej Clabbe, kul att du gillar mitt inlägg :)
Sedan jag började med GEA så har min box gått hur bra som helst, givetvis har det finns en del versioner av mjukvaran som har varit lite buggigt men överlag har den gått riktigt bra.

Automatisk omstart fungerar men sen några versioner tillbaka så den funktionen aldrig aktiveras eftersom minnes luckan verkar vara åtgärdad.
TTS kör jag via Krikroff's Sonos Remote 1.01 (finns på fibaro's forum om jag minns rätt)
GEA_Alarm körs via 2st VD's, dvs en VD var :)

Alarm håller jag på att testa så den är inte komplett än, har bara testat meddelande funktionen i själva GEA raden för att se hur det fungerar. Tanken är att jag ska ha ett skalskydd iaf när man inte är hemma eller har huset i sovläge.

Bara hojta till om det är något mer du funderar över eller behöver hjälp.
Clabbe
Medlem
Posts: 357
Joined: 25 May 2015, 21:53
9
Location: Torslanda

Ahh jag kör Sonos Krikoffs 1.0.0

O det fungerar men har börjat fundera på om det är den som hänger min fibaro.

Utav någon anledning så slutar gea att köra? Eller iaf slutar fungera.

Huset var svart när jag kom hem nu, skulle tänts vid skymningen..

Men appen fungerar o jag kan tända lamporna den vägen..

Gör jag en omstart på fibaron så rullar gea igång igen.

Många säger att det kan vara Sonos pluginet som hänger min, men som sagt 1.0.1 kanske är bättre?
-----------------------------------------------------------------
HC2
Aeon Labs, Fibaro, Danfoss enheter (30++st)
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

Prova kör utan sonos vd ett tag eller uppgradera till 1.0.1


Skickat från min iPhone med Tapatalk
Robert
Medlem
Posts: 346
Joined: 17 Oct 2013, 22:40
11

Har bytt system och lämnat Fibaro. Körde GEA v 6.07 tidigare och tänkte att någon annan kanske var intresserad av min kod.

Code: Select all


-- KORRIDOR
    -- Röd ledlist när grinden är öppen mellan xx:xx och xx:xx.
    GEA.add ( {{"Value", id["TRAPPA_GRIND"], 1}, {"Time", "05:30", "20:00"}}, -1, "", {"RGB", 99, 255, 0, 0, 0} )
    GEA.add ( {{"Value-", id["TRAPPA_GRIND"], 1}, {"Global", "TimeOfDay", "Gryning"}}, -1, "", {"RGB", 99, 0, 0, 0, 0} )
    GEA.add ( {{"Value-", id["TRAPPA_GRIND"], 1}, {"Global", "TimeOfDay", "Morgon"}}, -1, "", {"RGB", 99, 0, 0, 0, 0} )
    GEA.add ( {{"Value-", id["TRAPPA_GRIND"], 1}, {"Global", "TimeOfDay", "Dag"}}, -1, "", {"RGB", 99, 0, 0, 0, 0} )
    GEA.add ( {{"Value-", id["TRAPPA_GRIND"], 1}, {"Global", "TimeOfDay", "Skymning"}}, -1, "", {"RGB", 99, 4, 1, 0, 5} )
  
-- LOFT
    -- Tänder när dörren öppnas. Tänd inte om det är rörelse innanför dörren.
    GEA.add ( {{"Value", id["LOFT_DORR"], 1}, {"Value-", id["LOFT_RORELSE"], 1,}}, -1, "", {"turnOn", id["LOFT_DORRLAMPA"]} )
    -- GEA.add ({{"Value", id["LOFT_DORR"], 1}, {"Value-", id["LOFT_RORELSE"], 1,}}, -1, "", {"turnOn", id["LOFT_SANGLAMPA]})
    -- Om rörelsesensorn inte känner någon rörelse på x*60 sekunder, släck lampan.(Känner den rörelse när lampan är på så startar x*60 sekunder om.)
    local autooff_loft = GEA.add ( id["LOFT_DORRLAMPA"], 60*60, "", {"turnOff"} ) 
    GEA.add ( id["LOFT_RORELSE"], -1, "", {"RestartTask", autooff_loft} )
  
-- GÄSTSTUGA
    -- Om rörelsesensorn inte känner någon rörelse på x*60 sekunder, släck lampan.(Känner den rörelse när lampan är på så startar x*60 sekunder om.)
    local autooff_gaststuga = GEA.add ( id["GASTSTUGA_FONSTERLAMPA"], 60*60, "", {"turnOff"} ) 
    GEA.add ( id["GASTSTUGA_RORELSE"], -1, "", {"RestartTask", autooff_gaststuga} )
  
-- FÖRRÅD
	-- Tänd taklampan i förrådet när rörelse upptäcks.
	GEA.add ( {id["FORRAD_RORELSE"]}, -1, "", {"turnOn", id["FORRAD_TAKLAMPA"]} )
	-- Om rörelsesensorn inte känner någon rörelse på x*60 sekunder, släck lampan.(Känner den rörelse när lampan är på så startar x*60 sekunder om.)
    local autooff_forrad = GEA.add ( id["FORRAD_TAKLAMPA"], 10*60, "", {"turnOff"} ) 
	GEA.add ( id["FORRAD_RORELSE"], -1, "", {"RestartTask", autooff_forrad} )
  
-- UTEBELYSNING
    -- Tänd utebelysning.
    GEA.add ( {"Global", "TimeOfDay", "Skymning"}, 30, "", {"turnOn", { id["VARDAGSRUMSFASAD"], id["FRAMSIDA"], id["STOLPLYFTOR"], id["GARAGEFASAD"], id["GASTSTUGA_FASADBELYSNING"], id["RABATT_BAKSIDA_ALTAN"], id["KOKSFASAD"]}} )
    -- Släck utebelysning.
    GEA.add ( {"Global", "TimeOfDay", "Gryning"}, 30, "",  {"turnOff", { id["VARDAGSRUMSFASAD"], id["FRAMSIDA"], id["STOLPLYFTOR"], id["GARAGEFASAD"], id["GASTSTUGA_FASADBELYSNING"], id["RABATT_BAKSIDA_ALTAN"], id["KOKSFASAD"]}} )

-- VARDAGSRUM
    -- Play / Resume
    GEA.add ( {"Global", "Kodi_vardagsrum", "Video_Started"}, -1, "", {"turnOff", { id["VARDIS_RICKARUM"], id["VARDIS_BAROMETER"], id["VARDIS_FONSTERLAMPOR"]}} )
    GEA.add ( {"Global", "Kodi_vardagsrum", "Video_Resume"}, -1, "", {"turnOff", { id["VARDIS_RICKARUM"], id["VARDIS_BAROMETER"], id["VARDIS_FONSTERLAMPOR"]}} )
    GEA.add ( {{"Global", "Kodi_vardagsrum", "Video_Started"}, {"(Global)", "TimeOfDay", "Dag"}}, -1, "", {"Close", 411} )
    GEA.add ( {{"Global", "Kodi_vardagsrum", "Video_Resume"}, {"(Global)", "TimeOfDay", "Dag"}}, -1, "", {"Close", 411} )
    --GEA.add ( {"Or", {"Global", "Kodi_vardagsrum", "Video_Started"}, {"Global", "Kodi_vardagsrum", "Video_Resume"}, {"(Global)", "TimeOfDay", "Dag"} }, -1, "", {"Close", 411} )
    -- Pause
    GEA.add ( {"Global", "Kodi_vardagsrum", "Video_Pause"}, -1, "", {"Value", {370, 372}, 30} )
    -- Stop
    GEA.add ( {{"Global", "Kodi_vardagsrum", "Video_Stopped"}, {"(Global!)", "TimeOfDay", "Dag"}}, -1, "", {"turnOn", { id["VARDIS_RICKARUM"]}} )
    GEA.add ( {{"Global", "Kodi_vardagsrum", "Video_Ended"}, {"(Global!)", "TimeOfDay", "Dag"}}, -1, "", {"turnOn", { id["VARDIS_RICKARUM"]}} )
    GEA.add ( {"Or", {"Global", "Kodi_vardagsrum", "Video_Stopped"}, {"Global", "Kodi_vardagsrum", "Video_Ended"} }, -1, "", {"Open", 411} )
  
-- KÖK
	-- Väck döda noder
  	GEA.add ( {"Dead", id["KOK_VATTENSENSOR"]}, 5*60, "", {"WakeUp", id["KOK_VATTENSENSOR"]} )
  	-- Skicka ett mail med bilden från kameran i köket vid rörelse
  	-- GEA.add( {CONDITIONS}, 30, "", {"PictureToEmail", 127, "robert.hagelin1@gmail.com"} )
  
-- HALL
    -- Blå ledlist när ytterdörren öppnas. När dörren stängs släcks ledlisten. Är det skymning tänds skymningsljus.
	GEA.add ( {"Value", id["HALL_DORR"], 1}, -1, "", {"RGB", 99, 0, 0, 255, 0})
	GEA.add ( {{"Value-", id["HALL_DORR"], 1}, {"Global", "TimeOfDay", "Gryning"}}, -1, "", {"RGB", 99, 0, 0, 0, 0} )
	GEA.add ( {{"Value-", id["HALL_DORR"], 1}, {"Global", "TimeOfDay", "Morgon"}}, -1, "", {"RGB", 99, 0, 0, 0, 0} )
	GEA.add ( {{"Value-", id["HALL_DORR"], 1}, {"Global", "TimeOfDay", "Dag"}}, -1, "", {"RGB", 99, 0, 0, 0, 0} )
	GEA.add ( {{"Value-", id["HALL_DORR"], 1}, {"Global", "TimeOfDay", "Skymning"}}, -1, "", {"RGB", 99, 4, 1, 0, 5} )
	GEA.add ( {{"Value-", id["HALL_DORR"], 1}, {"Global", "TimeOfDay", "Natt"}}, -1, "", {"RGB", 99, 0, 0, 0, 0} )
  	
	-- Tänd vid rörelse
    GEA.add ( {{id["HALL_RORELSE"]}, {"Value-", 59, 21}}, -1, "", {"turnOn", id["HALL_VAGGLAMPA"]})
	-- Om rörelsesensorn inte känner någon rörelse på x*60 sekunder, släck lampan.(Känner den rörelse när lampan är på så startar x*60 sekunder om.)
    local autooff_hall = GEA.add ( id["HALL_VAGGLAMPA"], 5*60, "", {"turnOff"} ) 
	GEA.add ( id["HALL_RORELSE"], -1, "", {"RestartTask", autooff_hall} )


-- TOALETT
	-- Tänd badrumspottar i bardrummet när någon kommer in.
	GEA.add ( {id["TOALETT_RORELSE"]}, -1, "", {"turnOn", id["TOALETT_SPEGEL"]} )
	-- Om rörelsesensorn inte känner någon rörelse på x*60 sekunder, släck lampan.(Känner den rörelse när lampan är på så startar x*60 sekunder om.)
    local autooff_toalett = GEA.add ( id["TOALETT_SPEGEL"], 5*60, "", {"turnOff"} ) 
	GEA.add ( id["TOALETT_RORELSE"], -1, "", {"RestartTask", autooff_toalett} )

-- TimeOfDay
    -- X min efter soluppgång sätt TimeOfDay till Gryning
  	GEA.add ( {"Time", "Sunrise+5"}, 30, "", {"Global", "TimeOfDay", "Gryning"} )
  	-- Sätt TimeOfDay till Morgon
  	GEA.add ( {"Time", "06:00"}, 30, "", {"Global", "TimeOfDay", "Morgon"} )
    -- Sätt TimeOfDay till Dag
  	GEA.add ( {"Time", "10:00"}, 30, "", {"Global", "TimeOfDay", "Dag"} )
  	-- X min före solnedgång sätt TimeOfDay till Skymning
  	GEA.add ( {"Time", "Sunset-5"}, 30, "", {"Global", "TimeOfDay", "Skymning"} )
  	-- Sätt TimeOfDay till Natt
  	GEA.add ( {"Time", "00:00"}, 30, "", {"Global", "TimeOfDay", "Natt"} )
  
	-- Tänd belysning när luxvärdet på ID är under 10.
  	GEA.add ( {{"Value-", 376, 17}, {"Global", "Status", "Hemma"}}, 30, "", {{"VirtualDevice", VD["TTS"], "6"}, {"VirtualDevice", VD["ONOFF_BELYSNING"], "7"}, {"MaxTime", 1}})
    -- Släck onödiga lampor när TimeOfDay är Dag.
  	GEA.add ( {{"Global", "TimeOfDay", "Dag"}, {"(Global)", "Status", "Hemma"}}, 30, "", {"VirtualDevice", VD["ONOFF_BELYSNING"], "8"})
  
-- HEMMA
    GEA.add ( {"Global", "Status", "Hemma"}, -1, "", {{"VirtualDevice", VD["FOSCAM"], "16"}, {"VirtualDevice", VD["FOSCAM"], "4"}})
  
    -- Robert kommer hem
  	GEA.add ( {"Global", "RobertHemma", "1"}, -1, "(#time#) - Robert har precis kommit hem.", {{"Global", "Status", "Hemma"}, {"Portable", 409}})
	GEA.add ( {{"Global", "RobertHemma", "1"}, {"(Global)", "TimeOfDay", "Gryning"}, {"(Global)", "KarinHemma", "0"}}, -1, "", {{"VirtualDevice", VD["TTS"], "1"}})  
	GEA.add ( {{"Global", "RobertHemma", "1"}, {"(Global)", "TimeOfDay", "Morgon"}}, -1, "", {"VirtualDevice", VD["TTS"], "1"})
	GEA.add ( {{"Global", "RobertHemma", "1"}, {"(Global)", "TimeOfDay", "Dag"}}, -1, "", {"VirtualDevice", VD["TTS"], "1"})
	GEA.add ( {{"Global", "RobertHemma", "1"}, {"(Global)", "TimeOfDay", "Skymning"}, {"(Global)", "KarinHemma", "0"}}, -1, "", {{"VirtualDevice", VD["TTS"], "1"}, {"VirtualDevice", VD["ONOFF_BELYSNING"], "3"}})
	GEA.add ( {{"Global", "RobertHemma", "1"}, {"(Global)", "TimeOfDay", "Skymning"}, {"(Global)", "KarinHemma", "1"}}, -1, "", {{"VirtualDevice", VD["TTS"], "1"}, {"VirtualDevice", VD["ONOFF_BELYSNING"], "7"}})
	GEA.add ( {{"Global", "RobertHemma", "1"}, {"(Global)", "TimeOfDay", "Natt"}, {"(Global)", "KarinHemma", "0"}}, -1, "", {{"VirtualDevice", VD["TTS"], "1"}, {"VirtualDevice", VD["TTS"], "3"}, {"VirtualDevice", VD["ONOFF_BELYSNING"], "3"}})
	GEA.add ( {{"Global", "RobertHemma", "1"}, {"(Global)", "TimeOfDay", "Natt"}, {"(Global)", "KarinHemma", "1"}}, -1, "", {"VirtualDevice", VD["ONOFF_BELYSNING"], "7"})
  
    -- Karin kommer hem
	GEA.add ( {"Global", "KarinHemma", "1"}, -1, "(#time#) - Karin har precis kommit hem.", {{"Global", "Status", "Hemma"}, {"Portable", 402}})
    GEA.add ( {{"Global", "KarinHemma", "1"}, {"(Global)", "TimeOfDay", "Gryning"}, {"(Global)", "RobertHemma", "0"}}, -1, "", {{"VirtualDevice", VD["TTS"], "2"}})  
    GEA.add ( {{"Global", "KarinHemma", "1"}, {"(Global)", "TimeOfDay", "Morgon"}}, -1, "", {"VirtualDevice", VD["TTS"], "2"})
	GEA.add ( {{"Global", "KarinHemma", "1"}, {"(Global)", "TimeOfDay", "Dag"}}, -1, "", {"VirtualDevice", VD["TTS"], "2"})
	GEA.add ( {{"Global", "KarinHemma", "1"}, {"(Global)", "TimeOfDay", "Skymning"}, {"(Global)", "RobertHemma", "0"}}, -1, "", {{"VirtualDevice", VD["TTS"], "2"}, {"VirtualDevice", VD["ONOFF_BELYSNING"], "3"}})
	GEA.add ( {{"Global", "KarinHemma", "1"}, {"(Global)", "TimeOfDay", "Skymning"}, {"(Global)", "RobertHemma", "1"}}, -1, "", {{"VirtualDevice", VD["TTS"], "2"}, {"VirtualDevice", VD["ONOFF_BELYSNING"], "7"}})
	GEA.add ( {{"Global", "KarinHemma", "1"}, {"(Global)", "TimeOfDay", "Natt"}, {"(Global)", "RobertHemma", "0"}}, -1, "", {{"VirtualDevice", VD["TTS"], "2"}, {"VirtualDevice", VD["TTS"], "3"}, {"VirtualDevice", VD["ONOFF_BELYSNING"], "3"}})
	GEA.add ( {{"Global", "KarinHemma", "1"}, {"(Global)", "TimeOfDay", "Natt"}, {"(Global)", "RobertHemma", "1"}}, -1, "", {"VirtualDevice", VD["ONOFF_BELYSNING"], "7"})

-- BORTA
  	GEA.add ( {{"Global", "RobertHemma", "0"}, {"Global", "KarinHemma", "0"}}, -1, "", {"Global", "Status", "Borta"})
  	-- Om ingen är hemma. Släcker alla lampor, stäng av Sonos, dra upp rullgardiner, larma på kameror och skickar pushnotis.
	GEA.add ( {"Global", "Status", "Borta"}, -1, "(#time#) - Larmat och nedsläckt. Ha en bra dag!", {{"Open", 411}, {"VirtualDevice", VD["ONOFF_BELYSNING"], "2"}, {"VirtualDevice", VD["SONOS_PLAY_1"], "9"}, {"VirtualDevice", VD["FOSCAM"], "11"}, {"VirtualDevice", VD["FOSCAM"], "15"}})
  
-- Earth Hour - Datum fram till 2020.
  	-- Notis via push och via Sonos om att Earth Hour börjar om 30 min.
    GEA.add ( {{"Dates", "24/03/2018"}, {"Dates", "30/03/2019"}, {"Dates", "28/03/2020"}, {"Time", "20:00"}, {"Global", "Status", "Hemma"}}, 30, "Earth Hour börjar om 30 minuter. Förbered levande ljus ifall ni vill se något i mörkret :)", {"VirtualDevice", VD["TTS"], "7"})
    -- Påbörjar Earth Hour. Släcker alla lampor, pushar ut notis på mobiler och Sonos.
    GEA.add ( {{"Dates", "24/03/2018"}, {"Dates", "30/03/2019"}, {"Dates", "28/03/2020"}, {"Time", "20:30"}, {"Global", "Status", "Hemma"}}, 30, "Earth Hour påbörjad. Avslutas 21:30.", {{"VirtualDevice", VD["ONOFF_BELYSNING"], "2"}, {"VirtualDevice", VD["ONOFF_BELYSNING"], "1"}, {"VirtualDevice", VD["TTS"], "8"}})
    -- Avslutar Earth Hour. Tänder lamporna igen, pushar ut notis på mobiler och Sonos.
  	GEA.add ( {{"Dates", "24/03/2018"}, {"Dates", "30/03/2019"}, {"Dates", "28/03/2020"}, {"Time", "21:30"}, {"Global", "Status", "Hemma"}}, 30, "Earth Hour avslutad. Lamporna tänds.", {{"VirtualDevice", VD["ONOFF_BELYSNING"], "3"}, {"VirtualDevice", VD["ONOFF_BELYSNING"], "9"}, {"VirtualDevice", VD["TTS"], "9"}})

-- ÖVRIGT
  	-- Stäng av Wall pluggen efter 8 timmar.
  	GEA.add ( id["FORRAD_SEGWAY"], 480*60, "(#time#) - 8 timmar har gått. Segwayen borde vara laddad och klar.", {{"turnOff"}, {"Portable", 402}} )

    -- Skicka TTS och notis beroende på vad koldixohalten visar.
  	GEA.add( {{"Value+", 158, 1000}, {"Global", "Status", "Hemma"}, {"(Global!)", "TimeOfDay", "Natt"}, {"(Global)", "Vent_upstairs", "0"}}, 30, "(#time#) - Övervåningen behöver vädras då koldioxidhalten är över för hög. (1000 CO2)", {{"VirtualDevice", VD["TTS"], "11"}, {"Global", "Vent_upstairs", "1"}}) 
  	GEA.add( {{"Value-", 158, 550}, {"Global", "Status", "Hemma"}, {"(Global!)", "TimeOfDay", "Natt"}}, 30, "(#time#) - Koldioxidhalten är nu på en bra nivå.", {{"VirtualDevice", VD["TTS"], "12"}, {"Global", "Vent_upstairs", "0"}})
  
    --GEA.add( {{"Weather!", "Temperature" ,""}, {"WeatherLocal!",""}}, 30, "", {"SonosTTS", 170, 28, "Det är den #datefull#. Utanför är det #value[1]# grader och klockan är #value[2]#", 20}
    
    --local sonosMP3folder = "//192.168.1.38/music/"
    --GEA.add( true, 0, "", {"SonosMP3", 170, 28, sonosMP3folder.."co2_hog.wav", 20} )
  
    -- Belysningen vid ytterdörren släcks efter 10 min
  	GEA.add ( id["FRAMSIDA_YTTERDORR"], 10*60, "", {"turnOff"} )
  
    -- Skicka notis om det finns någon uppdatering.
    GEA.add( {"Info", "updateStableAvailable", true}, 24*60*60, "(#time#) - En ny uppdatering är tillgänglig" )
	GEA.add( {"Info", "updateBetaAvailable", true }, 24*60*60, "(#time#) - En ny beta är tillgänglig" )
  
    -- Skicka notis när diskmaskinen är klar
    GEA.add( {"Power+", id["KOK_DISKMASKIN"], 1500}, 4*60 , "", {"Global", "Diskmaskin", "inc+"})
    GEA.add( {{"Power-", id["KOK_DISKMASKIN"], 50}, {"Global", "Diskmaskin", "4"}}, 50*60, "(#time#) - Diskmaskinen är klar.", {"Global", "Diskmaskin", "0"})

User avatar
sonnyboy
Proffsmedlem
Posts: 669
Joined: 26 Sep 2013, 08:05
11
Location: Västerås

@Robert
Vad har du bytt till?
Kul att du delade med dig av det du hade :)
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
Robert
Medlem
Posts: 346
Joined: 17 Oct 2013, 22:40
11

sonnyboy wrote: 18 Sep 2018, 21:09 @Robert
Vad har du bytt till?
Kul att du delade med dig av det du hade :)
Jag testar på Homey nu. Lite svajigt just nu men väntar på en stor uppdatering som snart ska släppas.
Clabbe
Medlem
Posts: 357
Joined: 25 May 2015, 21:53
9
Location: Torslanda

Jag gick till homeassistant o ångrar det inte en sekund
-----------------------------------------------------------------
HC2
Aeon Labs, Fibaro, Danfoss enheter (30++st)
Post Reply