Wb-mqtt-serial driver: различия между версиями

м
→‎Поддерживаемые устройства: Добавил шторы и изменил структуру статьи, не правил
м (→‎Поддерживаемые устройства: Добавил шторы и изменил структуру статьи, не правил)
Строка 7: Строка 7:
Полное описание драйвера смотрите [https://github.com/contactless/wb-mqtt-serial в репозитории на Github].
Полное описание драйвера смотрите [https://github.com/contactless/wb-mqtt-serial в репозитории на Github].


==Поддерживаемые устройства==  
==Поддерживаемые протоколы==  
Полный список поддерживаемых устройств можно посмотреть в таблице [[Поддерживаемые устройства#Протестированные устройства сторонних производителей |Протестированные устройства сторонних производителей]].


Поддерживается работа с:
=== Modbus ===
*Периферийными устройствами Wiren Board с интерфейсом Modbus: модули реле, диммеры, счётчики импульсов, датчики и т.п.
* Периферийные устройства Wiren Board с интерфейсом Modbus: модули реле, диммеры, счётчики импульсов, датчики и т.п.
*Устройствами сторонних производителей, работающих по протоколу [[Протокол Modbus|Modbus]].  
* Устройства сторонних производителей, работающих по протоколу [[Протокол Modbus|Modbus]].  
*Некоторыми устройствами, использующими протоколы ADICON, A-BUS, [http://smart.uniel.ru/ Uniel], [http://www.milur.ru/ Милур], [http://www.eksis.ru/catalog/measures-of-relative-humidity-and-temperature/ ИВТМ], [[Сounters Pulsar | Пульсар]], [http://www.incotexcom.ru/m230art.htm Меркурий 230], [http://www.energomera.ru/ Энергомера ГОСТ МЭК 61107], [https://www.meters.taipit.ru/ НЕВА МТ 32х ГОСТ МЭК 61107]. Полный список поддерживаемых устройств можно посмотреть в таблице [[Поддерживаемые устройства#Протестированные устройства сторонних производителей |Протестированные устройства сторонних производителей]].
 
=== Энергомера ГОСТ МЭК 61107 ===
Протокол работает только со следующими настройками порта: 9600 8N1 или 9600 7E1. При выборе 9600 8N1 физически обмен со счётчиками происходит в режиме 9600 7E1, в соответствии с МЭК 61107, но бит чётности эмулируется программно за счёт восьмого бита посылки. Это сделано для возможности использования счётчиков на одной шине с другими устройствами, которые работают только с восьмибитными словами.
 
Реализован только режим "быстрого группового чтения" без открытия сессии. Этот режим специфичен для протокола счётчиков Энергомера и не соответствует стандарту ГОСТ МЭК 61107.
 
=== НЕВА МТ 32х ГОСТ МЭК 61107 ===
Протокол работает только со следущими настройками порта: 9600 8N1 или 9600 7E1. При выборе 9600 8N1 физически обмен с счётчиками происходит в режиме 9600 7E1, в соответствии с МЭК 61107, но бит чётности эмулируется программно за счёт восьмого бита посылки. Это сделано для возможности использования счётчиков на одной шине с другими устройствами, которые работают только с восьмибитными словами.
 
Реализован режим чтения параметров по OBIS-кодам (IEC 62056-6-1:2017)
 
=== DLMS/COSEM, СПОДЭС ===
Физический адрес устройства задаётся в параметре slave_id. Опрашивается логическое устройство с адресом 1. Адрес клиента задаётся в параметре dlms_client_address, если он не задан, используется адрес 16 (публичный клиент). Тип аутентификации задаётся в параметре dlms_auth. Коммуникационный профиль задаётся в параметре dlms_interface, если он не задан, используется протокол HDLC. Поддерживается адресация по логическому имени объектов. Данные читаются по OBIS-кодам (IEC 62056-6-1:2017). OBIS-коды записываются в адресе регистра строкой, например 0.0.96.9.0.255. Поддерживается автоматический разбор данных от объектов с классом register(class_id = 3), остальные классы не поддерживаются.
 
=== Somfy SDN ===
Тип мотора(node type) можно задать через параметр устройства node_type. По умолчанию используется Sonesse 30. Для организации отправки команд можно использовать канал с типом регистра command. В этом случае заголовок пакета (MSG) задаётся в адресе регистра. Число, записываемое в такой регистр должны содержать длину в младшем байте. Например, 0x03020103 будет означать что в команду будет добавлено 3 байта: 0x01, 0x02, 0x03. Для организации запроса статуса можно использовать канал с типом регистра param. В этом случае заголовок запроса (MSG) задаётся в адресе регистра. А заголовок ответа - в параметре response_header. Поддерживается возможность указать смещение и длину данных в ответе.
 
=== WinDeco ===
Для организации отправки команд можно использовать канал с типом регистра command. В этом случае код команды задаётся в адресе регистра.
 
=== Dooya ===
Для организации отправки команд управления можно использовать канал с типом регистра command. Для организации доступа к настройкам можно использовать канал с типом регистра param. Во всех случаях адрес данных задаётся в адресе регистра.
 
=== Прочие ===
* ADICON,  
* A-BUS,  
* [http://smart.uniel.ru/ Uniel],  
* [http://www.milur.ru/ Милур],  
* [http://www.eksis.ru/catalog/measures-of-relative-humidity-and-temperature/ ИВТМ],  
* [[Сounters Pulsar | Пульсар]],  
* [http://www.incotexcom.ru/m230art.htm Меркурий 230].


=== Поддержка устройств различных протоколов на одной шине ===  
=== Поддержка устройств различных протоколов на одной шине ===  
Строка 25: Строка 56:


Учитывайте, что сторонние производители устройств могут вносить недокументированные изменения в протокол, поэтому перед покупкой устройства желательно убедиться в работоспособности выбранного решения.
Учитывайте, что сторонние производители устройств могут вносить недокументированные изменения в протокол, поэтому перед покупкой устройства желательно убедиться в работоспособности выбранного решения.
=== Широковещательные сообщения ===
Протоколы Меркурий 230, Энергомера ГОСТ МЭК 61107, НЕВА МТ 32х ГОСТ МЭК 61107 поддерживают отправку широковещательных сообщений, если не указывать идентификатор устройства, или указать вместо него пустую строку. Это можно использовать, если на шине только одно устройство такого типа, и его адрес неизвестен.
При этом нельзя на одном порту одновременно использовать широковещательные сообщения Энергомера ГОСТ МЭК 61107 и НЕВА МТ 32х ГОСТ МЭК 61107.


=== Доработка драйвера для поддержки новых устройств ===  
=== Доработка драйвера для поддержки новых устройств ===