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

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Petros
Сообщения: 900
Зарегистрирован: 21 авг 2012, 22:09
Откуда: Москва

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

Сообщение Petros » 19 янв 2016, 02:06

попробуйте этот плагин, должно помочь https://github.com/Pshatsillo/openHABMe ... _0.0.9.jar
Тут установлена задержка перед каждым опросом в одну секунду

К сожалению у меня нет датчиков температуры на мегах, поэтому вся надежда на Вас ))


UPD:

создал параметр в конфиге: delay

megadevice:delay=1000

по умолчанию. Меняйте его до получения всех значений :) поделитесь потом результатами пожалуйста :)

Selecta
Сообщения: 33
Зарегистрирован: 26 сен 2015, 12:38

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

Сообщение Selecta » 19 янв 2016, 14:51

Petros писал(а):попробуйте этот плагин, должно помочь https://github.com/Pshatsillo/openHABMe ... _0.0.9.jar
Тут установлена задержка перед каждым опросом в одну секунду

К сожалению у меня нет датчиков температуры на мегах, поэтому вся надежда на Вас ))


UPD:

создал параметр в конфиге: delay

megadevice:delay=1000

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

Изменение delay пока не потребовалось. Спасибо - во-первых, за сам байндинг, во-вторых, за оперативную обратную связь! Присоединяюсь к рекомендации сделать donate на странице )

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

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

Сообщение Petros » 19 янв 2016, 15:44

Замена на тот, что по ссылке?

Спасибо вам за теплые слова :) Донейт добавил вниз описания :)

Selecta
Сообщения: 33
Зарегистрирован: 26 сен 2015, 12:38

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

Сообщение Selecta » 20 янв 2016, 00:31

Petros писал(а):Замена на тот, что по ссылке?
Да, на новую версию.

Но столкнулся с еще одной проблемой - не срабатывает изменение состояния switch из Openhab.

Имеем в items:

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

Switch MegaD_Koridor_Bra			"Коридор - бра"							(Koridor, Lights)		{megadevice="dal:192.168.1.15:11"}
В rules:

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

rule "OnCommand MegaD_Koridor_Bra"
when
	Item MegaD_Koridor_Bra received command
then
	if(receivedCommand==ON){
		sendCommand(MegaD_Koridor_Bra, ON)
		postUpdate(MegaD_Koridor_Bra, ON)
		} 
	else if(receivedCommand==OFF){
		sendCommand(MegaD_Koridor_Bra, OFF) 
		postUpdate(MegaD_Koridor_Bra, OFF)
		}
end 
По итогу - выключатель есть, но перекидывание его из OpenHab не приводит к изменению состояния выхода Меги. Хотя когда выход переключается аппаратной кнопкой или из веб-интерфейса Меги - в OpenHab состояние меняется, правда с задержкой в пару секунд. Что я делаю не так?

Для диммируемых выходов правила, показанные ниже, работают отлично (все отрабатывает без задержки, в обе стороны):

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

rule "OnCommand MegaDim_Zal_BraDivan"
when
	Item MegaDim_Zal_BraDivan received command
then
	if((receivedCommand==INCREASE)||(receivedCommand==DECREASE))
	{
	var Number percent = 0
	if(MegaDim_Zal_BraDivan.state instanceof DecimalType) percent = MegaDim_Zal_BraDivan.state as DecimalType

	if(receivedCommand==INCREASE) percent = percent + LED_DIMMER_STEP
	if(receivedCommand==DECREASE) percent = percent - LED_DIMMER_STEP

	if(percent<0) percent = 0
	if(percent>100) percent = 100
	sendCommand(MegaDim_Zal_BraDivan, percent)
	}
	else if(receivedCommand==ON)sendCommand(MegaDim_Zal_BraDivan, 100) //100 это 255 на ШИМ порту меги (процент*2,55)
	else if(receivedCommand==OFF)sendCommand(MegaDim_Zal_BraDivan, 0)
end

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

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

Сообщение Petros » 20 янв 2016, 00:52

К сожалению не вижу что у Вас в фигурных скобках...


Увидел :) в правиле не postupdate a sendcommnd вроде нужно
Отправлено с моего iPhone используя Tapatalk

Selecta
Сообщения: 33
Зарегистрирован: 26 сен 2015, 12:38

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

Сообщение Selecta » 20 янв 2016, 00:56

Изображение
Изображение

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

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

Сообщение Petros » 20 янв 2016, 01:02

А лог при этом что говорит? Без ошибок?

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

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

