Hur hanteras virtuella enheter i scener?

Post Reply
birdfish
Medlem
Posts: 25
Joined: 19 Mar 2015, 16:55
9

Försöker att förstå hur man hanterar VD's i scener.

Jag har en antal vd's som tänder och släcker lampor och liknande som fortfarande körs i min switch king system och jag trodde att man kanske skulle kunna hantera dessa vd's som "vanliga" enheter men där går jag på pumpen :(

Naturligtvis kan man ta LUA scripten från respektive vd och lägga dom i en scen för att tända och släcka men känns otroligt klumpigt.

Kan man inte associera en vd till att vara en del av belysningen eller så?

Hoppas att någon har ett bra svar :D
SirMaggot
Medlem
Posts: 441
Joined: 18 Aug 2013, 10:36
11

GEA (av Steven Piccand) kan utföra det du beskriver samt väldigt mycket mer.

Senaste versionen hittar du på
https://github.com/sjauquet/GEA

Säg till om du behöver hjälp att komma igång :)
birdfish
Medlem
Posts: 25
Joined: 19 Mar 2015, 16:55
9

Hej SirMaggot,

TILL :D

Det där var inte helt enkelt att komma igång och Franska är inte min starka sida. Däremot GEA scriptet eller vad jag skall kalla det är verkligen inte något jag tittar på och tänker - Ja visst ja :lol:

Jag behöver nog lite hjälp att komma igång. Något lätt exempel om det nu finns vill säga annars blir det många långa nätter.
SirMaggot
Medlem
Posts: 441
Joined: 18 Aug 2013, 10:36
11

Jag klistrar in en kraftigt rensad version som du inte ska använda (den fungerar helt enkelt inte), jag försöker förklara lite i texten.
Det blir säkert några sena kvällar med GEA, men det är värt det.

Börja med att skapa en global variabel som heter GEA_TASKS (lämna den tom)

Code: Select all

--[[
%% autostart
%% properties
71 value -- rörelsesensor som tänder en lampa
97 value -- detta är en lampa som ska tändas på tid

%% globals
TimeOfDay -- dina globala värden som ska ingå i GEA
PresentState
KollarFilm
--]]

-- Auteur : Steven P. with modification of Hansolo and Shyrka973
-- Version : 5.34
-- Special Thanks to :
-- jompa68, Fredric, Diuck, Domodial, moicphil, lolomail, byackee,
-- JossAlf, Did,  sebcbien, chris6783, carfnann and all other guy from Domotique-fibaro.fr
-- ------------------------------------------------------------
-- L'historique complet est diponible ici :
-- http://www.domotique-fibaro.fr/index.php/topic/1082-gea-gestionnaire-dévénements-automatique/?p=12428

