Lua kod för att styra lampor beroende på veckor?
Ja, -10:00 blir före soluppgången. +10:00 efter.
Om du ska släcka en lampa kan du använda :off
Code: Select all
rule("@sunrise-00:10 & wday('mon-fri') & wnum % 2 == 0 => kitchen.lampaTak:off")
:value=0 översätts till fibaro:call(ID,'setValue',0) och :off fibaro:call(ID,"turnOff") - dvs ingen större skillnad. Tycker om att använda :off när jag släcker lampor då koden känns mer "självdokumenterande"
Ja de går att styra Hue lampor.
Först måste du definiera
Code: Select all
local _HueUserName = ".........." -- Hue API key
local _HueIP = "192.168.1.XX" -- Hue bridge IP
https://www.markdubois.info/weblog/2016 ... s-hue-api/ eller så använder du ngt annat verktyg.
Sedan avkommentera raden med HueSetup
Code: Select all
-- Hue setup before main() starts. You can add more Hue.connect() inside this if you have more Hue bridges.
function HueSetup() if _HueUserName and _HueIP then Hue.connect(_HueUserName,_HueIP,"Hue") end end
Du kan köra
Code: Select all
Hue.dump()
Anta att du har en lampa som heter "Window lamp" i Hue.
Du tilldelar då din Hue lampa ett fejkar devideID nummer. Fejkade deviceID nummer måste vara > 10000.
Code: Select all
Hue.define("Window lamp",12001)
Code: Select all
Rule.eval("@07:00 => 12001:on") -- Turn on lamp
Rule.eval("@07:00 => 12001:value=50") -- Dim to 50%
Code: Select all
HomeTable = {
kitchen = { lamp = 12001 }
}
Code: Select all
Rule.eval("@07:00 => kitchen.lamp:on")
Vart exakt skall jag lägga in och de övriga
Hue.dump()
--------- Main ------------ Here goes your rules ----------------
function main()
local rule,define = Rule.eval, Util.defvar
if _EMULATED then
--_System.speed(true) -- run emulator faster than real-time
--_System.setRemote("devices",{5}) -- make device 5 remote (call HC2 with api)
--_System.installProxy() -- Install HC2 proxy sending sourcetriggers back to emulator
end
local HT = -- Example of in-line "home table"
{
dev =
{ livingroom = {lampaTak = 206, lampaBed = 205},
kitchen = {lampaBord = 33, lampaTak = 68},
bathroom = {lampaBad = 329, lampaMirr = 335},
},
other = "other"
}
--or read in "HomeTable" from a fibaro global variable (or scene)
--local HT = type(_homeTable)=='number' and api.get("/scenes/".._homeTable).lua or fibaro:getGlobalValue(_homeTable)
--HT = type(HT) == 'string' and json.decode(HT) or HT
Util.defvars(HT.dev) -- Make HomeTable variables available in EventScript
Util.reverseMapDef(HT.dev) -- Make HomeTable variable names available for logger
-- Dina regler
--rule("@sunset-00:10 & wnum % 2 == 1 => kitchen.lampaTak:value=30") -- Sätt till 30%, udda veckor, solnedgång-10min
-- Tänd och släck jämna veckor ( Jämn vecka = 0 )
rule("@05:28 & wday('mon-thu') & wnum%2 == 0 => kitchen.lampaTak:value=20") -- Sätt till 20%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('mon-thu') & wnum%2 == 0 => kitchen.lampaBord:value=1") -- Sätt till on%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('mon-thu') & wnum%2 == 0 => livingroom.lampaTak:value=1")
rule("@05:28 & wday('fri') & wnum%2 == 0 => kitchen.lampaTak:value=20") -- Sätt till 20%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('fri') & wnum%2 == 0 => kitchen.lampaBord:value=1") -- Sätt till on%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('fri') & wnum%2 == 0 => livingroom.lampaTak:value=1")
rule("@07:10 & wday('mon-fri') & wnum%2 == 0 => kitchen.lampaTak:value=0")
rule("@08:15 & wday('mon-fri') & wnum%2 == 0 => kitchen.lampaBord:value=0")
rule("@07:35 & wday('mon-fri') & wnum%2 == 0 => livingroom.lampaTak:value=0")
--
Hue.dump()
--------- Main ------------ Here goes your rules ----------------
function main()
local rule,define = Rule.eval, Util.defvar
if _EMULATED then
--_System.speed(true) -- run emulator faster than real-time
--_System.setRemote("devices",{5}) -- make device 5 remote (call HC2 with api)
--_System.installProxy() -- Install HC2 proxy sending sourcetriggers back to emulator
end
local HT = -- Example of in-line "home table"
{
dev =
{ livingroom = {lampaTak = 206, lampaBed = 205},
kitchen = {lampaBord = 33, lampaTak = 68},
bathroom = {lampaBad = 329, lampaMirr = 335},
},
other = "other"
}
--or read in "HomeTable" from a fibaro global variable (or scene)
--local HT = type(_homeTable)=='number' and api.get("/scenes/".._homeTable).lua or fibaro:getGlobalValue(_homeTable)
--HT = type(HT) == 'string' and json.decode(HT) or HT
Util.defvars(HT.dev) -- Make HomeTable variables available in EventScript
Util.reverseMapDef(HT.dev) -- Make HomeTable variable names available for logger
-- Dina regler
--rule("@sunset-00:10 & wnum % 2 == 1 => kitchen.lampaTak:value=30") -- Sätt till 30%, udda veckor, solnedgång-10min
-- Tänd och släck jämna veckor ( Jämn vecka = 0 )
rule("@05:28 & wday('mon-thu') & wnum%2 == 0 => kitchen.lampaTak:value=20") -- Sätt till 20%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('mon-thu') & wnum%2 == 0 => kitchen.lampaBord:value=1") -- Sätt till on%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('mon-thu') & wnum%2 == 0 => livingroom.lampaTak:value=1")
rule("@05:28 & wday('fri') & wnum%2 == 0 => kitchen.lampaTak:value=20") -- Sätt till 20%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('fri') & wnum%2 == 0 => kitchen.lampaBord:value=1") -- Sätt till on%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('fri') & wnum%2 == 0 => livingroom.lampaTak:value=1")
rule("@07:10 & wday('mon-fri') & wnum%2 == 0 => kitchen.lampaTak:value=0")
rule("@08:15 & wday('mon-fri') & wnum%2 == 0 => kitchen.lampaBord:value=0")
rule("@07:35 & wday('mon-fri') & wnum%2 == 0 => livingroom.lampaTak:value=0")
--
Har markerat I bold det du ska lägga till. /J
--------------------
--[[
%% properties
%% events
%% globals
%% autostart
--]]
if dofile and not _EMULATED then _EMULATED={name="EventRunner",id=99,maxtime=44} dofile("HC2.lua") end -- For HC2 emulator
local _version,_fix = "3.0","B83" -- Nov 17, 2019
local _sceneName = "Demo" -- Set to scene/script name
local _homeTable = "devicemap" -- Name of your HomeTable variable (fibaro global)
local _HueUserName = ".........." -- Hue API key
local _HueIP = "192.168.1.XX" -- Hue bridge IP
-- debug flags for various subsystems (global)
_debugFlags = {
post=true,invoke=true,triggers=true,dailys=false,rule=true,ruleTrue=false,
fcall=true, fglobal=false, fget=false, fother=false, hue=true, telegram=false, nodered=false,
}
-- options for various subsystems (global)
_options=_options or {}
-- Hue setup before main() starts. You can add more Hue.connect() inside this if you have more Hue bridges.
function HueSetup() if _HueUserName and _HueIP then Hue.connect(_HueUserName,_HueIP,"Hue") end end
--------- Main ------------ Here goes your rules ----------------
function main()
local rule,define = Rule.eval, Util.defvar
if _EMULATED then
--_System.speed(true) -- run emulator faster than real-time
--_System.setRemote("devices",{5}) -- make device 5 remote (call HC2 with api)
--_System.installProxy() -- Install HC2 proxy sending sourcetriggers back to emulator
end
local HT = -- Example of in-line "home table"
{
dev =
{ livingroom = {lampaTak = 206, lampaBed = 205, lampaFonster=12001},
kitchen = {lampaBord = 33, lampaTak = 68},
bathroom = {lampaBad = 329, lampaMirr = 335},
},
other = "other"
}
--or read in "HomeTable" from a fibaro global variable (or scene)
--local HT = type(_homeTable)=='number' and api.get("/scenes/".._homeTable).lua or fibaro:getGlobalValue(_homeTable)
--HT = type(HT) == 'string' and json.decode(HT) or HT
Util.defvars(HT.dev) -- Make HomeTable variables available in EventScript
Util.reverseMapDef(HT.dev) -- Make HomeTable variable names available for logger
Hue.dump() -- Kör en gång för att få Hue namn. Kommentera sedan bort den
--Hue.define("Window lamp",12001) -- Avkommentera när du har rätt namn
-- Dina regler
rule("@now+00:00:02 => livingroom. lampaFonster:on") -- Test light, turn on 2 seconds after ER started/saved.
--rule("@sunset-00:10 & wnum % 2 == 1 => kitchen.lampaTak:value=30") -- Sätt till 30%, udda veckor, solnedgång-10min
-- Tänd och släck jämna veckor ( Jämn vecka = 0 )
rule("@05:28 & wday('mon-thu') & wnum%2 == 0 => kitchen.lampaTak:value=20") -- Sätt till 20%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('mon-thu') & wnum%2 == 0 => kitchen.lampaBord:value=1") -- Sätt till on%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('mon-thu') & wnum%2 == 0 => livingroom.lampaTak:value=1")
rule("@05:28 & wday('fri') & wnum%2 == 0 => kitchen.lampaTak:value=20") -- Sätt till 20%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('fri') & wnum%2 == 0 => kitchen.lampaBord:value=1") -- Sätt till on%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('fri') & wnum%2 == 0 => livingroom.lampaTak:value=1")
rule("@07:10 & wday('mon-fri') & wnum%2 == 0 => kitchen.lampaTak:value=0")
rule("@08:15 & wday('mon-fri') & wnum%2 == 0 => kitchen.lampaBord:value=0")
rule("@07:35 & wday('mon-fri') & wnum%2 == 0 => livingroom.lampaTak:value=0")
--
--------------------
--[[
%% properties
%% events
%% globals
%% autostart
--]]
if dofile and not _EMULATED then _EMULATED={name="EventRunner",id=99,maxtime=44} dofile("HC2.lua") end -- For HC2 emulator
local _version,_fix = "3.0","B83" -- Nov 17, 2019
local _sceneName = "Demo" -- Set to scene/script name
local _homeTable = "devicemap" -- Name of your HomeTable variable (fibaro global)
local _HueUserName = ".........." -- Hue API key
local _HueIP = "192.168.1.XX" -- Hue bridge IP
-- debug flags for various subsystems (global)
_debugFlags = {
post=true,invoke=true,triggers=true,dailys=false,rule=true,ruleTrue=false,
fcall=true, fglobal=false, fget=false, fother=false, hue=true, telegram=false, nodered=false,
}
-- options for various subsystems (global)
_options=_options or {}
-- Hue setup before main() starts. You can add more Hue.connect() inside this if you have more Hue bridges.
function HueSetup() if _HueUserName and _HueIP then Hue.connect(_HueUserName,_HueIP,"Hue") end end
--------- Main ------------ Here goes your rules ----------------
function main()
local rule,define = Rule.eval, Util.defvar
if _EMULATED then
--_System.speed(true) -- run emulator faster than real-time
--_System.setRemote("devices",{5}) -- make device 5 remote (call HC2 with api)
--_System.installProxy() -- Install HC2 proxy sending sourcetriggers back to emulator
end
local HT = -- Example of in-line "home table"
{
dev =
{ livingroom = {lampaTak = 206, lampaBed = 205, lampaFonster=12001},
kitchen = {lampaBord = 33, lampaTak = 68},
bathroom = {lampaBad = 329, lampaMirr = 335},
},
other = "other"
}
--or read in "HomeTable" from a fibaro global variable (or scene)
--local HT = type(_homeTable)=='number' and api.get("/scenes/".._homeTable).lua or fibaro:getGlobalValue(_homeTable)
--HT = type(HT) == 'string' and json.decode(HT) or HT
Util.defvars(HT.dev) -- Make HomeTable variables available in EventScript
Util.reverseMapDef(HT.dev) -- Make HomeTable variable names available for logger
Hue.dump() -- Kör en gång för att få Hue namn. Kommentera sedan bort den
--Hue.define("Window lamp",12001) -- Avkommentera när du har rätt namn
-- Dina regler
rule("@now+00:00:02 => livingroom. lampaFonster:on") -- Test light, turn on 2 seconds after ER started/saved.
--rule("@sunset-00:10 & wnum % 2 == 1 => kitchen.lampaTak:value=30") -- Sätt till 30%, udda veckor, solnedgång-10min
-- Tänd och släck jämna veckor ( Jämn vecka = 0 )
rule("@05:28 & wday('mon-thu') & wnum%2 == 0 => kitchen.lampaTak:value=20") -- Sätt till 20%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('mon-thu') & wnum%2 == 0 => kitchen.lampaBord:value=1") -- Sätt till on%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('mon-thu') & wnum%2 == 0 => livingroom.lampaTak:value=1")
rule("@05:28 & wday('fri') & wnum%2 == 0 => kitchen.lampaTak:value=20") -- Sätt till 20%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('fri') & wnum%2 == 0 => kitchen.lampaBord:value=1") -- Sätt till on%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('fri') & wnum%2 == 0 => livingroom.lampaTak:value=1")
rule("@07:10 & wday('mon-fri') & wnum%2 == 0 => kitchen.lampaTak:value=0")
rule("@08:15 & wday('mon-fri') & wnum%2 == 0 => kitchen.lampaBord:value=0")
rule("@07:35 & wday('mon-fri') & wnum%2 == 0 => livingroom.lampaTak:value=0")
--
Code: Select all
rule("lampa:off")
rule("lampa:on")
rule("lampa:value=50") -- Dimma till 50%
rule("lampa:value={99,0,0}") -- Sätt till röd färg
rule("lampa:value={0,99,0}") -- Sätt till blå färg
rule("lampa:value={0,0,99}") -- Sätt till grön färg
rule("lampa:value={0,0,99,50}") -- Sätt till grön färg, 50% dimmad
rule("lampa:value='Night scene' ") -- Sätt lampa till Hue scene 'Night scene'
och definiera ett HC2 deviceID med Hue.define för gruppen.
Om du tycker att du har en bra inställning på en lampa kan du spara den i en fibaro global såhär
Code: Select all
rule("$HueValue = lampa:values") -- :values returnerar alla Hue properities
rule("lampa:values = $HueValue") -- återställ värden till lampan.
Har en entré lampa som jag vill ska tändas då man öppnar dörren (magnet kontakt) och om jag är på insidan av dörren så ska den tändas av en rörelse sensor som jag har där och så länge det är rörelse så skall den hållas tänd och släckas efter 5min då ingen är där. Hur får man till det, är det bara att lägga till dessa två sensorer mellan --[[ och --]] och sedan bygga regeln........
sensors = {339, 345}
lampaEntre = 329
rule("sensors:breached & 04:10..22:30 => lampaBad:value=100")
sensors = {339, 345}
lampaEntre = 329
rule("sensors:breached & 04:10..22:30 => lampaBad:value=100")
Ja , du måste lägga till dem under --[[ %% propertiesTexan wrote: ↑08 Dec 2019, 14:02 Har en entré lampa som jag vill ska tändas då man öppnar dörren (magnet kontakt) och om jag är på insidan av dörren så ska den tändas av en rörelse sensor som jag har där och så länge det är rörelse så skall den hållas tänd och släckas efter 5min då ingen är där. Hur får man till det, är det bara att lägga till dessa två sensorer mellan --[[ och --]] och sedan bygga regeln........
sensors = {339, 345}
lampaEntre = 329
rule("sensors:breached & 04:10..22:30 => lampaBad:value=100")
och sedan regler i stil med.
Code: Select all
doorSensor = 339
motionSensor = 345
sensors = {doorSensor, motionSensor}
lampaEntre = 329
rule("sensors:breached & sunset-01:00..22:30 => lampaEntre:on")
rule("trueFor(00:05,sensors:safe) => lampaEntre:off")
Både rörelsesensorn och dörren måste vara "safe" i 5min för att den ska släcka.
Edit: ändrade till 'trueFor'
Det är något som jag gör fel, lampaCloset vill inte tända, fungera ifall jag kör en egen event för den.
Code: Select all
--[[
%% properties
339 value
345 value
220 value
51 value
211 value
%% events
5 CentralSceneEvent
22 GeofenceEvent
%% globals
TimeOfDay
Test
%% autostart
--]]
Code: Select all
dev =
{ livingroom = {lampaTak = 206, lampaBed = 205, lampaGlas = 308},
kitchen = {lampaWind = 33, lampaSink = 68},
bathroom = {lampaBad = 329, lampaMirr = 335},
closet = {lampaCloset = 152},
hallway = {lampaHall = 40},
},
Code: Select all
-- Dina regler
--rule("@now+00:00:02 => livingroom. lampaBed:on") -- Test light, turn on 2 seconds after ER started/saved
--rule("@sunset-00:10 & wnum % 2 == 1 => kitchen.lampaTak:value=30") -- Sätt till 30%, udda veckor, solnedgång-10min
-- Tänd och släck jämna veckor ( Jämn vecka = 0 )
rule("@05:28 & wday('mon-thu') & wnum%2 == 0 => kitchen.lampaSink:value=10") -- Sätt till 20%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('mon-thu') & wnum%2 == 0 => kitchen.lampaWind:value=1") -- Sätt till on%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('mon-thu') & wnum%2 == 0 => livingroom.lampaTak:value=1")
rule("@05:28 & wday('fri') & wnum%2 == 0 => kitchen.lampaSink:value=10") -- Sätt till 20%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('fri') & wnum%2 == 0 => kitchen.lampaWind:value=1") -- Sätt till on%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('fri') & wnum%2 == 0 => livingroom.lampaTak:value=1")
rule("@07:10 & wday('mon-fri') & wnum%2 == 0 => kitchen.lampaSink:value=0")
rule("@08:15 & wday('mon-fri') & wnum%2 == 0 => kitchen.lampaWind:value=0")
rule("@sunrise+00:10 => livingroom.lampaTak:value=0")
--rule("@08:10 & wday('mon-fri') & wnum%2 == 0 => livingroom.lampaTak:value=0")
rule("@23:00 & wday('mon-thu') => livingroom.lampaGlas:off")
rule("@24:00 & wday('fri-sun') => livingroom.lampaGlas:off")
-- Tänd och släck udda veckor ( Udda vecka = 1 )
--rule("@now+00:00:02 => 12001:on") -- Test light, turn on 2 seconds after ER started/saved
--rule("@now+00:00:02 => 12002:on") -- Test light, turn on 2 seconds after ER started/saved
rule("@sunset+03:00 & wday('mon-fri') => 12001:value'Night scene'")
rule("@04:28 & wday('mon-thu') & wnum%2 == 1 => kitchen.lampaSink:value=10") -- Sätt till 20%, udda veckor, soluppgång-10min
rule("@04:29 & wday('mon-thu') & wnum%2 == 1 => kitchen.lampaWind:value=1") -- Sätt till on, udda veckor, soluppgång-10min
rule("@04:29 & wday('mon-thu') & wnum%2 == 1 => livingroom.lampaTak:value=1")
rule("@04:10 & wday('fri') & wnum%2 == 1 => kitchen.lampaSink:value=10") -- Sätt till 20%, udda veckor, soluppgång-10min
rule("@04:10 & wday('fri') & wnum%2 == 1 => kitchen.lampaWind:value=1") -- Sätt till on, udda veckor, soluppgång-10min
rule("@04:11 & wday('fri') & wnum%2 == 1 => livingroom.lampaTak:value=1")
rule("@07:15 & wday('mon-fri') & wnum%2 == 1 => kitchen.lampaSink:value=0")
rule("@08:17 & wday('mon-fri') & wnum%2 == 1 => kitchen.lampaWind:value=0")
--rule("@sunrise+00:10 & wday('mon-fri') & wnum%2 == 1 => livingroom.lampaTak:value=0")
--rule("@08:10 & wday('mon-fri') & wnum%2 == 1 => livingroom.lampaTak:value=0")
sensors = {339, 345}
lampaBad = 329
lampaMirr = 335
rule("sensors:breached & 04:10..22:30 => lampaBad:value=100")
rule("sensors:breached & 22:30..04:10 => lampaBad:value=5")
rule("sensors:breached & 04:10..23:59 => lampaMirr:value=1")
rule("trueFor(00:04,sensors:safe) => lampaBad:off")
rule("trueFor(00:04,sensors:safe) => lampaMirr:off")
--
sensors = 220
lampaCloset = 152
rule("sensors:breached => closet.lampaCloset:value=1")
rule("trueFor(00:02,sensors:safe) => closet.lampaCloset:value=0")
--
doorsensor = 211
motionsensor = 51
sensors = {doorsensor, motionsensor}
lampaHall = 40
rule("sensors:breached => hallway.lampaHall:value=75")
rule("trueFor(00:03,sensors:safe) => hallway.lampaHall:off")
Lua variablen sensors definerades om flera ggr och det blir den sista som gäller.
Nu har jag bytt namn till badSensors, doorSensors etc.
Nu har jag bytt namn till badSensors, doorSensors etc.
Code: Select all
rule("@05:28 & wday('mon-thu') & wnum%2 == 0 => kitchen.lampaSink:value=10") -- Sätt till 20%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('mon-thu') & wnum%2 == 0 => kitchen.lampaWind:value=1") -- Sätt till on%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('mon-thu') & wnum%2 == 0 => livingroom.lampaTak:value=1")
rule("@05:28 & wday('fri') & wnum%2 == 0 => kitchen.lampaSink:value=10") -- Sätt till 20%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('fri') & wnum%2 == 0 => kitchen.lampaWind:value=1") -- Sätt till on%, jämna veckor, soluppgång-10min
rule("@05:29 & wday('fri') & wnum%2 == 0 => livingroom.lampaTak:value=1")
rule("@07:10 & wday('mon-fri') & wnum%2 == 0 => kitchen.lampaSink:value=0")
rule("@08:15 & wday('mon-fri') & wnum%2 == 0 => kitchen.lampaWind:value=0")
rule("@sunrise+00:10 => livingroom.lampaTak:value=0")
--rule("@08:10 & wday('mon-fri') & wnum%2 == 0 => livingroom.lampaTak:value=0")
rule("@23:00 & wday('mon-thu') => livingroom.lampaGlas:off")
rule("@24:00 & wday('fri-sun') => livingroom.lampaGlas:off")
-- Tänd och släck udda veckor ( Udda vecka = 1 )
--rule("@now+00:00:02 => 12001:on") -- Test light, turn on 2 seconds after ER started/saved
--rule("@now+00:00:02 => 12002:on") -- Test light, turn on 2 seconds after ER started/saved
rule("@sunset+03:00 & wday('mon-fri') => 12001:value'Night scene'")
rule("@04:28 & wday('mon-thu') & wnum%2 == 1 => kitchen.lampaSink:value=10") -- Sätt till 20%, udda veckor, soluppgång-10min
rule("@04:29 & wday('mon-thu') & wnum%2 == 1 => kitchen.lampaWind:value=1") -- Sätt till on, udda veckor, soluppgång-10min
rule("@04:29 & wday('mon-thu') & wnum%2 == 1 => livingroom.lampaTak:value=1")
rule("@04:10 & wday('fri') & wnum%2 == 1 => kitchen.lampaSink:value=10") -- Sätt till 20%, udda veckor, soluppgång-10min
rule("@04:10 & wday('fri') & wnum%2 == 1 => kitchen.lampaWind:value=1") -- Sätt till on, udda veckor, soluppgång-10min
rule("@04:11 & wday('fri') & wnum%2 == 1 => livingroom.lampaTak:value=1")
rule("@07:15 & wday('mon-fri') & wnum%2 == 1 => kitchen.lampaSink:value=0")
rule("@08:17 & wday('mon-fri') & wnum%2 == 1 => kitchen.lampaWind:value=0")
--rule("@sunrise+00:10 & wday('mon-fri') & wnum%2 == 1 => livingroom.lampaTak:value=0")
--rule("@08:10 & wday('mon-fri') & wnum%2 == 1 => livingroom.lampaTak:value=0")
badSensors = {339, 345}
--lampaBad = 329
--lampaMirr = 335
rule("badSensors:breached & 04:10..22:30 => bathroom.lampaBad:value=100")
rule("badSensors:breached & 22:30..04:10 => bathroom.lampaBad:value=5")
rule("badSensors:breached & 04:10..23:59 => bathroom.lampaMirr:value=1")
rule("trueFor(00:04,badSensors:safe) => bathroom.lampaBad:off; bathroom.lampaMirr:off")
-- rule("trueFor(00:04,badSensors:safe) => bathroom.lampaMirr:off")
--
closetSensors = 220
--lampaCloset = 152
rule("closetSensors:breached => closet.lampaCloset:value=1")
rule("trueFor(00:02,closetSensors:safe) => closet.lampaCloset:value=0")
--
doorsensor = 211
motionsensor = 51
doorSensors = {doorsensor, motionsensor}
--lampaHall = 40
rule("doorSensors:breached => hallway.lampaHall:value=75")
rule("trueFor(00:03,doorSensors:safe) => hallway.lampaHall:off")
Har skaffat en dörrsensor (456) till badrummet som jag tänkte att ifall dörren är stängt så blir lamporna tända ex max 30min ifall man ligger i badet med stängd dörr och lite rörelse eller sitter länge på stolen
Hur blir det då?
Prövade detta men det känns inte som rätt sätt
Hur blir det då?
Code: Select all
badSensors = {339, 345, 456}
rule("badSensors:breached & 04:10..22:30 => bathroom.lampaBad:value=100")
rule("badSensors:breached & 22:30..04:10 => bathroom.lampaBad:value=5")
rule("badSensors:breached & 04:10..23:59 => bathroom.lampaMirr:value=1")
rule("trueFor(00:02,badSensors:safe) => bathroom.lampaBad:off; bathroom.lampaMirr:off")
Prövade detta men det känns inte som rätt sätt
Code: Select all
motionsensor1 = 339
motionsensor2 = 345
mksensor = 456
badSensors = {motionsensor1, motionsensor2}
rule("mksensor:breached & 04:10..22:30 => bathroom.lampaBad:value=100; bathroom.lampaMirr:value=1")
rule("badSensors:breached & 04:10..22:30 => bathroom.lampaBad:value=100; bathroom.lampaMirr:value=1")
rule("badSensors:breached & 22:30..04:10 => bathroom.lampaBad:value=5; bathroom.lampaMirr:off")
rule("mksensor:breached & 22:30..04:10 => bathroom.lampaMirr:off; bathroom.lampaBad:value=5")
rule("trueFor(00:00,mksensor:safe) => bathroom.lampaBad:off; bathroom.lampaMirr:off")
rule("trueFor(00:01,badSensors:safe) => bathroom.lampaBad:off; bathroom.lampaMirr:off")
Prova det här, vi har en flagga 'iBadrum' som sätts till sant om ngn rör sig i badrummet medans dörren är stängd och sätts till falskt om den öppnas.Texan wrote: ↑09 Jan 2020, 00:10 Har skaffat en dörrsensor (456) till badrummet som jag tänkte att ifall dörren är stängt så blir lamporna tända ex max 30min ifall man ligger i badet med stängd dörr och lite rörelse eller sitter länge på stolen
Hur blir det då?
Code: Select all
badSensors = {339, 345, 456} rule("badSensors:breached & 04:10..22:30 => bathroom.lampaBad:value=100") rule("badSensors:breached & 22:30..04:10 => bathroom.lampaBad:value=5") rule("badSensors:breached & 04:10..23:59 => bathroom.lampaMirr:value=1") rule("trueFor(00:02,badSensors:safe) => bathroom.lampaBad:off; bathroom.lampaMirr:off")
Prövade detta men det känns inte som rätt sättCode: Select all
motionsensor1 = 339 motionsensor2 = 345 mksensor = 456 badSensors = {motionsensor1, motionsensor2} rule("mksensor:breached & 04:10..22:30 => bathroom.lampaBad:value=100; bathroom.lampaMirr:value=1") rule("badSensors:breached & 04:10..22:30 => bathroom.lampaBad:value=100; bathroom.lampaMirr:value=1") rule("badSensors:breached & 22:30..04:10 => bathroom.lampaBad:value=5; bathroom.lampaMirr:off") rule("mksensor:breached & 22:30..04:10 => bathroom.lampaMirr:off; bathroom.lampaBad:value=5") rule("trueFor(00:00,mksensor:safe) => bathroom.lampaBad:off; bathroom.lampaMirr:off") rule("trueFor(00:01,badSensors:safe) => bathroom.lampaBad:off; bathroom.lampaMirr:off")
Sedan trueFor reglerna släcker bara om iBadrum är falskt ('!' är 'not')
Tiderna kan regleras men sätt de inte till 00:00, skulle rekommendera minst 2min
Code: Select all
motionsensor1 = 339
motionsensor2 = 345
mksensor = 456
badSensors = {motionsensor1, motionsensor2}
rule("mksensor:breached & 04:10..22:30 => bathroom.lampaBad:value=100; bathroom.lampaMirr:value=1")
rule("badSensors:breached & 04:10..22:30 => bathroom.lampaBad:value=100; bathroom.lampaMirr:value=1")
rule("badSensors:breached & 22:30..04:10 => bathroom.lampaBad:value=5; bathroom.lampaMirr:off")
rule("mksensor:breached & 22:30..04:10 => bathroom.lampaMirr:off; bathroom.lampaBad:value=5")
rule("trueFor(00:05,mksensor:safe & !iBadrum) => bathroom.lampaBad:off; bathroom.lampaMirr:off")
rule("trueFor(00:05,badSensors:safe & !iBadrum) => bathroom.lampaBad:off; bathroom.lampaMirr:off")
rule("mkSensor:breached => iBadrum = false") -- Dörr öppnas, vi vet inte om ngn är i badrummet
rule("badSensors:breached => if mkSensor:safe then iBadrum = true end") -- Sensor breached och dörr stängd, ngn inne i badrummet
Ah, det blev en miss - nytt försök.
Code: Select all
motionsensor1 = 339
motionsensor2 = 345
mksensor = 456
badSensors = {motionsensor1, motionsensor2}
bathroom = { lampaBad = 100, lampaMirr = 101}
Util.triggerVar('iBadrum')
rule("mksensor:breached & 04:10..22:30 => bathroom.lampaBad:value=100; bathroom.lampaMirr:value=1")
rule("badSensors:breached & 04:10..22:30 => bathroom.lampaBad:value=100; bathroom.lampaMirr:value=1")
rule("badSensors:breached & 22:30..04:10 => bathroom.lampaBad:value=5; bathroom.lampaMirr:off")
rule("mksensor:breached & 22:30..04:10 => bathroom.lampaMirr:off; bathroom.lampaBad:value=5")
rule("mksensor:breached => iBadrum = false") -- Dörr öppnas, vi vet inte om ngn är i badrummet
rule("badSensors:breached => if mksensor:safe then iBadrum = true end") -- Sensor breached och dörr stängd, ngn inne i badrummet
rule("trueFor(00:05,badSensors:safe & mksensor:value & !iBadrum) => bathroom.lampaBad:off; bathroom.lampaMirr:off") -- check if sensors safe for 5min, retrigger rule every time door value changes