Funkar notifications för er andra HC2-ägare nu? Har fungerat bra ända tills nu?! Verkar vara en bunt andra på Fibaros forums som har samma problem.
Jag kör 3.590 sedan jag fick hem min HC, vilket är typ 3 veckor sedan, och iPhone som inte är uppgraderad till 7.1 ännu.

Mystiskt ...
 
KristoferL skrev:
Funkar notifications för er andra HC2-ägare nu? Har fungerat bra ända tills nu?! Verkar vara en bunt andra på Fibaros forums som har samma problem.
Jag kör 3.590 sedan jag fick hem min HC, vilket är typ 3 veckor sedan, och iPhone som inte är uppgraderad till 7.1 ännu.

Mystiskt ...
Mina notiser funkar. Tror jag har samma version som du.
 
Nyfniken skrev:
Jag har till min HC2 än så länge tre script.

1) Tänd fönsterbelysningen i köket. 6 på vardagar och 8 på helger. Släck 25 minuter efter soluppgången. Tänd inte alls om släcktiden är före tändtiden.

2) Tänd fönsterbelysningen i köket 25 minuter före solnedgången. Släck 22:15 på mån-tor och sön och 01:00 på fre-lör. Tänd inte alls om släcktiden är före tändtiden (med kompensation för efter-midnatt).

3) Dimma upp taklampan i sovrummet på morgonen mån-fre. Dimningen sker jämnt från 0-100% under 30 minuter.

Alla värden är programmerade med parametrar som gör det enkelt att ändra funktionen, till exempel dimma från 70-50% på 9 minuter i stället.

Inget av ovanstående hade varit i närheten av möjligt utan LUA.

Samtidigt så har jag läst några poäng programmering och att åstakomma ovanstående hade nog varigt svårt om min bakgrund hade varit annorlunda.
Har du lust att bjuda på koden som gör att det inte tänds om solen redan har varit uppe före tändtiden samt motsvarande för kvällen?
 
iSnobben skrev:
Har du lust att bjuda på koden som gör att det inte tänds om solen redan har varit uppe före tändtiden samt motsvarande för kvällen?
+1 på den. Har fortfarande inte fått det att fungera.
 
iSnobben skrev:
Har du lust att bjuda på koden som gör att det inte tänds om solen redan har varit uppe före tändtiden samt motsvarande för kvällen?
Självklart. Jag måste dock slänga in en disclaimer eftersom scriptet bara är några dagar gammalt... :)
--[[
%% properties
%% autostart
%% globals
--]]

-- Deklarera variabler
local lightsOnWeekday = "05:45";
local lightsOnWeekend = "07:00";
local sunriseOffset = 30;
local lightsOn;
local lightsOut = "00:00";
local device = 4;
local now = os.date("*t");

-- Ta bort kolon i strängarna för tänd-tid (05:45 -> 0545)
lightsOnWeekday = string.gsub(lightsOnWeekday,":","");
lightsOnWeekend = string.gsub(lightsOnWeekend,":","");

-- Konvertera tändtiden till ett heltal (0545 -> 545)
lightsOnWeekday = tonumber(lightsOnWeekday);
lightsOnWeekend = tonumber(lightsOnWeekend);

-- Räkna om tändtiden till antal minuter sedan midnatt (545 -> 345)
lightsOnWeekday = (lightsOnWeekday - lightsOnWeekday % 100) /100 * 60 + lightsOnWeekday % 100;
lightsOnWeekend = (lightsOnWeekend - lightsOnWeekend % 100) /100 * 60 + lightsOnWeekend % 100;

while true do
-- Hämta aktuell tid
now = os.date("*t");

-- Konvertera aktuell tid till sträng på formatet "hhmm"
time = tonumber(string.format("%02d", now.hour) .. string.format("%02d", now.min));

-- Räkna om aktuell tid till antal minuter sedan midnatt
time = (time - time % 100) /100 * 60 + time % 100;

-- Avgör om det är vardag eller helg och sätt tändtiden därefter
if (now.wday <= 5) then
lightsOn = lightsOnWeekday;
else
lightsOn = lightsOnWeekend;
end

-- Hämta tid för soluppgången
lightsOut = fibaro:getValue(1, "sunriseHour");

-- Ta bort kolon ur soluppgångens tid
lightsOut = string.gsub(lightsOut,":","");

-- Konvertera soluppgången till heltal
lightsOut = tonumber(lightsOut);

-- Räkna om tiden för soluppgång tillantalet minuter sedan midnatt
lightsOut = (lightsOut - lightsOut % 100) /100 * 60 + lightsOut % 100;

-- Lägg till offset
lightsOut = lightsOut + sunriseOffset;

