Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

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

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » 02 май 2017, 19:01

Sonoff подготовленный для установки в распределительную коробку и подключения к нему кнопки выглядит как-то так:
IMG_20170502_175954_.jpg
IMG_20170502_175954_.jpg (77.21 КБ) 2566 просмотров

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

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » 07 май 2017, 16:50

Для sonoff решил использовать специализированную прошивку https://github.com/arendst/Sonoff-Tasmota/wiki/openHAB.

Для ESP8266 MegaD api http://ab-log.ru/forum/viewtopic.php?f=1&t=1130 управление было реализовано:

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

Group	Lights_Random
Group:Switch:OR(ON, OFF)	Lamp "Управление освещением [(%d)]" <light> (Lights_Random) 

Switch	ElectroDragon1_corridor			"Лампа коридор [%s]"									<light>	(Lamp, Lights_Random, Entrance)	
String	ElectroDragon1_corridor_State	"Лампа коридор, (ElectroDragon MegaESP) [%s]"								{ http="<[http://192.168.88.75/sec/?pt=4&cmd=get:30000:REGEX((.*))]" }

Switch	ElectroDragon1_Restroom			"Лампа туалет [%s]"										<light>	(Lamp, Lights_Random, Restroom_st)	
String	ElectroDragon1_Restroom_State	"Лампа туалет, (ElectroDragon MegaESP) [%s]"								{ http="<[http://192.168.88.75/sec/?pt=3&cmd=get:30000:REGEX((.*))]" }

Switch	Sonoff_Lamp			"Лампа настольная в спальне [%s]"									<light>	(Lamp, Lights_Random, Bedroom_st)	//{channel ="megad:device:14in:P4_SonoffLamp:out"} 
String	Sonoff_Lamp_State	"Лампа настольная, (Sonoff MegaESP) [%s]"												{ http="<[http://192.168.88.74/sec/?pt=4&cmd=get:30000:REGEX((.*))]" } 

Switch	Sonoff_Living_room			"Люстра гостиная [%s]"										<light>	(Lamp, Lights_Random, Living_room_st)	 
String	Sonoff_Living_room_State	"Люстра гостиная, (Sonoff MegaESP) [%s]"										{ http="<[http://192.168.88.76/sec/?pt=4&cmd=get:30000:REGEX((.*))]" } 

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

rule "Sonoff_Lamp"
    when
        Item Sonoff_Lamp received command
    then
        switch(receivedCommand) {
            case ON : sendHttpGetRequest("http://192.168.88.74/sec/?pt=4&cmd=4:1")
            case OFF : sendHttpGetRequest("http://192.168.88.74/sec/?pt=4&cmd=4:0")
		}
end

rule "Sonoff_Lamp_State"
    when
        Item Sonoff_Lamp_State received update 
    then
		if (Sonoff_Lamp_State.state=="ON")	{ postUpdate(Sonoff_Lamp, ON) }
   		if (Sonoff_Lamp_State.state=="OFF")	{ postUpdate(Sonoff_Lamp, OFF) }    
end
/* =============================================================================================================== */
rule "ElectroDragon1_corridor"
    when
        Item ElectroDragon1_corridor received command
    then
        switch(receivedCommand) {
            case ON : sendHttpGetRequest("http://192.168.88.75/sec/?pt=4&cmd=4:1")
            case OFF : sendHttpGetRequest("http://192.168.88.75/sec/?pt=4&cmd=4:0")
		}
end

rule "ElectroDragon1_corridor_State"
    when
        Item ElectroDragon1_corridor_State received update 
    then
		if (ElectroDragon1_corridor_State.state=="ON")	{ postUpdate(ElectroDragon1_corridor, ON) }
   		if (ElectroDragon1_corridor_State.state=="OFF")	{ postUpdate(ElectroDragon1_corridor, OFF) }    
end

rule "ElectroDragon1_Restroom"
    when
        Item ElectroDragon1_Restroom received command
    then
        switch(receivedCommand) {
            case ON : sendHttpGetRequest("http://192.168.88.75/sec/?pt=3&cmd=3:1")
            case OFF : sendHttpGetRequest("http://192.168.88.75/sec/?pt=3&cmd=3:0")
		}
end

