Использование MegaD в openHAB

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
zuslik19
Сообщения: 10
Зарегистрирован: 12 дек 2016, 18:20

Re: RE: Re: Использование MegaD в openHAB

Сообщение zuslik19 » 15 авг 2017, 01:56

SolarW писал(а):
zuslik19 писал(а):
Bonefolder писал(а): Неужели :o
Вы страшно удивитесь, у BME датчика будет аж 3 канала
а какой 3-ий?
Атмосферное давление

Отправлено с моего Redmi Note 2 через Tapatalk
странно, у меня только 2 показания
тут http://www.ab-log.ru/files/File/Datasheets/HTU21D.pdf тоже ничего не нашел. как найти?

Bonefolder
Сообщения: 617
Зарегистрирован: 30 мар 2017, 11:15
Откуда: г.Севастополь

Re: Использование MegaD в openHAB

Сообщение Bonefolder » 15 авг 2017, 19:42

Zuslik19, О каком датчике речь?

SolarW
Сообщения: 176
Зарегистрирован: 01 авг 2016, 00:32

Re: RE: Re: RE: Re: Использование MegaD в openHAB

Сообщение SolarW » 15 авг 2017, 21:12

zuslik19 писал(а):
SolarW писал(а):
zuslik19 писал(а):
а какой 3-ий?
Атмосферное давление

Отправлено с моего Redmi Note 2 через Tapatalk
странно, у меня только 2 показания
тут http://www.ab-log.ru/files/ ... 1D.pdf тоже ничего не нашел. как найти?
В фразе "у BME датчика будет аж 3 канала" упускаете ключевую часть.
Гуглите BME280 (это не HTU21d)

Bonefolder
Сообщения: 617
Зарегистрирован: 30 мар 2017, 11:15
Откуда: г.Севастополь

Re: Использование MegaD в openHAB

Сообщение Bonefolder » 15 авг 2017, 22:33

Солар, если это мне адресовано, то я знаю разницу. И те, и другие используются.
Если Зуслику, то, у ХТУ21, пожалуй, ему затруднительно будет найти 3-й канал, с давлением

SolarW
Сообщения: 176
Зарегистрирован: 01 авг 2016, 00:32

Re: RE: Re: Использование MegaD в openHAB

Сообщение SolarW » 16 авг 2017, 09:43

Bonefolder писал(а):Солар, если это мне адресовано, то я знаю разницу. И те, и другие используются.
Вроде как сообщение Зуслика процитировал ;-)
Bonefolder писал(а):Если Зуслику, то, у ХТУ21, пожалуй, ему затруднительно будет найти 3-й канал, с давлением
О чем собственно и написал :-)

Petros
Сообщения: 900
Зарегистрирован: 21 авг 2012, 22:09
Откуда: Москва

Re: Использование MegaD в openHAB

Сообщение Petros » 02 сен 2017, 20:55

Друзья, всех приветствую. Пришел мне electrodragon relay, добавлять к себе в арсенал mqtt нет особого желания, поэтому решил написать свое решения апи меги для esp модулей, основанное на прошивке nodemcu, которая в свою очередь принимает скрипты на языке Lua. В данный момент умеет обновлять скрипты по воздуху, воспринимает команды в мега стиле, показывает статус по запросу &cmd=get и cmd=all. Сейчас пытаюсь придумать нормальный конфиг, т.к. одно дело только релехами щелкать, а другое i2c нормально обрабатывать на ОТДЕЛЬНОМ "порту". В общем если есть экспериментаторы - прошу :) Конечно исходники все открыты и любые предложения принимаются!

PS. При сборке прошивки на сайте https://nodemcu-build.com/ минимум модулей для Дракона - это: file GPIO HTTP net node timer UART WiFi. Максимум - те датчики, которые у Вас есть плюс минимальный набор. Для I2C практически необходим модуль bit.

для первичной загрузки нужен будет этот софт

zuslik19
Сообщения: 10
Зарегистрирован: 12 дек 2016, 18:20

Re: Использование MegaD в openHAB

Сообщение zuslik19 » 03 сен 2017, 18:03

Bonefolder писал(а):Zuslik19, О каком датчике речь?
HTU21D, соответственно

