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

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

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

Сообщение Petros » 29 янв 2019, 21:56

Сохранить можно. При перезагрузке состояние сбросится и восстановится. Через persist

fild
Сообщения: 19
Зарегистрирован: 24 янв 2019, 08:57

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

Сообщение fild » 30 янв 2019, 04:26

Petros писал(а):
29 янв 2019, 21:56
Сохранить можно. При перезагрузке состояние сбросится и восстановится. Через persist
можно пример?

xtiitx
Сообщения: 6
Зарегистрирован: 02 апр 2018, 15:09
Откуда: Екатеринбург

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

Сообщение xtiitx » 30 янв 2019, 09:36

fild писал(а):
30 янв 2019, 04:26
Petros писал(а):
29 янв 2019, 21:56
Сохранить можно. При перезагрузке состояние сбросится и восстановится. Через persist
можно пример?
В OH какая либо база данных для сбора информации подключена?
Если да, то для интересующих переключателей указываете следующие правила записи данных в БД (*.persist в конфигах OH) <имя items>,<имя items2> : strategy = everyChange, restoreOnStartup

fild
Сообщения: 19
Зарегистрирован: 24 янв 2019, 08:57

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

Сообщение fild » 30 янв 2019, 09:47

xtiitx писал(а):
30 янв 2019, 09:36
fild писал(а):
30 янв 2019, 04:26
Petros писал(а):
29 янв 2019, 21:56
Сохранить можно. При перезагрузке состояние сбросится и восстановится. Через persist
можно пример?
В OH какая либо база данных для сбора информации подключена?
Если да, то для интересующих переключателей указываете следующие правила записи данных в БД (*.persist в конфигах OH) <имя items>,<имя items2> : strategy = everyChange, restoreOnStartup
rrd4j.persist

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

Strategies {
    everyMinute : "0 * * * * ?"
    every15min  : "0 0/15 * * * ?"
    everyHour   : "0 0 * * * ?"
    everyDay    : "0 0 0 * * ?"
}
Items {
    // persist items on every change and every minute
    * : strategy = everyChange, everyHour, everyDay
}

Strategies {
  default = everyUpdate
}
Items {
  * : strategy = everyChange, restoreOnStartup
}

xtiitx
Сообщения: 6
Зарегистрирован: 02 апр 2018, 15:09
Откуда: Екатеринбург

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

Сообщение xtiitx » 30 янв 2019, 10:10

При такой конфигурации идет дублирование стратегий.
Надо разобраться зачем эти данные в принципе в базу сохраняются? Если база фактически только для восстановления корректных данных о состоянии выключателей, то достаточно так:

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

Strategies {
    everyMinute : "0 * * * * ?"
    every15min  : "0 0/15 * * * ?"
    everyHour   : "0 0 * * * ?"
    everyDay    : "0 0 0 * * ?"
}
Items {
    * : strategy = everyChange, restoreOnStartup
}
А если еще и с каких то датчиков идет сбор, то тут Вам виднее как часто с них инфу записывать.
У меня датчики записываться раз в минуту, ибо писать их при каждом изменении (everyChange) слишком расточительно. И будет примерно так:

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

Strategies {
    everyMinute : "0 * * * * ?"
    every15min  : "0 0/15 * * * ?"
    everyHour   : "0 0 * * * ?"
    everyDay    : "0 0 0 * * ?"
}
Items {
    <переключатели> : strategy = everyChange, restoreOnStartup
    <датчики> : strategy = everyMinute, restoreOnStartup
}

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

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

Сообщение martiniman » 30 янв 2019, 11:38

База rrd4j не хранит данные с типом дата и время.
Если нужно только сохранять последние значения используйте mapDB.
Я использую influxdb.
Далее fild правильно описал проблему, но никто не понял, я проверил, так и есть:
Включаю Switch m5_2_sd_p22 - ON, делаю рестарт openHAB.
При загрузке в логах вижу:

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

2019-01-30 10:35:42.142 [vent.ItemStateChangedEvent] - m5_2_sd_p22 changed from NULL to ON
Т.е. последнее состояние Item восстановилось из базы, но физически порт не включился на меге.