rule "ElectroDragon1_Restroom_State"
    when
        Item ElectroDragon1_Restroom_State received update 
    then
		if (ElectroDragon1_Restroom_State.state=="ON")	{ postUpdate(ElectroDragon1_Restroom, ON) }
   		if (ElectroDragon1_Restroom_State.state=="OFF")	{ postUpdate(ElectroDragon1_Restroom, OFF) }    
end
/* =============================================================================================================== */

rule "Sonoff_Living_room"
    when
        Item Sonoff_Living_room received command
    then
        switch(receivedCommand) {
            case ON : sendHttpGetRequest("http://192.168.88.76/sec/?pt=4&cmd=4:1")
            case OFF : sendHttpGetRequest("http://192.168.88.76/sec/?pt=4&cmd=4:0")
		}
end

rule "Sonoff_Living_room_State"
    when
        Item Sonoff_Living_room_State received update 
    then
		if (Sonoff_Living_room_State.state=="ON")	{ postUpdate(Sonoff_Living_room, ON) }
   		if (Sonoff_Living_room_State.state=="OFF")	{ postUpdate(Sonoff_Living_room, OFF) }    
end
Последний раз редактировалось empenoso 08 май 2017, 08:39, всего редактировалось 1 раз.

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

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » 07 май 2017, 20:58

empenoso писал(а):Для sonoff решил использовать специализированную прошивку https://github.com/arendst/Sonoff-Tasmota/wiki/openHAB.
Для того чтобы в ней использовать кнопку подключенную к сонофф надо:
1. выставить режим GPIO14 Sensor: 09 Switch1
2. выполнить команду: http://192.168.88.74/cm?cmnd=SwitchMode%203

Общий список команд: https://github.com/arendst/Sonoff-Tasmota/wiki/Commands

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

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » 08 май 2017, 08:40

Теперь в опенхаб одна строчка для управления и текущего статуса:

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

Switch	Sonoff_Lamp						"Лампа настольная в спальне [%s]"			<light>	(Lamp, Lights_Random, Bedroom)		{ mqtt=">[mosquitto:cmnd/Lamp/power:command:*:default], <[mosquitto:stat/Lamp/POWER:state:default]" }
И если нет Wi-Fi, то ассоциация кнопки работает :D

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

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » 08 май 2017, 10:08

Процесс заливки прошивки выглядит как-то так:
IMG_20170508_103625.jpg
IMG_20170508_103625.jpg (128.33 КБ) 2500 просмотров

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

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » 09 май 2017, 19:39

Автоматизация подкралась незаметно: 4 из 7 светильников уже включены в систему, а вот оставшиеся три ниже.
Остается только смотреть насколько это все будет надежным, но все изделия вроде заводские.
IMG_20170509_125143.jpg
IMG_20170509_125143.jpg (88 КБ) 2458 просмотров

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

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » 13 май 2017, 16:21

Электрик делал горячее подключение ElectroDragon - то есть провода под напряжением были и спалил (?) модуль - он вроде бы включается и даже можно без ошибок закачать другую прошивку и модуль питания работает - но вот к сети вайфай никак не хочет подключаться.

Bonefolder
Сообщения: 245
Зарегистрирован: 30 мар 2017, 11:15
Откуда: г.Севастополь

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение Bonefolder » 19 май 2017, 19:21

не совсем по теме. Но где-то рядом.
Снимок экрана 2017-05-19 в 18.22.49.png
Снимок экрана 2017-05-19 в 18.22.49.png (55.65 КБ) 2344 просмотра
Оба НТU21 датчика припаяны на UTP кабеле. Длина ~18-20 см. BME 280 другой UTP ~20 м. Все три датчика в одной кружке, чтобы избежать влияние воздушных потоков)))
Вопрос. Мог ли спалить датчики, ввиду неумелой пайки? Если это не причем. То, как калибровать? Про температуру, я в курсе. А как калибровать влажность? Давление показывает приблизительно правильно. С Гис метео расхождение ( в течении недели 2 мм)

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

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » 20 май 2017, 15:26

Bonefolder писал(а):не совсем по теме. Но где-то рядом.
Снимок экрана 2017-05-19 в 18.22.49.png
Оба НТU21 датчика припаяны на UTP кабеле. Длина ~18-20 см. BME 280 другой UTP ~20 м. Все три датчика в одной кружке, чтобы избежать влияние воздушных потоков)))
Вопрос. Мог ли спалить датчики, ввиду неумелой пайки? Если это не причем. То, как калибровать? Про температуру, я в курсе. А как калибровать влажность? Давление показывает приблизительно правильно. С Гис метео расхождение ( в течении недели 2 мм)
У меня нет ни одного I2C датчика, потому что на openhab невозможно обрабатывать показания с них, если исполнительное устройство не передает уже готовую цифру показаний, а MegaD-328 их сама не умеет обрабатывать.
Думал HTU21D не надо дополнительно калибровать.