function yourcode()
	
	-- [EN] YOUR TIME TO PLAY
	-- ==================================================
	GEA.isVersionFour = true -- True om du kör v4, false annars
	
	-- [EN] Your language : EN
	GEA.language = "EN"; -- Ändra till engelska
	
	-- GEA kollar om det finns nåt att göra var 30:e sekund
	GEA.checkEvery = 30 
	
	-- Vilka enheter (telefon, surfplattor) som ska få push när det händer nåt
	GEA.portables = {98, 122, 123} 
	
	-- Det är oftast lättare att komma ihåg namn än nummer, så här gör du om nummer till namn (om du vill.)
	
	local id = {
		VRUM_PIR = 71,
		VRUM_LUX = 73,
		VRUM_LEDLIST = 97,
		PARKERING_PIR = 140,
		PARKERING_LUX = 142,
		PARKERING_LAMPA = 138,
		ZIPATO_UTE = 120,
------- Virtuella enheter
		VD_TEMPERATUR_NU = 12,
		VD_TIMEOFDAY = 13,
		VD_DOMOTICZ_PING = 14,
		VD_CLOCKSYNC = 15,
		VD_EMONCMS = 16,
		VD_REBOOT = 17,
		VD_DOMOTICZ_TEMP = 163 (Sista ID:t har inget kommatecken)
	}

	-- Timer var 3:e minut. (Var 3:e minut trycker GEA på knapp 1 i VD_TEMPERATUR_NU)
	GEA.add( true , 3*60, "",{
		{"VirtualDevice", id["VD_TEMPERATUR_NU"], "1"}, {"Repeat"}
    })
  
	-- Timer var 10:e minut
  	GEA.add( true , 10*60, "",{
		{"VirtualDevice", id["VD_THINGSPEAK"], "1"},
		{"VirtualDevice", id["VD_DOMOTICZ_TEMP"], "1"},
		{"Repeat"}
    })

	-- Timer var 60 minut
 	GEA.add( true , 60*60, "",{
		{"VirtualDevice", id["VD_DOMOTICZ_PING"], "1"}, {"Repeat"}
    })

	--== Sätter variabel FILM till Nej efter 3 timmar ==--
	GEA.add({"Global", "KollarFilm", "Ja"}, 180*60, "", {{"Global", "KollarFilm", "Nej"}})

	--== Sätt TimeOfDay (global parameter) ==--
	GEA.add(true, 30, "", {{"Time", "06:00", "06:01"}, {"VirtualDevice", id["VD_TIMEOFDAY"], "1"}})
	GEA.add(true, 30, "", {{"Time", "10:00", "10:01"}, {"VirtualDevice", id["VD_TIMEOFDAY"], "2"}})
	GEA.add(true, 30, "", {{"Time", "17:00", "17:01"}, {"VirtualDevice", id["VD_TIMEOFDAY"], "3"}})
	GEA.add(true, 30, "", {{"Time", "21:30", "21:31"}, {"VirtualDevice", id["VD_TIMEOFDAY"], "4"}, {"Days", "Monday, Tuesday, Wednesday, Thursday, Sunday"}})
	GEA.add(true, 30, "", {{"Time", "22:30", "22:31"}, {"VirtualDevice", id["VD_TIMEOFDAY"], "4"}, {"Days", "Friday, Saturday"}})

	--== Lampa Parkering och entrelampa==--
	GEA.add(true, 30, "", {{"Time", "Sunset+09", "Sunset+10"}, {"turnOn", id["PARKERING_LAMPA"]}})
	GEA.add(true, 30, "", {{"Time", "23:00", "23:01"}, {"turnOff", id["PARKERING_LAMPA"]}})
