Solen upp/nedgång
Så här kan man göra:
Label nr 3 har jag markerat "Main" för att den ska visas direkt när man tittar på enheten.
Skapa en virtuell enhet, lägg till 3st labels i den virtuella enheten.
I mainloop delen så lägger du till följande kod:
Code: Select all
local vd = 181 --Denna virtuella ID's nummer
local sunrise = fibaro:getGlobalValue("Sunrise")
local sunset = fibaro:getGlobalValue("Sunset")
fibaro:call(vd, 'setProperty', 'ui.Sunrise.value',sunrise)
fibaro:call(vd, 'setProperty', 'ui.Sunset.value',sunset)
fibaro:call(vd, 'setProperty', 'ui.UppNer.value',sunrise.."-"..sunset)
fibaro:sleep(30*60000) -- uppdateras var 30:e minut
Hej! Din kod verkar förutsätta att man anger globala variabler för sunset och sunrise? Finns det någon fördel med det som jag missat? Jag använde sunriseHour och sunsetHour istället.
Code: Select all
local vd = 49 --Denna virtuella ID's nummer
local sunrise = fibaro:getValue(1, "sunriseHour")
local sunset = fibaro:getValue(1, "sunsetHour")
fibaro:call(vd, 'setProperty', 'ui.Sunrise.value',sunrise)
fibaro:call(vd, 'setProperty', 'ui.Sunset.value',sunset)
fibaro:call(vd, 'setProperty', 'ui.UppNer.value',sunrise.."-"..sunset)
fibaro:sleep(30*60000) -- uppdateras var 30:e minut
Så jag lyckades tillslut
Jompa68 med din kod så fick jag bara fram bindestrecket som visas mellan klockslagen
Men med Rauls kod så funkade det perfekt
Fråga inte mig vad som är galet
Jompa68 med din kod så fick jag bara fram bindestrecket som visas mellan klockslagen
Men med Rauls kod så funkade det perfekt
Fråga inte mig vad som är galet
- Attachments
-
- Solen.jpg (12.62 KiB) Viewed 19382 times
Fibaro fantastic
Aktuell HC2 Version: 4.520
Aktuell HC2 Version: 4.520
Denna kodsnutt hämtas ifrån HC2's operativsystem.
Då behövs det inga variabler definerade så som jag hade i mitt första inlägg.
Men bägge ger samma sak
Code: Select all
local sunrise = fibaro:getValue(1, "sunriseHour")
local sunset = fibaro:getValue(1, "sunsetHour")
Code: Select all
local sunrise = fibaro:getGlobalValue("Sunrise")
local sunset = fibaro:getGlobalValue("Sunset")
-
- Medlem
- Posts: 102
- Joined: 30 Nov 2013, 11:08
- 10
- Location: Skegrie
Du har rätt i att det inte står utskrivet vilket är dåligt men du kan se det i adressraden i din webbläsare. Numret i slutet på adressen (när du är inne och ser på din virtuella enhet) är ID på enheten.
Det går också med lite kod att dynamiskt ta reda på enhetens ID, jag använder hellre dynamiska metoder vilket gør koden mer flexibel (men i detta fallet betydligt otympligare). Kan slänga upp ett exempel när jag kommer hem.
Det går också med lite kod att dynamiskt ta reda på enhetens ID, jag använder hellre dynamiska metoder vilket gør koden mer flexibel (men i detta fallet betydligt otympligare). Kan slänga upp ett exempel när jag kommer hem.
Tryck på skiftnyckeln på din virituella enhet och titta uppe i adressfältet så står ditt id där sista siffrorna
tex: http://192.168.100.2/fibaro/sv/devices/ ... d=[b][u]61[/u][/b]
tex: http://192.168.100.2/fibaro/sv/devices/ ... d=[b][u]61[/u][/b]
Fibaro fantastic
Aktuell HC2 Version: 4.520
Aktuell HC2 Version: 4.520
-
- Medlem
- Posts: 102
- Joined: 30 Nov 2013, 11:08
- 10
- Location: Skegrie
För att dynamisk ta reda på information om virtuella enheter, använd följande kod i den knapp där den behövs.
Lägg först en kommentar i main loop för den enhet du önskar hitta. I mitt fall plisségardinen i mitt "spelrum".
.. och i knappen/knapparna:
Du har nu 5 variabler med information om den virtuella enhet du har sökt upp genom att ange den som "virtual_dev". Smidigt om man som i mitt fall har en väldig massa knappar på en enhet och får för sig att byta ip-adress. Med denna funktionen behöver slipper man ändra varenda knapp manuellt.
Lägg först en kommentar i main loop för den enhet du önskar hitta. I mitt fall plisségardinen i mitt "spelrum".
Code: Select all
-- Söksträng: plisse_spelrum
Code: Select all
local virtual_dev = "plisse_spelrum" -- Den enhet vi önskar hitta
function readVirtualDevice()
tcp = Net.FHttp("localhost", 80);
tcp:setBasicAuthentication("admin", "password");
response, status, errorCode = tcp:GET("/api/virtualDevices");
if (tonumber(status)~=200) then
return nil;
else
jsonTable = json.decode(response);
for virtualIndex, virtualData in pairs(jsonTable) do
if (virtualData.type=="virtual_device") then
check = string.find(virtualData.properties.mainLoop, virtual_dev);
if (check and check>0) then
id = virtualData.id;
ip = virtualData.properties.ip;
port = virtualData.properties.port;
name = virtualData.name;
icon = virtualData.properties.deviceIcon;
return id, name, ip, port, icon;
end
end
end
end
return nil;
end
id, name, ip, port, icon = readVirtualDevice();
Zorro,zorro wrote:Så jag lyckades tillslut
Jompa68 med din kod så fick jag bara fram bindestrecket som visas mellan klockslagen
Men med Rauls kod så funkade det perfekt
Fråga inte mig vad som är galet
Det finns ingen möjlighet att du kan lägga upp sol ikonen?
//Jesse