Сообщение Petros » 20 янв 2016, 01:06

Может быть где when changed поставить?


СТОП. Вы же хотите прото этой кнопкой включать и выключать свет? Тогда не нужно никаких правил вообще Switch работает и без правил, просто отправляет состояние своё по адресу!

Selecta
Сообщения: 33
Зарегистрирован: 26 сен 2015, 12:38

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

Сообщение Selecta » 20 янв 2016, 01:20

Petros писал(а):СТОП. Вы же хотите прото этой кнопкой включать и выключать свет? Тогда не нужно никаких правил вообще Switch работает и без правил, просто отправляет состояние своё по адресу!
Ну так я и начал с правилами экспериментировать, когда убедился что без правил не работает )

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

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

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

Сообщение Petros » 20 янв 2016, 01:43

Хэмм.. у Вас в Логах появляется нечто подобное при нажатии?
00:41:49.151 [DEBUG] [b.m.internal.MegaDeviceBinding:188 ] - internalReceiveCommand(Mega,OFF) is called!
00:41:49.151 [INFO ] [b.m.internal.MegaDeviceBinding:233 ] - http://192.168.10.17/sec/?cmd=13:0
00:41:49.165 [DEBUG] [b.m.internal.MegaDeviceBinding:242 ] - OK


У меня всё работает просто. специально проверил...

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

Switch Mega 		"TEST" 		(GF_Living, Lights) {megadevice="sec:192.168.10.17:13"}

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

Frame{
		Switch item=Mega
	}
и еще такая:

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

[runtime.busevents             :22   ] - Mega received command OFF

Selecta
Сообщения: 33
Зарегистрирован: 26 сен 2015, 12:38

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

Сообщение Selecta » 20 янв 2016, 03:38

В логе при перекидывании свитча вижу вот такое -
Изображение

Но следующее обращение к связанному порту выглядит в логе как-то так:

Изображение

В промежутке между этими событиями указанный порт (11 на адресе 192.168.1.15) в логе не встречается вообще.

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

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

Сообщение Petros » 20 янв 2016, 12:33

нижний лог - это опрос по кругу портов... А вот после верхнего должен быть запрос к Меге... вы не пробовали менять версию плагина? Из основной ветки - https://github.com/Pshatsillo/openHABMe ... _0.0.9.jar вот этот? Еще вопрос - вы плагины меняли с перезагрузкой сервера или без?

Selecta
Сообщения: 33
Зарегистрирован: 26 сен 2015, 12:38

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

Сообщение Selecta » 20 янв 2016, 22:47

Файл байндинга поменял на тот, что в предыдущем сообщении (отличается от того, что вы дали вчера, на 1 кб). Сервер перезагрузил. Проблема осталась - свитч бра в коридоре исправно перекидывается в openhab при изменении состояния выхода через интерфейс меги, но при попытке перекинуть мышкой его в openhab - через секунду возвращается обратно, выход меги при этом не меняется.

В логе при этом :

Изображение

Команд на 11 выход меги (cmd=11:0 или cmd=11:1) в логе поиск не находит.

Из побочных эффектов - после замены файла байндинга снова пропали частично значения температуры и влажности с датчиков меги (стоят нули). Изменение параметра delay ни к чему не приводит.

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

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

Сообщение d.v.ermakov » 20 янв 2016, 22:50

Пару слов про датчики скажу, может кто не в курсе.
И DS18B20, и разные DHT опрашивать слишком часто нельзя, они или 0 ответят или не ответят вообще. Частота опроса - не чаще раза в 3-5 секунд в зависимости от температуры. Причем, если подряд запрашивать непрерывно, то через минуту и эту частоту опроса надо снижать в два раза. Ну и стоит учесть, что DHT22 выдает в ответ данные на момент предпоследнего запроса, то есть его надо запросить два раза подряд, чтобы получить данные на момент.
ИМХО, вся эта логика к биндингу отношения не имеет, это задача для самого Опенхаба.

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

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

Сообщение Petros » 20 янв 2016, 22:55

То, что пропали - верно, так и должно быть. Стрелочками Вы показали сохранение в базу. Гораздо интереснее другое - 4 строчки SwitchItem - они были всегда? или только на старой сборке появились? Думаю Файл можно обратно поменять, температура восстановится... а как у Вас выглядит эта кнопка в ??sitemap? А проблема только с одной кнопкой или со всеми?

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

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

Сообщение Petros » 20 янв 2016, 23:29

