Forum użytkowników automatyki budynkowej

Z-wave => Fibaro - skrypty itp => Wątek zaczęty przez: marcinwojciesz w Marzec 25, 2015, 09:50:50 pm

Tytuł: Wake On Lan
Wiadomość wysłana przez: marcinwojciesz w Marzec 25, 2015, 09:50:50 pm
Robimy nowe urządzenie wirtualne z portem 80
klejamy

--[[
 %% properties

 %% globals
 --]]

 -- convert MAC adress, every 2 Chars (7-bit ASCII), to one Byte Char (8-bits)
 function convertMacAddress(address)
   local s = string.gsub(address, ":", "");
   local x = "";  -- will contain converted MAC
   for i=1, 12, 2 do
     x = x .. string.char(tonumber(string.sub(s, i, i+1), 16));
   end
   return x;
 end

 fibaro:log("Start process");

 -- MAC adress
 local _macAddress = convertMacAddress("BB:AA:CC:77:88:00");
 -- Create Magic Packet 6 x FF
 local _magicPacket = string.char(0xff, 0xff, 0xff, 0xff, 0xff, 0xff);
 -- Broadcast Address
 local _broadcastAddress = "255.255.255.255";
 -- Default port used
 local _wakeOnLanPort = 9;

 fibaro:sleep(750);

 for i = 1, 16 do
   _magicPacket = _magicPacket .. _macAddress;
 end

 fibaro:log("Magic packet successfully created");

 fibaro:sleep(1000);

 socket = Net.FUdpSocket();
 socket:setBroadcast(true);

 local bytes, errorCode = socket:write(_magicPacket, _broadcastAddress, _wakeOnLanPort);
 --check for error     
 if errorCode == 0 then
   fibaro:log("Successfully sent");
 else
   fibaro:log("Transfer failed");
 end

 -- clean up memory
 socket = nil;

 fibaro:sleep(1000);
 fibaro:log("Please wait for the server startup."); 



MAC ADRES podmieniamy na własny :)
i smiga

Niestety nie wiem czyj to był projekt :( ale działą i to się liczy.
Tytuł: Odp: Wake On Lan
Wiadomość wysłana przez: tom3sko w Styczeń 30, 2016, 10:30:08 pm
wszystko śmiga, ale jak sprawdzić czy pakiet dotarł do komputera ?

Wyjaśniam o co mi chodzi:

Jesli komputer odebral pakiet (kabel lan podłączony) to powiedz że komp został włączony

Jeśli komputer nie odebrał pakietu to to powiedz że nie ma komunikacji

Coś na zasadzie pingu z urządzeniem.
Tytuł: Odp: Wake On Lan
Wiadomość wysłana przez: marecki_0luk1 w Styczeń 30, 2016, 10:59:31 pm
A moze zrob ping po 15 sekundach?
Tytuł: Odp: Wake On Lan
Wiadomość wysłana przez: tom3sko w Styczeń 30, 2016, 11:07:19 pm
no to by było najprostsze rozwiązanie, ale komunikat głosowy dostał bym dopiero po 15 sekundach.
Ciekaw jestem czy jest szansa na sprawdzenie czy dany mac adres jest podpiety do rutera, ale wydaje mi się że chyba pakiet w tym skrypcie jest wysyłany na ślepo na wcześniej zdefiniowany mac adres.
Tytuł: Odp: Wake On Lan
Wiadomość wysłana przez: marecki_0luk1 w Styczeń 30, 2016, 11:19:07 pm
Mozesz sprawdzax w tabeli klientow w routerze
Tytuł: Odp: Wake On Lan
Wiadomość wysłana przez: PiotrekS w Luty 16, 2016, 12:32:26 pm
U mnie nie chce to dzialac, ponizej kod jaki mam w wirtualce, na aplikacji mWOL dziala a z Fibaro nie. Mam Wersję 3.6 czy to jest powod?

--[[
 %% properties

 %% globals
 --]]

 -- convert MAC adress, every 2 Chars (7-bit ASCII), to one Byte Char (8-bits)
 function convertMacAddress(address)
   local s = string.gsub(address, ":", "");
   local x = "";  -- will contain converted MAC
   for i=1, 12, 2 do
     x = x .. string.char(tonumber(string.sub(s, i, i+1), 16));
   end
   return x;
 end

 fibaro:log("Start process");

 -- MAC adress
 local _macAddress = convertMacAddress("40:61:86:8B:3C:4C");
 -- Create Magic Packet 6 x FF
 local _magicPacket = string.char(0xff, 0xff, 0xff, 0xff, 0xff, 0xff);
 -- Broadcast Address
 local _broadcastAddress = "255.255.255.0";
 -- Default port used
 local _wakeOnLanPort = 9;

 fibaro:sleep(750);

 for i = 1, 16 do
   _magicPacket = _magicPacket .. _macAddress;
 end

 fibaro:log("Magic packet successfully created");

 fibaro:sleep(1000);

 socket = Net.FUdpSocket();
 socket:setBroadcast(true);

 local bytes, errorCode = socket:write(_magicPacket, _broadcastAddress, _wakeOnLanPort);
 --check for error     
 if errorCode == 0 then
   fibaro:log("Successfully sent");
 else
   fibaro:log("Transfer failed");
 end

 -- clean up memory
 socket = nil;

 fibaro:sleep(1000);
 fibaro:log("Please wait for the server startup.");
Tytuł: Odp: Wake On Lan
Wiadomość wysłana przez: PiotrekS w Luty 16, 2016, 02:24:22 pm
Już działa, tu był problem 255.255.255.0  :)