xsash
Сообщения: 211
Зарегистрирован: 08 авг 2016, 12:27

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение xsash » 20 май 2017, 16:22

У меня 4 датчика HTU21D, располагались в одной емкости закрытой. Все датчики немного врут, высчитал среднее и сделал поправку в своем коде

имя / темп / влажность
Сенсор1, '0.38', '-1.17'
Сенсор2, '-0.41', '1.16'
Сенсор3, '0.23', '-1.69'
Сенсор4, '-0.20', '1.70'

Но это временное решение, потом в лабе у себя возьму термометр, размещу датчики в боксе и определю точную погрешность относительно градусника, а не по среднему

Bonefolder
Сообщения: 245
Зарегистрирован: 30 мар 2017, 11:15
Откуда: г.Севастополь

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение Bonefolder » 20 май 2017, 18:40

empenoso писал(а): Думал HTU21D не надо дополнительно калибровать.
Тоже так думал(((
xsash писал(а): имя / темп / влажность
Сенсор1, '0.38', '-1.17'
Сенсор2, '-0.41', '1.16'
Сенсор3, '0.23', '-1.69'
Сенсор4, '-0.20', '1.70'
Но это временное решение,
У Вас хоть расхождения небольшие...
Правильно калибровать термометры на температуре 0*. Насыпав в ведро воды ледяной крошки... затем, уже сравнивать сенсоры с "калиброванным" термометром, при температуре близкой к температуре калибровки.... А как калибровать влажность - хз

Bonefolder
Сообщения: 245
Зарегистрирован: 30 мар 2017, 11:15
Откуда: г.Севастополь

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение Bonefolder » 22 май 2017, 09:22

чтобы распарсить строку вида
  • Код: Выделить всё

    ff2893b31604:23.18;ffecbcb31604:23.31;ffae85b31603:22.75;ff8facb31603:23.12;ffffa4b31603:23.25
написал правило по образу и подобию
  • Код: Выделить всё

    rule "TempHumRaw_MD"
    when
    	Item TempHumRaw_MD received update
    then
    	val parse = TempHumRaw_MD.state.toString.split("/")
        val parsedtemperature = parse.get(0)
        val parsedhumidity = parse.get(1)
        var temperature = new Double(parsedtemperature)
        var humidity = new Double(parsedhumidity)
        postUpdate(Temp_MD, (temperature - 3.5))
        postUpdate(Hum_MD, humidity)
    end
Но вариант Double у меня не сработал. Не знаю, то ли Х-tend'у не понравилось, что 2 знака после запятой, то ли еще какие звезды не сошлись. Но дебаг выдавал ошибку, типа неправильного аргумента.
Пришлось добывать части строки по-отдельности, и расписывать на несколько правил, с промежуточным сохранением в виртуальный items "string"
  • Код: Выделить всё

    rule "Raw_Temp_1wire"
    when
    	Item Temperature_1wire received update
    then
    	val parse = Temperature_1wire.state.toString.split(";")
        postUpdate(Temp_wire1, parse.get(0))
        postUpdate(Temp_wire2, parse.get(1))
        postUpdate(Temp_wire3, parse.get(2))
        postUpdate(Temp_wire4, parse.get(3))
        postUpdate(Temp_wire5, parse.get(4))
        
    end
    
    rule "Temp_1wire"
    when
    	Item Temp_wire1 received update
    then
    	val rawtr1 = Temp_wire1.state.toString.split(":")
        postUpdate(Temperature_1wire1, rawtr1.get(1))
      
    end
    
    rule "Temp_2wire"
    when
    	Item Temp_wire2 received update
    then
    	val rawtr2 = Temp_wire2.state.toString.split(":")
        val temp2 = rawtr2.get(1)
        postUpdate(Temperature_1wire2, temp2)
        
    end
Попытки добавить калибровочные значения, типа Опять приводили к ошибке... Не могу понять, это проблема OH2 (в ОН1 это срабатывает у людей) или моих кривых рук?

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

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » 22 май 2017, 14:25

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

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

	var Number Ping2=Float::parseFloat(String::format("%s",WAN_yaru.state))
	postUpdate(WAN_yaru_Num, Ping2)
Чтобы взять значение другого показателя к нему надо обратиться сначала:

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

	var Number WatHot = CountWaterM3Hot.state as DecimalType
	tmp2 = WatHot + 0.01 // один полный импульс при прохождении 10 л жидкости 

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

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » 25 май 2017, 08:57

Поскольку доступ к оборудованию пропал, то задумался опять о надежности - будут ли зависания системы и что с этим делать. На глаза попался обзор устройства Watchdog timer: https://mysku.ru/blog/aliexpress/52212.html.
Еще как вариант все кроме роутера на узле через реле 12в Itead Sonoff SV https://www.itead.cc/ru/sonoff-sv.html подключить.

Bonefolder
Сообщения: 245
Зарегистрирован: 30 мар 2017, 11:15
Откуда: г.Севастополь

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение Bonefolder » 25 май 2017, 13:37

@empenoso, почему не хотите организовать удаленный доступ через "my openhab?"
У меня она отлично работает. Кстати, и прикрутил то Ее только из-за желания получать оповещения)

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

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » 25 май 2017, 15:39

@Bonefolder
У меня только проблема с физическим доступом - удаленный доступ у меня через vpn микротик - там нет проблем ко всем устройствам в сети. Сама система уже около года - сначала малина зависала, потом мега, сейчас вроде нет таких проблем, но и оборудования прибавилось - соноф и электродрагон беспроводные 7 шт - усложнилась в общем система. А я то хотел бы иметь возможность удаленно (чтобы никого не просить из проживающих) перегрузить любое оборудование, но пока такого нет.
Думаю все же на узле все оборудование кроме микротика через сонофф реле 12 в переключить.

Bonefolder
Сообщения: 245
Зарегистрирован: 30 мар 2017, 11:15
Откуда: г.Севастополь

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение Bonefolder » 25 май 2017, 16:22

А зачем вам тогда физический доступ, раз есть доступ к девайсам через VPN? Как вариант, поставьте крон, перегружать ВСЁ по питанию, через какое-нибудь реле. Скажем, каждое утро в 03:00...
P.S. какая у вас загруженность процессора на малинке? У меня скачет от 6 до 16%. С пиками к 2 и до 28. Evg, за 5 минут, показывает 0,5% А так, крутиться около 7-9%

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

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » 26 май 2017, 06:19

Bonefolder писал(а):P.S. какая у вас загруженность процессора на малинке? У меня скачет от 6 до 16%. С пиками к 2 и до 28. Evg, за 5 минут, показывает 0,5% А так, крутиться около 7-9%
На третьей малине она какая-то вообще незначительная. Вот цифры за последние две недели:
chart.png
chart.png (19.95 КБ) 2171 просмотр
chart (1).png
chart (1).png (9.82 КБ) 2171 просмотр
chart (2).png
chart (2).png (20.33 КБ) 2171 просмотр

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

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » 26 май 2017, 06:26

Bonefolder писал(а):А зачем вам тогда физический доступ, раз есть доступ к девайсам через VPN? Как вариант, поставьте крон, перегружать ВСЁ по питанию, через какое-нибудь реле. Скажем, каждое утро в 03:00...
Как-то про это не думал, можно конечно сразу после счетчика поставить что-то вроде https://www.itead.cc/ru/sonoff-pow.html, дом 70х годов, проводка алюминиевая еще, УЗО на 16А поставил, и перегружать раз в три дня, но как-то у себя дома не стал бы так делать - часы сбиваются. Опять же надо разобраться - поставить прошивку которая выполнит скрипт: выключит, подождет секунд 30 и включит без участия человека (вроде на мега есп так можно, поскольку функционал у меги вроде есть такой).

Bonefolder
Сообщения: 245
Зарегистрирован: 30 мар 2017, 11:15
Откуда: г.Севастополь

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение Bonefolder » 26 май 2017, 09:39

Если мега RTC, то можете в ней прописать расписание. Ну, или в ОН. Дернуть какой-нибудь порт. Тот, в свою очередь, реле => разорвёт питание.
Спасибо за нагрузки. И правило для преобразование строки в numbers. Помогло

Ответить