-- Tänd lampan om det är tänd-tid samt att tändtid inte är efter släck-tid
if ((lightsOn <= lightsOut) and (time == lightsOn)) then
fibaro:call(device, "turnOn");
end

-- Släck lampan släck-tid, oavsett hur lampan tändes
if (time == lightsOut) then
fibaro:call(device, "turnOff");
end

-- Sov 55 sekunder
fibaro:sleep(55*1000);
end
Några kommentarer till koden:
  • Jag vet inte riktigt hur %% autostart fungerar. Jag tror inte att den behövs.
  • Omräkningen till minuter efter midnatt behövs för att det inte ska bli några konstigheter när man jobbar med offset.
  • Det vanliga är att scripten sover i 60 sekunder i loopen. Jag har valt att köra 55 sekunder. Annars riskerar man att lamporna inte tänds en dag om sleep-cykeln laggar lite på exakt rätt minut.

Fråga gärna om något är oklart. Så länge det bara rör sig om en lampa så ska det räcka med att ändra värdena under kommentaren "Deklarera variabler". Jag återkommer med kvälls-scriptet när jag har kommenterat det.

EDIT: Jag ser nu att jag har missat att göra tonumber() med time-variabeln. Det är egentligen onödigt då det sker med automatik då man gör beräkningar med variabeln. Men jag tycker det kan vara bra att ha med det för att tydliggöra att det är en sträng i första steget.
 
Redigerat:
  • Gilla
D_a_g_g och 1 till
  • Laddar…
Här är kvälls scriptet:

--[[
%% properties
%% autostart
%% globals
--]]

-- Deklarera variabler
local device = 4;
local lightsOutWeekday = "22:15";
local lightsOutWeekend = "00:30";
local sunsetOffset = -30;
local lightsOn;
local lightsOut;
local now = os.date("*t");

-- Beräkna antalet minuer sedan midnatt för respektive tid
lightsOutWeekday = string.gsub(lightsOutWeekday,":","");
lightsOutWeekend = string.gsub(lightsOutWeekend,":","");
lightsOutWeekday = tonumber(lightsOutWeekday);
lightsOutWeekend = tonumber(lightsOutWeekend);
lightsOutWeekday = (lightsOutWeekday - lightsOutWeekday % 100) /100 * 60 + lightsOutWeekday % 100;
lightsOutWeekend = (lightsOutWeekend - lightsOutWeekend % 100) /100 * 60 + lightsOutWeekend % 100;

while true do
-- Beräkna antalet minuter sedan midnatt för aktuell tid
now = os.date("*t");
time = tonumber(string.format("%02d", now.hour) .. string.format("%02d", now.min));
time = (time - time % 100) /100 * 60 + time % 100;

-- Beräkna antalet minuter sedan midnatt för solnedgång + offset
lightsOn = fibaro:getValue(1, "sunsetHour");
lightsOn = string.gsub(lightsOn,":","");
lightsOn = tonumber(lightsOn);
lightsOn = (lightsOn - lightsOn % 100) /100 * 60 + lightsOn % 100;
lightsOn = lightsOn + sunsetOffset;

-- Bestäm aktuell släcktid. Weekend är fredag/lördag
if ((now.wday <= 4) or (now.wday == 7)) then
lightsOut = lightsOutWeekday;
else
lightsOut = lightsOutWeekend;
end

-- Tänd lampan vid aktuell tid om släcktiden är före lunch eller om släcktiden är efter tändtiden
if (((lightsOut < 720) or (lightsOn < lightsOut)) and (time == lightsOn)) then
fibaro:call(device, "turnOn");
-- Vänta in släcktiden
while (time ~= lightsOut) do
fibaro:sleep(55*1000);
end
-- Släck lampan
fibaro:call(device, "turnOff");
end
fibaro:sleep(55*1000);
end
Jag inser att jag har skrivit scripten lite olika. Det har ju att göra med problematiken som uppstår då man vill ha släcktiden på kvällen efter midnatt. Tittar man på mitt morgon-script så ser man att lamporna släcks oavsett hur de har tänts.
I kvälls-scriptet så släcks bara lamporna om scriptet kommit in i tänd-loopen först. I praktiken spelar det bara roll om HC2 startas om efter tänd-tid, men före släck-tid och lamporna dessutom tänds manuellt innan släck-tid.

~= betyder "inte lika med"
 
Redigerat:
Om jag har fler än en lampa jag vill styra så är det väl bara att lägga till fler devices eller?
 
iSnobben skrev:
Om jag har fler än en lampa jag vill styra så är det väl bara att lägga till fler devices eller?
Ja, precis. Vill man ha det smidigt så döper man variabler till device1, device2 osv och sen i koden:

fibaro:call(device1, "turnOff");
fibaro:call(device2, "turnOff");
etc.