xtiitx
Сообщения: 6
Зарегистрирован: 02 апр 2018, 15:09
Откуда: Екатеринбург

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

Сообщение xtiitx » 30 янв 2019, 11:49

martiniman писал(а):
30 янв 2019, 11:38
Т.е. последнее состояние Item восстановилось из базы, но физически порт не включился на меге.
Я думаю это уже правилами обрабатывать придется.
У меня при включении OH такое правило срабатывает.

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

rule "Restart Openhab"
    when
        System started
    then
        bath_cool.sendCommand(ON) // выключение вентилятора в ванной, реле с общим плюсом
        toilet_cool.sendCommand(ON) // аналогично туалет
        val extender0 = sendHttpGetRequest("http://10.10.10.12/sec/?pt=7&cmd=get") //запрос фактического состояния портов на расширителе
        val ext = extender0.split(";")
        postUpdate(kor_r0,ext.get(0)) // установка состояния кнопок в интерфейсе
        postUpdate(kor_r1,ext.get(1))
        //....
end
Правда восстановление не из базы, а просто выключение того, что работать просто так не должно, плюс проверка фактического состояния портов и расстановка соответствующих индикаторов в интерфейсе.

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

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

Сообщение martiniman » 30 янв 2019, 11:52

Вопрос к Petros - возможно ли не сбрасывать состояние портов при старте биндинга?

Petros
Сообщения: 395
Зарегистрирован: 21 авг 2012, 22:09

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

Сообщение Petros » 04 фев 2019, 08:51

Нужно посмотреть почему он вообще их сбрасывает. В коде такой команды нет.

fild
Сообщения: 19
Зарегистрирован: 24 янв 2019, 08:57

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

Сообщение fild » 04 фев 2019, 09:56

Petros писал(а):
04 фев 2019, 08:51
Нужно посмотреть почему он вообще их сбрасывает. В коде такой команды нет.
вот момент когда все гаснет

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

