Интеграция в iH счетчиков через MegaD



  • Главная особенность контроллера MegaD - это способность генерировать GET-запросы на сервер системы управления в случае изменения состояния входов контроллера (модули расширения MegaD-8I7O, MegaD-14-IN, MegaD-14-IOR, MegaD-16I-XT, моноблок MegaD-2561-24I14O-RTC). Ко входам IN можно подключить любые датчики, имеющие выход типа "сухой контакт" (при сработке датчика в нем замыкается/размыкается реле или уменьшает/увеличивает сопротивление активный элемент) - это выключатели, кнопки, герконы, датчики протечки, ИК-извещатели, пожарные извещатели, счетчики (типа "геркон"), датчик напряжения U-Sensor. В данной статье заострю внимание на интеграцию в систему intraHouse счетчиков потребления газа/электроэнергии/воды и прочие, имеющие выход типа "сухой контакт" или геркон.
    В частности распространенный и имеющий высокую надежность, а также внушительные габариты, счетчик газа BK-G4T можно интегрировать в систему, оснастив его родным модулем считывания - "IN-Z61". Однако, во-первых, он довольно дорого стоит для его "функциональности", во-вторых, его не просто приобрести ввиду отсутствия не только в розничной продаже, но и наличия в интернет-магазинах. Правда есть вариант намного дешевле и проще - это использование геркона типа "ИО-102-4" (такое решение на текущий момент работает 2 года без нареканий).
    iH_MegaD_Counter_IO-102-4.png

    От него нужно отрезать пластмассовую часть, которой он должен монтироваться на двери/рамы, и приклеить на обычный клей "Момент" в паз счетчика BK-G4T вот таким образом:
    Counter_Gaz_with_Gerkon.png

    Выход геркона подключаем к любому "стандартному" (не цифровому) входу контроллера MegaD. Конфигурируем порт следующим образом:
    iH_MegaD_Port_Settings.png
    После этого контроллер, при каждом срабатывании геркона, будет отправлять следующие GET-запросы на сервер intraHouse (можно посмотреть через раздел "Отладчик" соответствующего плагина megad):

    12.01 17:11:21.992 megad4: 192.168.11.24 => localhost:11024 HTTP GET /mod_megad.php?pt=7&cnt=15901&mdid=
    12.01 17:11:22.988 megad4: 192.168.11.24 => localhost:11024 HTTP GET /mod_megad.php?pt=7&m=2&cnt=15901&mdid=
    

    Первый запрос (/mod_megad.php?pt=7) - формируется сразу же после срабатывания геркона, а поскольку ось счетчика крутиться довольно медленно, то спустя ~1 секунду контроллер формирует второй запрос (/mod_megad.php?pt=7&m=2) - почему происходит так и для чего это сделано - читаем тут.
    Для отображения счетчика на мнемосхемах добавим новое устройство типа "Счетчик", в моем случае оно будет называться "Счетчик газа" и имеет ID "METER1_01". Чтобы получить дробную часть числа необходимо в свойствах устройства указать необходимое количество "Цифр после запятой". Для интеграции счетчика газа в iH в соответствующем плагине нужно:

    1. Добавить новый канал, привязав к нему ранее созданное устройство:
      iH_MegaD_Counter_Channel.png
      Запросы на сервер формируются самостоятельно, поэтому период опроса = 0 секунд, строку запроса оставляем без изменений. Самое главное - это ввести "Вес импульса счетчика". Поскольку при каждом срабатывании геркона у счетчика газа BK-G4T прибавляется одна сотая кубического метра газа (0.01), то вес импульса счетчика равен этому значению - 0.01.
    2. Добавить новое расширение для того, чтобы сервер знал на что ему нужно реагировать и что при этом делать:
      iH_MegaD_Counter_Extension.png
      В данном случае реагируем на запрос /mod_megad.php?pt=7&m=2 поскольку если будем реагировать на запрос /mod_megad.php?pt=7, то получится что за один проход состояние канала изменится два раза (в силу не идеальной реализации поиска расширений в плагине megad). При наличии вышеуказанного запроса изменяем состояние канала 7 (делаем "счет"): 7=CNT

    После проделанных действий в разделе "Отладчик" соответствующего плагина megad убеждаемся, что происходит правильный подсчет объемов:

    12.01 17:10:54.006 megad4: 192.168.11.24 => localhost:11024 HTTP GET /mod_megad.php?pt=7&cnt=15900&mdid=
    12.01 17:10:55.001 megad4: 192.168.11.24 => localhost:11024 HTTP GET /mod_megad.php?pt=7&m=2&cnt=15900&mdid=
    12.01 17:10:55.004 IH: get [ { id: '7', value: 6838.22 } ]
    set { METER1_01: { aval: 6838.22, err: 0 } }
    12.01 17:11:21.992 megad4: 192.168.11.24 => localhost:11024 HTTP GET /mod_megad.php?pt=7&cnt=15901&mdid=
    12.01 17:11:22.988 megad4: 192.168.11.24 => localhost:11024 HTTP GET /mod_megad.php?pt=7&m=2&cnt=15901&mdid=
    12.01 17:11:22.989 IH: get [ { id: '7', value: 6838.23 } ]
    set { METER1_01: { aval: 6838.23, err: 0 } }
    

    В данном случае, при каждом срабатывании геркона значение счетчика увеличивается на 0.01 м.куб. - с 6838.22 до 6838.23.
    Чтобы синхронизировать показания на счетчике с показаниями в системе необходимо вынести ранее созданное устройство "Счетчик газа" на мнемосхему, навести на устройство курсор и после долгого нажатия левой кнопки мыши откроется меню устройства - в текстовом поле необходимо ввести текущие показания счетчика и нажать кнопку справа.
    iH_MegaD_Device_Sinchronization.png

    Все, теперь показания счетчика газа на мнемосхеме соответствуют реальным показаниям счетчика и продолжают накапливаться.

    В случае с другими счетчиками в канале плагина megad необходимо правильно указать "Вес импульса счетчика". Например, счетчик потребления электроэнергии имеет на выходе 2000 импульсов на 1 кВт*ч, значит чтобы получить единицы измерения в кВт*ч нужно указать "Вес импульса счетчика" - 0.0005 (2000 имп. * 0.0005 = 1 кВт*ч).


Log in to reply