--	GEA.add(id["PARKERING_PIR"], -1, "", {{"Time", "22:00", "Sunrise+10"}, {"turnOn", id["PARKERING_LAMPA"]}})
--	GEA.add(id["PARKERING_LAMPA"], 3*60, "", {{"Inverse"}, {"Time", "22:00", "Sunrise+40"}, {"turnOff", id["PARKERING_LAMPA"]}})

	-- Zipato entre utomhus--
	GEA.add(true, 30, "", {{"Time", "Sunset+10", "Sunset+11"}, {"Function", function() fibaro:call(id["ZIPATO_UTE"], "setValue", "75") end}})
	GEA.add(true, 30, "", {{"Time", "23:30", "23:31"}, {"Function", function() fibaro:call(id["ZIPATO_UTE"], "setValue", "50") end}})
	GEA.add(true, 30, "", {{"Time", "01:30", "01:31"}, {"Function", function() fibaro:call(id["ZIPATO_UTE"], "setValue", "25") end}})
	GEA.add(true, 30, "", {{"Time", "Sunrise+30", "Sunrise+31"}, {"Function", function() fibaro:call(id["ZIPATO_UTE"], "setValue", "0") end}})

  	--== Våra sänglampor ==--  (Mellan kl 11-19 tänds lamporna om dörren öppnas. Kl19 till 22 är lamporna tända)
	GEA.add(id["SOVRUM_DORR"], -1, "", {{"Time", "11:00", "19:00"}, {"turnOn",id["M_SANGLAMPA"]}, {"turnOn",id["F_SANGLAMPA"]}})
	GEA.add(id["SOVRUM_DORR"], -1, "", {{"inverse"}, {"Time", "11:00", "19:01"}, {"turnOff",id["M_SANGLAMPA"]}, {"turnOff",id["F_SANGLAMPA"]}})
	GEA.add(true, 30, "", {{"Time", "19:00", "19:01"}, {"turnOn", id["F_SANGLAMPA"]}})
	GEA.add(true, 30, "", {{"Time", "22:00", "22:01"}, {"turnOff", id["F_SANGLAMPA"]}})
	GEA.add(true, 30, "", {{"Time", "19:00", "19:01"}, {"turnOn", id["M_SANGLAMPA"]}})
	GEA.add(true, 30, "", {{"Time", "22:00", "22:01"}, {"turnOff", id["M_SANGLAMPA"]}})

	-- Laddare surfplatta --
	GEA.add(true, 30, "", {{"Time", "21:00", "21:01"}, {"turnOn", id["SOVRUM_LADDARE"]}})
	GEA.add(true, 30, "", {{"Time", "08:00", "08:01"}, {"turnOff", id["SOVRUM_LADDARE"]}})

	--== Allrum uppe, Lampa ==--
	GEA.add(true, 30, "", {{"Time", "Sunset+10", "Sunset+11"}, {"turnOn", id["ALLRUM_LAMPA"]}})
	GEA.add(true, 30, "", {{"Time", "Sunrise+30", "Sunrise+31"}, {"turnOff", id["ALLRUM_LAMPA"]}})

	--== Vardagrum nere ==--
	-- Tv-lampa --
	GEA.add(true, 30, "", {{"Time", "Sunset-30", "Sunset-29"}, {"turnOn", id["VRUM_TVLAMPA"]}})
	GEA.add(true, 30, "", {{"Time", "22:30", "22:31"}, {"turnOff", id["VRUM_TVLAMPA"]}})
	-- Lampan på skänken --
	GEA.add(true, 30, "", {{"Time", "Sunset-50", "Sunset-49"}, {"turnOn", id["VRUM_SKANK"]}})
	GEA.add(true, 30, "", {{"Time", "Sunrise+30", "Sunrise+31"}, {"turnOff", id["VRUM_SKANK"]}})
	--== Ledlist vardagsrum ==--
	local FilmJa = GEA.add(id["VRUM_PIR"], -1, "", {{"If",{{"Value-", id["VRUM_LUX"], 50}}}, {"turnOn", id["VRUM_LEDLIST"]}})
	GEA.add({"Global","KollarFilm","Ja"}, 30 , "" , {{"StopTask",FilmJa}, {"repeat"}})
	GEA.add(id["VRUM_PIR"], 4*60, "", {{"Inverse"}, {"turnOff", id["VRUM_LEDLIST"]}})
	
	--==  Entrelampan i hallen. Qubino ==--
	GEA.add(id["HALL_PIR"], -1, "", {{"Time", "06:00", "07:00"}, {"Function", function() fibaro:call(id["HALL_LAMPA"], "setValue", "6") end}})
	GEA.add(id["HALL_PIR"], -1, "", {{"Time", "07:00", "21:00"}, {"If",{{"Value-", id["HALL_LUX"], 100}}},{"Function", function() fibaro:call(id["HALL_LAMPA"], "setValue", "60") end}})
	GEA.add(id["HALL_PIR"], -1, "", {{"Time", "21:00", "06:00"}, {"Function", function() fibaro:call(id["HALL_LAMPA"], "setValue", "1") end}})
 	GEA.add(id["HALL_PIR"], 2*60, "", {{"Inverse"}, {"Function", function() fibaro:call(id["HALL_LAMPA"], "setValue", "0") end}}) --{"turnOff", id["HALL_LAMPA"]}, {"Repeat"}})

	--== Push om post i brevlådan ==--
	GEA.add(id["POSTLADA"], 1*30, "Kolla posten (#date# #time#)", {{"Time", "08:00", "21:00"}})

	--== Push om TV stått på i x timmar
	GEA.add({"Sensor+", id["TILDE_TV"], 100}, 180*60, "Tv:n på i 3 timmar - #value# watt", {{"Portable", 122, 123}})
	GEA.add({"Sensor+", id["ALLRUM_TV"], 100}, 240*60, "Tv:n på i 4 timmar - #value# watt", {{"Portable", 122, 123}})

	--== Saker som stänger av sig på tid ==--
	GEA.add(id["TILDE_LEDLIST"], 20*60, "", {{"turnOff", id["TILDE_LEDLIST"]}})
