Страница 21 из 24

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

Добавлено: 02 май 2017, 19:01
empenoso
Sonoff подготовленный для установки в распределительную коробку и подключения к нему кнопки выглядит как-то так:
IMG_20170502_175954_.jpg
IMG_20170502_175954_.jpg (77.21 КБ) 2131 просмотр

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

Добавлено: 07 май 2017, 16:50
empenoso
Для 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

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

Добавлено: 07 май 2017, 20:58
empenoso
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

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

Добавлено: 08 май 2017, 08:40
empenoso
Теперь в опенхаб одна строчка для управления и текущего статуса:

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

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

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

Добавлено: 08 май 2017, 10:08
empenoso
Процесс заливки прошивки выглядит как-то так:
IMG_20170508_103625.jpg
IMG_20170508_103625.jpg (128.33 КБ) 2065 просмотров

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

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

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

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

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

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

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

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

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

Добавлено: 20 май 2017, 16:22
xsash
У меня 4 датчика HTU21D, располагались в одной емкости закрытой. Все датчики немного врут, высчитал среднее и сделал поправку в своем коде

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

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

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

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

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

Добавлено: 22 май 2017, 09:22
Bonefolder
чтобы распарсить строку вида
  • Код: Выделить всё

    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 это срабатывает у людей) или моих кривых рук?

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

Добавлено: 22 май 2017, 14:25
empenoso
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 л жидкости 

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

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

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

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

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

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

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

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

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

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

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

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

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

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