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

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
empenoso
Сообщения: 1039
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

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

Сообщение empenoso » 24 ноя 2016, 08:55

А в логах можно посмотреть когда биндинг перезапускается в случае зависания?

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

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

Сообщение Petros » 24 ноя 2016, 09:06

Можно, но в режиме дебага.

Дмитрий
Сообщения: 32
Зарегистрирован: 30 апр 2011, 20:03
Откуда: Украина

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

Сообщение Дмитрий » 26 ноя 2016, 18:01

Привет,
Пользуюсь биндингом около двух месяцев. Проблема с сокетом в среднем раз в неделю. Чёткого патерна нет.
Детали:
- Openhab 1.8.3
- Addon 0.1.2.6
- Железо с х86 процессор
- Openhab работает в докере

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

$ cat /etc/issue
Debian GNU/Linux 8 \n \l
$ cat /etc/debian_version
8.6

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

$ java -version
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-8u111-b14-2~bpo8+1-b14)
OpenJDK 64-Bit Server VM (build 25.111-b14, mixed mode)
- Host OS

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

$ cat /etc/issue
Ubuntu 16.04.1 LTS \n \l
Последние логи (из моих rules) перед ошибкой

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

2016-11-26 10:23:25.332 [DEBUG] [.o.model.script.megad.bathroom] - Place "bathroom" is occupied
2016-11-26 10:23:25.334 [DEBUG] [.o.model.script.megad.bathroom] - Light will be turned off automatically in 480s for "bathroom"
2016-11-26 10:23:25.339 [DEBUG] [hab.model.script.megad.kitchen] - Place "kitchen" is occupied
2016-11-26 10:23:25.340 [DEBUG] [hab.model.script.megad.kitchen] - Light will be turned off automatically in 300s for "kitchen"
И потом

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

2016-11-26 10:23:51.966 [ERROR] [o.o.b.m.i.MegaDeviceHttpSocket] - ERROR: MegaDevice input server error. Restart http socket
2016-11-26 10:23:51.967 [ERROR] [o.o.b.m.i.MegaDeviceHttpSocket] - Connection reset
2016-11-26 10:23:51.969 [ERROR] [o.o.b.m.i.MegaDeviceHttpSocket] - ERROR: MegaDevice input server error. Restart http socket
2016-11-26 10:23:51.969 [ERROR] [o.o.b.m.i.MegaDeviceHttpSocket] - Connection reset
В среднем 27 тысяч записей в секунду. Естественно потом копаться в логах невозможно.

Собственно просьба:
- Сделать хоть какой то слип между попытками рестарта
- Ограничить количество попыток рестарта. Ну к примеру 10
- Естественно сбрасывать счётчик попыток если получилось открыть сокет (ну это для тех кому рестарт помогает)

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

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

Сообщение Petros » 07 дек 2016, 14:08

Готово. Задержка будет в 10 секунд. Но то, что сокет не перезагружается - само по себе не хорошо.

YTNICORP
Сообщения: 25
Зарегистрирован: 26 авг 2016, 10:19

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

Сообщение YTNICORP » 10 дек 2016, 20:12

Всем привет.
Столкнулся на днях с проблемой загрузки правил после рестарта системы. Как выяснил, подобное поведение может возникать в случаях, когда в конфигах содержится более одного файла с правилами, в которых используются условия "when System started". При старте системы в логах могут появляться ошибки вида:

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

java.io.FileNotFoundException: lounge.rules (The system cannot find the file specified)
или

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

