Въведение
OpenHAB е платформа за домашна автоматизация с отворен код с акцент върху "прозрачната" работа с различни производители на устройства и технологии. В резултат на това, ако дадено устройство е популярно, то вероятно ще бъде поддържано от нея рано или късно. Той е разработен на Java, което позволява да се стартира на различни устройства; има добре развита общност от потребители и разработчици.
В основата на концепцията на openHAB с т.нар. "Bindings" - това са софтуерни комуникационни модули , които свързват към платформата различните видове устройства. Разбира се, поддържат се MQTT и SNMP като "Bindings", което прави интегрирането на NetControl изключително лесно.
За основните обекти, с които оpenHAB работи, има няколко термина:
"Things" ("Неща") - Това са реалните хардуерни устройства, които се свързват към платформата, посредством даден "Binding" ("протокол"). В нашият случай един NetControl представлява един "Thing" за openHAB, който използва "MQTT Binding"
"Channels" ("Канали") - Това са различните входно/изходни канали, които дадено хардуерно устройство поддържа: например 2бр. релейни изходи, 1бр. алармен вход и 2бр. входове за сензори при NetControl 2R2S1A.
"Items" ("Точки") - Това са абстрактните обекти, с които реално openHAB работи на ниво автоматизация и управление - създаване на графики, бутони, правила, скриптове, таймери и т.н. Тези "Items" може да се свързват с "Channels" и така се осъществява връзката между физическото устройството и openHAB.
NetControl (MQTT) и openHAB
Интегрирането на NetControl е изключително лесно и става изцяло през WEB интерфейса на openHAB. Предполагаме, че вече имате MQTT брокер (той не е част от openHAB) и NetControl е свързан към него. По-долу са дадени стъпките, които трябва да се изпълнят (с openHAB 3.0.1):
- Уверете се, че в настройките за MQTT на NetControl е избрано 'PUBLISH value format' = JSON
- Добавете "MQTT" поддръжака: openHAB::Settings->Bindings->Add (+), намерете в списъка "MQTT Binding" и го инсталирайте
- Добавете "JSONPath Transformation" и "RegEx Transformation" от openHAB::Settings->Transformations->Add (+)
- Добавяне на MQTT Thing за връзката към вашия брокер: openHAB::Settings->Things->Add (+), изберете "MQTT Binding и след това "MQTT Broker". Задайте име за "thing" напр. "MyMQTTBroker", IP адрес, порт, потребител, парола и т.н. за връзката към брокера.
- В openHAB::Settings->Things вече трябва да се е добавил "MyMQTTBroker" и да е със статус "Online": връзката към брокера е готова и работеща.
- Добавяме Вашият NetControl също като "Things": openHAB::Settings->Things->Add (+), избирате "MQTT Binding" при "Choose Binding", след това "Generic MQTT Thing". Задавате си име за новосъздадения "Thing" обект, напр. "MyNetControl". Най-важното е в полето за "Parent Bridge" да влезете и да изберете "MyMQTTBroker" - така указвате, че Вашият NetControl ще използва MQTT връзката, която създадохте в т. 3.
- В openHAB::Settings->Things вече трябва да се е добавил и "MyNetControl" и да е със статус "Online".
- Следва да се добавят, поддържаните от устройството канали: openHAB::Settings->Things->MyNetControl->Channels->AddChannel.
Първо трябва да се зададете име на канала, ID и неговият тип. За релейните канали може да изберете "On/Off Switch", за сензорите "Number Value", за алармен вход "Open/Close Contact".
След това трябва да се въведат MQTT темите за съответния канал, например за Line 1:MQTT State Topic = NetControl/subgroup/out/ch9
Номерата на поддържаните канали за различните модели трябва да видите в ръководството. Ако сте задали "User defined sub-topic" в MQTT настройките на NetControl също трябва да я отразите.
MQTT Command Topic = NetControl/subgroup/in/ch9 (задава се само за канали, които приемат команди, напр. релейните изходи)
В менюто за добаване на канал има отметка "Show advanced" - ОТМЕТНЕТЕ Я! В полето "Incoming Value Transformations" е необходимо да се добави:За релейни канали: Incoming Value Transformations = JSONPATH:$.value.real
За входове за сензори:Incoming Value Transformations = JSONPATH:$.value.real∩REGEX:(.*?)C
/като замените символа 'C' (в случая е за датчика TDS300) с дименсията на съответния канал, която се подава в JSON MQTT съобщението на канала/ - Върнете се обратно в менюто "Channels" и под създадените канали ще се появи 'Add link to item...'. Създайте 'Item' за всеки един канал.
С така създадените 'Items' вече може да си създадете 'Pages' с бутони, графики и т.н. За повече информация https://www.openhab.org/docs/