--	GEA.add(id["SKRIVARE_HP"], 60*60, "", {{"turnOff", id["SKRIVARE_HP"]}})
--	GEA.add(id["SKRIVARE_CANON"], 60*60, "", {{"turnOff", id["SKRIVARE_CANON"]}})

	--== Kylskåp och frys, rapportera öppen dörr och hög temp ==--
	GEA.add({"Value+", id["KYL_TEMP"], 15}, 7*60, "Kolla kylen,  #value# grader (#date# #time#)") 
	GEA.add(id["KYL_DORR"], 3*60, "Öppen kylskåpsdörr #duration# (#date# #time#)")

	--== Kolla döda noder ==--
	GEA.add({"Dead", id["PARKERING_LAMPA"]}, 15*60, "Kolla lampan på parkeringen", {{"WakeUp", id["PARKERING_LAMPA"]}, {"Portable", 122, 123}})
	GEA.add({"Dead", id["AVFUKTARE_STOR"]}, 10*60, "Kolla stora avfuktaren", {{"WakeUp", id["AVFUKTARE_STOR"]}, {"Portable", 122, 123}})
	GEA.add({"Dead", id["AVFUKTARE_LITEN"]}, 10*60, "Kolla lilla avfuktaren", {{"WakeUp", id["AVFUKTARE_LITEN"]}, {"Portable", 122, 123}})   
--	GEA.add({"Dead", id["VRUM_LEDLIST"]}, 10*60, "Väcker ledlist i vrum", {{"WakeUp", id["VRUM_LEDLIST"]}, {"Portable", 122, 123}})   
--	GEA.add({"Dead", id["TVATT_PIR"]}, 10*60, "Väcker PIR i tvättstugan", {{"WakeUp", id["TVATT_PIR"]}, {"Portable", 122, 123}})   
	GEA.add({"Dead", id["POSTLADA"]}, 30*60, "Kolla brevlådan", {{"WakeUp", id["POSTLADA"]}, {"Portable", 122, 123}})   

    -- ==================================================
    -- [FR] NE PLUS RIEN TOUCHER
    -- [EN] DON'T TOUCH UNDER THIS POINT
    -- ==================================================
SirMaggot
Medlem
Posts: 441
Joined: 18 Aug 2013, 10:36
11

Här är GEA:s supportforum, finns mycket bra där. Google translate funkar utmärkt.
http://www.domotique-fibaro.fr/index.ph ... pport-gea/

Här postar medlemmar sina konfigurationer.
http://www.domotique-fibaro.fr/index.ph ... nfigs-gea/
SirMaggot
Medlem
Posts: 441
Joined: 18 Aug 2013, 10:36
11

GEA - installation av ny enhet med lite kod.

Idag installerade jag en ny Qubino-dimmer i dotterns rum.
Tanken är att tända taklampan gradvis för att väcka henne när det är dagis.

Jag skapar en global variabel som heter "Dagis" med värde "Ja" och "Nej"

Dimmern fick id 174, lägger in den under properties

Code: Select all

%% properties
174 value
Jag vill kunna stänga av väckningen med lampan när det inte är dagis (barnen går inte på dagis när det är lov)
Den globala variabeln Dagis läggs in under globals.

Code: Select all

%% globals
Dagis
För att lättare komma ihåg enhetens nummer skapar vi en lokal variabel. Enhet 174 heter numera T_TAKLAMPA

Code: Select all

