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

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
d.v.ermakov
Администратор
Сообщения: 2188
Зарегистрирован: 29 май 2015, 21:23
Откуда: Екатеринбург, Нижний Тагил

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

Сообщение d.v.ermakov » 17 окт 2016, 11:37

Пока в ОН2 еще много банальных проблем, читать здесь: https://community.openhab.org/c/openhab-2
Ставлю иногда, убеждаюсь в невозможности использования, откладываю в сторону. Последний раз баловался со второй бетой. Основной реальный плюс для меня - высокая скорость работы кастомных дашбоардов, из-за изменившейся архитектуры.

OlegJktu84
Сообщения: 651
Зарегистрирован: 16 фев 2016, 19:52

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

Сообщение OlegJktu84 » 17 окт 2016, 11:45

14 сентября вышла "openHAB 2.0 beta4". В частности поминались сроки релиза.
https://community.openhab.org/t/openhab ... ased/14110
"As people regularly ask about the plans for a final 2.0 release: I cannot promise anything myself, since I very much depend on the help and the contributions from all of you, but my personal goal would be to finish the most critical missing parts of openHAB 2 by the end of this year, so that we can declare GA by early January. In the coming weeks, I will try to come up with a list of topics that we still need to address for this and I count on you to then help ticking the entries off quickly - so stay tuned!"

UPD Это я к тому, что через месяца 4 все таки будет релиз и можно будет трогать не опасаясь банальных глюков. Наверно не имеет смысла допиливать биндинг до релиза.

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

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

Сообщение Petros » 17 окт 2016, 16:26

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

Evgeny_nd
Сообщения: 136
Зарегистрирован: 07 ноя 2015, 06:59
Откуда: г. Красноярск

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

Сообщение Evgeny_nd » 17 окт 2016, 20:02

Для меня тоже основной плюс в ОН2 это интерфейс и визуализация. В 1м все же, из-за ограничения возможностей интерфейса приходится много уровней делать и иногда извращаться . Начну изучать параллельно 1му пока, а к новому году если релиз выпустят, то можно начинать переходить.

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

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

Сообщение empenoso » 18 окт 2016, 11:25

Petros писал(а):Проблема в том, что я не могу у себя сымитировать отказ сокета :) Как ни пытался :) Вот, попробуйте эту версию, специально для вас, не для массового обновления https://github.com/Pshatsillo/openHABMe ... ocketError
В исправленной версии биндинга - уже полторы недели на второй малине полет нормальный :) Спасибо!
chart (6).png
chart (6).png (115.32 КБ) 4384 просмотра

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

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

Сообщение Petros » 18 окт 2016, 11:31

Ну вы имейте в виду, что он просто при зависании передергивает сервер и теряет одно-два входящих ответа

martiniman
Сообщения: 528
Зарегистрирован: 09 авг 2016, 15:09
Откуда: Сочи

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

Сообщение martiniman » 19 окт 2016, 11:13

empenoso писал(а):Там какая-то ошибка с портом - не смог разобраться, но через exec биндинг все заработало:

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

Number MikroTik_Wireless_Clients "MikroTik, кол-во Wi-Fi клиентов, ед. [%s]"  { exec="<[/opt/openhab/MikroTik_Wireless_Clients.sh:300000:REGEX((.*?))]" }	//требуется установка sudo apt-get install snmp snmpd 	//http://forum.mikrotik.com/viewtopic.php?t=17438
А я скриптом забираю маки wifi пользователей из registration table, секу свою мобилу и жены

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

String	Wifiusers				"Список подключенных к WiFi [%s]"		{exec="<[/volume1/homes/openhab/wifiusers.sh:60000:REGEX((.*?))]"}

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

#!/bin/sh 
users=$(ssh xx@192.168.1.1 /interface wireless registration-table print terse | cut -f3 -d'=' | cut -f1 -d' ' | tr '\n' ' ')
echo $users
И правилом выбираю мак:

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

rule "Wifiusers" //############################################################################################
when
	Item Wifiusers changed 
then
	if (Wifiusers.state.toString.contains("F0:F1:11:51:21:84")) {
		if (Mobile_Artyom.state != ON) {
			logInfo("Security", "Мобила Артема в сети квартиры.")
			Mobile_Artyom.postUpdate(ON)
		}
	} else {
		if (Mobile_Artyom.state == ON) {
			logInfo("Security", "Мобилы Артема более нет в сети квартиры.")
			Mobile_Artyom.postUpdate(OFF)
		}
	}	
end

MSapogov
Сообщения: 312
Зарегистрирован: 13 май 2015, 08:44
Откуда: г. Томск

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

Сообщение MSapogov » 19 окт 2016, 20:13

martiniman писал(а): А я скриптом забираю маки wifi пользователей из registration table, секу свою мобилу и жены

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

