NEWS
MegaD 328
-
Третья мега пока не заработала - проблемы коммутации.
@Bluefox:А что загорается и тухнет? `
Разобрался - сначала сама мега переключает выход (11:2) - потом аналогичная команда приходит от сервера… Убираешь команду в поле Action - все отлично работает через сервер. Возвращаешь Action и убираешь настройки сервера - все работает через контролер. Теперь вопрос - почему мега не ждет выполнения команды от сервера? Может он ей что-то не так отвечает? На 0 меге все отлично. Проблемы на 2 (1 пока не работает).PS. Решил симитировать запросы меги (192.168.15.15 - сервер)
Отправил команду http://192.168.15.15/0/?pt=3
Ответ: OK
Отправил команду http://192.168.15.15/1/?pt=3
Ответ: OK->
Отправил команду http://192.168.15.15/2/?pt=3
Ответ: OK->
Таким образом проблема в драйвере - он некорректно отвечает не 0 меге.
-
Ты имеешь ввиду
OK****->****
?
-
Поправил
### 0.2.10 (2015-09-26) * (bluefox) return "OK" and not "OK->" to other than 0 instances
-
Может мне кто нибудь записать с WireShark, как происходит поиск МегаД? Очень надо.
Тогда я смогу доделать драйвер полностью.
-
Неправильно считываются настройки, если стоит галочка как на скрине ниже.
Данная галочка говорит нам, что: если сервер доступен то используется режим P&R. Если нет, то: mode P, act 7:2
Как бы это галочка главнее чем поле режим.
А настройки считались как: mode P, act 7:2 (в настройках выставилось: при замыкании, двойное нажатие. Долгого нажатия нет и и режим выставился при замыкании).
Код этой галочки:
-
Может мне кто нибудь записать с WireShark, как происходит поиск МегаД? Очень надо.
Тогда я смогу доделать драйвер полностью. `
Отправил в личку. -
Неправильно считываются настройки, если стоит галочка как на скрине ниже.
filename="mega-conf.png" index="0">~~Данная галочка говорит нам, что: если сервер доступен то используется режим P&R. Если нет, то: mode P, act 7:2
Как бы это галочка главнее чем поле режим.
А настройки считались как: mode P, act 7:2 (в настройках выставилось: при замыкании, двойное нажатие. Долгого нажатия нет и и режим выставился при замыкании).
Код этой галочки: `
Походу не мне надо одному о документации заботится. По моему об этом нигде не написано.Спасибо.
-
Неправильно считываются настройки, если стоит галочка как на скрине ниже.
filename="mega-conf.png" index="0">~~Данная галочка говорит нам, что: если сервер доступен то используется режим P&R. Если нет, то: mode P, act 7:2
Как бы это галочка главнее чем поле режим.
А настройки считались как: mode P, act 7:2 (в настройках выставилось: при замыкании, двойное нажатие. Долгого нажатия нет и и режим выставился при замыкании).
Код этой галочки: `
Походу не мне надо одному о документации заботится. По моему об этом нигде не написано.Спасибо. `
Я про это Андрею писал, сам так же по форуму лазил искал описание. -
Ты имеешь ввиду
OK->
? `
Именно это я и имел в виду.Драйвер обновил, но не помогло. Проверил браузером и теперь везде OK, но в Mozilla было замечено что шрифт OK отличается для 0 и остальных. Дальнейший анализ показал, что у ответов сервера разный тип.
Для 0 это - text/html, а для остальных - text/plain.
-
Походу не мне надо одному о документации заботится. По моему об этом нигде не написано.
Спасибо. `
Описано. Я отже холел об этом написать.http://ab-log.ru/smart-house/ethernet/megad-328
Mode - очень важный и интересный параметр, позволяющий использовать устройство в широком спектре задач. Эта опция определяет режим входа
P - устройство реагирует (то есть отправляет сообщения на сервер, выполняет сценарии и т.д.) только при замыкании контакта/выключателя
R - устройство реагирует только при размыкании контакта/выключателя
P&R - устройство реагирует как на замыкание, так и на размыкания контакта.
В каких случаях это может потребоваться? Не буду брать для примера ситуации с управлением инженерным оборудованием. Квартирный звонок. Нажали - звонит, отжали - не звонит. Это режим "P&R" - при нажатии на кнопку звонка отправляется сообщение на сервер, включается соответствующий выход устройства. При отжатии снова отправляется сообщение на сервер, выключается выход устройства. Другой пример. Подключение к устройству охранных датчиков движения. Да, устройство вполне подходит для построения в том числе охранных систем! По умолчанию контакт датчика замкнут и система понимает, что датчик функционирует. При фиксации движения в зоне действия датчика, он размыкает контакт, что является тревожным сигналом. Тогда режим входа настраивается как "R"
Флажок (чекбокс) справа от поля Mode указывает, что при наличии сервера, устройство отправляет на сервер сообщения всегда в режиме P&R, а при его отсутствии Action выполняется только в том режиме, который установлен в Mode.
-
Вчера всплыла еще такая вещь - при снятии галочки "двойное нажатие" перестали работать скрипты на одиночное нажатие:
on("megad.0.p9_P9", function (obj) { if (obj.newState.val === true) { request(Lamp4); } });
В чем может быть подвох? Галочку вернул - она почти не мешает, но это лишняя нагрузка на систему и лишняя задержка для ожидания того, чего не нужно…
-
Bluefox, если порт настроен как P&R (при изменении), как я должен написать скрипт, чтобы по нажатию физической кнопки, в vis так же отображалось что лампочка горит.
При нажатии лампочки в vis переменной megad.0.p7_P7 устанавливаетcя значение в true, физическая лампа загорается. Если я нажимаю на кнопку (короткое нажатие), то переменной присваивается true и соответственно при отжатии присваивается false. Что приводит в vis к выключению лампочки.
UPD. Ошибочка, меняется состояние с true на false это у кнопки (megad.0.p0_P0). Все равно не могу понять
UPD. Правильно ли я мыслю?
on('megad.0.p0_P0', function (obj) { if (obj.newState.val === true && getState('megad.0.p7_P7').val === false) { setState ('megad.0.p7_P7', true); log('вкл. порт 7, короткое нажатие'); }else if(obj.newState.val === true && getState('megad.0.p7_P7').val === true){ setState ('megad.0.p7_P7', false); log('выкл. порт 7, короткое нажатие'); } });
-
Пофиксил misc для входа. Добавил параметер "Дребезг". Поправил поиск.
Что это такое? По имени naf
-
Вчера всплыла еще такая вещь - при снятии галочки "двойное нажатие" перестали работать скрипты на одиночное нажатие:
on("megad.0.p9_P9", function (obj) { if (obj.newState.val === true) { request(Lamp4); } });
В чем может быть подвох? Галочку вернул - она почти не мешает, но это лишняя нагрузка на систему и лишняя задержка для ожидания того, чего не нужно… `
Просто там генерировались 0 и 1 вместо true и false.Можешь в последней версии 0.2.11 поменять строку 934 с
adapter.setState(config.id, config.value, true);
на
adapter.setState(config.id, !!config.value, true);
-
Bluefox, если порт настроен как P&R (при изменении), как я должен написать скрипт, чтобы по нажатию физической кнопки, в vis так же отображалось что лампочка горит.
При нажатии лампочки в vis переменной megad.0.p7_P7 устанавливаетcя значение в true, физическая лампа загорается. Если я нажимаю на кнопку (короткое нажатие), то переменной присваивается true и соответственно при отжатии присваивается false. Что приводит в vis к выключению лампочки.
UPD. Ошибочка, меняется состояние с true на false это у кнопки (megad.0.p0_P0). Все равно не могу понять
UPD. Правильно ли я мыслю?
on('megad.0.p0_P0', function (obj) { if (obj.newState.val === true && getState('megad.0.p7_P7').val === false) { setState ('megad.0.p7_P7', true); log('вкл. порт 7, короткое нажатие'); }else if(obj.newState.val === true && getState('megad.0.p7_P7').val === true){ setState ('megad.0.p7_P7', false); log('выкл. порт 7, короткое нажатие'); } }); ```` `
Да всё правильно. Работает? Лампочку в виз надо рисовать по megad.0.p7_P7.
Вот так
[{"tpl":"tplMfdSocketCtrl","data":{"oid":"megad.0.p7_P7","visibility-cond":"==","visibility-val":1,"asButton":true,"oidTrue":"megad.0.p0_P0","oidFalse":"megad.0.p0_P0","oidTrueValue":"false","oidFalseValue":"true","invert_state":false,"iconColor":"#143afa","icon_off":"/vis/widgets/jqui-mfd/img/light_light_dim_0.svg","icon_on":"/vis/widgets/jqui-mfd/img/light_light_dim_100.svg","invert_icon":false},"style":{"left":"680px","top":"176px"},"widgetSet":"jqui-mfd"}]
-
Да, заработало.
В твоем элементе у меня почему то значки не отобразились и он не заработал. В логе: <u>megad-0 2015-09-29 00:17:40 error Cannot write the read only port megad.0.p0_P0</u>
И как влияет ID объекта при true: megad.0.p0_P0 и ID объекта при false: megad.0.p0_P0 на лампочку (для чего это нужно)?
У меня вот такой элемент работает
[{"tpl":"tplHqButton","data":{"visibility-cond":"==","visibility-val":1,"oid":"megad.0.p7_P7","min":"false","max":"true","iconName":"img/bulb_off.png","btIconWidth":"56","offsetAuto":"true","leftOffset":"15","topOffset":"55","timeAsInterval":"true","infoLeftFontSize":"12","infoFontRightSize":"12"},"style":{"left":"485px","top":"233px"},"widgetSet":"hqwidgets"}]
-
Нажатие кнопки поиска
Error: 2015-09-29 00:31:30 error at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:134:20) Error: 2015-09-29 00:31:30 error at Socket.StatesInMemClient.client.on.connectionTimeout (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:45:30) Error: 2015-09-29 00:31:30 error at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1891:34) Error: 2015-09-29 00:31:30 error at Adapter.emit (events.js:95:17) Error: 2015-09-29 00:31:30 error at Adapter.adapter.config.ports.(anonymous function).value (/opt/iobroker/node_modules/iobroker.megad/main.js:87:17) Error: 2015-09-29 00:31:30 error at discoverMega (/opt/iobroker/node_modules/iobroker.megad/main.js:702:17) Error: 2015-09-29 00:31:30 error at discoverMegaOnIP (/opt/iobroker/node_modules/iobroker.megad/main.js:671:24) Error: 2015-09-29 00:31:30 error at Object.exports.createSocket (dgram.js:130:10) Error: 2015-09-29 00:31:30 error at new Socket (dgram.js:113:16) Error: 2015-09-29 00:31:30 error at newHandle (dgram.js:88:9) Error: 2015-09-29 00:31:30 error Bad socket type specified. Valid types are: udp4, udp6 message 2015-09-29 00:31:30 error messagebox.system.adapter.megad.0 [object Object] Bad socket type specified. Valid types are: udp4, udp6
Если используется модуль Datagram Sockets, то там написано: Creates a datagram Socket of the specified types. Valid types are udp4 and udp6.
6305_flot_lueftung.png -
Нажатие кнопки поиска
Error: 2015-09-29 00:31:30 error at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:134:20) Error: 2015-09-29 00:31:30 error at Socket.StatesInMemClient.client.on.connectionTimeout (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:45:30) Error: 2015-09-29 00:31:30 error at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1891:34) Error: 2015-09-29 00:31:30 error at Adapter.emit (events.js:95:17) Error: 2015-09-29 00:31:30 error at Adapter.adapter.config.ports.(anonymous function).value (/opt/iobroker/node_modules/iobroker.megad/main.js:87:17) Error: 2015-09-29 00:31:30 error at discoverMega (/opt/iobroker/node_modules/iobroker.megad/main.js:702:17) Error: 2015-09-29 00:31:30 error at discoverMegaOnIP (/opt/iobroker/node_modules/iobroker.megad/main.js:671:24) Error: 2015-09-29 00:31:30 error at Object.exports.createSocket (dgram.js:130:10) Error: 2015-09-29 00:31:30 error at new Socket (dgram.js:113:16) Error: 2015-09-29 00:31:30 error at newHandle (dgram.js:88:9) Error: 2015-09-29 00:31:30 error Bad socket type specified. Valid types are: udp4, udp6 message 2015-09-29 00:31:30 error messagebox.system.adapter.megad.0 [object Object] Bad socket type specified. Valid types are: udp4, udp6
Если используется модуль Datagram Sockets, то там написано: Creates a datagram Socket of the specified types. Valid types are udp4 and udp6. `
Версия node.js старая… Попробуй поменять строчку 671 в main.js наvar client = dgram.createSocket('udp4');
-
Обновил до 0.10.40, тоже самое. Еще новее?
-
Обновил до 0.10.40, тоже самое. Еще новее? `
забудь.Я поменял вызов. Обнови megad