Jag vill styra en Wall plug i garaget som ska sköta motorvärmaren. Jag vill att den ska fungera på följande sätt. Titta i en gcal kalender om det finns några händelser där och sedan starta motorvärmaren på följande sätt, +10-0 1h före avfärd, 0--5 1,5h i förväg, -5--10 2h i förväg, -10--15 2,5h i förväg och -15 eller kallare 3h i förväg. Jag vill använda mig av temperaturen som finns angiven i HC2 då jag inte har någon termometer än.
Hur får jag till detta? Hur får jag in kalendrar i HC2?
Hjälp med en scen som styr motorvärmare
Hejsan
det går att få till med lite LUA programmering. Jag har gjort en guide på att få ut data från en Google kalender, den hittar du här: viewtopic.php?f=33&t=4215&p=5120&hilit=kalender#p5120
Sen har du en guide på motorvärmar styrning här: viewtopic.php?f=12&t=4290&hilit=motor%2A
Hojta till om du inte får till det så gör jag en komplett scen med virtuell enhet åt dig.
Med vänlig hälsning, Jonny
det går att få till med lite LUA programmering. Jag har gjort en guide på att få ut data från en Google kalender, den hittar du här: viewtopic.php?f=33&t=4215&p=5120&hilit=kalender#p5120
Sen har du en guide på motorvärmar styrning här: viewtopic.php?f=12&t=4290&hilit=motor%2A
Hojta till om du inte får till det så gör jag en komplett scen med virtuell enhet åt dig.
Med vänlig hälsning, Jonny
Jag kollar och ser ifall jag får till det. Återkommer med resultat [SMILING FACE WITH OPEN MOUTH]jompa68 wrote:Hejsan
det går att få till med lite LUA programmering. Jag har gjort en guide på att få ut data från en Google kalender, den hittar du här: viewtopic.php?f=33&t=4215&p=5120&hilit=kalender#p5120
Sen har du en guide på motorvärmar styrning här: viewtopic.php?f=12&t=4290&hilit=motor%2A
Hojta till om du inte får till det så gör jag en komplett scen med virtuell enhet åt dig.
Med vänlig hälsning, Jonny
Jag använder denna funkar perfekt
viewtopic.php?f=12&t=4290&hilit=motor%2A
viewtopic.php?f=12&t=4290&hilit=motor%2A
Fibaro fantastic
Aktuell HC2 Version: 4.520
Aktuell HC2 Version: 4.520
Hur rapporterar man in när man vill åka med denna variant? Måste man rapportera in varje gång med denna? Vi har ungefär samma tider varje vecka så det vore bekvämt att kunna schemalägga en grund och sen stoppa in ytterligare avgångar vid behov. Såg att det var samma scen som jompa länkade till.zorro wrote:Jag använder denna funkar perfekt
viewtopic.php?f=12&t=4290&hilit=motor%2A
Hej Jonny!jompa68 wrote:Hejsan
det går att få till med lite LUA programmering. Jag har gjort en guide på att få ut data från en Google kalender, den hittar du här: viewtopic.php?f=33&t=4215&p=5120&hilit=kalender#p5120
Sen har du en guide på motorvärmar styrning här: viewtopic.php?f=12&t=4290&hilit=motor%2A
Hojta till om du inte får till det så gör jag en komplett scen med virtuell enhet åt dig.
Med vänlig hälsning, Jonny
Nu har jag försökt men jag fattar inte hur jag ska göra riktigt så om du har möjlighet får du gärna hjälpa mig så att jag får till det. Fattar inte riktigt hur det här med variabler och labels fungerar så jag tror att det är det som skiter sig.
Jag har laddat upp php-filen i root på http://www.henrikengstrom.se
Min Wall plug som jag ska använda har ID 6
Jag har tänkt att man ska skriva in Motorvärmare i kalendern och att dessa aktiviteter varar en timme ifall man inte kommer iväg vid önskad tidpunkt.
Är det något annat som du behöver?
Kan jag även använda den där virtuella enheten som fanns med i länken till motorvärmarscenen jag tänker om man inte vill använda kalendern vid engångshändelser.
Vill inte tjata utan är mest bara nyfiken, hur går det för dig?jompa68 wrote:Ok, kommer ett första utlägg ikväll efter jobbet.
Uppskattar verkligen hjälpen. Tror att jag kommer att ha stor glädje av att kunna titta på hur det ser ut när det ligger på min enhet. Det blir liksom lite lättare att förstå det här med variabler, labels och virtuella enheter och deras samband då. Är djupt imponerad av vad ni lyckas åstadkomma med programmering.
Haha det kan jag förstå att det är många som vill, du var ju inte så svårflörtad heller rycker jag [SMILING FACE WITH OPEN MOUTH] Trodde som sagt inte att du hade glömt utan jag var mest bara nyfiken hur det gick för dig. Ta den tid du behöver. Jag kör på en gammal hederlig timer just nu.jompa68 wrote:Har inte glömt bort dig, ej hunnit klart än. Satt igår kväll nästan 3 timmar med support på Fibaro pryttlar, många som vill ha min hjälp.
Man kanske ska fundera på starta konsult verksamhet
Motorvärmarstyrning med manuell hantering och Google kalender styrning.
Scen som kollar ett gäng variabler och sätter på motorvärmaren på angiven tid som hämtats ifrån Google kalender. Kan även styras manuellt om så önskas.
Dessa variabler behövs skapas, tänk på att dom behöver heta som det står här under.
heaterOverride
calValue
manualTimer
calMotorvStartH
calMotorvStartM
calMotorvStopH
calMotorvStopM
departureHour
departureMinute
Importera virtuella enheten
Ändringar som behövs göras i den virtuella enheten är
Ändra i "button" Hämta kalender
1. HC2 = Net.FHttp("192.168.0.xxx")
Ändra i "button" Manuellt på och Manuellt av
2. local relayId = 58; --switch eller plugg ID
Ändra i Main loop
3. local relayId = 58; --switch eller plugg ID
För att få med svenska tecken ifrån google calendern så har jag lagt till detta i calgoogle.php
Scen som kollar ett gäng variabler och sätter på motorvärmaren på angiven tid som hämtats ifrån Google kalender. Kan även styras manuellt om så önskas.
Dessa variabler behövs skapas, tänk på att dom behöver heta som det står här under.
heaterOverride
calValue
manualTimer
calMotorvStartH
calMotorvStartM
calMotorvStopH
calMotorvStopM
departureHour
departureMinute
Code: Select all
--[[
%% autostart
%% properties
%% globals
--]]
---------- CONFIGS ----------------
local relayId = 58; -- Switch, plugg's ID
local tempId = 131; -- Temperatur sensor ID
------ END OF CONFIGS -------------
if (fibaro:countScenes() > 1) then fibaro:abort() end
while true do
-- Variabler som behöver skapas --
local manualOverride = tonumber(fibaro:getGlobalValue("heaterOverride"));
local calValue = tonumber(fibaro:getGlobalValue("calValue"));
local manualTimer = tonumber(fibaro:getGlobalValue("manualTimer"));
local startHour = tonumber(fibaro:getGlobalValue("calMotorvStartH"));
local startMinute = tonumber(fibaro:getGlobalValue("calMotorvStartM"));
local stopHour = tonumber(fibaro:getGlobalValue("calMotorvStopH"));
local stopMinute = tonumber(fibaro:getGlobalValue("calMotorvStopM"));
local mstartHour = tonumber(fibaro:getGlobalValue("departureHour"));
local mstartMinute = tonumber(fibaro:getGlobalValue("departureMinute"));
-----------------------------------
local outTemp = tonumber(fibaro:getValue(tempId, "value"));
local heaterState = tonumber(fibaro:getValue(relayId, "value"));
local diff = 0;
if (outTemp < -20) then
-- Start 3 hours before departure time
diff = 180;
elseif (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);
local mdepartureTime=tonumber(os.time({year=theDate.year, month=theDate.month, day=theDate.day, hour=mstartHour, min=mstartMinute}));
local mstartTime=tonumber(mdepartureTime-diff*60);
---- Debug start ----
fibaro:debug("-------------------------------------");
if calValue == 0 and manualOverride == 0 and manualTimer == 0 then
fibaro:debug("Inget i kalendern och inget manuellt inställt")
elseif calValue == 1 then
fibaro:debug("Avresetid: " .. fibaro:getGlobal("calMotorvStart"));
fibaro:debug("Temperatur: " .. outTemp.." C");
fibaro:debug("Motorvärmaren startar: " .. diff.."min tidigare.");
fibaro:debug("manualOverride: " .. manualOverride);
fibaro:debug("Motorvärmarens status: "..heaterState);
elseif manualOverride == 1 then
fibaro:debug("Avresetid: " .. fibaro:getGlobal("departureHour")..":"..fibaro:getGlobal("departureMinute"));
fibaro:debug("Temperatur: " .. outTemp.." C");
fibaro:debug("Motorvärmare startar: " .. diff.."min tidigare.");
fibaro:debug("manualOverride: " .. manualOverride);
elseif calValue == 0 and manualTimer == 1 then
fibaro:debug("Avresetid: " .. fibaro:getGlobal("departureHour")..":"..fibaro:getGlobal("departureMinute"));
fibaro:debug("Temperatur: " .. outTemp.." C");
fibaro:debug("Motorvärmare startar: " .. diff.."min tidigare.");
fibaro:debug("manualOverride: " .. manualOverride);
end
fibaro:debug("-------------------------------------");
---- Debug end ----
if (outTemp < 10) and (heaterState == 0 )then
if (currentTime >= startTime) and (currentTime < departureTime) or (currentTime >= mstartTime) and (currentTime < mdepartureTime) then
fibaro:debug("Slog just på motorvärmaren!")
fibaro:call(relayId, "turnOn");
end
end
if (heaterState == 1) and manualTimer == 0 and (currentTime >= departureTime) or calValue == 1 and (currentTime <= startTime) or (currentTime <= mstartTime) then
fibaro:debug("Slog just av motorvärmaren!")
fibaro:call(relayId, "turnOff");
end
fibaro:sleep(60*1000);
end
Ändra i "button" Hämta kalender
1. HC2 = Net.FHttp("192.168.0.xxx")
Ändra i "button" Manuellt på och Manuellt av
2. local relayId = 58; --switch eller plugg ID
Ändra i Main loop
3. local relayId = 58; --switch eller plugg ID
För att få med svenska tecken ifrån google calendern så har jag lagt till detta i calgoogle.php
Code: Select all
<?php
header('Content-Type: text/html; charset=utf-8');
Tack så jättemycket. Ska genast sätta mig och se om jag kan få ihop detta. Hur skapar jag variabler?
Kom på en feature till som vore nice eftersom jag använder Wallplug så kunde man ju kanske få ett meddelande via Push om motorvärmarkabeln inte är i dvs att den inte förbrukar något trots att den är påslagen.
Kom på en feature till som vore nice eftersom jag använder Wallplug så kunde man ju kanske få ett meddelande via Push om motorvärmarkabeln inte är i dvs att den inte förbrukar något trots att den är påslagen.
Nu har jag hittat vart jag skapar variabler men vilka värden ska de ha? Ska alla ha 0 och 1 eller ska jag bara skapa variabelnamnen utan några värden?
Jag har även skapat en virtuell enhet som hämtar väderdata enligt din beskrivning från Wunderground. Den har ID 22 kan jag använda den som tempsensor?
Antar att jag även behöver fixa den där virtuella enheten som kollar kalendern?
Jag vet att jag är skitjobbig nu men jag är verkligen nybörjare på det här...
Jag har även skapat en virtuell enhet som hämtar väderdata enligt din beskrivning från Wunderground. Den har ID 22 kan jag använda den som tempsensor?
Antar att jag även behöver fixa den där virtuella enheten som kollar kalendern?
Jag vet att jag är skitjobbig nu men jag är verkligen nybörjare på det här...
Skapa variablerna, default så blir det 0 på dom. Värdet ändras sen när virtuella enheten körs.
Beträffande temperaturen, så antar jag att just nu visar du bara den eftersom variabler var nytt för dg. Du behöver spara temp. till en variabel för att kunna utnyttja den. Behövs ändras lite i koden då.
Jonny sent this from his iPhone using Tapatalk
Beträffande temperaturen, så antar jag att just nu visar du bara den eftersom variabler var nytt för dg. Du behöver spara temp. till en variabel för att kunna utnyttja den. Behövs ändras lite i koden då.
Jonny sent this from his iPhone using Tapatalk
Jo det är mycket som är nytt med det här för mig. Jo det är säkert som du säger att den bara visas. Hur gör jag för att spara ner temp så att jag kan använda den för motorvärmaren. Jag får väderdata ifrån flygplatsen i närheten så jag litar mer på den än jag skulle göra på en egen termometer.jompa68 wrote:Skapa variablerna, default så blir det 0 på dom. Värdet ändras sen när virtuella enheten körs.
Beträffande temperaturen, så antar jag att just nu visar du bara den eftersom variabler var nytt för dg. Du behöver spara temp. till en variabel för att kunna utnyttja den. Behövs ändras lite i koden då.
Jonny sent this from his iPhone using Tapatalk
Grymt jobbat Jonny!
Har du hämtat starttiden från någon rekommendation eller har du gått på sunt förnuft? Jag såg att den bara gick ner till -20 och tänkte lägga till ytterligare parametrar då vi nära på varje vinter har ner till -40.
Jag får dock följande error
[ERROR] 18:30:28: line 34: attempt to compare nil with number
Vad har jag missat?
*Edit* Ser att koden bygger på att man har en tempsensor ute, vilket jag inte har än utan tillförlitar mig på yahoo vädret som hc2 hämtar ifrån. Vad ska jag skriva istället för att hämta yahoo temp så länge?
Har du hämtat starttiden från någon rekommendation eller har du gått på sunt förnuft? Jag såg att den bara gick ner till -20 och tänkte lägga till ytterligare parametrar då vi nära på varje vinter har ner till -40.
Jag får dock följande error
[ERROR] 18:30:28: line 34: attempt to compare nil with number
Vad har jag missat?
*Edit* Ser att koden bygger på att man har en tempsensor ute, vilket jag inte har än utan tillförlitar mig på yahoo vädret som hc2 hämtar ifrån. Vad ska jag skriva istället för att hämta yahoo temp så länge?
Last edited by mr-zeth on 25 Jan 2014, 20:29, edited 1 time in total.