String	Wifiusers				"Список подключенных к WiFi [%s]"		{exec="<[/volume1/homes/openhab/wifiusers.sh:60000:REGEX((.*?))]"}

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

#!/bin/sh 
users=$(ssh xx@192.168.1.1 /interface wireless registration-table print terse | cut -f3 -d'=' | cut -f1 -d' ' | tr '\n' ' ')
echo $users
Вот этим мне микротик и нравится. Дети уже расстраиваются, когда я им сказал, что SMS будет маме приходить, когда они в соцсети будут заходить :-)

OlegJktu84
Сообщения: 651
Зарегистрирован: 16 фев 2016, 19:52

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

Сообщение OlegJktu84 » 19 окт 2016, 23:08

:lol: :lol: :lol: MSapogov Я все думал: вот подрастут у меня дети, нужно будет их мотивировать выучиться, как пользоваться VPN... Хотя бы чем то типа TunnelBear. Теперь буду знать как :twisted:

Evgeny_nd
Сообщения: 136
Зарегистрирован: 07 ноя 2015, 06:59
Откуда: г. Красноярск

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

Сообщение Evgeny_nd » 20 окт 2016, 08:35

А я пользуюсь биндингом NetworkHealth для мониторинга и телефонов и другой техники. А на микротике просто жестко привязываю mac к IP.

Evgeny_nd
Сообщения: 136
Зарегистрирован: 07 ноя 2015, 06:59
Откуда: г. Красноярск

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

Сообщение Evgeny_nd » 20 окт 2016, 14:03

Вопрос к Petros.
А как часто происходит обновление статуса положения выключателя между OH и Mega?
У меня возникла ситуация: в ОН не обновился статус выключателя и из-за этого алгоритм контура отопления сработал неверно. Я уже только разглядывая график температуры обнаружил что что-то не то, потом посмотрел состояние порта на Меге, оказалось, оно отличное от состояния в ОН. Получилось что в течение 9 часов состояние не обновилось.
Причина в биндинге или в ОН?

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

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

Сообщение Petros » 20 окт 2016, 15:34

Вы же сами задаете период опроса порта! Если параметр не указан - опроса нет!

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

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

Сообщение empenoso » 20 окт 2016, 18:57

martiniman писал(а):
empenoso писал(а):Там какая-то ошибка с портом - не смог разобраться, но через exec биндинг все заработало:

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

Number MikroTik_Wireless_Clients "MikroTik, кол-во Wi-Fi клиентов, ед. [%s]"  { exec="<[/opt/openhab/MikroTik_Wireless_Clients.sh:300000:REGEX((.*?))]" }	//требуется установка sudo apt-get install snmp snmpd 	//http://forum.mikrotik.com/viewtopic.php?t=17438
А я скриптом забираю маки wifi пользователей из registration table, секу свою мобилу и жены

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

String	Wifiusers				"Список подключенных к WiFi [%s]"		{exec="<[/volume1/homes/openhab/wifiusers.sh:60000:REGEX((.*?))]"}

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

#!/bin/sh 
users=$(ssh xx@192.168.1.1 /interface wireless registration-table print terse | cut -f3 -d'=' | cut -f1 -d' ' | tr '\n' ' ')
echo $users
И правилом выбираю мак:

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

rule "Wifiusers" //############################################################################################
when
	Item Wifiusers changed 
then
	if (Wifiusers.state.toString.contains("F0:F1:11:51:21:84")) {
		if (Mobile_Artyom.state != ON) {
			logInfo("Security", "Мобила Артема в сети квартиры.")
			Mobile_Artyom.postUpdate(ON)
		}
	} else {
		if (Mobile_Artyom.state == ON) {
			logInfo("Security", "Мобилы Артема более нет в сети квартиры.")
			Mobile_Artyom.postUpdate(OFF)
		}
	}	
end
А для меня конкретные маки не актуальны - надо просто кол-во подключенных устройств - косвенно говорит о том, сколько человек живет.

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

snmpwalk -c public -v2c 192.168.88.1 .1.3.6.1.4.1.14988.1.1.1.3.1.6.5 2>&1 | sed -n 's#^iso.3.6.1.4.1.14988.1.1.1.3.1.6.5 = Counter32:[^0-9]*\([0-9.]*\)$#\1#p';

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

Number MikroTik_Wireless_Clients 				"MikroTik, Wi-Fi клиенты, ед. [%s]"  						{ exec="<[/opt/openhab/MikroTik_Wireless_Clients.sh:300000:REGEX((.*?))]" }	//http://forum.mikrotik.com/viewtopic.php?t=17438

Evgeny_nd
Сообщения: 136
Зарегистрирован: 07 ноя 2015, 06:59
Откуда: г. Красноярск

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

Сообщение Evgeny_nd » 21 окт 2016, 05:21

