Имеется мультисенсор AEON LABS и контроллер Razberry.

В Expert UI в разделе "датчики" мультисенсор правильно определяется как датчики движения, температуры, освещенности и влажности и раз в 3 минуты значения датчиков обновляются.

В Z-Way Home Automation UI так же появились виджеты с датчиками (температуры: ZWayVDev_10:0:49:1, освещенности: ZWayVDev_10:0:49:5, влажности: ZWayVDev_10:0:49:5), показывающие правильные значения.

Создаю модуль и подписываюсь на события к этим устройствам:

function onLevelChange(dev){
    console.log("deviceId:" + dev.id + ", level:" + dev.get("metrics:level"));
}
controller.devices.get("ZWayVDev_10:0:49:1").on('change:metrics:level', onLevelChange);
controller.devices.get("ZWayVDev_10:0:49:3").on('change:metrics:level', onLevelChange);
controller.devices.get("ZWayVDev_10:0:49:5").on('change:metrics:level', onLevelChange);

Проблема в том, что при обновлении значений датчиков функция onLevelChange вызывается три раза, но для одного и того же устройства - ZWayVDev_10:0:49:5. Однако значения для каждого вызова соответствуют разным датчикам:

deviceId:ZWayVDev_10:0:49:5, level:24.2
deviceId:ZWayVDev_10:0:49:5, level:57
deviceId:ZWayVDev_10:0:49:5, level:103

Вопрос: как в callback-функции получить правильный id устройства?

задан 11 Май '14, 21:17

nexis's gravatar image

nexis
54
процент согласия: 0%

А какая версия Z-Way? последняя rc? Пока разбираемся.

(12 Май '14, 23:13) PoltoS ♦♦ PoltoS's gravatar image

У меня лог пишет ZWayDev_26:0:49:3, level 10 ZWayDev_26:0:49:5, level 36 ZWayDev_26:0:49:1, level 23.1

То есть, вроде бы, всё ок

(13 Май '14, 01:32) azimarev azimarev's gravatar image

Проверил, действительно есть ошибка с общей переменной вне цикла. Решается или замыканием или (как мы сделали) переносом объявления в меньший scope.

Проблему исправили - скоро выкатим фикс, или можете github взять свежий код.

ссылка

отвечен 13 Май '14, 03:57

PoltoS's gravatar image

PoltoS ♦♦
5731312
процент согласия: 27%

1

Спасибо, заработало

(14 Май '14, 22:59) nexis nexis's gravatar image
Ваш ответ
toggle preview

Следить за этим вопросом

По почте:

Авторизовавшись, здесь Вы сможете подписаться на обновления по этому вопросу.

По RSS:

Ответы

Ответы и комментарии

Основы размётки

  • *курсив* или _курсив_
  • **жирный** или __жирный__
  • ссылка:[текст](http://url.com/ "Суть вопроса")
  • картинка?![alt текст](/path/img.jpg "Суть вопроса")
  • нумерованый список: 1. Foo 2. Bar
  • чтобы добавить перенос строки в тексте, сделайте два переноса строки в редакторе
  • базовые теги HTML также поддерживаются

Теги к вопросу:

×253
×119

Задан: 11 Май '14, 21:17

Просмотров: 1,110 раз

Отредактирован: 14 Май '14, 22:59

powered by OSQA