Configuration model 'demo.rules' is either empty or cannot be parsed correctly!
Как я понял, это происходит из-за случайной последовательности загрузки файлов итемов и правил. В результате могут возникну конфликты, а как следствие незагруженные правила работать не будут. Проблема, как оказалось где-то глубоко в ДНК и штатными средствами не лечится (исчерпывающий тред на тему: https://github.com/openhab/openhab/issues/736). При этом помогает перезагрузка правила путем тача файла (touch .openhab/configurations/rules/demo.rules), но если дергать их сразу все, то ошибка может повториться, т.е. "touch ./rules/*" не всегда помогает. И несмотря на то, что перезагрузка - событие редкое, это все равно вынуждает делать лишние телодвижения.
Предлагаю вариант, который помог мне. Заключается он в поочередной загрузке файлов .rules после старта системы.
1. Создаем .sh файл следующего содержания:

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

#!/bin/bash
for file in /home/brain/openhab/configurations/rules/*.rules
do
	mv "$file" "${file%.rules}.tmp"
done

sleep 3m

for file in /home/brain/openhab/configurations/rules/*.tmp
do
	sleep 21
	mv "$file" "${file%.tmp}.rules"
done
При выполнении он меняет расширение файлов .rules на .tmp, после ждет 3 минуты, пока происходит старт OpenHAB, а далее с интервалом в 21 секунду последовательно меняет расширение файлов обратно на .rules и они успешно подхватываются загрузившейся к этому моменту системой.

2. Добавляем его в кронтаб:

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

@reboot /home/brain/openhab/configurations/scripts/rulesAtReboot.sh
3. В openhab.cfg выставляем время проверки правил в 10 секунд:

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

folder:rules=10,rules
В результате правила загружаются последовательно, а не кучей и никаких конфликтов не возникает. Время полной загрузки при этом несколько увеличивается, но перезагрузки, как я уже говорил, событие крайне редкое, поэтому можно и потерпеть.
Владельцы конфигов с десятками правил могут понизить интервал между сменой расширения файлов, главное, чтобы время в folder:rules было меньше этого значения (его тоже можно понизить при необходимости).

YTNICORP
Сообщения: 25
Зарегистрирован: 26 авг 2016, 10:19

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

Сообщение YTNICORP » 11 дек 2016, 11:49

Petros писал(а):Готово. Задержка будет в 10 секунд. Но то, что сокет не перезагружается - само по себе не хорошо.
Petros, приветствую. Обновился, теперь когда трогаю слайдер в логи сыпятся ошибки вида:

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

11:38:58.083 [DEBUG] [o.i.r.i.resources.ItemResource:205  ] - Received HTTP POST request at 'items/lamp_out51_10' with value '50'.
11:38:58.092 [DEBUG] [b.m.internal.MegaDeviceBinding:357  ] - internalReceiveCommand(lamp_out51_10,50) is called!
11:38:58.093 [DEBUG] [b.m.internal.MegaDeviceBinding:389  ] - SendCommand exec
11:38:58.094 [ERROR] [b.m.internal.MegaDeviceBinding:442  ] - tempSensor2 cannot determine type: class org.openhab.core.library.items.NumberItem
11:38:58.094 [ERROR] [b.m.internal.MegaDeviceBinding:442  ] - tempSensor1 cannot determine type: class org.openhab.core.library.items.NumberItem
11:38:58.095 [ERROR] [b.m.internal.MegaDeviceBinding:442  ] - lamp_out51_27 cannot determine type: class org.openhab.core.library.items.DimmerItem
11:38:58.095 [ERROR] [b.m.internal.MegaDeviceBinding:442  ] - lamp_out51_26 cannot determine type: class org.openhab.core.library.items.SwitchItem
11:38:58.096 [ERROR] [b.m.internal.MegaDeviceBinding:442  ] - lamp_out51_28 cannot determine type: class org.openhab.core.library.items.DimmerItem
11:38:58.096 [ERROR] [b.m.internal.MegaDeviceBinding:442  ] - lamp_out51_12 cannot determine type: class org.openhab.core.library.items.DimmerItem
11:38:58.096 [ERROR] [b.m.internal.MegaDeviceBinding:442  ] - button_in51_3 cannot determine type: class org.openhab.core.library.items.SwitchItem
11:38:58.096 [ERROR] [b.m.internal.MegaDeviceBinding:442  ] - lamp_out51_11 cannot determine type: class org.openhab.core.library.items.SwitchItem
11:38:58.097 [ERROR] [b.m.internal.MegaDeviceBinding:442  ] - button_in51_4 cannot determine type: class org.openhab.core.library.items.SwitchItem
11:38:58.101 [ERROR] [b.m.internal.MegaDeviceBinding:442  ] - button_in51_1 cannot determine type: class org.openhab.core.library.items.SwitchItem
11:38:58.102 [ERROR] [b.m.internal.MegaDeviceBinding:442  ] - lamp_out51_13 cannot determine type: class org.openhab.core.library.items.DimmerItem
11:38:58.102 [ERROR] [b.m.internal.MegaDeviceBinding:442  ] - button_in51_2 cannot determine type: class org.openhab.core.library.items.SwitchItem
11:38:58.102 [ERROR] [b.m.internal.MegaDeviceBinding:442  ] - button_in51_5 cannot determine type: class org.openhab.core.library.items.SwitchItem
11:38:58.114 [DEBUG] [b.m.internal.MegaDeviceBinding:436  ] - OK
Откатываюсь на версию 0.1.2.7, такого нет:

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

11:43:20.642 [DEBUG] [o.i.r.i.resources.ItemResource:205  ] - Received HTTP POST request at 'items/lamp_out51_10' with value '63'.
11:43:20.652 [DEBUG] [b.m.internal.MegaDeviceBinding:394  ] - internalReceiveCommand(lamp_out51_10,63) is called!
11:43:20.654 [DEBUG] [b.m.internal.MegaDeviceBinding:426  ] - SendCommand exec
11:43:20.655 [DEBUG] [b.m.internal.MegaDeviceBinding:468  ] - Dimmer value-> 161
11:43:20.655 [DEBUG] [b.m.internal.MegaDeviceBinding:472  ] - dimmer:
11:43:20.671 [DEBUG] [b.m.internal.MegaDeviceBinding:484  ] - OK
11:43:20.684 [DEBUG] [m.r.internal.engine.RuleEngine:305  ] - Executing rule 'Lamp/Sockets counters rule'
11:43:20.720 [DEBUG] [m.r.internal.engine.RuleEngine:305  ] - Executing rule 'Lamp/Sockets counters rule'
11:43:20.749 [DEBUG] [.p.rrd4j.internal.RRD4jService:113  ] - Stored 'lamp_out51_10' with state '30' in rrd4j database (again)
11:43:20.752 [DEBUG] [.p.rrd4j.internal.RRD4jService:132  ] - Stored 'lamp_out51_10' with state '0.63000000' in rrd4j database
11:43:20.875 [INFO ] [runtime.busevents             :22   ] - lamp_out51_10 received command 63

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

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

Сообщение Petros » 11 дек 2016, 14:03

Исправил. Перезакачайте ту же версию! Ошибка не на что не влияла, просто забивала логи

YTNICORP
Сообщения: 25
Зарегистрирован: 26 авг 2016, 10:19

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

Сообщение YTNICORP » 11 дек 2016, 15:13

Да, я видел, что при этом все работало нормально, забыл написать. С позволения тогда еще вопрос:
Диммер может входить в группу вида Group:Switch:OR(ON, OFF). Если включать/выключать группу, то OpenHAB интерпретирует приходящие диммеру команды "ON"/"OFF" как 100/0 и элементы сайтмэпа реагируют на эти события соответственно. Но по факту состояние порта Меги при этом не меняется.
Это баг или фича?

Для примера:

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

//items
Group:Switch:OR(ON, OFF)	gLampsSW		"All lamps"	<bulb>	(All)
Dimmer	lamp_out51_12	"Living room"	<bulb>	(gLampsSW)	{megadevice="sec:10.10.10.51:12:3600"} // dimmable

//sitemap
Switch item=gLampsSW
Slider item=lamp_out51_12

Akitaka
Сообщения: 19
Зарегистрирован: 18 мар 2014, 00:18

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

Сообщение Akitaka » 22 дек 2016, 22:53

Что-то лыжи совсем не едут.
items:

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

Switch MegaDeviceButton_kitchen     "Kitchen button" {megadevice="sec:192.168.77.13:2"}
Switch KitchenLamp "Свет над кухней" (Hall, Hall_Lights) {megadevice="sec:192.168.77.13:9"}
Number MegaDeviceOneTemp "Mega 1 temperature" {megadevice="sec:192.168.77.13:tget:30"}
rules:

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

rule "MegadeviceKitchenButtonPress"
when item MegaDeviceButton_kitchen changed to ON
then if (KitchenLamp.state == OFF) {
postUpdate(KitchenLamp, ON)
sendCommand(KitchenLamp, ON)
} else {
postUpdate(KitchenLamp, OFF)
sendCommand(KitchenLamp, OFF)
}
end
Настройки меги

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

Back | Megad-ID
IP 192.168.77.13
Pwd sec
GW 255.255.255.255
SRV 192.168.77.149:8989
Script 
Cur T: 34

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

P2/OFF/13
Type In
Act 
Net  
Mode  P&R
Raw 
log:

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

21:39:58.592 [INFO ] [.service.AbstractActiveService:169  ] - MegaDevice Refresh Service has been started
21:39:58.597 [INFO ] [o.o.b.m.i.MegadeviceHttpServer:32   ] - Starting MegaHttpServer at 8989 port
21:40:03.601 [DEBUG] [b.m.internal.MegaDeviceBinding:480  ] - http://192.168.77.13/sec/?pt=2&cmd=get
21:40:03.609 [DEBUG] [b.m.internal.MegaDeviceBinding:503  ] - input string-> OFF/9
21:40:03.610 [DEBUG] [b.m.internal.MegaDeviceBinding:480  ] - http://192.168.77.13/sec/?pt=9&cmd=get
21:40:03.615 [DEBUG] [b.m.internal.MegaDeviceBinding:503  ] - input string-> OFF
21:40:03.615 [DEBUG] [b.m.internal.MegaDeviceBinding:480  ] - http://192.168.77.13/sec/?tget=1
21:40:03.640 [DEBUG] [b.m.internal.MegaDeviceBinding:503  ] - input string-> 34
21:40:03.642 [DEBUG] [b.m.internal.MegaDeviceBinding:225  ] - http://192.168.77.13/sec/?tget=1
21:40:03.667 [DEBUG] [b.m.internal.MegaDeviceBinding:243  ] - input string-> 34
21:40:05.860 [INFO ] [c.internal.ModelRepositoryImpl:80   ] - Loading model 'default.rules'
21:40:11.785 [DEBUG] [o.o.b.m.i.MegaDeviceHttpSocket:64   ] - 192.168.77.13 GET /?pt=2&cnt=8&mdid=13 HTTP/1.1
21:40:11.786 [DEBUG] [b.m.internal.MegaDeviceBinding:569  ] - action at address ->> 192.168.77.13 On_OFF: ON
21:40:33.691 [DEBUG] [b.m.internal.MegaDeviceBinding:225  ] - http://192.168.77.13/sec/?tget=1
21:40:33.717 [DEBUG] [b.m.internal.MegaDeviceBinding:243  ] - input string-> 35
21:41:03.744 [DEBUG] [b.m.internal.MegaDeviceBinding:225  ] - http://192.168.77.13/sec/?tget=1
21:41:03.769 [DEBUG] [b.m.internal.MegaDeviceBinding:243  ] - input string-> 34
21:41:08.579 [DEBUG] [o.o.b.m.i.MegaDeviceHttpSocket:64   ] - 192.168.77.13 GET /?pt=2&cnt=10&mdid=13 HTTP/1.1
21:41:08.580 [DEBUG] [b.m.internal.MegaDeviceBinding:569  ] - action at address ->> 192.168.77.13 On_OFF: ON
21:41:33.792 [DEBUG] [b.m.internal.MegaDeviceBinding:225  ] - http://192.168.77.13/sec/?tget=1
21:41:33.820 [DEBUG] [b.m.internal.MegaDeviceBinding:243  ] - input string-> 34
21:41:55.944 [INFO ] [c.internal.ModelRepositoryImpl:98   ] - Refreshing model 'MegaTest.items'
21:41:55.946 [DEBUG] [i.internal.GenericItemProvider:154  ] - Processing binding configs for items from model 'MegaTest.items'
21:41:55.947 [DEBUG] [i.internal.GenericItemProvider:133  ] - Read items from model 'MegaTest.items'
21:42:18.919 [DEBUG] [o.o.b.m.i.MegaDeviceHttpSocket:64   ] - 192.168.77.13 GET /?pt=2&cnt=12&mdid=13 HTTP/1.1
21:42:18.920 [DEBUG] [b.m.internal.MegaDeviceBinding:569  ] - action at address ->> 192.168.77.13 On_OFF: ON
Правило не работает, если нажимать на кнопки на сайте, то все работает. С кнопки - нет. Биндинг 1.2.8 и 1.2.6 пробовал.
Если вписать в поле Act 9:2, то лампочка загорается через 2 сек, таймаут на обработку запроса сервером.

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

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

Сообщение Petros » 23 дек 2016, 00:25

Не отрабатывает нажатие. Галочку P&R на порту поставили?

в поле script попробуйте хоть что-то вбить

Делали как написано в первом посте этой ветки?

Можно логи с 1.2.6 версии посмотреть, после скана портов и попытки нажатия кнопки. Спасибо!

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

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

Сообщение Petros » 23 дек 2016, 00:34

YTNICORP, не могу точно сказать, нет диммеров. Но вроде у людей работало

Akitaka
Сообщения: 19
Зарегистрирован: 18 мар 2014, 00:18

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

Сообщение Akitaka » 23 дек 2016, 02:06

Petros писал(а):Не отрабатывает нажатие. Галочку P&R на порту поставили?

в поле script попробуйте хоть что-то вбить

Делали как написано в первом посте этой ветки?

Можно логи с 1.2.6 версии посмотреть, после скана портов и попытки нажатия кнопки. Спасибо!
Галочку и ставил и убирал, в поле скрипт вбил megad.
У меня был рабочий конфиг, но не заработал на новом сервере. Решил проверить работоспособность сервера+контроллер самым простым примером с первой страницы. Вот логи с 1.2.6:

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

01:00:12.894 [INFO ] [penhab.io.rest.RESTApplication:144  ] - Started REST API at /rest
01:00:12.895 [DEBUG] [o.o.i.s.i.DiscoveryServiceImpl:66   ] - Registering new service _openhab-server._tcp.local. at port 8080
01:00:18.591 [DEBUG] [o.o.i.s.i.DiscoveryServiceImpl:66   ] - Registering new service _openhab-server-ssl._tcp.local. at port 8443
01:00:20.790 [INFO ] [c.internal.ModelRepositoryImpl:80   ] - Loading model 'default.sitemap'
01:00:20.966 [INFO ] [c.internal.ModelRepositoryImpl:80   ] - Loading model 'MegaTest.items'
01:00:20.984 [DEBUG] [i.internal.GenericItemProvider:154  ] - Processing binding configs for items from model 'MegaTest.items'
01:00:20.985 [DEBUG] [i.internal.GenericItemProvider:133  ] - Read items from model 'MegaTest.items'
01:00:21.358 [INFO ] [.o.u.w.i.servlet.WebAppServlet:80   ] - Started Classic UI at /classicui/openhab.app
01:00:21.534 [DEBUG] [.r.internal.RuleModelActivator:42   ] - Registered 'rules' configuration parser
01:00:21.558 [DEBUG] [m.r.internal.engine.RuleEngine:77   ] - Started rule engine
01:00:24.610 [INFO ] [m.internal.MegaDeviceActivator:17   ] - MegaDevice binding has been started.
01:00:24.625 [DEBUG] [i.internal.GenericItemProvider:341  ] - Start processing binding configuration of Item 'MegaDeviceButton_kitchen (Type=SwitchItem, State=Uninitialized)' with 'MegaDeviceGenericBindingProvider' reader.
01:00:24.626 [DEBUG] [i.internal.GenericItemProvider:341  ] - Start processing binding configuration of Item 'KitchenLamp (Type=SwitchItem, State=Uninitialized)' with 'MegaDeviceGenericBindingProvider' reader.
01:00:24.633 [INFO ] [.service.AbstractActiveService:169  ] - MegaDevice Refresh Service has been started
01:00:24.637 [INFO ] [o.o.b.m.i.MegadeviceHttpServer:19   ] - Starting MegaHttpServer at 8989 port
01:00:29.638 [DEBUG] [b.m.internal.MegaDeviceBinding:541  ] - http://192.168.77.13/sec/?pt=2&cmd=get
01:00:29.638 [DEBUG] [b.m.internal.MegaDeviceBinding:543  ] - Sleeping...
01:00:30.638 [DEBUG] [b.m.internal.MegaDeviceBinding:549  ] - Waking up...
01:00:30.647 [DEBUG] [b.m.internal.MegaDeviceBinding:566  ] - input string->OFF/0
01:00:30.648 [DEBUG] [b.m.internal.MegaDeviceBinding:541  ] - http://192.168.77.13/sec/?pt=9&cmd=get
01:00:30.648 [DEBUG] [b.m.internal.MegaDeviceBinding:543  ] - Sleeping...
01:00:31.065 [INFO ] [c.internal.ModelRepositoryImpl:80   ] - Loading model 'default.rules'
01:00:31.648 [DEBUG] [b.m.internal.MegaDeviceBinding:549  ] - Waking up...
01:00:31.653 [DEBUG] [b.m.internal.MegaDeviceBinding:566  ] - input string->OFF
01:01:23.572 [DEBUG] [o.o.b.m.i.MegaDeviceHttpSocket:50   ] - 192.168.77.13 GET /megad?pt=2&cnt=1&mdid=13 HTTP/1.1
01:01:23.576 [DEBUG] [b.m.internal.MegaDeviceBinding:641  ] - action at address ->> 192.168.77.13 On_OFF: ON
01:01:23.576 [DEBUG] [b.m.internal.MegaDeviceBinding:647  ] -  itemName: class org.openhab.core.library.items.SwitchItem
01:01:23.577 [DEBUG] [o.o.b.m.i.MegaDeviceHttpSocket:63   ] - 0 value megad
01:01:23.577 [DEBUG] [o.o.b.m.i.MegaDeviceHttpSocket:63   ] - 1 value pt
01:01:23.577 [DEBUG] [o.o.b.m.i.MegaDeviceHttpSocket:63   ] - 2 value 2
01:01:23.577 [DEBUG] [o.o.b.m.i.MegaDeviceHttpSocket:63   ] - 3 value cnt
01:01:23.577 [DEBUG] [o.o.b.m.i.MegaDeviceHttpSocket:63   ] - 4 value 1
01:01:23.577 [DEBUG] [o.o.b.m.i.MegaDeviceHttpSocket:63   ] - 5 value mdid
01:01:23.577 [DEBUG] [o.o.b.m.i.MegaDeviceHttpSocket:63   ] - 6 value 13
01:01:23.868 [DEBUG] [o.o.b.m.i.MegaDeviceHttpSocket:50   ] - 192.168.77.13 GET /megad?pt=2&m=1&cnt=2&mdid=13 HTTP/1.1
01:01:23.869 [DEBUG] [b.m.internal.MegaDeviceBinding:641  ] - action at address ->> 192.168.77.13 On_OFF: OFF
01:01:23.870 [DEBUG] [b.m.internal.MegaDeviceBinding:647  ] -  itemName: class org.openhab.core.library.items.SwitchItem

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

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

Сообщение d.v.ermakov » 23 дек 2016, 11:54

YTNICORP, группой диммеры у меня тоже не выключаются. Я пока костыль примотал в виде отдельной переменной и правила, а разобраться некогда. Нужно копать логи. Байндинг виноват или сам ОпенХаб.
Akitaka, предлагаю открыть правило Дизайнером, проверить отсутствие ошибок, сохранить из Дизайнера. Иногда даже один (невидимый в тексте) символ приводит к неработоспособности файла.

Akitaka
Сообщения: 19
Зарегистрирован: 18 мар 2014, 00:18

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

Сообщение Akitaka » 23 дек 2016, 13:37

d.v.ermakov писал(а):YTNICORP, группой диммеры у меня тоже не выключаются. Я пока костыль примотал в виде отдельной переменной и правила, а разобраться некогда. Нужно копать логи. Байндинг виноват или сам ОпенХаб.
Akitaka, предлагаю открыть правило Дизайнером, проверить отсутствие ошибок, сохранить из Дизайнера. Иногда даже один (невидимый в тексте) символ приводит к неработоспособности файла.
Открыл дизайнером - все нормально.
Прошил эту МеgaD на 3.52b1.
item, отвечающий за нажатие кнопки, при самом нажатии меняет свое состояние в вебинтерфейсе на ВКЛ, пока я держу саму кнопку. Стоит ее отпустить и состояние меняется на ВЫКЛ. Правило при этом не отрабатывается.

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

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

Сообщение Petros » 23 дек 2016, 13:43

Значит проблема в правиле. Биндинг отрабатывает. В логах должна быть строчка

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

Executing rule 'MegadeviceKitchenButtonPress'
, что говорит о срабатываении правила

Кстати, а дизайнер на правило не ругается?

вроде как Item и item разные слова

Akitaka
Сообщения: 19
Зарегистрирован: 18 мар 2014, 00:18

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

Сообщение Akitaka » 23 дек 2016, 16:58

Да, тоже заметил, что item надо с заглавной буквы, но помогло в итоге только полное переписывание с нуля правила и имен айтемов. В виртуалке все заработало, но мне надо запустить все на synology в docker контейнере или через пакет openhab. И тут все опять плохо, веб-морда OpenHAB работает, а правило - нет.
Новая напасть:

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

16:36:22.414 [Thread-18] INFO  o.o.b.m.i.MegadeviceHttpServer - Starting MegaHttpServer at 8789 port
16:36:22.415 [Thread-18] DEBUG o.o.b.m.i.MegadeviceHttpServer - ERROR -> Address already in use (Bind failed)
меняю порты постоянно, но не помогает.

YTNICORP
Сообщения: 25
Зарегистрирован: 26 авг 2016, 10:19

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

Сообщение YTNICORP » 24 дек 2016, 00:01

d.v.ermakov писал(а):YTNICORP, группой диммеры у меня тоже не выключаются. Я пока костыль примотал в виде отдельной переменной и правила, а разобраться некогда. Нужно копать логи. Байндинг виноват или сам ОпенХаб.
Ок, понятно, тогда тоже наверное пока времянку через правило такую организую. По логам ничего особого не видно просто, OH вроде как все честно обрабатывает, но item игнорит значения (при этом мои правила также реагируют на события "Item received update"):

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

-- включаем свитчером, значение слайдеру передается, интерфейсно он включается, но мега значение не применяет:
23:54:25.666 [DEBUG] [o.i.r.i.resources.ItemResource:205  ] - Received HTTP POST request at 'items/gLampsSW' with value 'ON'.
23:54:25.828 [DEBUG] [.p.rrd4j.internal.RRD4jService:113  ] - Stored 'lamp_out51_12' with state '0' in rrd4j database (again)
23:54:25.859 [DEBUG] [.p.rrd4j.internal.RRD4jService:132  ] - Stored 'lamp_out51_12' with state '1.00000000' in rrd4j database
23:54:25.956 [DEBUG] [b.m.internal.MegaDeviceBinding:357  ] - internalReceiveCommand(lamp_out51_12,ON) is called!
23:54:25.958 [DEBUG] [b.m.internal.MegaDeviceBinding:389  ] - SendCommand exec

-- выключаем, значение 0 также передается, но состояние итема по факту не меняется:
23:54:33.218 [DEBUG] [o.i.r.i.resources.ItemResource:205  ] - Received HTTP POST request at 'items/gLampsSW' with value 'OFF'.
23:54:33.507 [DEBUG] [.p.rrd4j.internal.RRD4jService:113  ] - Stored 'lamp_out51_12' with state '100' in rrd4j database (again)
23:54:33.527 [DEBUG] [.p.rrd4j.internal.RRD4jService:132  ] - Stored 'lamp_out51_12' with state '0.00000000' in rrd4j database
23:54:33.616 [DEBUG] [b.m.internal.MegaDeviceBinding:357  ] - internalReceiveCommand(lamp_out51_12,OFF) is called!
23:54:33.618 [DEBUG] [b.m.internal.MegaDeviceBinding:389  ] - SendCommand exec

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

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

Сообщение Petros » 24 дек 2016, 15:26

Ок, понятно, тогда тоже наверное пока времянку через правило такую организую. По логам ничего особого не видно просто, OH вроде как все честно обрабатывает, но item игнорит значения (при этом мои правила также реагируют на события "Item received update"):

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

-- включаем свитчером, значение слайдеру передается, интерфейсно он включается, но мега значение не применяет:
23:54:25.666 [DEBUG] [o.i.r.i.resources.ItemResource:205  ] - Received HTTP POST request at 'items/gLampsSW' with value 'ON'.
23:54:25.828 [DEBUG] [.p.rrd4j.internal.RRD4jService:113  ] - Stored 'lamp_out51_12' with state '0' in rrd4j database (again)
23:54:25.859 [DEBUG] [.p.rrd4j.internal.RRD4jService:132  ] - Stored 'lamp_out51_12' with state '1.00000000' in rrd4j database
23:54:25.956 [DEBUG] [b.m.internal.MegaDeviceBinding:357  ] - internalReceiveCommand(lamp_out51_12,ON) is called!
23:54:25.958 [DEBUG] [b.m.internal.MegaDeviceBinding:389  ] - SendCommand exec

-- выключаем, значение 0 также передается, но состояние итема по факту не меняется:
23:54:33.218 [DEBUG] [o.i.r.i.resources.ItemResource:205  ] - Received HTTP POST request at 'items/gLampsSW' with value 'OFF'.
23:54:33.507 [DEBUG] [.p.rrd4j.internal.RRD4jService:113  ] - Stored 'lamp_out51_12' with state '100' in rrd4j database (again)
23:54:33.527 [DEBUG] [.p.rrd4j.internal.RRD4jService:132  ] - Stored 'lamp_out51_12' with state '0.00000000' in rrd4j database
23:54:33.616 [DEBUG] [b.m.internal.MegaDeviceBinding:357  ] - internalReceiveCommand(lamp_out51_12,OFF) is called!
23:54:33.618 [DEBUG] [b.m.internal.MegaDeviceBinding:389  ] - SendCommand exec

lamp_out51_12 У вас в айтемах прописана как Диммер? Диммер не понимает ON/OFF, поэтому и не отрабатывает, но при этом в логах должна быть ошибка. Кроме того, как выключатель сможет восстановить значение при включении? Для свитча диммера возможна только виртуальная кнопка. Или биндинг не отрабатывает в правиле посыл(0 или 100)?

YTNICORP
Сообщения: 25
Зарегистрирован: 26 авг 2016, 10:19

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

Сообщение YTNICORP » 24 дек 2016, 19:11

Просто по логам вижу, что при выключении значение меняется на 0, и на 100 при включении. Т.е. вроде как сами команды понимает. Ошибок тоже не вижу по логу.
Если это косяк ОН, то обходить это можно либо правилами, как это сделал d.v.ermakov, либо сделать 2 айтема, завязанных на один порт меги - dimmer и switch.

YTNICORP
Сообщения: 25
Зарегистрирован: 26 авг 2016, 10:19

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

Сообщение YTNICORP » 24 дек 2016, 20:51

YTNICORP писал(а):... либо сделать 2 айтема, завязанных на один порт меги - dimmer и switch.
Нет, так фигня получается, включение воспринимается как значение 1, а не 255. Значит только виртуальной кнопкой и правилом :(

Ответить