empenoso
Сообщения: 1039
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Использование MegaD в openHAB

Сообщение empenoso » 14 сен 2017, 11:46

Petros писал(а):Основной кошмар Zoneminder - это лютая нагрузка на сервер и хранение в jpeg. Настраивается он достаточно просто, работает стабильно. Но 4 терабайт хватает на неделю :(
А Zoneminder - пишет тревоги в jpg? То есть он не создает видео-файлы под каждое событие?

empenoso
Сообщения: 1039
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Использование MegaD в openHAB

Сообщение empenoso » 14 сен 2017, 11:50

У меня сначала все умерло, а после перестановки опенхаб какие-то проблемы с графиками - они вроде отрисовываются, но сыпятся ошибки и не могу понять в чем дело :? :

Код: Выделить всё

2017-09-14 12:49:27.438 [WARN ] [eclipse.jetty.servlet.ServletHandler] - /chart
java.lang.NullPointerException
	at org.knowm.xchart.internal.chartpart.AxisTickNumericalCalculator.calculate(AxisTickNumericalCalculator.java:151)[136:org.eclipse.smarthome.ui:0.9.0.b5]
	at org.knowm.xchart.internal.chartpart.AxisTickNumericalCalculator.<init>(AxisTickNumericalCalculator.java:48)[136:org.eclipse.smarthome.ui:0.9.0.b5]
	at org.knowm.xchart.internal.chartpart.Axis.getAxisTickCalculator(Axis.java:368)[136:org.eclipse.smarthome.ui:0.9.0.b5]
	at org.knowm.xchart.internal.chartpart.Axis.getYAxisWidthHint(Axis.java:326)[136:org.eclipse.smarthome.ui:0.9.0.b5]
	at org.knowm.xchart.internal.chartpart.Axis.paint(Axis.java:183)[136:org.eclipse.smarthome.ui:0.9.0.b5]
	at org.knowm.xchart.internal.chartpart.AxisPair.paint(AxisPair.java:147)[136:org.eclipse.smarthome.ui:0.9.0.b5]
	at org.knowm.xchart.internal.chartpart.ChartPainter.paint(ChartPainter.java:114)[136:org.eclipse.smarthome.ui:0.9.0.b5]
	at org.knowm.xchart.Chart.paint(Chart.java:102)[136:org.eclipse.smarthome.ui:0.9.0.b5]
	at org.eclipse.smarthome.ui.internal.chart.DefaultChartProvider.createChart(DefaultChartProvider.java:228)[136:org.eclipse.smarthome.ui:0.9.0.b5]
	at org.eclipse.smarthome.ui.internal.chart.ChartServlet.doGet(ChartServlet.java:255)[136:org.eclipse.smarthome.ui:0.9.0.b5]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)[18:javax.servlet-api:3.1.0]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)[18:javax.servlet-api:3.1.0]
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)[81:org.eclipse.jetty.servlet:9.2.19.v20160908]
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)[81:org.eclipse.jetty.servlet:9.2.19.v20160908]
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71)[172:org.ops4j.pax.web.pax-web-jetty:4.3.0]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)[80:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)[79:org.eclipse.jetty.security:9.2.19.v20160908]
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)[80:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)[80:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:287)[172:org.ops4j.pax.web.pax-web-jetty:4.3.0]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)[81:org.eclipse.jetty.servlet:9.2.19.v20160908]
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)[80:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)[80:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)[80:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80)[172:org.ops4j.pax.web.pax-web-jetty:4.3.0]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)[80:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.server.Server.handle(Server.java:499)[80:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)[80:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)[80:org.eclipse.jetty.server:9.2.19.v20160908]
	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)[71:org.eclipse.jetty.io:9.2.19.v20160908]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)[83:org.eclipse.jetty.util:9.2.19.v20160908]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)[83:org.eclipse.jetty.util:9.2.19.v20160908]
	at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]

Petros
Сообщения: 900
Зарегистрирован: 21 авг 2012, 22:09
Откуда: Москва

Re: Использование MegaD в openHAB

Сообщение Petros » 14 сен 2017, 11:55