Jag tror att det även går att gruppera enheter så att de fungerar som en enda, men jag har inte undersökt saken närmare.
 
När jag ändå är i farten passar jag på att klippa in min (okommenterade) väckarklocka också.
local device = 8;

local startTime = "06:00";
local dimDurationMinutes = "20";
local startLevel = 0;
local endLevel = 100;

local now;
local time;
local level = startLevel;
local step = (endLevel - startLevel) / math.abs(endLevel - startLevel);
local stepTimeMs = math.floor(1000 * 60 * dimDurationMinutes / math.abs(endLevel - startLevel));

startTime = string.gsub(startTime,":","");
startTime = tonumber(startTime);
startTime = (startTime - startTime % 100) /100 * 60 + startTime % 100;

while true do
now = os.date("*t");
time = tonumber(string.format("%02d", now.hour) .. string.format("%02d", now.min));
time = (time - time % 100) /100 * 60 + time % 100;

if ((startTime == time) and (now.wday <= 5)) then
level = startLevel;
fibaro:call(device, "setValue", level);
fibaro:sleep(stepTimeMs);
repeat
level = level + step;
fibaro:call(device, "setValue", level);
fibaro:sleep(stepTimeMs);
until (level == endLevel)
fibaro:sleep(80*60*1000)
fibaro:call(device, "turnOff");
end
fibaro:sleep(60*1000);
end
 
Vad sjutton. 22:20 och fönsterlamporna har inte slocknat...
 
Det händer mig hela tiden - min fru brukar säga "nu har min lilla programmerare gjort något" och så ignorerar hon det om det går att leva med (eller så blir det som i Lördags då jag var hos en kompis och lamporna började blinka... då ringer hon och jag ber henne rycka ut kabeln till HC2an....). Jaja det blir helt enkelt fel ibland. Och min notering är att om jag skriver min scen helt i LUA och med helt egen kod så är det större sannolikhet att det fungerar än om jag först tar fram en scen via GUIt som jag sedan "konverterar" till LUA, då lägger HC2 på en del saker som tydligt stör det hela....
 
OpiMaza
Bamsefar skrev:
Det händer mig hela tiden - min fru brukar säga "nu har min lilla programmerare gjort något" och så ignorerar hon det om det går att leva med (eller så blir det som i Lördags då jag var hos en kompis och lamporna började blinka... då ringer hon och jag ber henne rycka ut kabeln till HC2an....). Jaja det blir helt enkelt fel ibland. Och min notering är att om jag skriver min scen helt i LUA och med helt egen kod så är det större sannolikhet att det fungerar än om jag först tar fram en scen via GUIt som jag sedan "konverterar" till LUA, då lägger HC2 på en del saker som tydligt stör det hela....
Måste faktiskt ge både Vera, tellstick samt domoticz en eloge för där klickade det aldrig.
 
OpiMaza skrev:
Måste faktiskt ge både Vera, tellstick samt domoticz en eloge för där klickade det aldrig.
Du bara måste skämta!!!!

Vera Lite: Krävde daglig planerad omstart för att inte crasha efter 32h. Programmeringsfel var lika jobbiga där som i HC2. Och vi skall inte prata om alla j*vla buggar som tillverkaren ALDRIG rättar....

TellStick: Enkelriktad kommunikation som gjorde att lampor ibland tändes och ibland inte, buggar i drivern som krävde daglig omstart för att vara ens halvstabil i drift.

Jissis alltså, Vera och TellStick är ren sk*t jämfört med den driftstabilitet jag har med Fibaro HC2. Men visst inte ens HC2an är perfekt, det finns buggar i den med, och begränsningar. Men den är rena undret jämfört med Vera och TellStick.
 
OpiMaza
Bamsefar skrev:
Du bara måste skämta!!!!

Vera Lite: Krävde daglig planerad omstart för att inte crasha efter 32h. Programmeringsfel var lika jobbiga där som i HC2. Och vi skall inte prata om alla j*vla buggar som tillverkaren ALDRIG rättar....

TellStick: Enkelriktad kommunikation som gjorde att lampor ibland tändes och ibland inte, buggar i drivern som krävde daglig omstart för att vara ens halvstabil i drift.

Jissis alltså, Vera och TellStick är ren sk*t jämfört med den driftstabilitet jag har med Fibaro HC2. Men visst inte ens HC2an är perfekt, det finns buggar i den med, och begränsningar. Men den är rena undret jämfört med Vera och TellStick.
Lugn Bamsefar.....

MINA Scheman eller "timers" klickade aldrig i Vera/tellstick om man bortser från Vera och tellsticks andra brister.
Men visst jag håller med dig det är milsvidd skilland i hastighet samt driftstabilitet.
 
:wow:
 
Vi vill skicka notiser för ämnen du bevakar och händelser som berör dig.