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

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

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

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

Да, что-то явно не так с самими айтемами... я у себя всё перепробовал - работает как часы... Может быть вы пришлете мне на почту файл с айтемами как есть? Pshatsillo@gmail.com я завтра попробую её у себя поставить. Кстати, а Вы правите конфигурации через дизайнер?

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

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

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

Отправил items и sitemap. Правлю через дизайнер, да.

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

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

Сообщение Petros » 21 янв 2016, 17:20

Попробуйте https://github.com/Pshatsillo/openHABMe ... .0.9.2.jar эту версию!

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

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

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

Petros писал(а):Попробуйте эту версию!
С этой - все ок с кнопками, спасибо. Осталось разобраться с правильной методикой опроса датчиков - вместо пары значений снова появились нули, в предыдущем варианте, который вы давали как альтернативу самым первым, опрос был правильным, без нулей.

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

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

Сообщение Petros » 22 янв 2016, 00:04

А вот тут попробуйте delay использовать


Отправлено с моего iPhone используя Tapatalk

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

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

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

Перезагрузка Меги решила проблему, все данные появились. На всякий случай поставил в конфиге Delay=6000. Спасибо за помощь!

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

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

Сообщение Petros » 22 янв 2016, 21:42

https://github.com/Pshatsillo/openHABMe ... .0.9.4.jar Отлично! В таком случае скачиваем новую исправленную версию! Параметр delay устанавливает задержку между опросами каждого порта.

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

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

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

Сделал управление диммером с кнопки. Спасибо Petros за наводки.

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

Switch MegaDcont_Zal_BraDivan		"Кнопка бра дивана"		(Zal)					{megadevice="dal:192.168.1.17:6"}
Dimmer MegaDim_Zal_BraDivan			"Зал - бра над диваном [%d %%]"			(Zal, Lights)		{megadevice="dal:192.168.1.17:13"}
Функционал: короткое нажатие (менее 1 секунды) включает и выключает лампочку на полную яркость. Длинное (более 1 секунды) - пока кнопка остается нажатой, яркость постепенно увеличивается от текущего значения до 100, далее от 0 по кругу.

Не устаю восхищаться простотой, логичностью и непритязательностью OpenHab'а )) Буду признателен за критику кода.

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

var Timer timer_Zal_BraDivan = null
var int MegaDcont_Zal_BraDivan_TimerON

rule "MegaDcont_Zal_BraDivan ON"
when 
	Item MegaDcont_Zal_BraDivan  changed to ON
then
	MegaDcont_Zal_BraDivan_TimerON = now.getMillisOfDay
end

rule "MegaDcont_Zal_BraDivan OFF"
when
	Item MegaDcont_Zal_BraDivan changed to OFF
then
    var int MegaDcont_Zal_BraDivan_TimerOFF = now.getMillisOfDay
    var int time_Pressed = MegaDcont_Zal_BraDivan_TimerOFF - MegaDcont_Zal_BraDivan_TimerON
    if (time_Pressed<1000){     // время нажатия кнопки меньше, чем 1 секунда
		var Number percent = 0 
		if(MegaDim_Zal_BraDivan.state instanceof DecimalType) percent = MegaDim_Zal_BraDivan.state as DecimalType
		if (percent>0) {   // если лампа включена на любую яркость, то выключить 
			sendCommand (MegaDim_Zal_BraDivan, 0)
			postUpdate(MegaDim_Zal_BraDivan, 0)
		}
		else				// лампа выключена, включить на полную яркость 
		{
			sendCommand (MegaDim_Zal_BraDivan, 100)
			postUpdate(MegaDim_Zal_BraDivan, 100)
		}
	}
end	
	
rule "OnLongPress Megadcont_Zal_BraDivan"
when
    Item MegaDcont_Zal_BraDivan changed
    then
        if(MegaDcont_Zal_BraDivan.state==ON) {
            timer_Zal_BraDivan = createTimer(now.plusSeconds(1)) [|
            	var Number current_Val = 0
				if(MegaDim_Zal_BraDivan.state instanceof DecimalType) current_Val = MegaDim_Zal_BraDivan.state as DecimalType
                while (MegaDcont_Zal_BraDivan.state==ON){
                	current_Val = current_Val+1
                	if(current_Val>100) current_Val=0
                	sendCommand(MegaDim_Zal_BraDivan,current_Val)
                	Thread::sleep(50)
                }
            ]
        } else {
            if(timer_Zal_BraDivan!=null) {
                timer_Zal_BraDivan.cancel
                timer_Zal_BraDivan = null
            }
        }
    end
	

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

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

Сообщение Evgeny_nd » 24 янв 2016, 17:37

Насчет температуры.
В прошивке 3.38b
При отправке команды, например: http://192.168.4.14/sec/?pt=8&cmd=get
Выводится просто значение температуры у датчика 1w. В более ранних прошивках выходило значение temp:30,1
Думаю что из-за этого температура перестала правильно отображаться.

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

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

Сообщение Petros » 24 янв 2016, 17:40

Evgeny_nd, нет. Проблема была в слишком частом опросе датчиков температуры. Они не успевали отработать замер и выводили нули, после чего не выдержали и зависли. На сколько я понят сейчас проблема ушла с введением задержки между посылами запросов к меге

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

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

Сообщение Evgeny_nd » 25 янв 2016, 06:15

Petros, значит мой случай другой , чем у предыдущего автора. Я откатился обратно на прошивку 3.36 и все стало работать. Биндинг версии 0.7

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

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

Сообщение Petros » 25 янв 2016, 11:45

Ого... видимо надо обновить подопытного :) ну или уточнить у Андрея так ли было задуманно

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

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

Сообщение Evgeny_nd » 25 янв 2016, 12:16

Андрей там оптимизировал код в последних прошивках, чтобы освободить память :)

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

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

Сообщение Petros » 26 янв 2016, 01:24

Закинул pull request, попробуем интегрироваться в основную ветку :)

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

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

Сообщение Evgeny_nd » 27 янв 2016, 13:14

Petros, а как вы переводите текстовые значения датчиков температуры в число, чтобы с ними можно было работать (сравнивать с числами) в правилах?
Я уже и так и так повертел, не получается.
Если объявлять (без использования Addon) Number и считывать значения через http, то все нормально. Достаточно просто Temp_AB_Log_4_12_P8.state.
А если использовать Addon, то там текстовый Item надо переводить в число. И не работает ни Temp_AB_Log_4_14_P7.doubleValue ни Temp_AB_Log_4_14_P7.state as DecimalType.

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

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

Сообщение Petros » 27 янв 2016, 13:27

UPD: нашел ответ!

var v = new Double(temp.state)

if (v < 12){
}
Последний раз редактировалось Petros 27 янв 2016, 14:20, всего редактировалось 1 раз.

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

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

Сообщение Petros » 27 янв 2016, 13:32

Но вообще согласен, имеет смысл сделать это поле Number. Займусь этим!

UPD: https://github.com/Pshatsillo/openHABMe ... .0.9.5.jar

Прошу поставить и рассказать работает ли :)

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

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

Сообщение Evgeny_nd » 27 янв 2016, 14:55

т.е. в версии 0.9.5 объявляю Number и пробую?

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

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

Сообщение Petros » 27 янв 2016, 14:56

Да

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

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

Сообщение Evgeny_nd » 27 янв 2016, 20:04

Чего-то со значением Number не считывает значения вообще...

Ответить