2019-02-04 12:53:27.155 [GroupItemStateChangedEvent] - gHumidity changed from 10.111 to 9.862 through LivingRoom_Humidity
2019-02-04 12:53:27.158 [vent.ItemStateChangedEvent] - Kitchen_Humidity changed from NULL to 9.200
2019-02-04 12:53:27.162 [GroupItemStateChangedEvent] - gHumidity changed from 9.862 to 9.697 through Kitchen_Humidity
2019-02-04 12:53:27.172 [GroupItemStateChangedEvent] - gCO2 changed from 777 to 828 through LivingRoom_CO2
2019-02-04 12:53:27.175 [vent.ItemStateChangedEvent] - LivingRoom_CO2 changed from NULL to 879
2019-02-04 12:53:28.643 [vent.ItemStateChangedEvent] - Corridor_Light changed from NULL to ON
2019-02-04 12:53:30.169 [hingStatusInfoChangedEvent] - 'megad:bridge:megadeviceincomin' changed from UNINITIALIZED to INITIALIZING
==> /var/log/openhab2/openhab.log <==
2019-02-04 12:53:30.249 [INFO ] [ing.megad.handler.MegaDBridgeHandler] - MegaD bridge opened port 42745
==> /var/log/openhab2/events.log <==
2019-02-04 12:53:30.253 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Corridor_Light' changed from UNINITIALIZED to UNINITIALIZED (BRIDGE_UNINITIALIZED)
2019-02-04 12:53:30.259 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Corridor_door' changed from UNINITIALIZED to UNINITIALIZED (BRIDGE_UNINITIALIZED)
2019-02-04 12:53:30.268 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Bathroom_valve_O' changed from UNINITIALIZED to UNINITIALIZED (BRIDGE_UNINITIALIZED)
2019-02-04 12:53:30.274 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Bathroom_valve_1' changed from UNINITIALIZED to UNINITIALIZED (BRIDGE_UNINITIALIZED)
2019-02-04 12:53:30.299 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Bathroom_temp' changed from UNINITIALIZED to UNINITIALIZED (BRIDGE_UNINITIALIZED)
2019-02-04 12:53:30.321 [hingStatusInfoChangedEvent] - 'megad:bridge:megadeviceincomin' changed from INITIALIZING to ONLINE
2019-02-04 12:53:30.370 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Bathroom_temp' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to INITIALIZING
2019-02-04 12:53:30.400 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Corridor_Light' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to INITIALIZING
2019-02-04 12:53:30.423 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Kitchen_Light' changed from UNINITIALIZED to INITIALIZING
==> /var/log/openhab2/openhab.log <==
2019-02-04 12:53:30.429 [INFO ] [b.binding.megad.handler.MegaDHandler] - Switch: http://192.168.88.21/sec/?cmd=7:0
2019-02-04 12:53:30.445 [INFO ] [b.binding.megad.handler.MegaDHandler] - Switch: http://192.168.88.21/sec/?cmd=12:0
==> /var/log/openhab2/events.log <==
2019-02-04 12:53:30.445 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Bathroom_valve_O' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to INITIALIZING
2019-02-04 12:53:30.455 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Bathroom_temp' changed from INITIALIZING to ONLINE
==> /var/log/openhab2/openhab.log <==
2019-02-04 12:53:30.461 [INFO ] [b.binding.megad.handler.MegaDHandler] - Switch: http://192.168.88.21/sec/?cmd=25:0
==> /var/log/openhab2/events.log <==
2019-02-04 12:53:30.469 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Corridor_Light' changed from INITIALIZING to ONLINE
==> /var/log/openhab2/openhab.log <==
2019-02-04 12:53:30.475 [INFO ] [b.binding.megad.handler.MegaDHandler] - Switch: http://192.168.88.21/sec/?cmd=27:0
==> /var/log/openhab2/events.log <==
2019-02-04 12:53:30.484 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Kitchen_Light' changed from INITIALIZING to ONLINE
2019-02-04 12:53:30.497 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Bathroom_valve_O' changed from INITIALIZING to ONLINE
2019-02-04 12:53:30.501 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Corridor_door' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to INITIALIZING
2019-02-04 12:53:30.508 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Corridor_door' changed from INITIALIZING to ONLINE
2019-02-04 12:53:30.516 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Bathroom_valve_1' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to INITIALIZING
2019-02-04 12:53:30.523 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:KitchenI_Light' changed from UNINITIALIZED to INITIALIZING
2019-02-04 12:53:30.529 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Bathroom_valve_1' changed from INITIALIZING to ONLINE
2019-02-04 12:53:30.533 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Kitchen_temp' changed from UNINITIALIZED to INITIALIZING
2019-02-04 12:53:30.537 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Kitchen_window' changed from UNINITIALIZED to INITIALIZING
2019-02-04 12:53:30.541 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Room1_Light' changed from UNINITIALIZED to INITIALIZING
==> /var/log/openhab2/openhab.log <==
2019-02-04 12:53:30.542 [INFO ] [b.binding.megad.handler.MegaDHandler] - Switch: http://192.168.88.21/sec/?cmd=28:0
==> /var/log/openhab2/events.log <==
2019-02-04 12:53:30.549 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:KitchenI_Light' changed from INITIALIZING to ONLINE
2019-02-04 12:53:30.555 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Kitchen_window' changed from INITIALIZING to ONLINE
2019-02-04 12:53:30.562 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Kitchen_temp' changed from INITIALIZING to ONLINE
2019-02-04 12:53:30.570 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Room1_Light' changed from INITIALIZING to ONLINE
2019-02-04 12:53:30.577 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Room1_temp' changed from UNINITIALIZED to INITIALIZING
2019-02-04 12:53:30.586 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Room1_window' changed from UNINITIALIZED to INITIALIZING
2019-02-04 12:53:30.592 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Room2Bra_Light' changed from UNINITIALIZED to INITIALIZING
2019-02-04 12:53:30.597 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Room1Bra_Light' changed from UNINITIALIZED to INITIALIZING
2019-02-04 12:53:30.606 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Room2_temp' changed from UNINITIALIZED to INITIALIZING
2019-02-04 12:53:30.614 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Room2_window' changed from UNINITIALIZED to INITIALIZING
2019-02-04 12:53:30.620 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Room1_window' changed from INITIALIZING to ONLINE
2019-02-04 12:53:30.627 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Room1Bra_Light' changed from INITIALIZING to ONLINE
==> /var/log/openhab2/openhab.log <==
2019-02-04 12:53:30.627 [INFO ] [b.binding.megad.handler.MegaDHandler] - Switch: http://192.168.88.21/sec/?cmd=13:0
==> /var/log/openhab2/events.log <==
2019-02-04 12:53:30.632 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Room2Bra_Light' changed from INITIALIZING to ONLINE
==> /var/log/openhab2/openhab.log <==
2019-02-04 12:53:30.635 [INFO ] [b.binding.megad.handler.MegaDHandler] - Switch: http://192.168.88.21/sec/?cmd=9:0
==> /var/log/openhab2/events.log <==
2019-02-04 12:53:30.647 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Room1_temp' changed from INITIALIZING to ONLINE
2019-02-04 12:53:30.652 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Room2_temp' changed from INITIALIZING to ONLINE
2019-02-04 12:53:30.656 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:DRRing' changed from UNINITIALIZED to INITIALIZING
2019-02-04 12:53:30.662 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Room2_window' changed from INITIALIZING to ONLINE
2019-02-04 12:53:30.672 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:DRRing' changed from INITIALIZING to ONLINE
==> /var/log/openhab2/openhab.log <==
2019-02-04 12:53:30.682 [INFO ] [b.binding.megad.handler.MegaDHandler] - Switch: http://192.168.88.21/sec/?cmd=23:0
==> /var/log/openhab2/events.log <==
2019-02-04 12:53:30.744 [vent.ItemStateChangedEvent] - Bathroom_valve_O changed from NULL to OFF
2019-02-04 12:53:30.748 [GroupItemStateChangedEvent] - gValve changed from NULL to OFF through Bathroom_valve_O
2019-02-04 12:53:30.774 [GroupItemStateChangedEvent] - gTemperature changed from NULL to 23.03 through Bathroom_Temperature
2019-02-04 12:53:30.779 [vent.ItemStateChangedEvent] - Bathroom_Temperature changed from NULL to 23.03
2019-02-04 12:53:30.783 [vent.ItemStateChangedEvent] - Kitchen_Light changed from NULL to ON
2019-02-04 12:53:30.787 [vent.ItemStateChangedEvent] - Corridor_Door changed from NULL to OPEN
2019-02-04 12:53:30.790 [vent.ItemStateChangedEvent] - Bathroom_valve_1 changed from NULL to OFF
2019-02-04 12:53:30.796 [vent.ItemStateChangedEvent] - Corridor_Light changed from ON to OFF
2019-02-04 12:53:30.801 [vent.ItemStateChangedEvent] - Kitchen_Window changed from NULL to OPEN

