Motorvärmarstyrning
Nja funka inte men jag vet inte om jag gjorde rätt
visar firtfarande Yahoos temp
jag ändrade raden i min scen
--[[
%% autostart
%% properties
%% globals
--]]
if (fibaro:countScenes() > 1) then fibaro:abort() end
while true do
local relayId = 61;
local manualOverride = tonumber(fibaro:getGlobalValue("heaterOverride"));
local outTemp = tonumber(fibaro:getValue(60, "value"));
local heaterState = tonumber(fibaro:getValue(61, "value"));
local startHour = tonumber(fibaro:getGlobalValue("departureHour"));
local startMinute = tonumber(fibaro:getGlobalValue("departureMinute"));
local diff = 0;
if (outTemp < -10) then
-- Start 2 hours before departure time
diff = 120;
elseif (outTemp < 0) then
-- Start 1.5 hours before departure time
diff = 90;
elseif (outTemp < 10) then
-- Start 1 hour before departure time
diff = 60;
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
fibaro:call(61, "turnOn");
end
end
if (heaterState == 1) and (currentTime >= departureTime) and (manualOverride == 0) then
fibaro:call(61, "turnOff");
end
fibaro:sleep(60*1000);
end
behöver jag även ändra denna rad i min main loop i min virituella enhet
fibaro:call(virtualDeviceId , "setProperty", "ui.lblTemp.value", fibaro:getValue(3, "Temperature") .. " C")
visar firtfarande Yahoos temp
jag ändrade raden i min scen
--[[
%% autostart
%% properties
%% globals
--]]
if (fibaro:countScenes() > 1) then fibaro:abort() end
while true do
local relayId = 61;
local manualOverride = tonumber(fibaro:getGlobalValue("heaterOverride"));
local outTemp = tonumber(fibaro:getValue(60, "value"));
local heaterState = tonumber(fibaro:getValue(61, "value"));
local startHour = tonumber(fibaro:getGlobalValue("departureHour"));
local startMinute = tonumber(fibaro:getGlobalValue("departureMinute"));
local diff = 0;
if (outTemp < -10) then
-- Start 2 hours before departure time
diff = 120;
elseif (outTemp < 0) then
-- Start 1.5 hours before departure time
diff = 90;
elseif (outTemp < 10) then
-- Start 1 hour before departure time
diff = 60;
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
fibaro:call(61, "turnOn");
end
end
if (heaterState == 1) and (currentTime >= departureTime) and (manualOverride == 0) then
fibaro:call(61, "turnOff");
end
fibaro:sleep(60*1000);
end
behöver jag även ändra denna rad i min main loop i min virituella enhet
fibaro:call(virtualDeviceId , "setProperty", "ui.lblTemp.value", fibaro:getValue(3, "Temperature") .. " C")
Fibaro fantastic
Aktuell HC2 Version: 4.520
Aktuell HC2 Version: 4.520
Får börja med att tacka för denna guide
Måste förbereda motorvärmarna för snart är vintern här
Har ett bekymmer, Yahoo:s temp är ju inte i närheten av verkligheten, kan jag på ett enkelt vis få in en virtuell enhet som visar korret temp, eller kan man lägga in så den hämtar från en global variabel? Hade några timmar igår som jag försökte få till det men det vill sig inte.
Måste förbereda motorvärmarna för snart är vintern här
Har ett bekymmer, Yahoo:s temp är ju inte i närheten av verkligheten, kan jag på ett enkelt vis få in en virtuell enhet som visar korret temp, eller kan man lägga in så den hämtar från en global variabel? Hade några timmar igår som jag försökte få till det men det vill sig inte.
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
Fw 4.600
BeyondMeasure 1.10
EventRunner
Lägger in en par bilder på en Kupevärmare
- Attachments
-
- Off
- KupevarmareOff.png (14.02 KiB) Viewed 56020 times
-
- On
- Kupevarmare.png (15.58 KiB) Viewed 56020 times
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
Fw 4.600
BeyondMeasure 1.10
EventRunner
Nu när vintern är här så skulle det vara prima om jag kunde få in att den bara startar när det är "workday true" Ska jag ut å åka annars så är det bara att köra på manuell.
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
Fw 4.600
BeyondMeasure 1.10
EventRunner
Code: Select all
While true and fibaro:getGlobalValue("Workday") == "true"
Kör Home Assistant efter totalt nederlag för HomeSeer
- RH_Dreambox
- Z-Wave Kung
- Posts: 1203
- Joined: 03 Jan 2015, 16:49
- 9
- Location: Vegby
- Contact:
Jag tänkte att vi skulle uppgradera CQ1's fina motorvärmarfunktion med en hemmasnickrad formel så att tiden räknas ut automatiskt med hjälp av temperaturen. Det innebär att vi inte "eldar för kråkorna" genom att ha för stora temperatursteg.
Energimyndigheten har räknat ut bästa Tid/Temperaturkurva som ser ut som den bifogade bilden. Gör så här. Inaktivera eller radera nedanstående kodrader som finns i Scen-koden:
######################################
if (outTemp < -10) then
-- Start 2 hours before departure time
diff = 120;
elseif (outTemp < 0) then
-- Start 1.5 hours before departure time
diff = 90;
elseif (outTemp < 10) then
-- Start 1 hour before departure time
diff = 60;
end
######################################
Ersätt ovanstående rader med dessa rader: (Anm. Kod uppdaterad pga. negativa värden över 13 plusgrader)
diff = math.floor(60 + 100*outTemp/(outTemp - 35))
if outTemp > 13 then
diff = 0;
end
######################################
Scen-scriptet kommer nu att beräkna optimal värmartid beroende på utetemperaturen.
Använd gärna formeln i andra sammanhang, med tala gärna om källan
Energimyndigheten har räknat ut bästa Tid/Temperaturkurva som ser ut som den bifogade bilden. Gör så här. Inaktivera eller radera nedanstående kodrader som finns i Scen-koden:
######################################
if (outTemp < -10) then
-- Start 2 hours before departure time
diff = 120;
elseif (outTemp < 0) then
-- Start 1.5 hours before departure time
diff = 90;
elseif (outTemp < 10) then
-- Start 1 hour before departure time
diff = 60;
end
######################################
Ersätt ovanstående rader med dessa rader: (Anm. Kod uppdaterad pga. negativa värden över 13 plusgrader)
diff = math.floor(60 + 100*outTemp/(outTemp - 35))
if outTemp > 13 then
diff = 0;
end
######################################
Scen-scriptet kommer nu att beräkna optimal värmartid beroende på utetemperaturen.
Använd gärna formeln i andra sammanhang, med tala gärna om källan
- Attachments
-
- Motorvärmarfunktion
- Block_Heater_Display.JPG (35.21 KiB) Viewed 52502 times
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
- RH_Dreambox
- Z-Wave Kung
- Posts: 1203
- Joined: 03 Jan 2015, 16:49
- 9
- Location: Vegby
- Contact:
Sonnyboy, jag är nybörjare på det här men med hjälp av Bamsefars förträffliga LUA-kurs gjorde jag så här för att skriva in beräknad uppvärmningstid. Obs! Var noga med versaler och gemener för nu pratar vi Linux
Koden är kanske inte optimal, men den fungerar
1. Skapa den globala variabeln diffStart
2. Öppna scenkoden och lägg till nedanstående kodrad strax efter min tidigare beskrivna kodsnutt.
fibaro:setGlobal("diffStart", diff)
3. Öppna den virtuella enheten och lägg till en Label vars ID: skall heta lblStart.
4. Lägg till nedanstående rader strax före raden "fibaro:sleep(6000)"
local startHeat
startHeat = fibaro:getGlobalValue("diffStart")
fibaro:call(virtualDeviceId , "setProperty", "ui.lblStart.value", startHeat .. " min");
Koden är kanske inte optimal, men den fungerar
1. Skapa den globala variabeln diffStart
2. Öppna scenkoden och lägg till nedanstående kodrad strax efter min tidigare beskrivna kodsnutt.
fibaro:setGlobal("diffStart", diff)
3. Öppna den virtuella enheten och lägg till en Label vars ID: skall heta lblStart.
4. Lägg till nedanstående rader strax före raden "fibaro:sleep(6000)"
local startHeat
startHeat = fibaro:getGlobalValue("diffStart")
fibaro:call(virtualDeviceId , "setProperty", "ui.lblStart.value", startHeat .. " min");
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
Tänkte lägga in den här finurliga koden till vår bilvärme men tänkte höra om det gick att få in ett par funktioner till. Kan man enkelt lägga till så att man får ett pushmeddelande när det är 5min kvar innan avresetiden? För i mitt fall så är inte den beräknade avresetiden = faktisk avresetid. Har en förmåga att bli 10min sen och om motorvärmaren stängs av 10min innan avresetid så har man i stort sett bara eldat för kråkorna eftersom en bil ute i vårt klimat blir iskall på 10min under vintertid... Skulle således även vilja att den fortsätter värma 15min efter beräknad avresetid så att man får full effekt tills man faktiskt kör iväg. Eller hur många av er lyckas träffa in exakta avresetiden när ni åker? Bidrar med två ikoner jag hittat på nätet och målat om...
- Attachments
-
- on
- motorvärmareon.png (66.85 KiB) Viewed 21984 times
-
- off
- motorvärmareoff.png (66.85 KiB) Viewed 21984 times