Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.

+7 495 204-27-80

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: LUA polling

LUA polling 25 Окт 2016 22:38 #19244

  • diamond5170
  • diamond5170 аватар
  • Вне сайта
  • Повелитель голоса
  • Сообщений: 212
  • Спасибо получено: 47
  • Репутация: 7
Сабж. Существует ли способ сделать poll для устройства через LUA или http API?

Зачем мне это нужно:
У меня есть парочка четырехкнопочных сателлитов vitrum, у которых недавно обнаружил забавный баг - при нажатии на любую из четырех кнопок, статус в HC2 меняется только у пятой, несуществующей кнопки. Но если зайти в интерфейс HC2, и нажать "опросить устройство" (poll), то мгновенно присылаются все статусы для всех кнопок, в правильном виде, и мгновенно выполняются все сценарии.

Так вот, с таким багом невозможно использовать сценарии в HC2, можно только назначить прямые ассоциации (и они работают без проблем). Я решил это исправить, активировал poll каждые 5 секунд (меньше HC2 не дает сделать) и выключатель начал работать корректно, хоть и с задержкой. Но это не очень быстрое решение, я хотел при получении статуса от "пятой" кнопки запускать сценарий, который бы делал poll и тогда выключатель бы полностью исправился, а опрос устройств не приходилось бы дергать каждые 5 секунд.

PS: все 4 группы конечно же ассоциированы с HC2. Это не помогает. Со всеми другими устройствами ассоциации работают.
Голосовое управление для Homey, Fibaro, Vera, Zipato: play.google.com/store/apps/details?id=com.diamond.SmartVoice

Fibaro Home Center 2, 15x Vitrum satellite, 5x Heatit thermostat, 4x Danfoss thermostat , 18x Fibaro rgbw, 12x Fibaro double relay switch, 6x Fibaro motion sensor, 5x Fibaro flood sensor, 2x Fibaro door sensor, 4x Fibaro roller shutter, 2x Fibaro Tablet
Последнее редактирование: 25 Окт 2016 22:42 от diamond5170.

LUA polling 27 Окт 2016 20:23 #19285

  • diamond5170
  • diamond5170 аватар
  • Вне сайта
  • Повелитель голоса
  • Сообщений: 212
  • Спасибо получено: 47
  • Репутация: 7
Забавно, но вот такая команда: /api/callAction?deviceID=602&name=poll сообщает следующее:

type: "ERROR",
reason: "Action not allowed",
message: "device does not have 'polling' interface"

Т.е. возможность все-таки существует, но заблокирована. При этом, в веб интерфейсе кнопка ссылается на функцию pollNow, которая вызывает то же самое действие poll, но оно работает.
Голосовое управление для Homey, Fibaro, Vera, Zipato: play.google.com/store/apps/details?id=com.diamond.SmartVoice

Fibaro Home Center 2, 15x Vitrum satellite, 5x Heatit thermostat, 4x Danfoss thermostat , 18x Fibaro rgbw, 12x Fibaro double relay switch, 6x Fibaro motion sensor, 5x Fibaro flood sensor, 2x Fibaro door sensor, 4x Fibaro roller shutter, 2x Fibaro Tablet

LUA polling 27 Окт 2016 20:32 #19287

  • ilya123
  • ilya123 аватар
  • Вне сайта
  • Инсталлятор
  • VeraPlus и Veralite
  • Сообщений: 760
  • Спасибо получено: 77
  • Репутация: 5
в расширенном редакторе вставляете
Service: urn:micasaverde-com:serviceId:HaDevice1
Poll

у меня так опрашивает розетку

ну соответственно делаете сцену ----> сработка например каждые 2 минуты

LUA polling 27 Окт 2016 20:34 #19288

  • diamond5170
  • diamond5170 аватар
  • Вне сайта
  • Повелитель голоса
  • Сообщений: 212
  • Спасибо получено: 47
  • Репутация: 7
ilya123 пишет:
в расширенном редакторе вставляете
Service: urn:micasaverde-com:serviceId:HaDevice1
Poll

у меня так опрашивает розетку

ну соответственно делаете сцену ----> сработка например каждые 2 минуты
А при чем тут micasaverde? :)
Речь про HC2.
Голосовое управление для Homey, Fibaro, Vera, Zipato: play.google.com/store/apps/details?id=com.diamond.SmartVoice

Fibaro Home Center 2, 15x Vitrum satellite, 5x Heatit thermostat, 4x Danfoss thermostat , 18x Fibaro rgbw, 12x Fibaro double relay switch, 6x Fibaro motion sensor, 5x Fibaro flood sensor, 2x Fibaro door sensor, 4x Fibaro roller shutter, 2x Fibaro Tablet
Последнее редактирование: 27 Окт 2016 20:34 от diamond5170.

LUA polling 27 Окт 2016 20:42 #19289

  • ilya123
  • ilya123 аватар
  • Вне сайта
  • Инсталлятор
  • VeraPlus и Veralite
  • Сообщений: 760
  • Спасибо получено: 77
  • Репутация: 5
упс....извиняйте...не заметил

LUA polling 29 Окт 2016 04:12 #19323

  • diamond5170
  • diamond5170 аватар
  • Вне сайта
  • Повелитель голоса
  • Сообщений: 212
  • Спасибо получено: 47
  • Репутация: 7
Нашел таки способ. Находим устройство-родитель, и отправляем команду poll через POST запрос (а они доступны теперь только в виртуальных устройствах), таким образом:
local thisdevice = fibaro:getSelfId();
local pollDevice = fibaro:getValue(thisdevice, "ui.Label1.value");
local ip = fibaro:getValue(thisdevice, 'IPAddress');
local port = fibaro:getValue(thisdevice, 'TCPPort');
local httpSession = Net.FHttp(ip, port);
httpSession:setBasicAuthentication("admin", "****");
jsonTable = { };
jsonString = json.encode(jsonTable);
response, status, errorCode = httpSession:POST("/api/devices/" .. pollDevice .. "/action/poll", jsonString);
fibaro:debug(response);
fibaro:debug(status);
fibaro:debug(errorCode);
Далее, делаем сцену, где при активации главного устройства, нажимается кнопка виртуального устройства:
--[[
%% properties
588 value
%% events
%% globals
--]]
 
fibaro:sleep(500);
 
fibaro:call(617, "setProperty", "ui.Label1.value", 279);
fibaro:call(617, "pressButton", "2");

Как результат - выключатели починились, и стали работать как будто исправные :)
Голосовое управление для Homey, Fibaro, Vera, Zipato: play.google.com/store/apps/details?id=com.diamond.SmartVoice

Fibaro Home Center 2, 15x Vitrum satellite, 5x Heatit thermostat, 4x Danfoss thermostat , 18x Fibaro rgbw, 12x Fibaro double relay switch, 6x Fibaro motion sensor, 5x Fibaro flood sensor, 2x Fibaro door sensor, 4x Fibaro roller shutter, 2x Fibaro Tablet
Последнее редактирование: 29 Окт 2016 04:13 от diamond5170.
Время создания страницы: 0.268 секунд