Релиз IntraHouse V5



  • Пользователь @homa написал в Релиз IntraHouse V5:

    вот я с лета откладываю переезд на v5, потому что судя по форуму проблем много, а ручной работы еще больше. переехать очень хочется, но понимаю, что нужно выделить очень много времени, а с ним напряг

    Я в аналогичной ситуации. Однако помню как переезжал с V3 на V4. На новой машинке установил V4 и размеренно создавал плагины, устройства, привязки и визуализацию. Аврал был только в тот момент когда выключил V3 и включил версию V4 - на всех железках вбил новый адрес сервера и начал отлаживать сценарии. В первую очередь конечно освещение/отопление/водоснабжение. Сейчас к этому всему добавились еще система протечки, охранка, контроль доступа, вентиляция, гараж, баня и куча сервисных вещей. У меня на текущий момент 290 устройств, 38 мнемосхем и 17 экранов, а главное - 76 рабочих сценариев (без наборов мультисценариев)....
    Но V5 стоит на том же железе что и V4, поэтому реально вначале перевести только освещение в доме (два отдельных контроллера), далее отопление и вентиляцию разом (завязаны друг на друга и это в сумме 4 контроллера), к ним в придачу охранка и всякие сервисные сценарии. Ну и в конце - гараж, баня и все сервисные сценарии.



  • Добрый вечер!
    Подключил к контроллеру MegaD модуль MegaD-2RW, который управляется по шине 1-wire. Из сценария с использованием this.pluginCommand каналы модуля переключаются нормально. Не могу разобраться, как управлять каналами этого модуля с мнемосхем. Или этот функционал еще не реализован?



  • @Lost, а причем тут мнемосхема и именно этот модуль? Все так же - к каналу плагина MegaD привязываете устройство, которое помещаете на мнемосхему.



  • @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
      А чтение сейчас у вас должно выполняться правильно. Попробуйте переключить реле не через систему


  • @intrapro Не через систему реле включается/отключается. Все нормально работает если указать названия каналов 43А и 43В. Но тогда не получится адресоваться к нескольким модулям. Вот скрин текущих настроек канала А:

    ae93cefd-b7d3-43dd-ad14-27829bc93e28-image.png



  • @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, смысл есть только в том случае, если реле может переключиться не через команду от сервера


Авторизуйтесь, чтобы ответить