NEWS
Драйвер MegaD-2561
-
Bluefox , три порта настроены 1WBUS
Делаю запрос
...... } else if (settings.d == 5) { var port = p; var parts = adapter.config.ip.split(':'); var options = { host: parts[0], port: parts[1] || 80, path: '/' + adapter.config.password + '/?pt=' + port + '&cmd=list' }; adapter.log.debug('1WBUS LIST http://' + options.host + options.path); adapter.log.debug('PORT: ' + port); http.get(options, function (res) { var data = ''; res.on('data', function (chunk) { data += chunk; }); res.on('end', function () { adapter.log.debug('PORT: ' + port + ' ' + 'DATA: ' + data); }); }); } else if (settings.d == 6) { .....
получаю ответ
megadd.0 2017-03-11 00:19:11.358 debug PORT: 33 DATA: 30c5b8000000:31.81;32c5b8000000:27.00;31c5b8000000:-15.81 megadd.0 2017-03-11 00:19:11.061 debug PORT: 33 DATA: 30c6b8000000:28.31;32c6b8000000:17.12;31c6b8000000:-15.18 megadd.0 2017-03-11 00:19:10.764 debug PORT: 33 DATA: 30c9b8000000:-10.56 megadd.0 2017-03-11 00:19:10.525 debug PORT: 33 megadd.0 2017-03-11 00:19:10.525 debug 1WBUS LIST http://192.168.1.14/sec/?pt=33&cmd=list megadd.0 2017-03-11 00:19:10.525 debug PORT: 15 megadd.0 2017-03-11 00:19:10.525 debug 1WBUS LIST http://192.168.1.14/sec/?pt=15&cmd=list megadd.0 2017-03-11 00:19:10.525 debug PORT: 5 megadd.0 2017-03-11 00:19:10.524 debug 1WBUS LIST http://192.168.1.14/sec/?pt=5&cmd=list
почему в ответе PORT всегда последний(33) из запроса, как сделать? `
Как сделать, что бы по порядку? -
Где можно посмотреть весь код?
-
Где можно посмотреть весь код? `
С коментом 1Wirehttps://github.com/ausHaus/ioBroker.megadd
03.05 я тебе в личные писал, там есть пояснение.
-
Где можно посмотреть весь код? `
С коментом 1Wirehttps://github.com/ausHaus/ioBroker.megadd
03.05 я тебе в личные писал, там есть пояснение. `
48_main.js -
Работает?
-
Работает? `
megadd.0 2017-03-13 18:49:57.227 error at process._tickCallback (node.js:425:17) megadd.0 2017-03-13 18:49:57.227 error at nextTickCallbackWith2Args (node.js:511:9) megadd.0 2017-03-13 18:49:57.227 error at endReadableNT (_stream_readable.js:923:12) megadd.0 2017-03-13 18:49:57.227 error at IncomingMessage.emit (events.js:166:7) megadd.0 2017-03-13 18:49:57.227 error at emitNone (events.js:72:20) megadd.0 2017-03-13 18:49:57.227 error at IncomingMessage. (/opt/iobroker/node_modules/iobroker.megadd/main.js:130:25) megadd.0 2017-03-13 18:49:57.227 error at /opt/iobroker/node_modules/iobroker.megadd/main.js:816:23 megadd.0 2017-03-13 18:49:57.227 error at /opt/iobroker/node_modules/iobroker.megadd/main.js:1151:25 megadd.0 2017-03-13 18:49:57.227 error at getPortStateW (/opt/iobroker/node_modules/iobroker.megadd/main.js:777:20) megadd.0 2017-03-13 18:49:57.227 error TypeError: ip.split is not a function megadd.0 2017-03-13 18:49:57.217 error uncaught exception: ip.split is not a function
-
Я тебе pull request прислал
-
Я тебе pull request прислал `
Дублирует запрос, соответственно и ответ. РЕШЕНО!!!! megadd.0 2017-03-14 06:41:43.232 debug inMem message megadd.0.* megadd.0.p33_P33_31c5b8000000
! megadd.0 2017-03-14 06:41:43.232 debug inMem message megadd.0.* megadd.0.p33_P33_32c5b8000000
! megadd.0 2017-03-14 06:41:43.218 debug inMem message megadd.0.* megadd.0.p33_P33_30c5b8000000
! megadd.0 2017-03-14 06:41:43.202 debug detected new value on port [33_31c5b8000000]: -15.81
! megadd.0 2017-03-14 06:41:43.201 debug detected new value on port [33_32c5b8000000]: 27
! megadd.0 2017-03-14 06:41:43.201 debug detected new value on port [33_30c5b8000000]: 31.81
! megadd.0 2017-03-14 06:41:43.201 debug Response: 30c5b8000000:31.81;32c5b8000000:27.00;31c5b8000000:-15.81
! megadd.0 2017-03-14 06:41:42.982 debug inMem message megadd.0.* megadd.0.p15_P15_31c6b8000000
! megadd.0 2017-03-14 06:41:42.982 debug inMem message megadd.0.* megadd.0.p15_P15_32c6b8000000
! megadd.0 2017-03-14 06:41:42.982 debug inMem message megadd.0.* megadd.0.p15_P15_30c6b8000000
! megadd.0 2017-03-14 06:41:42.982 debug detected new value on port [15_31c6b8000000]: -15.18
! megadd.0 2017-03-14 06:41:42.981 debug detected new value on port [15_32c6b8000000]: 17.12
! megadd.0 2017-03-14 06:41:42.981 debug detected new value on port [15_30c6b8000000]: 28.31
! megadd.0 2017-03-14 06:41:42.980 debug Response: 30c6b8000000:28.31;32c6b8000000:17.12;31c6b8000000:-15.18
! megadd.0 2017-03-14 06:41:42.671 debug Response: 30c9b8000000:-10.56
! megadd.0 2017-03-14 06:41:42.576 debug inMem message megadd.0.* megadd.0.p33_P33_31c5b8000000
! megadd.0 2017-03-14 06:41:42.575 debug inMem message megadd.0.* megadd.0.p33_P33_32c5b8000000
! megadd.0 2017-03-14 06:41:42.556 debug inMem message megadd.0.* megadd.0.p33_P33_30c5b8000000
! megadd.0 2017-03-14 06:41:42.555 debug detected new value on port [33_31c5b8000000]: -15.81
! megadd.0 2017-03-14 06:41:42.555 debug detected new value on port [33_32c5b8000000]: 27
! megadd.0 2017-03-14 06:41:42.555 debug detected new value on port [33_30c5b8000000]: 31.81
! megadd.0 2017-03-14 06:41:42.554 debug Response: 30c5b8000000:31.81;32c5b8000000:27.00;31c5b8000000:-15.81
! megadd.0 2017-03-14 06:41:42.344 debug inMem message megadd.0.* megadd.0.p15_P15_31c6b8000000
! megadd.0 2017-03-14 06:41:42.343 debug inMem message megadd.0.* megadd.0.p15_P15_32c6b8000000
! megadd.0 2017-03-14 06:41:42.342 debug inMem message megadd.0.* megadd.0.p15_P15_30c6b8000000
! megadd.0 2017-03-14 06:41:42.342 debug detected new value on port [15_31c6b8000000]: -15.18
! megadd.0 2017-03-14 06:41:42.342 debug detected new value on port [15_32c6b8000000]: 17.12
! megadd.0 2017-03-14 06:41:42.341 debug detected new value on port [15_30c6b8000000]: 28.31
! megadd.0 2017-03-14 06:41:42.340 debug Response: 30c6b8000000:28.31;32c6b8000000:17.12;31c6b8000000:-15.18
! megadd.0 2017-03-14 06:41:42.118 debug Response: 30c9b8000000:-10.56
! megadd.0 2017-03-14 06:41:41.890 debug getPortStateW http://192.168.1.14/sec/?pt=33&cmd=list
! megadd.0 2017-03-14 06:41:41.890 debug getPortStateW http://192.168.1.14/sec/?pt=15&cmd=list
! megadd.0 2017-03-14 06:41:41.890 debug getPortStateW http://192.168.1.14/sec/?pt=5&cmd=list
! megadd.0 2017-03-14 06:41:41.889 debug Response: temp:24.00;OFF/0;OFF/0;;OFF;;temp:0.00/hum:0.00;OFF/OFF;NA/NA;OFF;0;0;0;255;ON;;OFF;temp:0.04/press:1.76;OFF/0;OFF/0;temp:6.00/hum:76.00;temp:0.00/hum:0.00;OFF;;OFF;;;OFF;OFF;ON;;OFF;temp:-2
! megadd.0 2017-03-14 06:41:39.658 debug getPortStateW http://192.168.1.14/sec/?pt=33&cmd=list
! megadd.0 2017-03-14 06:41:39.658 debug getPortStateW http://192.168.1.14/sec/?pt=15&cmd=list
! megadd.0 2017-03-14 06:41:39.658 debug getPortStateW http://192.168.1.14/sec/?pt=5&cmd=list
! megadd.0 2017-03-14 06:41:39.657 debug Response: temp:24.00;OFF/0;OFF/0;;OFF;;temp:0.00/hum:0.00;OFF/OFF;NA/NA;OFF;0;0;0;255;ON;;OFF;temp:0.04/press:1.76;OFF/0;OFF/0;temp:6.00/hum:76.00;temp:0.00/hum:0.00;OFF;;OFF;;;OFF;OFF;ON;;OFF;temp:-2
! megadd.0 2017-03-14 06:41:37.758 debug getPortState http://192.168.1.14/sec/?cmd=all
P.S. Лишние строки затесалисьНу и самое главное в чем был вопрос, как создать эти порты. p5_P5_30c9b8000000, p15_P15_30c6b8000000, p15_P15_31c6b8000000, ….p33P33_..
! if (settings.pty == 3) {
! obj.common.write = false;
! obj.common.read = true;
! obj.common.def = 0;
! obj.common.type = 'number';
! if (settings.d == 1 || settings.d == 2 || settings.d == 3) {
! …..
! } else if (settings.d == 5) { // 1Wire
! obj.common.min = -30;
! obj.common.max = 30;
! obj.common.unit = '°C';
! obj.common.desc = 'P' + p + ' - temperature';
! obj.common.type = 'number';
! if (!obj.common.role) obj.common.role = 'value.temperature';
! .....
Кое что подправил! if (val !== _ports[_port].value || _ports[_port].q !== q) {
! adapter.log.debug('VAL :' + val + ' ' + 'PORT VAL :' + _ports[_port].value);
! _ports[_port].oldValue = _ports[_port].value;
! if (_ports[_port].pty == 3 && _ports[_port].d == 5) {
! adapter.log.debug('detected new value on port [' + port + '' + id[0] + ']: ' + val);
! ///adapter.setState(_ports[port].id + '' + id[0], {val: value, ack: true, q: q});
! adapter.setState(_ports[port].id + '' + id[0], {val: val, ack: true, q: q}); //haus
! }
! _ports[_port].value = val;
! _ports[_port].q = q;
! }
Вбил руками порты megadd.0.p33_P33_32c5b8000000, …... Неправильно определяет if (val !== _ports[_port].value || _ports[_port].q !== q) { если больше одного датчика! megadd.0 2017-03-14 17:21:29.678 debug inMem message megadd.0.* megadd.0.p33_P33_31c5b8000000
! megadd.0 2017-03-14 17:21:29.677 debug inMem message megadd.0.* megadd.0.p33_P33_32c5b8000000
! megadd.0 2017-03-14 17:21:29.665 debug inMem message megadd.0.* megadd.0.p33_P33_30c5b8000000
! megadd.0 2017-03-14 17:21:29.664 debug detected new value on port [33_31c5b8000000]: -17.37
! megadd.0 2017-03-14 17:21:29.663 debug VAL :-17.37 PORT VAL :27
! megadd.0 2017-03-14 17:21:29.663 debug detected new value on port [33_32c5b8000000]: 27
! megadd.0 2017-03-14 17:21:29.663 debug VAL :27 PORT VAL :31.81
! megadd.0 2017-03-14 17:21:29.662 debug detected new value on port [33_30c5b8000000]: 31.81
! megadd.0 2017-03-14 17:21:29.662 debug VAL :31.81 PORT VAL :-17.37
! megadd.0 2017-03-14 17:21:29.661 debug Response: 30c5b8000000:31.81;32c5b8000000:27.00;31c5b8000000:-17.37
Иногда MegaD на запрос http://192.168.1.14/sec/?pt=33&cmd=list может вернуть "busy" если шина занята конвертацией, здесь главное чтобы драйвер не парсил этот ответ или как вариант повторил запрос скажем через 5-10 секунд.! megadd.0 2017-03-14 09:45:38.692 debug Response: busy
! megadd.0 2017-03-14 09:45:38.611 debug Response: busy
! megadd.0 2017-03-14 09:45:38.600 debug Response: busy
! megadd.0 2017-03-14 09:45:32.537 debug getPortStateW http://192.168.1.14/sec/?pt=33&cmd=list
! megadd.0 2017-03-14 09:45:32.536 debug getPortStateW http://192.168.1.14/sec/?pt=15&cmd=list
! megadd.0 2017-03-14 09:45:32.534 debug getPortStateW http://192.168.1.14/sec/?pt=5&cmd=list -
Помогите, плз, пошагово настроить мегу2561 и драйвер, делал по аналогии с драйвером мега328 (который работает отлично), не получилось - состояние портов меняется раз в 30 сек, а не по факту нажатия кнопки
кнопка на порту 18, реле на порту 25. с каждым нажатием кнопки меняем состояние реле
-
Помогите, плз, пошагово настроить мегу2561 и драйвер, делал по аналогии с драйвером мега328 (который работает отлично), не получилось - состояние портов меняется раз в 30 сек, а не по факту нажатия кнопки
кнопка на порту 18, реле на порту 25. с каждым нажатием кнопки меняем состояние реле `
Настройки отличаются от Megad-328. В принципе достаточно считать настройки с Megad-2561(если настроен) и после этого записать настройки в Megad-2561 (что бы прописался сервер и инстанция(скрипт)).Пример если кнопка
scripton({id: 'megadd.0.p1_P1', change: 'any'}, function (obj) { if (obj.newState.val === true && getState('megadd.0.p24_P24').val === false) { setState('megadd.0.p24_P24', true); } else if (obj.newState.val === true && getState('megadd.0.p24_P24').val === true) { setState('megadd.0.p24_P24', false); } });
-
..В принципе достаточно считать настройки с Megad-2561(если настроен) и после этого записать настройки в Megad-2561 (что бы прописался сервер и инстанция(скрипт)).. `
НИФИГАДва вечера бился практически методом тыка
настроил mega2561: каждый вход "mod P с галочкой". при этом без сервера выполняется автономная команда
прочитал драйвером настройки.
изменил в драйвере режим входов на "при изменении" (после считывания было "при замыкании")
сохранил (без сохранения в сам мегад3561!)
скрипт типа:
on('megadd.0.p2_P2', function (obj) { if (obj.newState.val === true && getState('megadd.0.p9_P9').val === false) { setState ('megadd.0.p9_P9', true); }else if(obj.newState.val === true && getState('megadd.0.p9_P9').val === true){ setState ('megadd.0.p9_P9', false); } });
ВУАЛЯ
-
..В принципе достаточно считать настройки с Megad-2561(если настроен) и после этого записать настройки в Megad-2561 (что бы прописался сервер и инстанция(скрипт))..
НИФИГА
????? что не так?
@Pooh:Два вечера бился практически методом тыка
настроил mega2561: каждый вход "mod P с галочкой". при этом без сервера выполняется автономная команда
прочитал драйвером настройки. `
Считал драйвер настройки правильно?
@Pooh:изменил в драйвере режим входов на "при изменении" (после считывания было "при замыкании")
сохранил (без сохранения в сам мегад3561!) `
Драйвер MegaD-2561, как я писал выше отличается от MegaD-328. При считывание конфига в настройках драйвера менять ничего не надо, а если поменял то надо записать изменения в MegaD-2561. ТО ЕСТЬ ИЗ ДРАЙВЕРА МОЖНО ПОМЕНЯТЬ ВСЕ НАСТРОЙКИ MegaD-2561, НЕ ИСПОЛЬЗУЯ WEB MegaD-2561. -
у меня в драйвере нет "текущая версия прошивки… доступная версия прошивки..."
v0.2.0
-
..????? что не так?.. `
думаю драйвером не учитывается, что "Флажок (чекбокс) справа от поля Mode указывает, что при наличии сервера, устройство отправляет на сервер сообщения всегда в режиме P&R, а при его отсутствии Action выполняется только в том режиме, который установлен в Mode." (http://ab-log.ru/smart-house/ethernet/megad-2561)т.е. если установить в модуле режим P&R и считать драйвером, то все хорошо, пока сервер работает. если установить в модуле режим P с галочкой и считать драйвером, то все хорошо, пока сервер (драйвер) не работает.
Счастье наступает, когда в модуле режим входов установлен в P с галочкой, конфиг считан драйвером и режим (в драйвере) изменен на "при изменении"
запись параметров в модуль из драйвера результатов не дает, ибо драйвер четко записывает режим P&R, при котором не работает автономный режим…
и да, считывается/записывается один-в-один
-
-
я ж говорил, если просто считать с меги и сохранить в драйвере, то состояние портов меняется раз в 30 сек, по факту опроса драйвером, а не по факту нажатия кнопки
какая сейчас версия драйвера актуальная? у меня 0.2.0..
-
я ж говорил, если просто считать с меги и сохранить в драйвере, то состояние портов меняется раз в 30 сек, по факту опроса драйвером, а не по факту нажатия кнопки
какая сейчас версия драйвера актуальная? у меня 0.2.0.. `
Попробуй с git.cd /opt/iobroker iobroker stop megadd npm install https://github.com/ausHaus/ioBroker.megadd/tarball/master/ iobroker upload megadd iobroker restart megadd
-
Обновил до 0.2.2
Совсем другой коленкор! Теперь все работает как надо! Спасибо!
Только теперь в админе вкладка "драйвера" почему-то зеленая, хотя обновлять нечего…
-
Наверное вопрос надо было в тему скрипты…. тем не менее:
Подключаю счетчик воды (геркон, 10л/импульс). становится ясно, что:
-
даже в случае бесперебойного аптайма размерности встроенного в мегу счетчика не хватит на длительный срок
-
при сбросе мегад показания собъются (так же как и при перезапуске айоброкера)
Внимание, вопрос: как синхронизировать показания счетчиков и учесть при этом размерность встроенного в мегу (65тыс вроде как)
-
-
Наверное вопрос надо было в тему скрипты…. тем не менее:
Подключаю счетчик воды (геркон, 10л/импульс). становится ясно, что:
-
даже в случае бесперебойного аптайма размерности встроенного в мегу счетчика не хватит на длительный срок
-
при сбросе мегад показания собъются (так же как и при перезапуске айоброкера)
Внимание, вопрос: как синхронизировать показания счетчиков и учесть при этом размерность встроенного в мегу (65тыс вроде как) `
Я вот так сделал http://blog.instalator.ru/archives/711 -