Wall plug - Timer

PatrikB
Medlem
Posts: 29
Joined: 05 Sep 2012, 08:24
12
Location: Kullavik, Göteborg

Hej,

Misstänker att med LUA kan man skapa ett script som stänger av t.ex en wall plugg efter x antal minuter.
Praktisk för t.ex kaffemaskinen.

Hur skulle ett sådant script se ut?

/Patrik
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

Nåt sånt här kanske

Code: Select all

--[[ 
%% properties 
7 value 
%% globals 
--]] 
-- Ändra 7 till det ID som din wallplugg har
local onlineTimer = 60 -- 60 minuter (ändra till önskat värde)
  
if  fibaro:getValue(7, "value") == "1"  then 
    fibaro:sleep(onlineTimer*60*1000); 
    fibaro:call(7, "turnOff"); 
end 
PatrikB
Medlem
Posts: 29
Joined: 05 Sep 2012, 08:24
12
Location: Kullavik, Göteborg

Hej,

Klockrent!!

Fungerar som en dröm!

Himla tur att du finns jomba68!

/Patrik
djesko
Medlem
Posts: 91
Joined: 10 Feb 2014, 22:50
10
Location: Trelleborg

Hej

Nybörjare på HC2 , försöker få till denna timer funktion men det händer inget när jag trycker på run.

har bara kört copy paste och ändrat id , något jag missar ?

Tack

Mvh Niklas
djesko
Medlem
Posts: 91
Joined: 10 Feb 2014, 22:50
10
Location: Trelleborg

Kan man inte köra denna kod med TBK wall plug?

/Niklas
djesko
Medlem
Posts: 91
Joined: 10 Feb 2014, 22:50
10
Location: Trelleborg

Nedan kod fixade mitt problem

--[[
%% properties
40 value -- your ID
%% globals
--]]

local ID = 40 -- your id
local TimeDelaySeconds = 900
local LoopTimeDelay = 0

if fibaro:countScenes() > 1
then
fibaro:abort()
end

while LoopTimeDelay < TimeDelaySeconds do
fibaro:sleep(1000)
LoopTimeDelay = LoopTimeDelay + 1
if fibaro:get(ID,'value') == '0'
then
fibaro:sleep(500)
fibaro:abort()
end
end
fibaro:call(ID,'turnOff')
Nex
Proffsmedlem
Posts: 554
Joined: 21 Nov 2013, 18:33
11

Eller varför inte bara med enklast möjliga scen? ;)
Attachments
espressoscen.jpg
espressoscen.jpg (35.42 KiB) Viewed 17343 times
djesko
Medlem
Posts: 91
Joined: 10 Feb 2014, 22:50
10
Location: Trelleborg

Nex wrote:Eller varför inte bara med enklast möjliga scen? ;)
Sant..man lär sig! Tack Nex! :-D
User avatar
Bamsefar
Z-Wave Kung
Posts: 1268
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Nex wrote:Eller varför inte bara med enklast möjliga scen? ;)
Men vart det där rätt - väntar den inte 7200 sekunder innan den slår på kaffebryggaren och sedan stänger av? Jag har iofs inte testat just denna variant, men jag har tolkat det så att om man skriver en tid i det röda fältet så fördröjs kommandot som sitter till vänster med den tiden - och om min tolkning är korrekt så kommer i praktiken inget kaffe någonsin? :mrgreen:
Kör Home Assistant efter totalt nederlag för HomeSeer :twisted: :twisted: :mrgreen:
Nex
Proffsmedlem
Posts: 554
Joined: 21 Nov 2013, 18:33
11

Bamsefar wrote:
Nex wrote:Eller varför inte bara med enklast möjliga scen? ;)
Men vart det där rätt - väntar den inte 7200 sekunder innan den slår på kaffebryggaren och sedan stänger av? Jag har iofs inte testat just denna variant, men jag har tolkat det så att om man skriver en tid i det röda fältet så fördröjs kommandot som sitter till vänster med den tiden - och om min tolkning är korrekt så kommer i praktiken inget kaffe någonsin? :mrgreen:
Nope, enklast är att dubbelkolla, sätt på 10s så ser du vad som händer :) Men i det här fallet så väntar den i 7200 sekunder innan den går vidare från det röda fältet till "Därefter". Brukar tänka som så att rött betyder stopp i antal sekunder innan nästa steg börjar i scenen... :) Att jag satt den på 7200 sekunder beror på att jag har en 30kg tung maskin som behöver värmas upp länge innan man använder den :)
Nex
Proffsmedlem
Posts: 554
Joined: 21 Nov 2013, 18:33
11

