Jump to content
  • Sign Up

Recommended Posts

Posted (edited)

Ettersom jeg ikke kan LUA programmering, blir enhver liten idé til et helt prosjekt.

Jeg prøver å sette opp HC2 fra bunnen av, med LUA i stedet for blokk scener.

I håp om at andre har en bedre fungerende løsning de kan dele, eller prøver å finne en løsning på samme utfordring, poster jeg min kode.

 

Det jeg ønsker å oppnå:

Når jeg er på jobb, har jeg alltid med nettbrett, ellers ligger nettbrett alltid hjemme.

Vil derfor ha en variabel som anngir om jeg er på jobb eller hjemme.

 

Dersom telefonen min er hjemme, er jeg hjemme, hvis ikke, er jeg borte.

Vil ha en variabel som forteller om jeg er hjemme eller borte.

 

Med disse 2 variablene kan systemet skille mellom om jeg er hjemme, borte eller på jobb.

 

Utfordringer med denne koden:

Dersom telefonen går i standby, forsvinner den fra wifi nettverket.

 

--------------------------------------------------------------------------------------    
-- Create a virtual device, and 2 variables named   							    --
-- Nettbrett_hjemme and Note8_hjemme. 														--
-- Copy this code into main loop of VD											    --
--------------------------------------------------------------------------------------


-------------------------------------------------------------------------------------- 
-- Setup  																			--
-------------------------------------------------------------------------------------- 

local device1 = "00:00:00:00:00:00"; -- mac adress of device 1, Huawei M2-801L
local device2 = "00:00:00:00:00:00"; -- mac adress of device 2, Samsung Galaxy Note 8
local Away = 15; -- Minutes delay before setting a device as away from home, if not found
local ProgramDelay = 5; -- seconds delay between each time the program runs

-------------------------------------------------------------------------------------- 
-- Checking if device is registered in wifi network							    	--
-------------------------------------------------------------------------------------- 

local HC2 = Net.FHttp("127.0.0.1", 11111); -- Do not change IP or port!

for j=1,4 do
  local response, status, errorCode = HC2.POST(HC2, "/api/networkDiscovery/arp", "{}");
  local jsonTable = json.decode(response) 
  
  fibaro:debug ("response "..response);
  
	for i, name in ipairs(jsonTable) do
	    if(name['mac'] == device1) then
	  		fibaro:setGlobal("Nettbrett_hjemme", 1); -- variable name
	    elseif(name['mac'] == device2) then
	    	fibaro:setGlobal("Note8_hjemme", 1); -- variable name
    	end
	end

end

--------------------------------------------------------------------------------------
-- Timer, for setting device status to away											--
--------------------------------------------------------------------------------------


local Device1Time = fibaro:getGlobalModificationTime("Nettbrett_hjemme"); -- variable name
local Device2Time = fibaro:getGlobalModificationTime("Note8_hjemme"); -- variable name
local TimeNow = os.time()
local Device1Away = TimeNow - Device1Time
local Device2Away = TimeNow - Device2Time

if(Device1Away >= (Away * 60)) then
    fibaro:setGlobal("Nettbrett_hjemme", 0); -- variable name
end

if(Device2Away >= (Away * 60)) then
    fibaro:setGlobal("Note8_hjemme", 0); -- variable name
end



fibaro:debug ("Modification time device 1 "..Device1Time);
fibaro:debug (os.date('%A, %B %d %Y at %H:%M UTC', Device1Time));
fibaro:debug ("Modification time device 2 "..Device2Time);
fibaro:debug (os.date('%A, %B %d %Y at %H:%M UTC', Device2Time));
fibaro:debug (os.date('%A, %B %d %Y at %H:%M UTC', TimeNow));
fibaro:debug ("Time since change, device 1 "..Device1Away);
fibaro:debug ("Time since change, device 1 "..Device2Away);

fibaro:sleep(ProgramDelay*1000);

 

Edited by Teza

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.