Релиз IntraHouse V5
-
@Alex_Jet Но в этом модуле каналы адресуются слегка по другому, например вместо 43 будет 43А, 43В. Так их в плагине и создавать?
-
@Lost, канал должен выглядеть примерно так: 43_ffaa7892678_A (внутри - адрес 1-Wire )
-
@intrapro Ясно. Попробую.
-
@intrapro Как вы написали не работает. Работает если прописать канал как 43А или 43В. Как тут указать адрес модуля, чтобы можно на одной шине иметь несколько MEGAD-RW?
-
@Lost, плагин MegaD для V5 не изменяли, только обернули. В V4 был функционал для работы с DS2413, описан здесь
- запрос /sec/?pt=32&cmd=list
- ответ приходит в виде 79c439000000:OFF/OFF;c6c439000000:ON/ON
Ответ отправляется в каналы 32_79c439000000_А, 32_79c439000000_B. и тд
Команда соответственно формируется так: /sec/?cmd=32A:1&addr=79c439000000
Посмотрите в отладчике, какой приходит ответ на запрос.
-
@intrapro В отладчике это:
27.01 21:21:48.059 megad2:
27.01 21:21:48.059 megad2: localhost => 192.168.1.15 HTTP GET /sec/?pt=43A&cmd=list
27.01 21:21:48.105 megad2: localhost <= 192.168.1.15 response: statusCode=200 contentType = text/html
27.01 21:21:48.106 megad2: body: 225758000000:OFF/OFF
27.01 21:21:48.107 IH: get [
{ id: '43A_225758000000_A', value: '0' },
{ id: '43A_225758000000_B', value: '0' }
-
@Lost, запрос д б /sec/?pt=43&cmd=list, не 43A
Тогда и каналы будут 43_225758000000_A, 43_225758000000_B
Запрос нужно только для одного канала делать, как обычно для 1-Wire, остальные заполняются результатами этого запроса
-
@intrapro Запрос/sec/?pt=43&cmd=list надо прописать в настройках канала? А сам канал как должен обозначаться?
-
Задал имена каналам 43_225758000000_A и 43_225758000000_B. Запрос в настройках канала А /sec/?pt=43&cmd=list. Период 30 сек. Ниже результат. По факту реле не щелкает.
27.01 21:43:11.066 megad2:
27.01 21:43:11.067 megad2: localhost => 192.168.1.15 HTTP GET /sec/?cmd=43_225758000000_A:1
27.01 21:43:11.089 megad2: localhost <= 192.168.1.15 response: statusCode=200 contentType = text/html
27.01 21:43:11.091 megad2: body: Done
27.01 21:43:11.094 IH: get [ { id: '43_225758000000_A', value: 1 } ]
set { d0034: { state: 1 } }
27.01 21:43:12.469 megad2:
27.01 21:43:12.469 megad2: localhost => 192.168.1.15 HTTP GET /sec/?cmd=43_225758000000_A:0
27.01 21:43:12.492 megad2: localhost <= 192.168.1.15 response: statusCode=200 contentType = text/html
27.01 21:43:12.494 megad2: body: Done
27.01 21:43:12.500 IH: get [ { id: '43_225758000000_A', value: 0 } ]
-
Вот ответ на запрос /sec/?pt=43&cmd=list
27.01 21:53:00.426 megad2:
27.01 21:53:00.427 megad2: localhost => 192.168.1.15 HTTP GET /sec/?pt=43&cmd=list
27.01 21:53:00.475 megad2: localhost <= 192.168.1.15 response: statusCode=200 contentType = text/html
27.01 21:53:00.477 megad2: body: 225758000000:OFF/OFF
27.01 21:53:00.478 IH: get [ { id: '43_225758000000_A', value: '0' } ]
set { d0034: { state: '0' } }
-
@Lost, команда почему-то неверно формируется:
- /sec/?cmd=43_225758000000_A:1
должно быть так? - /sec/?cmd=43A:1&addr=225758000000
А чтение сейчас у вас должно выполняться правильно. Попробуйте переключить реле не через систему
- /sec/?cmd=43_225758000000_A:1
-
@intrapro Не через систему реле включается/отключается. Все нормально работает если указать названия каналов 43А и 43В. Но тогда не получится адресоваться к нескольким модулям. Вот скрин текущих настроек канала А:
-
@Lost, в исходниках, почему-то адрес порта для таких операций ограничен < 40
Попробуйте отредактировать код плагина
Для этого на папке MEGAD перейдите на вкладку Редактор.
Выберите файл lib/plugin.js
В строке 332 начинается функция tryAB_ReleCommandВ строке 340 замените 40 на 50: xarr[0] < 40 => xarr[0] < 50
function tryAB_ReleCommand(id, value) { // 32_ffaa7892678_A - DS2413 let xarr = id.split('_'); if ( xarr.length == 3 && (xarr[2] == 'A' || xarr[2] == 'B') && xarr[1].length > 10 && !isNaN(xarr[0]) && xarr[0] < 50 && xarr[0] > 0 ) { // 32A:1&adr=ffaa7892678 return xarr[0] + xarr[2] + ':' + value + '&addr=' + xarr[1]; } }
Сохраните изменение и перезапустите плагин
-
@intrapro Да, все заработало как вы и писали. Плагин надо бы теперь обновить. А то со временем этот момент забудется. А период опроса какой лучше поставить для релейных модулей?
-
Пользователь @Lost написал в Релиз IntraHouse V5:
Да, все заработало как вы и писали. Плагин надо бы теперь обновить.
Хорошо, что заработало. Завтра выпустим обновление
А период опроса какой лучше поставить для релейных модулей?
Опыта работы с этими модулями у меня нет. Но чаще 30 сек 1-Wire опрашивать, думаю, не стоит.
-
@intrapro А смысл опроса релейного модуля какой? Я убрал опрос. Все работает и без него.
-
@Lost, смысл есть только в том случае, если реле может переключиться не через команду от сервера
-
@intrapro Ясно. Спасибо.
-
Каналы адресуют так - 35_9a2938000000_A
Запрос делаем только в одном канале одной и той же 1WB - /%pwd%/?pt=35&cmd=list
-
@intrapro, если реле переключается не через команду сервера, то MegaD шлет об этом сообщение на сервер.
Единственный момент, который я где-то уже описывал, заключается в том, что при старте плагина нужно делать принудительный опрос каналов 1WB, которые могут быть в режиме OUT -> DS2413 и DSen -> 1WB