hmm, jag tar tillbaka det jag skrev och är numera lite osäker själv... Det blir nämligen ingen skillnad på scenen om du sätter 10s först eller 10s sen... Oavsett så stänger den av efter 10s... Så vad gör tiden egentligen, någon som kan förklara? Jag ville tro att det betydde något i stil med "if == on for 10s then..." men det kanske är "if == on then wait 10s and then"?
Lundan
Medlem
Posts: 44
Joined: 18 Oct 2013, 09:57
11

Jag tror att det är som det senare du skriver Nex. Enklast är att switcha över till LUA och kolla vad den gör.
User avatar
Bamsefar
Z-Wave Kung
Posts: 1268
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Jag testade med denna scen:

Image

Denna scen, om man kör den, tänder lampan 10 sekunder efter trigger, och släcker den 20 sekunder efter trigger = lampan är tänd i 10 sekunder mellan sekund 10 och sekund 19. All tid utgår från trigger tiden...

Alltså, som jag misstänkte så fördröjs kommandot om man fyller i den röda tidsboxen.
Kör Home Assistant efter totalt nederlag för HomeSeer :twisted: :twisted: :mrgreen:
Karlvonoxelstjerna
Ny medlem
Posts: 2
Joined: 30 Dec 2013, 03:02
10

Jag hade gjort så här.
timer.jpg
timer.jpg (67.85 KiB) Viewed 17248 times
Det verkar räcka och funkar bra :).
Nex
Proffsmedlem
Posts: 554
Joined: 21 Nov 2013, 18:33
11

Bamsefar wrote:Jag testade med denna scen:

Image

Denna scen, om man kör den, tänder lampan 10 sekunder efter trigger, och släcker den 20 sekunder efter trigger = lampan är tänd i 10 sekunder mellan sekund 10 och sekund 19. All tid utgår från trigger tiden...

Alltså, som jag misstänkte så fördröjs kommandot om man fyller i den röda tidsboxen.
Låter förnuftigt! :) Men va betyder det då om man sätter 10s efter rörelsesensorn? Vad betyder det? Att den väntar 10s med att köra sändningen "stäng av lampan" förstår jag men att den väntar 10s med att kolla om "rörelsesensorn är säker" stämmer ju inte? :/ Det kan ju inte betyda olika beroende vilken enhet eller? Jag har ju tex flera scener där jag stänger av lampor om det varit säkert i ett antal sekunder. Då har jag ju satt tiden på rörselsesensor för jag vill ju att det skall vara säkert i så många sekunder, inte att lampan skall släckas efter en viss tid om det varit säkert en gång? Förstår nog fortfarande inte vad tiden gör eller vart man skall skriva in den :/
Christian
Medlem
Posts: 25
Joined: 27 Feb 2014, 15:30
10

Nex wrote:
Låter förnuftigt! :) Men va betyder det då om man sätter 10s efter rörelsesensorn? Vad betyder det? Att den väntar 10s med att köra sändningen "stäng av lampan" förstår jag men att den väntar 10s med att kolla om "rörelsesensorn är säker" stämmer ju inte? :/ Det kan ju inte betyda olika beroende vilken enhet eller? Jag har ju tex flera scener där jag stänger av lampor om det varit säkert i ett antal sekunder. Då har jag ju satt tiden på rörselsesensor för jag vill ju att det skall vara säkert i så många sekunder, inte att lampan skall släckas efter en viss tid om det varit säkert en gång? Förstår nog fortfarande inte vad tiden gör eller vart man skall skriva in den :/
Jag har en scen med en dörrsensor == säker och 240 sek. i det röda fältet efter. Detta innebär att dörren måste vara säker (stängd) i 4 minuter innan den utför efterföljande kommandon. Om jag öppnar dörren innan tiden löpt ut så avbryts scenen.
Om man sätter 10 sek. efter rörelsesensorn så kanske det med samma resonemang kan innebära att den måste registrera rörelse i minst 10 sek. innan den t.ex. tänder en lampa?
Nex
Proffsmedlem
Posts: 554
Joined: 21 Nov 2013, 18:33
11

