Teza Skrevet 15. august 2018 Skrevet 15. august 2018 (endret) 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); Endret 15. august 2018 av Teza Siter
Anbefalte innlegg
Bli med i samtalen
Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.