NEWS
Драйвер MegaD-2561
-
Где можно посмотреть весь код? `
С коментом 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 прислал `
Дублирует запрос, соответственно и ответ. РЕШЕНО!!!! 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. -
..????? что не так?.. `
думаю драйвером не учитывается, что "Флажок (чекбокс) справа от поля Mode указывает, что при наличии сервера, устройство отправляет на сервер сообщения всегда в режиме P&R, а при его отсутствии Action выполняется только в том режиме, который установлен в Mode." (http://ab-log.ru/smart-house/ethernet/megad-2561)т.е. если установить в модуле режим P&R и считать драйвером, то все хорошо, пока сервер работает. если установить в модуле режим P с галочкой и считать драйвером, то все хорошо, пока сервер (драйвер) не работает.
Счастье наступает, когда в модуле режим входов установлен в P с галочкой, конфиг считан драйвером и режим (в драйвере) изменен на "при изменении"
запись параметров в модуль из драйвера результатов не дает, ибо драйвер четко записывает режим P&R, при котором не работает автономный режим…
и да, считывается/записывается один-в-один
-
я ж говорил, если просто считать с меги и сохранить в драйвере, то состояние портов меняется раз в 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 -
Наверное вопрос надо было в тему скрипты…. тем не менее:
Подключаю счетчик воды (геркон, 10л/импульс). становится ясно, что:
-
даже в случае бесперебойного аптайма размерности встроенного в мегу счетчика не хватит на длительный срок
-
при сбросе мегад показания собъются (так же как и при перезапуске айоброкера)
Внимание, вопрос: как синхронизировать показания счетчиков и учесть при этом размерность встроенного в мегу (65тыс вроде как)
-
-
Наверное вопрос надо было в тему скрипты…. тем не менее:
Подключаю счетчик воды (геркон, 10л/импульс). становится ясно, что:
-
даже в случае бесперебойного аптайма размерности встроенного в мегу счетчика не хватит на длительный срок
-
при сбросе мегад показания собъются (так же как и при перезапуске айоброкера)
Внимание, вопрос: как синхронизировать показания счетчиков и учесть при этом размерность встроенного в мегу (65тыс вроде как) `
Я вот так сделал http://blog.instalator.ru/archives/711 -
-
Наверное вопрос надо было в тему скрипты…. тем не менее:
Подключаю счетчик воды (геркон, 10л/импульс). становится ясно, что:
-
даже в случае бесперебойного аптайма размерности встроенного в мегу счетчика не хватит на длительный срок
-
при сбросе мегад показания собъются (так же как и при перезапуске айоброкера)
Внимание, вопрос: как синхронизировать показания счетчиков и учесть при этом размерность встроенного в мегу (65тыс вроде как) ` ````
createState('Water_meter',0);
var lastValue = null;on("megadd.0.p1_P1_counter", function (obj) {
// initialisation
if (lastValue === null) {
lastValue = obj.state.val;
return;
}// Megadd have been restarted if (lastValue > obj.state.val) { setState('Water_meter', getState('Water_meter').val + obj.state.val, true); } else if (obj.state.val != lastValue) { setState('Water_meter', getState('Water_meter').val + (obj.state.val - lastValue), true); } else { return; } lastValue = obj.state.val;});
-
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden