Гуру выручайте. Пишу сюда, потому что много веток, в которые уже никто не заглядывает. Может здесь кто поделится. Я же в свою очередь поделюсь виртуальным устройсвтом немного позже для умной камеры netamo welcom - определение хозяина и открытие двери.
Ну , не получается сделать работоспособное виртуальное устройство - пинг. Это уже аж бесит. Кучу рзхных скриптов нарыл. Но ничего не получается. даже никакого ответа. не в дебаге , нигде в логах пусто. как будто не на кнопку нажимаю а пальцем об стол бью.
HC2 прошивка 4.091 - последняя. не бетовская
Задача казалось бы самая простая.
Делать опрос девайса ( в данном случае мобильный телефон на андроиде - и да у него почему то открыто только 4 порта (7080 8230 10595 35970), так что 80 порт я думаю что пинговать он не захочет.
Подъехал к воротам , мобилка законектилась , айпишка запинговалась - ворота открылись и так далее. Но проблема в том , что ну не в какую не опрашивается устройство и в логах нет не ошибок (пусто)
Выручите. дайте дельный , грамотный совет.
код использовал этот
--[[
%% properties
%% globals
--]]
fibaro:log("Start process");
local _deviceIp = "192.168.11.226";
local _devicePort = 7080;
local _maxRetryProcess = 5;
-- recursive function to ping device
local function _ping(retry)
retry = retry or 0;
--open the socket
local tcpSocket = Net.FTcpSocket(_deviceIp, _devicePort);
--set the read timeout
tcpSocket:setReadTimeout(250);
--notify user
fibaro:log("Search on the local network, try #" .. retry .. " please wait...");
fibaro:sleep(250);
--send packet
local bytes, errorCode = tcpSocket:write("ping");
--check for error
if errorCode == 0 then
return true;
else
if retry < _maxRetryProcess then
fibaro:log("Retry process, please wait...");
fibaro:sleep(1000);
return _ping(retry + 1);
end
return false;
end
end
--ping device, secure with pcall to catch errors.
local f, result = pcall(_ping);
if (f) then
if (result == true) then
fibaro:log("Server has been found, is awake and listening.");
else
fibaro:log("Server was not found!");
end
else
fibaro:log("Error: " .. f);
end
и этот тоже пробовал с переменными. глухо
tcpSocket = Net.FTcpSocket("192.168.11.226", 7080)
bytes, errorCode = tcpSocket:write("test")
if errorCode == 0
then
fibaro:setGlobal("IuraPhone", "1");
fibaro:log("Phone van Iura in home");
else
fibaro:setGlobal("IuraPhone", "0");
fibaro:log("Phone van Iura go out");
end
Выручайте. может когда я дострою свой дом , я поделюсь со всеми своими наработками. а сейчас я просто застрял на самом казалось бы элементарном