La in ytterligare en funktion på lunchen idag
Får se hur länge den får vara med.
Motorvärmarstyrning
-
- Ny medlem
- Posts: 18
- Joined: 03 Jan 2016, 15:31
- 8
Hej,
Har följt den här tråden ett tag och nu är det dags att ta tag i motorvärmaren hemma.
Finns det nån möjlighet att nån kan lägga upp den kompletta koden med alla funktioner så att man skulle kunna programmera upp det från början?
Tack
//Martin
Har följt den här tråden ett tag och nu är det dags att ta tag i motorvärmaren hemma.
Finns det nån möjlighet att nån kan lägga upp den kompletta koden med alla funktioner så att man skulle kunna programmera upp det från början?
Tack
//Martin
Det beror på vad du vill ha, @RH_Dreambox har även en timer inbyggd i sin vilket inte jag har, den hämtar jag temperaturen från en global variabel istället från en enhet.
Om du vill ha push till mobilen så gör du bara en Scen med denna kod och ändrar till dina enheter.[/code]
Om du vill ha push till mobilen så gör du bara en Scen med denna kod och ändrar till dina enheter.
Code: Select all
[code]--[[
%% properties
237 value
%% events
%% globals
--]]
local mobileID = 69 -- enter mobile device ID to which push notification will be sent
local deviceID = 237 -- define Device ID
if (tonumber(fibaro:getValue(deviceID , "value")) == 1) -- get Status from Device and send push notification
then
fibaro:call(mobileID, "sendPush", "Motorvärmare Aktiv i "..fibaro:getGlobalValue("diffStart").." Minuter");
end
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
Fw 4.600
BeyondMeasure 1.10
EventRunner
- RH_Dreambox
- Z-Wave Kung
- Posts: 1203
- Joined: 03 Jan 2015, 16:49
- 9
- Location: Vegby
- Contact:
Timern lade jag in för att manuell styrning skulle funka. Utan timer så stängde värmaren av sig vid nästa loop (ca. 1 min).@RH_Dreambox har även en timer inbyggd i sin vilket inte jag har,
Sonnyboy, har du fått manuell styrning att fungera utan timer?
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
Ja den fungerar utan timer för mig, om du menar när du trycker på, på knappen på VD:nRH_Dreambox wrote:Timern lade jag in för att manuell styrning skulle funka. Utan timer så stängde värmaren av sig vid nästa loop (ca. 1 min).@RH_Dreambox har även en timer inbyggd i sin vilket inte jag har,
Sonnyboy, har du fått manuell styrning att fungera utan timer?
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
Fw 4.600
BeyondMeasure 1.10
EventRunner
@RH_Dreambox
Har du skapat denna variabel?
Utan den så ska den stänga av sig efter 1 minut.
När jag sätter på min manuellt så får jag värde 1 på den variabeln stänger jag av så blir det 0
Har du skapat denna variabel?
Code: Select all
heaterOverride
När jag sätter på min manuellt så får jag värde 1 på den variabeln stänger jag av så blir det 0
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
Fw 4.600
BeyondMeasure 1.10
EventRunner
- RH_Dreambox
- Z-Wave Kung
- Posts: 1203
- Joined: 03 Jan 2015, 16:49
- 9
- Location: Vegby
- Contact:
Jo jag har den variabeln. Men det var något med att om man stängde av värmaren manuellt eller inte stängde av den så var det någon variabel som inte återställdes och som då sabbade andra funktioner.Utan den så ska den stänga av sig efter 1 minut.
När jag sätter på min manuellt så får jag värde 1 på den variabeln stänger jag av så blir det 0
Jag minns tyvärr inte så noga, men jag testade och fann att den manuella styrningen inte funkade rätt om man hanterade den på ett visst sätt. Därför gjorde jag en ändring i koden så att detta funkade oavsett hur man tryckte.
Om man tidigare satte på värmaren manuellt så fanns det inget som stängde av den om en viss variabel hade ett visst värde. Hade variabeln motsatt värde så stängde den av sig inom en minut, vilket den inte skulle göra.
Jag ändrade då så att värmaren gick en viss tid innan den stängde av sig och samtidigt återställde variablerna.
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
Min vill inte stänga av.. får
[DEBUG] 07:40:37: line 43: attempt to compare nil with number
43: if (heaterState == 1) and (currentTime >= lastDeparture) and (manualOverride == 0) then
44: fibaro:call(relayId, "turnOff");
Blir inte riktigt klok på varför den inte vill köra scenen samt inte vill stänga av..
Hela koden..
[DEBUG] 07:40:37: line 43: attempt to compare nil with number
43: if (heaterState == 1) and (currentTime >= lastDeparture) and (manualOverride == 0) then
44: fibaro:call(relayId, "turnOff");
Blir inte riktigt klok på varför den inte vill köra scenen samt inte vill stänga av..
Hela koden..
Code: Select all
--[[
%% autostart
%% properties
%% globals
--]]
if (fibaro:countScenes() > 1) then fibaro:abort() end
while true do
local relayId = 45;
local manualOverride = tonumber(fibaro:getGlobalValue("heaterOverride"));
local WorkDay = (fibaro:getGlobal("WorkToday"))
local outTemp = tonumber(fibaro:getValue(3, "Temperature"));
local heaterState = tonumber(fibaro:getValue(relayId, "value"));
local startHour = tonumber(fibaro:getGlobalValue("departureHour"));
local startMinute = tonumber(fibaro:getGlobalValue("departureMinute"));
diff = math.floor(60 + 100*outTemp/(outTemp - 35))
if outTemp > 13 then
diff = 0;
end
local theDate = os.date("*t");
local currentTime=tonumber(os.time());
local departureTime=tonumber(os.time({year=theDate.year, month=theDate.month, day=theDate.day, hour=startHour, min=startMinute}));
local startTime=tonumber(departureTime-diff*60);
-- Don't start the timer if it's too warm outside
-- (or if its already started)
if (outTemp < 10) and (heaterState == 0) then
if (currentTime >= startTime) and (currentTime < departureTime) then
if (WorkDay == "True") then
fibaro:call(relayId, "turnOn");
end
end
end
if (heaterState == 1) and (currentTime >= lastDeparture) and (manualOverride == 0) then
fibaro:call(relayId, "turnOff");
end
if (manualOverride == 1) then
fibaro:call(relayId, "turnOn");
fibaro:sleep(10*60000); -- Sätt den tid värmaren skall gå manuellt, (här satt till 60 min)
fibaro:call(relayId, "turnOff");
fibaro:setGlobal("heaterOverride", 0);
end
fibaro:sleep(60*1000);
end
Fibaro Homecenter 2
4.20
4.20
- RH_Dreambox
- Z-Wave Kung
- Posts: 1203
- Joined: 03 Jan 2015, 16:49
- 9
- Location: Vegby
- Contact:
Du kanske skall lägga in koden på nytt.Blir inte riktigt klok på varför den inte vill köra scenen samt inte vill stänga av..
När jag kollar lite snabbt ser jag att det fattas minst 8 rader nödvändig kod jämfört med vad jag har.
Du har även tagit bort alla rader med fibaro:debug(.....)
Dessa är inte nödvändiga för funktionen, men kan vara väldigt värdefulla vid felsökning.
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
Ok vill du dela med dig av din?RH_Dreambox wrote:Du kanske skall lägga in koden på nytt.Blir inte riktigt klok på varför den inte vill köra scenen samt inte vill stänga av..
När jag kollar lite snabbt ser jag att det fattas minst 8 rader nödvändig kod jämfört med vad jag har.
Du har även tagit bort alla rader med fibaro:debug(.....)
Dessa är inte nödvändiga för funktionen, men kan vara väldigt värdefulla vid felsökning.
Fibaro Homecenter 2
4.20
4.20
- RH_Dreambox
- Z-Wave Kung
- Posts: 1203
- Joined: 03 Jan 2015, 16:49
- 9
- Location: Vegby
- Contact:
OK, men eftersom jag inte använder sonnyboy's funktion med veckodagar så får du lägga till den själv.
Och glöm inte att byta enhets-ID och den temperaturkälla som du vill använda. Det står i koden var du byter detta.
Mot slutet av koden kan du ändra tiden för manuell styrning av värmaren. Defaultvärde är 120 minuter.
Edit: Variablernas namn är nu justerade till de ursprungliga namnen. Jag hade av misstag lagt in mina egna variabler som slutade på R. Det var för att mina två värmare inte skulle störa varandras funktion (.....R och .....Y).
Och glöm inte att byta enhets-ID och den temperaturkälla som du vill använda. Det står i koden var du byter detta.
Mot slutet av koden kan du ändra tiden för manuell styrning av värmaren. Defaultvärde är 120 minuter.
Edit: Variablernas namn är nu justerade till de ursprungliga namnen. Jag hade av misstag lagt in mina egna variabler som slutade på R. Det var för att mina två värmare inte skulle störa varandras funktion (.....R och .....Y).
Code: Select all
--[[
%% autostart
%% properties
%% globals
--]]
-- Create the following Global Variables
-- heaterOverride
-- departureHour
-- departureMinute
-- diffStart
-- manualOverride
-- lastDepartureTime
-- heaterStatus
if (fibaro:countScenes() > 1) then fibaro:abort() end
while true do
local relayId = 712; -- change to your relay ID
local tempID = 518; -- change to your Temperature ID
-- Byt raden ovan till nedanstående om du inte har egen tempgivare
-- local tempID = 3; -- Fibaro Yahoo Weather ID, change from "value" to "Temperature"
local turnOffDelay = 15 --time in minutes the heater will stay on after the set departure time.
local manualOverride = tonumber(fibaro:getGlobalValue("heaterOverride"));
local heaterStatus = tonumber(fibaro:getGlobalValue("heaterStatus"));
local outTemp = tonumber(fibaro:getValue(tempID, "value"));
-- Byt raden ovan till nedanstående om du inte har egen tempgivare
-- local outTemp = tonumber(fibaro:getValue(tempID, "Temperature"));
local heaterState = tonumber(fibaro:getValue(relayId, "value"));
local startHour = tonumber(fibaro:getGlobalValue("departureHour"));
local startMinute = tonumber(fibaro:getGlobalValue("departureMinute"));
local diff = 0;
diff = math.floor(60 + 100*outTemp/(outTemp - 35))
if outTemp > 13 then
diff = 0;
end
fibaro:setGlobal("diffStart", diff)
local theDate = os.date("*t");
local currentTime=tonumber(os.time());
local departureTime=tonumber(os.time({year=theDate.year, month=theDate.month, day=theDate.day, hour=startHour, min=startMinute}));
local lastDeparture=departureTime + (turnOffDelay * 60);
fibaro:setGlobal("lastDepartureTime", lastDeparture);
local startTime=tonumber(departureTime-diff*60);
fibaro:debug("heaterState: " .. heaterState);
fibaro:debug("currentTime: " .. currentTime);
fibaro:debug("departureTime: " .. departureTime);
fibaro:debug("manualOverride: " .. manualOverride);
fibaro:debug("heaterStatus: " .. heaterStatus);
fibaro:debug("lastDeparture: " .. lastDeparture);
fibaro:debug("-------------------------------------");
-- Don't start the timer if it's too warm outside
-- (or if its already started)
if (outTemp < 10) and (heaterState == 0) then
if (currentTime >= startTime) and (currentTime < departureTime) then
fibaro:call(relayId, "turnOn");
end
end
if (heaterState == 1) and (currentTime >= lastDeparture) and (manualOverride == 0) then
fibaro:call(relayId, "turnOff");
end
if (manualOverride == 1) then
fibaro:call(relayId, "turnOn");
fibaro:sleep(120*1000); -- Default 120 minuter vid manuell styrning av värmaren
fibaro:call(relayId, "turnOff");
fibaro:setGlobal("heaterOverride", 0);
end
fibaro:sleep(60*1000);
end
-- Skicka mail eller Push som en info
--local subject = "Motorvärmaren är på"
--local message = "Motorvärmaren stänger av om ".. turnOffDelay .."minuter"
--fibaro:call(2, "sendEmail", subject, message)
--fibaro:call(4, "sendEmail", subject, message)
--fibaro:call(153, "sendPush", subject, message)
--fibaro:debug("Mail och Push")
--Slut
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
Funderade lite på det här med timer vid manuellt startad.
Kan man inte använda variabeln "diffstart" som värde vid manuell start? Då får man rätt tid vid manuell start
Kan man inte använda variabeln "diffstart" som värde vid manuell start? Då får man rätt tid vid manuell start
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
Fw 4.600
BeyondMeasure 1.10
EventRunner
- RH_Dreambox
- Z-Wave Kung
- Posts: 1203
- Joined: 03 Jan 2015, 16:49
- 9
- Location: Vegby
- Contact:
Menar du att använda värdet i variabeln diffStart som tidsparameter för manuell start?
Det är ju en strålande bra idé! Den måste jag testa.
Den enda nackdelen är ju då om man vill ha en längre manuell tid än vad diffStart medger. Tex. om jag vill använda motorvärmaruttaget för att dammsuga bilen på sommaren.
Men jag får väl vänta med att städa bilen då
Edit:
Jag använde den lokala variabeln "diff * 60" och lade in den i timersnurran i stället för 120 (diff *60* 1000).
Då slipper man hämta in den globala variabeln diffStart.
Det är ju en strålande bra idé! Den måste jag testa.
Den enda nackdelen är ju då om man vill ha en längre manuell tid än vad diffStart medger. Tex. om jag vill använda motorvärmaruttaget för att dammsuga bilen på sommaren.
Men jag får väl vänta med att städa bilen då
Edit:
Jag använde den lokala variabeln "diff * 60" och lade in den i timersnurran i stället för 120 (diff *60* 1000).
Då slipper man hämta in den globala variabeln diffStart.
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
-
- Ny medlem
- Posts: 18
- Joined: 03 Jan 2016, 15:31
- 8
Hej och tack för all hjälp här!
Är det någon utav er som skulle kunna dela med er av VD:n också så vore det fantastiskt då det känns som att den är rejält uppdaterad mot den i först inlägget.
Ställer man i VDn om man vill att motorvärmarstyrningen ska vara aktiv eller inte?
Ska ha den till en bil som inte används alla dagar och skulle vilja att man t.ex. ställer in tiden på kvällen så kör den enbart en gång på utsatt tid dagen efter och sedan blir den inaktiv igen.
Mvh
Martin
EDIT: Jag vidareutvecklade VDn själv så att man välja om man vill att schemaläggningen ska vara aktiv eller om man vill att den bara ska gå igång vid utsatt tid och sedan bli inaktiv.
Är det någon utav er som skulle kunna dela med er av VD:n också så vore det fantastiskt då det känns som att den är rejält uppdaterad mot den i först inlägget.
Ställer man i VDn om man vill att motorvärmarstyrningen ska vara aktiv eller inte?
Ska ha den till en bil som inte används alla dagar och skulle vilja att man t.ex. ställer in tiden på kvällen så kör den enbart en gång på utsatt tid dagen efter och sedan blir den inaktiv igen.
Mvh
Martin
EDIT: Jag vidareutvecklade VDn själv så att man välja om man vill att schemaläggningen ska vara aktiv eller om man vill att den bara ska gå igång vid utsatt tid och sedan bli inaktiv.
Har knåpat ihop den virtuella enheten, scenen och variablerna men får det inte att fungera förutom utetempen.
Misstänker att jag fattar något av id-numren fel så jag sätter mina id:n fel.
Är det följande id:n på förstasidan som krillev lagt ut?
78 = virtuella enheten
79 = scenen
49 = brytaren/väggpluggen till motorvärmarkabeln
Misstänker att jag fattar något av id-numren fel så jag sätter mina id:n fel.
Är det följande id:n på förstasidan som krillev lagt ut?
78 = virtuella enheten
79 = scenen
49 = brytaren/väggpluggen till motorvärmarkabeln
/Mvh Fredrik
Fibaro HC2.
Mest saker från Fibaro, sen lite blandat av diverse märken.
Fibaro HC2.
Mest saker från Fibaro, sen lite blandat av diverse märken.
- RH_Dreambox
- Z-Wave Kung
- Posts: 1203
- Joined: 03 Jan 2015, 16:49
- 9
- Location: Vegby
- Contact:
Om du har läst igenom hela tråden så ser du att det har skett en hel del förändringar av den ursprungliga koden.
Så om du inte har uppdaterat något efter det första inlägget så (bör) skall du göra det.
Som du ser i inläggen så är det 7 globala variabler som du måste lägga in för att det skall fungera.
diffStart, departureHour, departureMinute, heaterOverride, heaterStatus, lastDepartureTime och manualOverride.
Så om du inte har uppdaterat något efter det första inlägget så (bör) skall du göra det.
Som du ser i inläggen så är det 7 globala variabler som du måste lägga in för att det skall fungera.
diffStart, departureHour, departureMinute, heaterOverride, heaterStatus, lastDepartureTime och manualOverride.
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
Har nu lagt till resterade variabler, ändrat till den LUA koden i scenen som du lagt ut sist, och lagt till labeln lblStart i vd.
Inget funkar än förutom temperaturen.
Inget funkar än förutom temperaturen.
/Mvh Fredrik
Fibaro HC2.
Mest saker från Fibaro, sen lite blandat av diverse märken.
Fibaro HC2.
Mest saker från Fibaro, sen lite blandat av diverse märken.
Edit 2018-09-04
Har förenklat lite så man slipper ändra massa onödigt,
La till temperaturen från Fibaros vädertjänst istället.
Nu bör det vara så här enkelt
1 Skapa variabler
2 importera VD och ändra till ditt reläid
3 Skapa scenen och ändra till ditt reläid (jag har döpt denna scen till "Opel MV Styrning"
Nedan variabler behövs för att denna ska fungera.
heaterOverride
WorkToday
departureHour
departureMinute
diffStart
Importera Motorvärmare opel VD
Ändra alla "local relayId = 237" till ditt relänummer, 3 ställen ska ändras
Denna kod klistras in i en Scen.
Här ska local relayId = 237 ändras till ditt relänummer.
Vill du ha ett Pushmeddelande på din telefon när värmen hoppar igång?
Klistra in denna kod i en scen
Har förenklat lite så man slipper ändra massa onödigt,
La till temperaturen från Fibaros vädertjänst istället.
Nu bör det vara så här enkelt
1 Skapa variabler
2 importera VD och ändra till ditt reläid
3 Skapa scenen och ändra till ditt reläid (jag har döpt denna scen till "Opel MV Styrning"
Nedan variabler behövs för att denna ska fungera.
heaterOverride
WorkToday
departureHour
departureMinute
diffStart
Importera Motorvärmare opel VD
Ändra alla "local relayId = 237" till ditt relänummer, 3 ställen ska ändras
Denna kod klistras in i en Scen.
Här ska local relayId = 237 ändras till ditt relänummer.
Code: Select all
--[[
%% autostart
%% properties
%% globals
--]]
if (fibaro:countScenes() > 1) then fibaro:abort() end
while true do
local relayId = 237 -- id på din brytare
local manualOverride = tonumber(fibaro:getGlobalValue("heaterOverride"))
local outTemp = tonumber(fibaro:getValue(3, "Temperature")) -- Använder fibaros tempservice
local WorkDay = (fibaro:getGlobal("WorkToday"))-- True eller False förväntas
local heaterState = tonumber(fibaro:getValue(relayId, "value"))
local startHour = tonumber(fibaro:getGlobalValue("departureHour"))
local startMinute = tonumber(fibaro:getGlobalValue("departureMinute"))
local diff = 0;
diff = math.floor(60 + 100*outTemp/(outTemp - 35))
if outTemp > 13 then
diff = 0;
end
fibaro:setGlobal("diffStart", diff)
local theDate = os.date("*t");
local currentTime=tonumber(os.time());
local departureTime=tonumber(os.time({year=theDate.year, month=theDate.month, day=theDate.day, hour=startHour, min=startMinute}));
local startTime=tonumber(departureTime-diff*60);
-- Don't start the timer if it's too warm outside
-- (or if its already started)
if (outTemp < 10) and (heaterState == 0) then
if (currentTime >= startTime) and (currentTime < departureTime) then
if (WorkDay == "True") then
fibaro:call(relayId, "turnOn");
end
end
end
fibaro:debug("heaterState: " .. heaterState);
fibaro:debug("currentTime: " .. currentTime);
fibaro:debug("departureTime: " .. departureTime);
fibaro:debug("manualOverride: " .. manualOverride);
fibaro:debug("outTemp: " .. outTemp);
fibaro:debug("WorkDay: " .. WorkDay);
fibaro:debug("-------------------------------------");
if (heaterState == 1) and (currentTime >= departureTime) and (manualOverride == 0) then
fibaro:call(relayId, "turnOff");
end
fibaro:sleep(60*1000);
end
Klistra in denna kod i en scen
Code: Select all
--[[
%% properties
237 value -- ändra till ditt relänummer
%% events
%% globals
--]]
local mobileID = 69 -- Ditt nummer på telefon
local deviceID = 237 -- Ditt relänummer
if (tonumber(fibaro:getValue(deviceID , "value")) == 1) -- get Status from Device and send push notification
then
fibaro:call(mobileID, "sendPush", "Motorvärmare Aktiv i "..fibaro:getGlobalValue("diffStart").." Minuter");
end
- Attachments
-
- Motorvärmare_Opel.zip
- (1.17 KiB) Downloaded 390 times
-
- Motorvärmare_Opel.zip
- Uppdaterad 2018-09-01
- (1.17 KiB) Downloaded 358 times
-
- Defa Off
- KupevarmareOff.png (14.02 KiB) Viewed 23224 times
-
- Defa On
- Kupevarmare.png (15.58 KiB) Viewed 23224 times
Last edited by sonnyboy on 04 Sep 2018, 14:21, edited 8 times in total.
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
Fw 4.600
BeyondMeasure 1.10
EventRunner