Да, Zoneminder всё хранит в jpg. Судя по ошибке - он какие-то параметры не видит. График нулевой

empenoso
Сообщения: 1039
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Использование MegaD в openHAB

Сообщение empenoso » 14 сен 2017, 13:02

Petros писал(а):Друзья, всех приветствую. Пришел мне electrodragon relay, добавлять к себе в арсенал mqtt нет особого желания, поэтому решил написать свое решения апи меги для esp модулей, основанное на прошивке nodemcu, которая в свою очередь принимает скрипты на языке Lua. В данный момент умеет обновлять скрипты по воздуху, воспринимает команды в мега стиле, показывает статус по запросу &cmd=get и cmd=all. Сейчас пытаюсь придумать нормальный конфиг, т.к. одно дело только релехами щелкать, а другое i2c нормально обрабатывать на ОТДЕЛЬНОМ "порту". В общем если есть экспериментаторы - прошу :) Конечно исходники все открыты и любые предложения принимаются!

PS. При сборке прошивки на сайте https://nodemcu-build.com/ минимум модулей для Дракона - это: file GPIO HTTP net node timer UART WiFi. Максимум - те датчики, которые у Вас есть плюс минимальный набор. Для I2C практически необходим модуль bit.

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

J0K3R
Сообщения: 16
Зарегистрирован: 05 май 2017, 17:12

Re: Использование MegaD в openHAB

Сообщение J0K3R » 06 окт 2017, 05:22

Камрады, приветствую.
Знакомлюсь с идеологией и конфигом OH2. Имею 2 меги, настраиваю сабж. Через файлы настроены: bridge, thing, item, простой sitemap. Через BasicUI управление мегой производится штатно, проблема с обратной связью - не отрабатывает http-сервер, слушающий входящие данные от меги. При указании сервера на Меге в поле Srv, вижу на ПК входящие соединения от меги, но они все "висят" со статусом close_wait. В итоге соединения подвисают, выключатели подключенные к меге в порты IN не работают, поскольку не дожидаются разрыва TCP-сессии. В чем может быть проблема? RaspPI2b, образ OH2, binding для MegaD OH2
J3-SmartHome: MegaD + TinkerBoard + Home Assistant

empenoso
Сообщения: 1039
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Использование MegaD в openHAB

Сообщение empenoso » 19 ноя 2017, 11:00

У меня вопрос - биндинг увидит нескольких подключенных датчиков к одному порту (I2C, 1-wire) ? Пока просто проверить не могу, поэтому пишу сюда.

Petros
Сообщения: 900
Зарегистрирован: 21 авг 2012, 22:09
Откуда: Москва

Re: Использование MegaD в openHAB

Сообщение Petros » 19 ноя 2017, 11:13

Если только в режиме сырых данных, чтобы потом парсить. Было в ветке выше уже, даже с примером вроде

Отправлено с моего Mi Note 2 через Tapatalk

Petros
Сообщения: 900
Зарегистрирован: 21 авг 2012, 22:09
Откуда: Москва

Re: Использование MegaD в openHAB

Сообщение Petros » 19 ноя 2017, 19:27

новая версия! исправлена ошибка, указанная J0K3R, когда остаются CLOSE_WAIT статусы. Забираем тут

empenoso
Сообщения: 1039
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Использование MegaD в openHAB

Сообщение empenoso » 28 ноя 2017, 08:59

Подскажите: прошивка меги умеет посылать длинные нажатия (или двойные?), а биндинг как-то их может фиксировать - что это было именно двойное?

Petros
Сообщения: 900
Зарегистрирован: 21 авг 2012, 22:09
Откуда: Москва

Re: Использование MegaD в openHAB

Сообщение Petros » 29 ноя 2017, 19:32

Нет, не умеет. Это же всё можно правилами реализовать

Отправлено с моего Mi Note 2 через Tapatalk

Ruslan
Сообщения: 2184
Зарегистрирован: 06 янв 2014, 20:44

Re: Использование MegaD в openHAB

Сообщение Ruslan » 29 ноя 2017, 20:47