Petros
Сообщения: 395
Зарегистрирован: 21 авг 2012, 22:09

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

Сообщение Petros » 04 фев 2019, 09:58

Ага. А можно режим дебага включить?

fild
Сообщения: 19
Зарегистрирован: 24 янв 2019, 08:57

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

Сообщение fild » 04 фев 2019, 10:11

Petros писал(а):
04 фев 2019, 09:58
Ага. А можно режим дебага включить?
напишите как, включу

Petros
Сообщения: 395
Зарегистрирован: 21 авг 2012, 22:09

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

Сообщение Petros » 04 фев 2019, 10:16

В консоли openhab log:set DEBUG org.openhab.binding

fild
Сообщения: 19
Зарегистрирован: 24 янв 2019, 08:57

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

Сообщение fild » 04 фев 2019, 10:23

Petros писал(а):
04 фев 2019, 10:16
В консоли openhab log:set DEBUG org.openhab.binding
==> /var/log/openhab2/openhab.log <==

2019-02-04 13:44:00.239 [DEBUG] [b.binding.megad.handler.MegaDHandler] - Updating Megadevice things...
2019-02-04 13:44:00.246 [DEBUG] [b.binding.megad.handler.MegaDHandler] - http://192.168.88.21/sec/?pt=7&cmd=get - был включен до рестарта
2019-02-04 13:44:00.281 [DEBUG] [b.binding.megad.handler.MegaDHandler] - input string-> OFF
2019-02-04 13:44:00.286 [DEBUG] [b.binding.megad.handler.MegaDHandler] - http://192.168.88.21/sec/?tget=1
2019-02-04 13:44:00.300 [DEBUG] [b.binding.megad.handler.MegaDHandler] - Updating Megadevice things...
2019-02-04 13:44:00.303 [DEBUG] [b.binding.megad.handler.MegaDHandler] - http://192.168.88.21/sec/?pt=25&cmd=get
Вложения
new 111.zip
(10.05 КБ) 10 скачиваний