Когда появился параметр refresh в описании item я просто закомментировал общий refresh в конфиге.
Тогда хочу уточнить:
1) Refresh для item типа switch действует?
2) Чтобы периодически обновлялся статус switch нужно чтобы в конфиге был указан параметр refresh?
3) Если в конфиге указан параметр refresh и в описании item указан refresh, то какой из них будет использоваться в приоритете?

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

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

Сообщение Petros » 21 окт 2016, 10:48

mega.items общий принцип:
КОД: ВЫДЕЛИТЬ ВСЁ
 {megadevice="пароль на мегу : айпишник меги : номер порта меги: интервал опроса"}
интервал можно не задавать. Тогда опроса порта происходить не будет.
пример:
КОД: ВЫДЕЛИТЬ ВСЁ
Switch MegaTest         "Зал - бра над диваном [%s]"       {megadevice="sec:localhost:3:50"}

В конфиге кроме номера порта больше ничего не указывается

d.v.ermakov
Администратор
Сообщения: 2188
Зарегистрирован: 29 май 2015, 21:23
Откуда: Екатеринбург, Нижний Тагил

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

Сообщение d.v.ermakov » 21 окт 2016, 11:56

В правиле выключателя нужно не только SendCommand, но и PostUpdate писать, и опрос тогда достаточно производить только при включении (или с большим интервалом, на всякий случай).

Evgeny_nd
Сообщения: 136
Зарегистрирован: 07 ноя 2015, 06:59
Откуда: г. Красноярск

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

Сообщение Evgeny_nd » 21 окт 2016, 12:36

У меня все правила идут в последовательности PostUpdate+SendCommand.
Я не знаю что именно произошло, OH не перезагружался, правила, item, и sitemap, я правил на ходу. И то что OH не видел статуса включенного в меге выключателя, я обнаружил случайно и произошло это всего лишь один раз за пол-года наверное.
Может ли быть дело в том что... У меня почти все состояния выключателей (по-крайней мере, про тот который подвис) пишутся в Persistant с восстановлением параметров после перезагрузки.
Может быть получилось так что при обновлении правила состояние из базы считалось OFF и осталось в OH, а фактически пока правило перезагружалось порт меги установился в ON.

PS А как произвести опрос только при включении?

Evgeny_nd
Сообщения: 136
Зарегистрирован: 07 ноя 2015, 06:59
Откуда: г. Красноярск

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

Сообщение Evgeny_nd » 21 окт 2016, 12:38

Petros, я понял вас, спасибо за информацию. Switch перепишу все с интервалом опроса (на всякий случай).

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

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

Сообщение empenoso » 27 окт 2016, 08:46

empenoso писал(а):
Petros писал(а):Проблема в том, что я не могу у себя сымитировать отказ сокета :) Как ни пытался :) Вот, попробуйте эту версию, специально для вас, не для массового обновления https://github.com/Pshatsillo/openHABMe ... ocketError
В исправленной версии биндинга - уже полторы недели на второй малине полет нормальный :) Спасибо!
Никаких проблем с тех пор :) Но надеюсь, что уже в ближайшие дни заменю на третью малину там последнюю версию биндинга буду использовать.
chart (7).png
chart (7).png (67.31 КБ) 4231 просмотр

Igor78
Сообщения: 143
Зарегистрирован: 26 янв 2015, 14:44
Откуда: Москва

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

Сообщение Igor78 » 27 окт 2016, 20:02

Заметил непонятность в байндинге: если читать порт 1w (ds18b20) без датчика, то Мега возвращает NA. В логах опенхаб вижу следующее:

...
http://10.5.5.20/pass/?pt=22&cmd=get
18:43:24.700 [DEBUG] [b.m.internal.MegaDeviceBinding:543 ] - Sleeping...
18:43:25.702 [DEBUG] [b.m.internal.MegaDeviceBinding:549 ] - Waking up...
18:43:25.712 [DEBUG] [b.m.internal.MegaDeviceBinding:566 ] - input string->temp:NA
18:43:25.714 [DEBUG] [b.m.internal.MegaDeviceBinding:614 ] - NA
18:43:25.728 [ERROR] [.service.AbstractActiveService:175 ] - Error while executing background thread MegaDevice Refresh Service
java.lang.NumberFormatException: null
...

Item:
Number Menv1_TestTemp "Температура TEST [%.2f °C]" <temperature> (Group_Status, DB_Save, gDashboard) {megadevice="pass:10.5.5.20:22:1w,t:5"}

Версия 0.1.2.6, Centos 6.7, Java 1.8.0, Intel Atom

Все бы ничего, но иногда (правда это было на версии 0.1.2.3) у меня перестают обновляться другие порты... подключение датчика, или отключение item-а решает проблему
С уважением, Игорь

Ответить