Nej nej nej :!: :) Nu har jag testat och sätt absolut inte tiden på sista variabeln!!! Följande kommer hända med kaffemaskinen: Om du sätter så som du skrivit nu kommer maskinen slås av efter 10 sekunder efter FÖRSTA gången maskinen slogs på! Dvs om du slår på maskinen, stänger av den i 5s och sedan slår på den igen så kommer scenen att stänga av maskinen efter 5 sekunder! Värdet har ju redan gått igenom och den väntar bara i 10 sekunder för att skicka en OFF signal, den bryr sig inte om du redan stängt av eller satt på maskinen igen! Därför MÅSTE du skriva in 10s i första rutan, då går inte scenen vidare såvida inte maskinen är på i 10 sekunder!
Christian
Medlem
Posts: 25
Joined: 27 Feb 2014, 15:30
10

Nex wrote:Nej nej nej :!: :) Nu har jag testat och sätt absolut inte tiden på sista variabeln!!! Följande kommer hända med kaffemaskinen: Om du sätter så som du skrivit nu kommer maskinen slås av efter 10 sekunder efter FÖRSTA gången maskinen slogs på! Dvs om du slår på maskinen, stänger av den i 5s och sedan slår på den igen så kommer scenen att stänga av maskinen efter 5 sekunder! Värdet har ju redan gått igenom och den väntar bara i 10 sekunder för att skicka en OFF signal, den bryr sig inte om du redan stängt av eller satt på maskinen igen! Därför MÅSTE du skriva in 10s i första rutan, då går inte scenen vidare såvida inte maskinen är på i 10 sekunder!
Det låter rimligt! Det fungerar ju då motsvarande min dörrsensor. Om dörren stängts och 240 sek. inte hunnit gå innan dörren öppnas igen så avbryts scenen. Stänger jag dörren på nytt så börjar tiden räkna från 0 igen. Så i kaffemaskinens fall så måste ju som sagt det rätta vara att sätta tiden på första variabeln.
Nex
Proffsmedlem
Posts: 554
Joined: 21 Nov 2013, 18:33
11

Christian wrote:
Nex wrote:Nej nej nej :!: :) Nu har jag testat och sätt absolut inte tiden på sista variabeln!!! Följande kommer hända med kaffemaskinen: Om du sätter så som du skrivit nu kommer maskinen slås av efter 10 sekunder efter FÖRSTA gången maskinen slogs på! Dvs om du slår på maskinen, stänger av den i 5s och sedan slår på den igen så kommer scenen att stänga av maskinen efter 5 sekunder! Värdet har ju redan gått igenom och den väntar bara i 10 sekunder för att skicka en OFF signal, den bryr sig inte om du redan stängt av eller satt på maskinen igen! Därför MÅSTE du skriva in 10s i första rutan, då går inte scenen vidare såvida inte maskinen är på i 10 sekunder!
Det låter rimligt! Det fungerar ju då motsvarande min dörrsensor. Om dörren stängts och 240 sek. inte hunnit gå innan dörren öppnas igen så avbryts scenen. Stänger jag dörren på nytt så börjar tiden räkna från 0 igen. Så i kaffemaskinens fall så måste ju som sagt det rätta vara att sätta tiden på första variabeln.
Absolut! Helt korrekt! :)
User avatar
Bamsefar
Z-Wave Kung
Posts: 1268
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Nej - eller ja jag ser vad ni skriver, men lösningen på TS problem är annat. Mitt exempel är bara för att visa att kommandot som ligger till VÄNSTER om det röda rutan FÖRDRÖJS med det antal sekunder som står i den röda rutan. Jag skulle aldrig någonsin skriva koden som i mitt exempel för verkliga livet (i praktiken skulle jag nyttja en virtuell enhet för att göra nedräkningen osv) - mitt 10+10 sekunders exempel är just bara ett exempel.
Kör Home Assistant efter totalt nederlag för HomeSeer :twisted: :twisted: :mrgreen:
Post Reply