local id = {
		T_TAKLAMPA = 174,
Nu till kodsnutten som ska in i GEA. Jag delar upp det för lättare översyn.

Code: Select all

local DagisJa = GEA.add(true, 30, "", {{"Time", "06:30", "06:30"}, {"Function", function()  fibaro:call(id["T_TAKLAMPA"], "setValue", "15") end}, {"Days", "Monday, Tuesday, Wednesday, Thursday"}})
local DagisJa = Vi gör om kodsnutten till en lokal variabel så att vi kan använda ett annat kommando senare.
Time = är tiden när saker ska hända
{"Function", function() fibaro:call(id["T_TAKLAMPA"], "setValue", "15") end} = sätter taklaklampan till 15%
{"Days", "Monday, Tuesday, Wednesday, Thursday"}}) = Utförs dessa dagar.

Om den globala variablen "Dagis" = Nej. Stoppa den lokala variabeln "DagisJa"
DagisJa är kodsnutten som tänder lampan.

Code: Select all

GEA.add({"Global","Dagis","Nej"}, 30 , "" , {{"StopTask",DagisJa}, {"repeat"}})
Sen släcker vi lampan kl 08:15 (Får hoppas dottern lär sig släcka själv)

Code: Select all

local DagisJa = GEA.add(true, 30, "", {{"inverse"}, {"Time", "08:15", "08:15"}, {"Function", function() fibaro:call(id["T_TAKLAMPA"], "setValue", "0") end}, {"Days", "Monday, Tuesday, Wednesday, Thursday"}})
Hela kodsnutten ser ut som följande.

Code: Select all

	local DagisJa = GEA.add(true, 30, "", {{"Time", "06:30", "06:30"}, {"Function", function() fibaro:call(id["T_TAKLAMPA"], "setValue", "15") end}, {"Days", "Monday, Tuesday, Wednesday, Thursday"}})
	local DagisJa = GEA.add(true, 30, "", {{"Time", "06:32", "06:32"}, {"Function", function() fibaro:call(id["T_TAKLAMPA"], "setValue", "20") end}, {"Days", "Monday, Tuesday, Wednesday, Thursday"}})
	local DagisJa = GEA.add(true, 30, "", {{"Time", "06:34", "06:34"}, {"Function", function() fibaro:call(id["T_TAKLAMPA"], "setValue", "30") end}, {"Days", "Monday, Tuesday, Wednesday, Thursday"}})
	local DagisJa = GEA.add(true, 30, "", {{"Time", "06:36", "06:36"}, {"Function", function() fibaro:call(id["T_TAKLAMPA"], "setValue", "40") end}, {"Days", "Monday, Tuesday, Wednesday, Thursday"}})
	local DagisJa = GEA.add(true, 30, "", {{"Time", "06:39", "06:39"}, {"Function", function() fibaro:call(id["T_TAKLAMPA"], "setValue", "50") end}, {"Days", "Monday, Tuesday, Wednesday, Thursday"}})
	local DagisJa = GEA.add(true, 30, "", {{"Time", "06:42", "06:42"}, {"Function", function() fibaro:call(id["T_TAKLAMPA"], "setValue", "75") end}, {"Days", "Monday, Tuesday, Wednesday, Thursday"}})
	local DagisJa = GEA.add(true, 30, "", {{"Time", "06:44", "06:44"}, {"Function", function() fibaro:call(id["T_TAKLAMPA"], "setValue", "99") end}, {"Days", "Monday, Tuesday, Wednesday, Thursday"}})
	-- Släck lampan vid kl 08:15 --
	local DagisJa = GEA.add(true, 30, "", {{"inverse"}, {"Time", "08:15", "08:15"}, {"Function", function() fibaro:call(id["T_TAKLAMPA"], "setValue", "0") end}, {"Days", "Monday, Tuesday, Wednesday, Thursday"}})
	GEA.add({"Global","Dagis","Nej"}, 30 , "" , {{"StopTask",DagisJa}, {"repeat"}})
Nu hoppas jag att det funkar också, får se imorgon bitti :)
Post Reply