empenoso писал(а):Подскажите: прошивка меги умеет посылать длинные нажатия (или двойные?), а биндинг как-то их может фиксировать - что это было именно двойное?
Прошу прощения, что пишу не в своей теме, но стандартная прошивка MegaD (от производителя) умеет "посылать" длинные нажатия. В этом случае отсылается параметр "m=2".
Почитайте в статье про MegaD-2561 после подзаголовка "Обработка длительных нажатий".

В режиме "Click Mode" передается информация и о двойном нажатии.

goodvin
Сообщения: 3
Зарегистрирован: 28 ноя 2017, 22:06

Re: Использование MegaD в openHAB

Сообщение goodvin » 04 дек 2017, 14:07

Всем добрый день! Не столь давно начал осваивать возможности связки меги с опенхабом.
Хочется по изменению температуры включать/выключать соответствующее реле на Меге (в будущем для управления сервоприводами на батареях отопления).
Дано:
Items:

Код: Выделить всё

Number TemperatureHTU "[%.2f °C]" {channel="megad:device:megadeviceincoming:TemperatureHTU:i2c"}
Number HumHTU "[%.2f %%]" {channel="megad:device:megadeviceincoming:HumHTU:i2c"}
Switch chulan_light {channel = "megad:device:megadeviceincoming:kladovkaout:out" }
Things:

Код: Выделить всё

Bridge megad:bridge:megadeviceincoming [port=8800]
{
Thing device TemperatureHTU "Температура кладовка" [hostname="192.168.0.14", port="31", password="sec", refresh="10", scl="30", i2c_dev="htu21d", i2c_par="1"]
Thing device HumHTU "Влажность кладовка" [hostname="192.168.0.14", port="31", password="sec", refresh="10", scl="30", i2c_dev="htu21d", i2c_par="0"]
Thing device kladovkaout "Лампочка кладовка" [hostname="192.168.0.14", password="sec", port="7", refresh="0"]
}
Rules

Код: Выделить всё

rule "Servoprivod-1"
when
    Item TemperatureHTU received update
then
	if (TemperatureHTU.value > 26) {
    sendCommand(kladovkaout, 0)
		} else {
        sendCommand(kladovkaout, 1)
    }
end
Итак, согласно логов, возникли следующие проблемы.:

Код: Выделить всё

2017-12-04 13:05:53.091 [WARN ] [ome.core.thing.internal.ThingManager] - Cannot delegate update '25.88' for item 'TemperatureHTU' to handler for channel 'megad:device:2e004b7b:temp', because no thing with the UID 'megad:device:2e004b7b' could be found.
2017-12-04 13:05:53.108 [ERROR] [.script.engine.ScriptExecutionThread] - Rule 'Servoprivod-1': An error occured during the script execution: The name 'kladovkaout' cannot be resolved to an item or type.
Буду признателен, если поможете решить проблему.

empenoso
Сообщения: 1039
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Использование MegaD в openHAB

Сообщение empenoso » 04 дек 2017, 18:26

goodvin писал(а): rule "Servoprivod-1"
when
Item TemperatureHTU received update
then
if (TemperatureHTU.value > 26) {
sendCommand(kladovkaout, 0)
} else {
sendCommand(kladovkaout, 1)
}
end
Так просто цифры нельзя взять в OH. Попробуйте по примеру исправить:

Код: Выделить всё

//подсчет показаний хол. воды
rule "CountWaterImpCold"
when
   Item P10_WaterPulse_cold changed to ON //received update ON   
then
	var Number WatCold = CountWaterM3Cold.state as DecimalType
	var Number tmp1
	var Number Kal1
	var Number Dif1
   
	tmp1 = WatCold + 0.01 // один полный импульс при прохождении 10 л жидкости 
	postUpdate(CountWaterM3Cold, tmp1.doubleValue)
	
	if (CountWaterM3Cold.state instanceof DecimalType) {
        Kal1 = CountWaterM3Cold.minimumSince(now.toDateMidnight.withDayOfMonth(1)).state as DecimalType //на начало месяца
	    postUpdate(CountWaterM3Cold_Kalends, Kal1.doubleValue )
       	Dif1 = tmp1 - Kal1
       	postUpdate(CountWaterM3Cold_Consumption, Dif1.doubleValue )
    	}    	
end

Ответить