Hej!
Jag skulle vilja ha hjälp med lua kod för att styra 2 pluggar.
Plugg1 ska trigga plugg2 att sätta på när plugg 1 överstiger XX-watt, och plugg1 ska stänga av plugg2 efter Xmin när plugg1 är understiger XX-watt.
LUA kod ?
- RH_Dreambox
- Z-Wave Kung
- Posts: 1203
- Joined: 03 Jan 2015, 16:49
- 9
- Location: Vegby
- Contact:
Så här skulle man kunna göra. Power-värdet på plugg 1 triggar en körning av skriptet så skriptet skall inte autostartas.
Byt ut mina enhetsvärden samt sätt rätt effekt då Plugg 2 skall slås på och av.
Byt ut mina enhetsvärden samt sätt rätt effekt då Plugg 2 skall slås på och av.
Code: Select all
--[[
%% properties
75 power
%% weather
%% events
%% globals
--]]
-- Glöm inte att sätta enhets-ID för "Plugg_1 power" ovan
if fibaro:countScenes() > 1 then fibaro:abort() end -- Förhindra multipla scener
local startSource = fibaro:getSourceTrigger();
local Plugg_1 = 75 -- Enhets ID för Plugg_1
local Plugg_2 = 15 -- Enhets ID för Plugg_2
local Power_High = 2000 -- Värde då Plugg_2 skall sättas på
local Power_Low = 1000 -- Värde då Plugg_ skall stängas av
if (
( tonumber(fibaro:getValue(Plugg_1, "power")) >= Power_High )
)
then
fibaro:call(Plugg_2, "turnOn");
fibaro:debug("Satte på Plugg 2");
elseif (
( tonumber(fibaro:getValue(Plugg_1, "power")) < Power_Low )
)
then
fibaro:call(Plugg_2, "turnOff");
fibaro:debug("Stängde av Plugg 2");
end
Min gamla ombyggda HC2 har fått ett nytt liv och min HC3 är nu nedkopplad.
HC2 med Home Assistant har blivit en riktig Game Changer och nu har jag hemautomatik på riktigt.
https://www.zwaveforum.se/viewtopic.php?t=7087
HC2 med Home Assistant har blivit en riktig Game Changer och nu har jag hemautomatik på riktigt.
https://www.zwaveforum.se/viewtopic.php?t=7087
Hej,RH_Dreambox wrote: ↑16 Jun 2018, 16:25 Så här skulle man kunna göra. Power-värdet på plugg 1 triggar en körning av skriptet så skriptet skall inte autostartas.
Byt ut mina enhetsvärden samt sätt rätt effekt då Plugg 2 skall slås på och av.
Code: Select all
--[[ %% properties 75 power %% weather %% events %% globals --]] -- Glöm inte att sätta enhets-ID för "Plugg_1 power" ovan if fibaro:countScenes() > 1 then fibaro:abort() end -- Förhindra multipla scener local startSource = fibaro:getSourceTrigger(); local Plugg_1 = 75 -- Enhets ID för Plugg_1 local Plugg_2 = 15 -- Enhets ID för Plugg_2 local Power_High = 2000 -- Värde då Plugg_2 skall sättas på local Power_Low = 1000 -- Värde då Plugg_ skall stängas av if ( ( tonumber(fibaro:getValue(Plugg_1, "power")) >= Power_High ) ) then fibaro:call(Plugg_2, "turnOn"); fibaro:debug("Satte på Plugg 2"); elseif ( ( tonumber(fibaro:getValue(Plugg_1, "power")) < Power_Low ) ) then fibaro:call(Plugg_2, "turnOff"); fibaro:debug("Stängde av Plugg 2"); end
Tack - går det att addera in en tid när den ska stänga av plugg_2?
Vill att den ska stänga av om värdet på plugg_1 har varit under XXX i 1min, då stäng av plugg_2.
en sån här variant borde funka (har inte haft tid att testa själv)
Code: Select all
--[[
%% properties
75 power
%% weather
%% events
%% globals
--]]
-- Glöm inte att sätta enhets-ID för "Plugg_1 power" ovan
local Plugg_1 = 75 -- Enhets ID för Plugg_1
local Plugg_2 = 15 -- Enhets ID för Plugg_2
local Power_High = 2000 -- Värde då Plugg_2 skall sättas på
local Power_Low = 1000 -- Värde då Plugg_2 skall stängas av
local Sleep = 60 -- Sekunder Plugg_1 ska vara mindre än Power_Low
local Power_1 = tonumber(fibaro:getValue(Plugg_1, "power"))
local Plugg_2_on = tonumber(fibaro:getValue(Plugg_2, "value")) > 0
if Power_1 >= Power_High and not Plug_2_on then -- Slå på plugg
fibaro:call(Plugg_2, "turnOn")
fibaro:debug("Satte på Plugg 2")
elseif Power_1 < Power_Low and Plug_2_on and fibaro:countScenes() == 1 then
-- Värde lågt och plugg_2 på och väntar inte redan på att släcka...
fibaro:sleep(1000*Sleep) -- Vänta x sekunder och stäng av Plugg_2, om inte ngn annan trigger tar död på oss innan...
fibaro:call(Plugg_2, "turnOff");
fibaro:debug("Stängde av Plugg 2");
end
if Power_1 >= Power_Low then -- Ta död på eventuell 'sovande/väntande' instans...
fibaro:killScenes(__fibaroSceneId)
end
Vet inte ifall jag gör fel eller ifall koden inte fungerar, men jag får den inte att stänga av Plugg_2 efter 30 sekunder.
Code: Select all
--[[
%% properties
281 power
%% weather
%% events
%% globals
--]]
-- Glöm inte att sätta enhets-ID för "Plugg_1 power" ovan
local Plugg_1 = 281 -- Enhets ID för Plugg_1
local Plugg_2 = 283 -- Enhets ID för Plugg_2
local Power_High = 50 -- Värde då Plugg_2 skall sättas på
local Power_Low = 10 -- Värde då Plugg_2 skall stängas av
local Sleep = 30 -- Sekunder Plugg_1 ska vara mindre än Power_Low
local Power_1 = tonumber(fibaro:getValue(Plugg_1, "power"))
local Plugg_2_on = tonumber(fibaro:getValue(Plugg_2, "value")) > 0
if Power_1 >= Power_High and not Plug_2_on then -- Slå på plugg
fibaro:call(Plugg_2, "turnOn")
fibaro:debug("Satte på Plugg 2")
elseif Power_1 < Power_Low and Plug_2_on and fibaro:countScenes() == 1 then
-- Värde lågt och plugg_2 på och väntar inte redan på att släcka...
fibaro:sleep(60*Sleep) -- Vänta x sekunder och stäng av Plugg_2, om inte ngn annan trigger tar död på oss innan...
fibaro:call(Plugg_2, "turnOff");
fibaro:debug("Stängde av Plugg 2");
end
if Power_1 >= Power_Low then -- Ta död på eventuell 'sovande/väntande' instans...
fibaro:killScenes(__fibaroSceneId)
end
Well, jag kan inte stava till Plugg/Plug
Dessutom, fibaro:sleep tar tid i millisekunder så det ska stå fibaro:sleep(1000*Sleep). Blir 30sekunder som det står i koden nu.
Lagt till en rad som skriver ut Plugg_1 power och om Plugg_2 är på.
Nytt försök
Dessutom, fibaro:sleep tar tid i millisekunder så det ska stå fibaro:sleep(1000*Sleep). Blir 30sekunder som det står i koden nu.
Lagt till en rad som skriver ut Plugg_1 power och om Plugg_2 är på.
Nytt försök
Code: Select all
--[[
%% properties
281 power
%% weather
%% events
%% globals
--]]
-- Glöm inte att sätta enhets-ID för "Plugg_1 power" ovan
local Plugg_1 = 281 -- Enhets ID för Plugg_1
local Plugg_2 = 283 -- Enhets ID för Plugg_2
local Power_High = 50 -- Värde då Plugg_2 skall sättas på
local Power_Low = 10 -- Värde då Plugg_2 skall stängas av
local Sleep = 30 -- Sekunder Plugg_1 ska vara mindre än Power_Low
local Power_1 = tonumber(fibaro:getValue(Plugg_1, "power"))
local Plugg_2_on = tonumber(fibaro:getValue(Plugg_2, "value")) > 0
fibaro:debug(string.format("Power_1=%s, Plugg_2_on=%s",Power_1,Plugg_2_on))
if Power_1 >= Power_High and not Plugg_2_on then -- Slå på plugg
fibaro:call(Plugg_2, "turnOn")
fibaro:debug("Satte på Plugg 2")
elseif Power_1 < Power_Low and Plugg_2_on and fibaro:countScenes() == 1 then
-- Värde lågt och plugg_2 på och väntar inte redan på att släcka...
fibaro:sleep(1000*Sleep) -- Vänta x sekunder och stäng av Plugg_2, om inte ngn annan trigger tar död på oss innan...
fibaro:call(Plugg_2, "turnOff");
fibaro:debug("Stängde av Plugg 2");
end
if Power_1 >= Power_Low then -- Ta död på eventuell 'sovande/väntande' instans...
fibaro:killScenes(__fibaroSceneId)
end
När jag kör scenen i 4.520 så blir allt trögt med fördröjning på upp till 30sek när man gör on/off på pluggar/dimmrar i systemet, vad kan vara fel?
Code: Select all
--[[
%% properties
281 power
%% weather
%% events
%% globals
--]]
-- Glöm inte att sätta enhets-ID för "Plugg_1 power" ovan
local Plugg_1 = 281 -- Enhets ID för Plugg_1
local Plugg_2 = 283 -- Enhets ID för Plugg_2
local Power_High = 7 -- Värde då Plugg_2 skall sättas på
local Power_Low = 4 -- Värde då Plugg_2 skall stängas av
local Sleep = 10 -- Sekunder Plugg_1 ska vara mindre än Power_Low
local Power_1 = tonumber(fibaro:getValue(Plugg_1, "power"))
local Plugg_2_on = tonumber(fibaro:getValue(Plugg_2, "value")) > 0
fibaro:debug(string.format("Power_1=%s, Plugg_2_on=%s",Power_1,Plugg_2_on))
if Power_1 >= Power_High and not Plugg_2_on then -- Slå på plugg
fibaro:call(Plugg_2, "turnOn")
fibaro:debug("Satte på Plugg 2")
elseif Power_1 < Power_Low and Plugg_2_on and fibaro:countScenes() == 1 then
-- Värde lågt och plugg_2 på och väntar inte redan på att släcka...
fibaro:sleep(1000*Sleep) -- Vänta x sekunder och stäng av Plugg_2, om inte ngn annan trigger tar död på oss innan...
fibaro:call(Plugg_2, "turnOff");
fibaro:debug("Stängde av Plugg 2");
end
if Power_1 >= Power_Low then -- Ta död på eventuell 'sovande/väntande' instans...
fibaro:killScenes(__fibaroSceneId)
end
Intressant. Får du många triggers från 281? Dvs, många (och ofta) logg utskrifter?
Eftersom det är en plugg med energimätning involverad, har du provat det här ?
https://forum.fibaro.com/topic/32080-sc ... ent=162204
Eftersom det är en plugg med energimätning involverad, har du provat det här ?
https://forum.fibaro.com/topic/32080-sc ... ent=162204