d.v.ermakov писал(а):Пару слов про датчики скажу, может кто не в курсе.
И DS18B20, и разные DHT опрашивать слишком часто нельзя, они или 0 ответят или не ответят вообще. Частота опроса - не чаще раза в 3-5 секунд в зависимости от температуры. Причем, если подряд запрашивать непрерывно, то через минуту и эту частоту опроса надо снижать в два раза. Ну и стоит учесть, что DHT22 выдает в ответ данные на момент предпоследнего запроса, то есть его надо запросить два раза подряд, чтобы получить данные на момент.
ИМХО, вся эта логика к биндингу отношения не имеет, это задача для самого Опенхаба.
Я вот уже подумал, что вероятно понадобится еще один параметр - это время опроса датчика.После t будет условно говоря делитель. Раз в сколько циклов опрашивать датчик. Скажем от 1 до 100 :)

Selecta
Сообщения: 33
Зарегистрирован: 26 сен 2015, 12:38

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

Сообщение Selecta » 21 янв 2016, 00:04

Petros писал(а):То, что пропали - верно, так и должно быть. Стрелочками Вы показали сохранение в базу. Гораздо интереснее другое - 4 строчки SwitchItem - они были всегда? или только на старой сборке появились? Думаю Файл можно обратно поменять, температура восстановится... а как у Вас выглядит эта кнопка в ??sitemap? А проблема только с одной кнопкой или со всеми?
В sitemap непосредственно описания кнопки нет, есть только групповой фрейм:

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

	Frame label="Управление по комнатам" {
		Group item=Koridor 			label="Коридор" 	icon="corridor"
		Group item=Spalnja 			label="Спальня" 	icon="bedroom"
		Group item=Lodjija 			label="Лоджия"	 	icon="terrace"
		Group item=Kuhnja 			label="Кухня" 		icon="kitchen"	
		Group item=Zal				label="Гостиная" 	icon="television"
		Group item=Kabinet			label="Кабинет" 	icon="office"
		Group item=Dushevaja		label="Душевая" 	icon="bath"
		Group item=Vannaja			label="Ванная" 		icon="bath" 
	}
В этом фрейме выводится все, что относится к группе Koridor, в том числе и (ниже описание из items) :

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

Switch MegaD_Koridor_Bra			"Коридор - бра"							(Koridor, Lights)		{megadevice="dal:192.168.1.15:11"}
Для интереса описал свитч в сайтмэпе, но результата это не дало - точно так же состояние на мегу не передается.

Четыре строчки есть и в старой сборке, и в новой. Вот лог после смены сборки:
Изображение

Selecta
Сообщения: 33
Зарегистрирован: 26 сен 2015, 12:38

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

Сообщение Selecta » 21 янв 2016, 00:21

Хороший вопрос был про "все кнопки не работают или не все"!

Оказалось, что примерно половина - работает. Вот выписки из лога.

Эта кнопка работает:
Изображение

А эта кнопка не работает:
Изображение

Описаны кнопки идентично:

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

Switch MegaD_Kabinet_BraKresla		"Кабинет - бра над креслами"			(Kabinet, Lights)	{megadevice="dal:192.168.1.15:8"}
Switch MegaD_Kabinet_BraOkna		"Кабинет - бра у окна"					(Kabinet, Lights)	{megadevice="dal:192.168.1.17:11"}
Предупреждая возможный вопрос - дело не в разных девайсах. На одном и том же девайсе половина кнопко работает, половина - нет. На втором - аналогично.

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

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

Сообщение Petros » 21 янв 2016, 01:00

Попробуйте https://github.com/Pshatsillo/openHABMe ... .0.9.1.jar вот эту. Тут лог расширенный и определение типа поменял немного


и еще такой момент, вдруг это важно - плагин собран на java 1.8

Selecta
Сообщения: 33
Зарегистрирован: 26 сен 2015, 12:38

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

Сообщение Selecta » 21 янв 2016, 01:23

Вот данные из расширенного лога - похоже, что-то идет не так:

Изображение

Версия явы стоит "Ваша версия Java: Version 8 Update 66"

Непонятно, почему "MegaD_Hum_Kabinet has type class org.openhab.core.library.items.SwitchItem", если он объявлен как

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

String MegaD_Hum_Kabinet   		 "Влажность в кабинете: [%s%%]" 	(Kabinet, Humidities, Chart_Kabinet)			{megadevice="dal:192.168.1.16:7,dht22,h"}
А вот лог после нажатия работающей кнопки:
Изображение

Ответить