Petros
Сообщения: 395
Зарегистрирован: 21 авг 2012, 22:09

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

Сообщение Petros » 04 фев 2019, 12:31

как мы видим, в этой строчке он как раз уже выключен... что-то произошло раньше.

fild
Сообщения: 19
Зарегистрирован: 24 янв 2019, 08:57

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

Сообщение fild » 04 фев 2019, 13:03

Petros писал(а):
04 фев 2019, 12:31
как мы видим, в этой строчке он как раз уже выключен... что-то произошло раньше.

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

2019-02-04 13:43:59.050 [hingStatusInfoChangedEvent] - 'megad:device:megadeviceincomin:Corridor_Light' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to INITIALIZING
==> /var/log/openhab2/openhab.log <==
2019-02-04 13:43:59.061 [DEBUG] [b.binding.megad.handler.MegaDHandler] - Updating Megadevice things...
2019-02-04 13:43:59.064 [DEBUG] [b.binding.megad.handler.MegaDHandler] - http://192.168.88.21/sec/?pt=7&cmd=get
2019-02-04 13:43:59.071 [DEBUG] [b.binding.megad.handler.MegaDHandler] - Thing Handler for Room1Bra_Light started
2019-02-04 13:43:59.072 [DEBUG] [b.binding.megad.handler.MegaDHandler] - Thing Handler for Kitchen_Light started
2019-02-04 13:43:59.066 [DEBUG] [b.binding.megad.handler.MegaDHandler] - Thing Handler for KitchenI_Light started
2019-02-04 13:43:59.068 [DEBUG] [b.binding.megad.handler.MegaDHandler] - Thing Handler for Kitchen_window started
2019-02-04 13:43:59.075 [DEBUG] [ing.megad.handler.MegaDBridgeHandler] - thingHandler for thing: '192.168.88.21.28'
2019-02-04 13:43:59.077 [DEBUG] [ing.megad.handler.MegaDBridgeHandler] - register thingHandler for thing: org.openhab.binding.megad.handler.MegaDHandler@833cf9
2019-02-04 13:43:59.065 [DEBUG] [b.binding.megad.handler.MegaDHandler] - Updating Megadevice things...
вот перед тем как

Petros
Сообщения: 395
Зарегистрирован: 21 авг 2012, 22:09

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

Сообщение Petros » 04 фев 2019, 13:11

Я попробую разобраться в этом вопросе. Вероятнее всего происходит следующее: при перезагрузке все свитчи по умолчанию оффлайн в опенхабе. и соответственно отправляется сигнал на выключение, потом, после подгрузки из базы должно всё восстановиться. Но нужно вникнуть будет

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

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

Сообщение martiniman » 04 фев 2019, 19:22

По умолчанию все свитчи NULL.
При восстановлении из базы состояние меняется на ON.
Но может меняется на ON раньше чем инициализируется биндинг?

fild
Сообщения: 19
Зарегистрирован: 24 янв 2019, 08:57

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

Сообщение fild » 05 фев 2019, 08:52

martiniman писал(а):
04 фев 2019, 19:22
По умолчанию все свитчи NULL.
При восстановлении из базы состояние меняется на ON.
Но может меняется на ON раньше чем инициализируется биндинг?
похоже на это

Petros
Сообщения: 395
Зарегистрирован: 21 авг 2012, 22:09

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

Сообщение Petros » 05 фев 2019, 08:57

Наоборот. Биндинг инициализируется, но значения в items не заносятся. Потом загружаются items, и они как раз сбрасывают состояние.

Ответить