Использование MegaD в openHAB
Добавлено: 25 сен 2015, 18:42
Частые вопросы об использовании MegaD в OpenHAB
как включить отладку:
Т.к. ветка данного форума не подразумевает подробные инструкции по настройке и использованию самого Openhab вопросы и ответы будут касаться работы именно с Мегадевайсом.
Но основные ссылки на ресурсы будут указаны.
1. Как установить OpenHAB
6. Как соединить мегу и OpenHAB
[*]Сигнал старта меги:
Для версии Openhab2
биндинг можно скачать по ссылке
Есть два варианта действий.
1)Через веб-интерфейс PaperUI
Где они находятся итд можно найти в описании выше, 1 версии
конфигурация полный список:
Для того, чтобы проверить достаточно скопировать целиком все строки в нужные файлы
все параметры появятся в PaperUI -> control
Первое сообщение от tim06ka:
Доброго времени суток!
Приходилось ли кому-нибудь интегрировать мегу в опенхаб?
С управлением устройством из оперхаба я справился:
Проблема с получением событий от устройства в опенхабе.
Может у кого-нибудь есть наработки по данному вопросу?
как включить отладку:
Код: Выделить всё
karaf console:
log:set DEBUG org.openhab.binding.megad
отключить:
log:set ERROR org.openhab.binding.megad
Но основные ссылки на ресурсы будут указаны.
1. Как установить OpenHAB
- Все инструкции по скачиванию, установки и запуску тут
- Общие настройки тут
- Что такое Items тут
- Что такое Sitemaps тут
- Описание что такое правила(сценарии) тут
- На этой странице можно узнать все возможные команды для работы с архивными данными
- Для работы с Мегадевайсом был создан специальный плагин(binding)
- Скачать его можно по ссылке
- Плагин помещается в папку addons
Код: Выделить всё
Jun 20 11:12:10 raspberrypi start.sh[540]: 2016-06-20 11:12:10.840 [INFO ] [.service.AbstractActiveService] - MegaDevice Refresh Service has been started Jun 20 11:12:10 raspberrypi start.sh[540]: 2016-06-20 11:12:10.874 [INFO ] [o.o.b.m.i.MegadeviceHttpServer] - Starting MegaHttpServer at 8585 port
в логах при этом должна появиться строчка - Номер порта можно изменить добавив в конец файластроки:
Код: Выделить всё
{openhab_home}/configurations/openhab.cfg
Тут мы изменили порт на 8989Код: Выделить всё
################################ Megadevice Binding ####################################### # # IP address of a Http port for megadevice defaut value is 8989 megadevice:httpserverport=8989
- В настройках Мегадевайса указываем IP и порт из конфига OpenHAB сервера
поле SRV. Порт указывается через двоеточие пример поля SRV в Мегадевайсе:Код: Выделить всё
192.168.0.14:8989
- В случае, если порт выбран как вход (IN) То мы должны выставить режим P&R или отметить галочку справа от списка режимов
- Если выбран любой другой режим - ничего делать не нужно
- Скачать тестовый файл При нажатии на кнопку в логе должно появиться сообщение при нажатии(замыкании) и отпускании(размыкании)
Код: Выделить всё
{openhab_home}/configurations/items
Код: Выделить всё
22:29:18.683 [INFO ] [runtime.busevents :26 ] - MegaTest state updated to ON 22:29:18.683 [INFO ] [runtime.busevents :26 ] - MegaTest state updated to OFF
и положить его в папку
6. Как соединить мегу и OpenHAB
- Для этого требуется скачать openHAB Designer
- Создать необходимые файлы:
- mega.items общий принцип:интервал можно не задавать. Тогда опроса порта происходить не будет.
Код: Выделить всё
{megadevice="пароль на мегу : айпишник меги : номер порта меги: интервал опроса"}
пример:Список возможных вариантов item для данного биндига:Код: Выделить всё
Switch MegaTest "Зал - бра над диваном [%s]" {megadevice="sec:localhost:3:50"}
- Для получения значений АЦП используем Number
Пример item:Код: Выделить всё
Number ADCPort15 "Значение АЦП порт 15 мегадевайса 1: [%d]" {megadevice="sec:192.168.0.14:15"}
- Для получения температуры используем Number:
т.е. после айпи адреса указываем через запятую порт, тип датчика и желаемый ответКод: Выделить всё
Number TempDHT "State: [%f]" {megadevice="sec:192.168.0.17:0,dht11,t:30"}
t- температура
h- влажность. (для 1w этого параметра нет)
типы датчиков, выставляются аналогично меги
dht11, dht22, 1w
Также для dht11, dht22 есть параметр "r".
Данные приходят не распарсенные в текстовом виде через "/" в любом случае, не зависимо от прошивки, далее можно самостоятельно получить нужное значение. Сделал это для того, чтобы можно было избежать проблемы двойного опроса датчика и как следствие 00.0 вместо корректного отображения температуры и влажности.
Тип данных - String
item:Код: Выделить всё
String MegaTempHumParse "Parse string [%s]" {megadevice="sec:192.168.0.17:3,dht,r:30"}
- Чтобы получить температуру меги
Код: Выделить всё
Number MegaDeviceOneTemp "Mega 1 temperature" {megadevice="sec:192.168.0.17:tget:30"}
- С помощью параметра at, устройство сообщает на сервер о превышении порога температуры встроенного сенсора
Пример item:
Код: Выделить всё
Number AlarmTempValue "Превышение температуры мегадевайса 1: [%d]" {megadevice="sec:192.168.0.14:at"}
- Диммер - Dimmer. Работает в процентах от 0 до 100.
Код: Выделить всё
Dimmer DimmedLight "Dimmer [%d %%]" {megadevice="sec:192.168.0.14:10"}
- Простейший выключатель:
Код: Выделить всё
Switch MegaDeviceButton_kitchen "Kitchen button" {megadevice="sec:192.168.0.17:0"}
- Для получения значений АЦП используем Number
- mega.items общий принцип:
[*]Сигнал старта меги:
Код: Выделить всё
Number Start "Start flag: [%d]" { megadevice="sec:localhost:st" }
Для версии Openhab2
биндинг можно скачать по ссылке
Есть два варианта действий.
1)Через веб-интерфейс PaperUI
- Configuration > System > Item Linking
проверяем, что simple mode выключен
Save - Inbox -> + -> MegaD Binding
Bridge Megad incoming server adapter
Указываем номер порта, на который будут поступать входящие сообщения
OK - Inbox -> + -> MegaD Binding
MegaD Binding Thing - переименовываем как нам удобно, вместо случайных цифр можно дать осмысленное название
Bridge Selection - > Bridge Megad incoming server adapter - megad:bridge:megadeviceincoming - выбираем наш бридж из предыдущего шага
Configuration Parameters - адрес, порт, время опроса
OK - Configuration > Things
выбираем наш только что созданный MegaD Binding Thing
выбираем нужный канал данных
создаем при необходимости item
Где они находятся итд можно найти в описании выше, 1 версии
конфигурация полный список:
- .things:
Код: Выделить всё
Bridge megad:tcp:incoming "Мост для входящих на порту 8989" [port=8989]{ Bridge device device15 "Мега 10.15" [hostname="localhost", password="sec"]{ // сначала определяем мегу целиком. Thing standard dianaHeat "Батареи у Дианы" [port="26", refresh="0"] //так теперь выглядят стандартные каналы Thing i2c secondFloorBraSFLamp1 "i2c" [port="9", refresh="30"] // отдельный Thing для i2c устройств типа датчиков (поддерживаются почти все) Bridge extenderport port28 "Extender at port 28 mega 19" [port="28", int="27", refresh="30"]{ // расширители - тут указываем порты меги (обновление будет работать на все порты одновременно) Thing extender ext1 "ext port 1" [extport="0"] // тут порт расширителя } Bridge 1wirebus onewirebusbridge "OW bridge" [port="20", refresh="30"]{ // режим 1w-bus тут указываем порт и интервал опроса Thing 1wireaddress owtemp "OW-temp" [address="85a56a070000"] // тут адрес датчика } } }
Код: Выделить всё
Number mansardGas "Gas [%.3f]" {channel="megad:i2c:incoming:device15:secondFloorBraSFLamp1:gas"} //I2C
Number mansardback "Темп. воды в трубе мансарды [%.3f °C]" <temperature> (Boiler, Temperature) {channel="megad:1wireaddress:incoming:device15:onewirebusbridge:owtemp:1wtemp"} //1-w bridge
//extenders
Switch ext1 "ex1in" {channel="megad:extender:incoming:device15:port28:ext1:extin"}
Switch ext2 "ex1o" {channel="megad:extender:incoming:device15:port28:ext1:extout"}
все параметры появятся в PaperUI -> control
Первое сообщение от tim06ka:
Доброго времени суток!
Приходилось ли кому-нибудь интегрировать мегу в опенхаб?
С управлением устройством из оперхаба я справился:
Код: Выделить всё
Switch LCab "Люстра" (GCabinet, Lights) { http=">[ON:GET:http://192.168.1.51/tac/?pt=9&cmd=9:1] >[OFF:GET:http://192.168.1.51/tac/?pt=9&cmd=9:0]" }
Может у кого-нибудь есть наработки по данному вопросу?