Hejsan.
Jag har länge haft en grym kaffetimer i min HC2 som jag hittade här på forumet. Blev tyvärr tvungen att fabriksåterställa HC2 nyligen utan möjlighet att lägga in backup....
Nu har jag letat som en galning men lyckas inte hitta den igen...
Det var en LUA-scen som startade en nedräkning när förbrukningen låg på ett visst värde. Finns ägaren till koden kvar och kan dela med sig av den igen månne? Eller kan någon scripta ihop något riktigt smart? Jag har tyvärr inte kunskapen själv, och inte tid att lära mig.
Tack på förhand!
Timer för kaffebryggare
Jag kör med denna som jag tidigare publicerat på detta forum, kanske är denna du söker?
Code: Select all
--[[
%% properties
272 power
%% globals
--]]
-- abort any unnecesary scenes started
if fibaro:countScenes() > 1 then fibaro:abort() end
local Wattkaffebryggare = tonumber(fibaro:getValue(272, "power"))
fibaro:debug("Kaffebryggare Watt: " .. Wattkaffebryggare)
local countdown=25
countdown=countdown*6
repeat
fibaro:sleep(10000)
if tonumber(fibaro:getValue(272, "power"))<55 then
fibaro:abort()
else
countdown=countdown-1
end
until countdown==0
fibaro:call(272, "turnOff")
fibaro:debug("Glömt Bryggaren igen? Stänger av den åt dig")
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
Fw 4.600
BeyondMeasure 1.10
EventRunner
-
- Medlem
- Posts: 158
- Joined: 03 Feb 2016, 17:16
- 8
I stora drag så mäter den om kaffebryggaren drar över en viss watt och startar en loop som räknar ner till noll och sedan stänger av pluggen. Går förbrukningen ner under nedräkningen (man stänger av bryggaren själv) så avbryts räkningen automatiskt.Texan wrote:Hej,
Kan någon förklara för mig hur den här lua scenen fungerar, är intresserad att ha någon slags timer på min bryggare också.
Det du skall göra är att byta "272" till ditt enhetsnummer, justera gränsen för watt (i exemplet <55) och sedan hur länge du vill bryggaren skall vara på genom att ändra countdown till önskat antal minuter (i exemplet 25min).
Var detta svaret du sökte eller ville du har mer preciserat?
-
- Medlem
- Posts: 158
- Joined: 03 Feb 2016, 17:16
- 8
Använder förövrigt varianter på denna både till badrumsbelysningen som gärna glömdes stängas av och till köksfläkten där halogenlamporna ofta stod och brann hela dagen.
Earplugged wrote:I stora drag så mäter den om kaffebryggaren drar över en viss watt och startar en loop som räknar ner till noll och sedan stänger av pluggen. Går förbrukningen ner under nedräkningen (man stänger av bryggaren själv) så avbryts räkningen automatiskt.Texan wrote:Hej,
Kan någon förklara för mig hur den här lua scenen fungerar, är intresserad att ha någon slags timer på min bryggare också.
Det du skall göra är att byta "272" till ditt enhetsnummer, justera gränsen för watt (i exemplet <55) och sedan hur länge du vill bryggaren skall vara på genom att ändra countdown till önskat antal minuter (i exemplet 25min).
Var detta svaret du sökte eller ville du har mer preciserat?
Så man trycker på pluggen manuellt och sedan känner scenen av om bryggaren är på eller avslagen, är den på efter tidsintervallet/nedräkningen så stänger scenen av pluggen.
Du får gärna dela med hur varianten ser ut för glömda lampor som du nämner.
Tackar
Låt säga så här, pluggen är alltid igång, men när du knäpper på kaffebryggaren så känner pluggen att den är igång med hjälp av denna rad i koden "272 power"Texan wrote:
Så man trycker på pluggen manuellt och sedan känner scenen av om bryggaren är på eller avslagen, är den på efter tidsintervallet/nedräkningen så stänger scenen av pluggen.
Tackar
Exempel min bryggare går upp mot 2000w när den startar, sen när den är klar och bara varmhåller kaffet så ligger den runt 52w och när då kaffebryggaren dragit mindre än 55w i 25 minuter så stänger den av "pluggen" OM du inte stängt av bryggaren på knappen, då kommer pluggen att känna att den drar 0w och då strängs timern av.
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
Fw 4.600
BeyondMeasure 1.10
EventRunner
-
- Medlem
- Posts: 158
- Joined: 03 Feb 2016, 17:16
- 8
Det är i princip samma kod där man byter Power till Value för att se status istället för förbrukning.Earplugged wrote:Texan wrote: Du får gärna dela med hur varianten ser ut för glömda lampor som du nämner.
Tackar
Ändra 74 till ditt nummer på brytaren så stängs lampan av efter 15min, i koden nedan har jag även ett villkor om den andra lampan 69 i badrummet (som är rörelsestyrd) är tänd så fördröjs släckningen ytterligare.
tidigare körde jag all belysning med rörelsesensor på toaletten men eftersom den inte registrerade rörelserna i duschen så tröt tålamodet på sambon efter några incidenter i totalt mörker...
--[[
%% properties
74 value
%% globals
--]]
-- abort any unnecesary scenes started
if fibaro:countScenes() > 1 then fibaro:abort() end
local Lampa = tonumber(fibaro:getValue(74, "value"))
fibaro:debug("Lampa lyser? 0=Nej 1=Ja: " .. Lampa)
local countdown=15 --Fördröjning i minuter
countdown=countdown*6
repeat
fibaro:sleep(10000)
if tonumber(fibaro:getValue(74, "value"))<1 then
fibaro:abort()
else
if tonumber(fibaro:getValue(69, "value"))>0 then
countdown=15 --anges i minuter
countdown=countdown*6
else
countdown=countdown-1
end
end
fibaro:debug("Nedräkning: " .. countdown)
until countdown==0
fibaro:call(74, "turnOff")
fibaro:debug("Lampa spegel stängs av nu")
-
- Medlem
- Posts: 76
- Joined: 23 Oct 2014, 09:20
- 10
- Location: Göteborg
Jag har funderat på en lösning på problemet med att rörelsesensorn inte känner rörelser i duschen. En Fibaro universalsensor kopplas till en flödesgivare (typ vattenmätare men den behöver bara indikera flöde inte räkna förbrukning).
Hur ser koden ut ifall jag inte behöver den andra villkoret som kollar den andra lampan?Earplugged wrote:Det är i princip samma kod där man byter Power till Value för att se status istället för förbrukning.Earplugged wrote:Texan wrote: Du får gärna dela med hur varianten ser ut för glömda lampor som du nämner.
Tackar
Ändra 74 till ditt nummer på brytaren så stängs lampan av efter 15min, i koden nedan har jag även ett villkor om den andra lampan 69 i badrummet (som är rörelsestyrd) är tänd så fördröjs släckningen ytterligare.
tidigare körde jag all belysning med rörelsesensor på toaletten men eftersom den inte registrerade rörelserna i duschen så tröt tålamodet på sambon efter några incidenter i totalt mörker...
--[[
%% properties
74 value
%% globals
--]]
-- abort any unnecesary scenes started
if fibaro:countScenes() > 1 then fibaro:abort() end
local Lampa = tonumber(fibaro:getValue(74, "value"))
fibaro:debug("Lampa lyser? 0=Nej 1=Ja: " .. Lampa)
local countdown=15 --Fördröjning i minuter
countdown=countdown*6
repeat
fibaro:sleep(10000)
if tonumber(fibaro:getValue(74, "value"))<1 then
fibaro:abort()
else
if tonumber(fibaro:getValue(69, "value"))>0 then
countdown=15 --anges i minuter
countdown=countdown*6
else
countdown=countdown-1
end
end
fibaro:debug("Nedräkning: " .. countdown)
until countdown==0
fibaro:call(74, "turnOff")
fibaro:debug("Lampa spegel stängs av nu")
Behöver lite hjälp med koden.
Om jag startar scenen så kör den 1gång och släcker lampan efter 5min. Men sedan ifall jag tänder lampan igen så tycks inte scenen köra så lampan förblir tänd.
Om jag startar scenen så kör den 1gång och släcker lampan efter 5min. Men sedan ifall jag tänder lampan igen så tycks inte scenen köra så lampan förblir tänd.
Code: Select all
--[[
%% properties
74 value
%% globals
--]]
-- abort any unnecesary scenes started
if fibaro:countScenes() > 1 then fibaro:abort() end
local Lampa = tonumber(fibaro:getValue(152, "value"))
fibaro:debug("Lampa lyser? 0=Nej 1=Ja: " .. Lampa)
local countdown=5 --Fördröjning i minuter
countdown=countdown*6
repeat
fibaro:sleep(10000)
if tonumber(fibaro:getValue(152, "value"))<1 then
fibaro:abort()
else
if tonumber(fibaro:getValue(69, "value"))>0 then
countdown=15 --anges i minuter
countdown=countdown*6
else
countdown=countdown-1
end
end
fibaro:debug("Nedräkning: " .. countdown)
until countdown==0
fibaro:call(152, "turnOff")
fibaro:debug("Lampa i garderoben stängs av nu")
Hej,
Jag gjorde en modifiering av lua-koden i denna tråd. Min timer består av en vd (virtuell device) där man kan ställa in timerns värde i minuter som sätts till en global variabel. Den vd slår på WallPlug:en som kaffebryggaren sitter i och kollar om det ligger någon last, dvs om kaffebryggarens switch är påslagen. Om den inte är påslagen skickar den en push till min mobil att jag glömt att slå på kaffebryggarens switch. Om kaffebryggarens switch är påslagen (dvs det finns en last i watt) startas en scene "Timer" som meddelar att kaffebryggaren startat. Efter 10min meddelar den att kaffet är klart via push och därefter stängs WallPlug:en av när timern har löpt ut (också med push).
Om jag stänger av bryggaren innan timern löpt ut så stänger den av WallPlug åt mig.
Gött --> Bara att rigga kaffekokaren innan man går och lägger sig så kan jag starta den i sängen på morgonen
Här är koden för den som vill testa. Det som måste ändras är id:n på enhet (i mitt fall WallPlug med id=19) och notifications (push) till mobil. Alt. ta bort notifications i koden.
Virtual Device "Coffee Timer" -->
Skapa en global variabel "CoffeeTimer" med värdet 60 --> Code Button 60min -->
Code Button 45min -->
Code Button 30min -->
Code Slider -->
Code Start Timer -->
Code Main loop -->
Skapa en ny scene.
Scene code Kaffe Timer -->
Bifogar även iconer som jag använde:
/Sycorax[/color]
Jag gjorde en modifiering av lua-koden i denna tråd. Min timer består av en vd (virtuell device) där man kan ställa in timerns värde i minuter som sätts till en global variabel. Den vd slår på WallPlug:en som kaffebryggaren sitter i och kollar om det ligger någon last, dvs om kaffebryggarens switch är påslagen. Om den inte är påslagen skickar den en push till min mobil att jag glömt att slå på kaffebryggarens switch. Om kaffebryggarens switch är påslagen (dvs det finns en last i watt) startas en scene "Timer" som meddelar att kaffebryggaren startat. Efter 10min meddelar den att kaffet är klart via push och därefter stängs WallPlug:en av när timern har löpt ut (också med push).
Om jag stänger av bryggaren innan timern löpt ut så stänger den av WallPlug åt mig.
Gött --> Bara att rigga kaffekokaren innan man går och lägger sig så kan jag starta den i sängen på morgonen
Här är koden för den som vill testa. Det som måste ändras är id:n på enhet (i mitt fall WallPlug med id=19) och notifications (push) till mobil. Alt. ta bort notifications i koden.
Virtual Device "Coffee Timer" -->
Skapa en global variabel "CoffeeTimer" med värdet 60 --> Code Button 60min -->
Code: Select all
local value = 60
local vd = 32 -- VDevice ID
fibaro:call(vd, "setProperty", "ui.sliderSetTime.value", value)
fibaro:call(vd, "setProperty", "ui.labelCoffeeTimer.value", '60min')
fibaro:setGlobal('CoffeeTimer', value)
fibaro:debug('Button 60min LUA Triggered!')
Code: Select all
local value = 45
local vd = 32 -- VDevice ID
fibaro:call(vd, "setProperty", "ui.sliderSetTime.value", value)
fibaro:call(vd, "setProperty", "ui.labelCoffeeTimer.value", '45min')
fibaro:setGlobal('CoffeeTimer', value)
fibaro:debug('Button 45min LUA Triggered!')
Code: Select all
local value = 30
local vd = 32 -- VDevice ID
fibaro:call(vd, "setProperty", "ui.sliderSetTime.value", value)
fibaro:call(vd, "setProperty", "ui.labelCoffeeTimer.value", '30min')
fibaro:setGlobal('CoffeeTimer', value)
fibaro:debug('Button 30min LUA Triggered!')
Code: Select all
local vd = 32 -- VDevice ID
local value = fibaro:getValue(vd, "ui.sliderSetTime.value")
--local sliderLevel = math.floor((value / 100) * 80)
--fibaro:call(vd, "setProperty", "ui.labelCoffeeTimer.value", sliderLevel.. 'min')
fibaro:call(vd, "setProperty", "ui.labelCoffeeTimer.value", value.. 'min')
fibaro:setGlobal('CoffeeTimer', value)
fibaro:debug('Slider ' ..value.. 'min LUA Triggered!')
Code: Select all
local startSource = fibaro:getSourceTrigger()
if ( ( tonumber(fibaro:getValue(19, "value")) == 0 ) or startSource["type"] == "other" ) then
fibaro:call(19, "turnOn")
end
if ( (tonumber(fibaro:getValue(19, "power")) <= 0) or startSource["type"] == "other") then
fibaro:call(16, "sendDefinedPushNotification", "36")
fibaro:call(24, "sendDefinedPushNotification", "36")
fibaro:call(19, "turnOff");
end
Code: Select all
local value = fibaro:getGlobal('CoffeeTimer')
local vd = 32 -- VDevice ID
fibaro:call(vd, "setProperty", "ui.sliderSetTime.value", value)
fibaro:call(vd, "setProperty", "ui.labelCoffeeTimer.value", value.. 'min')
fibaro:sleep(500) -- Update every 0,5sec
Code: Select all
--[[
%% properties
19 power
%% globals
--]]
local debug = false -- Debug or not (No debug = false)
local coffeeWallPlug = 19 -- WallPlug 1
-- 31 = Notifikation, Kaffet klart!
-- 32 = Notification, Stänger av kaffebruggaren!
-- 34 = Notification, Kaffebryggaren har startat!
-- 35 = Notification, Stängde av WallPlug till kaffebryggaren!
-- 36 = Notification, Du har glömt att slå på brytaren till kaffebryggaren!
local kkMobileId = 16 -- My mobile HTC M9
local elleMobileId = 24 -- Elle mobile HTC 10
-- abort any unnecesary scenes started
if (fibaro:countScenes() > 1) then
if ( debug == true ) then fibaro:debug("Nr of Scenes = " .. fibaro:countScenes()) end
fibaro:abort()
end
local watt = tonumber(fibaro:getValue(coffeeWallPlug, "power"))
if ( debug == true ) then fibaro:debug("Kaffebryggare using: " .. watt .. " Watt") end
local value = fibaro:getGlobal('CoffeeTimer')
local countdown = value -- Timer from GLOBAL variable 'CoffeeTimer'
--local countdown = 60 -- Timer 60min
local manualTurnOff = false -- Stängde av kaffebryggarens on/off manuellt.
local coffeeDone = 10 -- Kaffe klart efter 10min
countdown = countdown * 6 -- Timer starts with value 360 and counting down to 0
-- Between every decrement of countdown is 10sec (the sleep function)
local coffeeReady = 0 -- Reset variable
coffeeReady = countdown - (coffeeDone*6)
-- If switch to coffee maker is on -->
if ( tonumber(fibaro:getValue(coffeeWallPlug, "value")) > 0 ) then
-- Send notification --> Kaffebryggaren har startat!
fibaro:call(kkMobileId, "sendDefinedPushNotification", "34") -- My
fibaro:call(elleMobileId, "sendDefinedPushNotification", "34") -- Elle
if ( debug == true ) then fibaro:debug("Kaffebryggaren har startat! ") end
end
-- *** MAIN LOOP START ***
repeat
fibaro:sleep(10000) -- Sleep 10sec
if ( debug == true ) then fibaro:debug("Kaffebryggaren använder: " .. watt .. " Watt" ) end
if ( debug == true ) then fibaro:debug("Variable countdown = " .. countdown) end
-- Did you turn off coffe maker before timer exceeded? (WallPlug 0 watt)
if ( (countdown > 0) and (tonumber(fibaro:getValue(coffeeWallPlug, "power")) == 0) ) then
if ( debug == true ) then fibaro:debug("Du stängde av kaffebryggaren! ") end
if ( debug == true ) then fibaro:debug("Reset variable countdown to 1! ") end
manualTurnOff = true
countdown = 1 -- last in repeat loop will do the last decrement of 'countdown'
if ( debug == true ) then fibaro:debug("Variable countdown: " .. countdown) end
end
-- Coffee Ready to serve?
if (countdown == coffeeReady) then
fibaro:call(kkMobileId, "sendDefinedPushNotification", "31") -- My
fibaro:call(elleMobileId, "sendDefinedPushNotification", "31") -- Elle
if ( debug == true ) then fibaro:debug("Coffee ready to serve!") end
end
countdown = countdown - 1
if ( debug == true ) then fibaro:debug("Countdown = " .. countdown) end
until countdown == 0
-- *** MAIN LOOP END (Timer off) ***
-- Then finish with these commands -->
fibaro:call(coffeeWallPlug, "turnOff") -- Turn off Wall Plug
-- Did you turn of coffee maker manualy?
if (manualTurnOff == true) then
fibaro:call(kkMobileId, "sendDefinedPushNotification", "35") -- My
fibaro:call(elleMobileId, "sendDefinedPushNotification", "35") -- Elle
if ( debug == true ) then fibaro:debug("Stängde av WallPlug till kaffebryggaren!") end
else
-- Är WallPlug avstängd?
if (( tonumber(fibaro:getValue(coffeeWallPlug, "value")) > 0 )) then
fibaro:call(kkMobileId, "sendDefinedPushNotification", "32") -- My
fibaro:call(elleMobileId, "sendDefinedPushNotification", "32") -- Elle
if ( debug == true ) then fibaro:debug("Stänger av kaffebryggaren!") end
else
fibaro:call(kkMobileId, "sendDefinedPushNotification", "33")
fibaro:call(elleMobileId, "sendDefinedPushNotification", "33")
if ( debug == true ) then fibaro:debug("Wall Plug stängdes inte av!!!") end
end
end
if ( debug == true ) then fibaro:debug("Kaffebryggare använder: " .. watt .. " Watt") end
-- End Timer Scene...
fibaro:abort()