Арендная квартира: MegaD, Home Assistant, датчик шума и приборы учета
Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета
Наконец-то добрался и подключил по мотивам обсуждений https://www.ab-log.ru/forum/viewtopic.p ... 326#p34304 электронакладки 12 вольтовые для кранов на воду. Схему собрал и вроде все работает. Завтра уже придут монтировать и тянуть кабель, но и сейчас уже можно сказать что схема рабочая. Мегу настроил в режиме SW LINK для того чтобы исключить одновременное включение. Вот так выглядит мега с учетом всего:
Немного смущает что при тестах при при отключенных выходах показывает -15.6 mV:
Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета
Смонтировали в общем накладки - работают конечно, но выглядит все это не особенно надежно - начать с того что гайка трется по гайке. И стандартная ширина между трубами недостаточная для того чтобы такие большие корпуса установить. Единственное что вроде как аварийную ситуация сами по себе не могут создать, но и обратной связи тоже ноль - сработали или нет неизвестно будет.
А вот и настройки опенхаб для электронакладок на воду - решил через правило с делать:
А вот и настройки опенхаб для электронакладок на воду - решил через правило с делать:
Код: Выделить всё
Number WaterOverlap "Перекрытие воды" <faucet>
Switch item=WaterOverlap mappings=[1="Течет", 2="Перекрыто"]
// Перекрытие воды
rule "WaterOverlap"
when
Item WaterOverlap received command
then
if (WaterOverlap.state == 1) {
publish("mosquitto", "megad/60/cmd","11:0")
Thread::sleep(100)
publish("mosquitto", "megad/60/cmd","12:0")
Thread::sleep(100)
publish("mosquitto", "megad/60/cmd","11:1") //двигаем
Thread::sleep(18000) //миллисекунд в секундах
publish("mosquitto", "megad/60/cmd","11:0")
}
if (WaterOverlap.state == 2) {
publish("mosquitto", "megad/60/cmd","11:0")
Thread::sleep(100)
publish("mosquitto", "megad/60/cmd","12:0")
Thread::sleep(100)
publish("mosquitto", "megad/60/cmd","12:1") //двигаем
Thread::sleep(18000) //миллисекунд в секундах
publish("mosquitto", "megad/60/cmd","12:0")
}
end
Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета
Обратную связь герконами обеспечить можно, если остались свободные жилы в проводе (или есть отдельный провод) и свободные порты в Меге. Хотя бы для одного состояния (например, "Закрыто").
Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета
в общем решил я переходить с openHAB на Home Assistant здесь тоже.
Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета
Последняя конфигурация опенхаба:
- Вложения
-
- Screenshot_20190713-092850.png (161.24 КБ) 8986 просмотров
-
- Screenshot_20190713-092733.png (155.57 КБ) 8986 просмотров
-
- 2019-07-13_09-26.png (215.25 КБ) 8986 просмотров
Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета
default.items
Код: Выделить всё
Group Entrance <corridor>
Group Living_room <sofa>
Group Kitchen <cinema>
Group Restroom <faucet>
Group Bedroom <bedroom>
Group Outside
String Entrance_st "Прихожая/Подъезд" <corridor>
String Living_room_st "Гостиная" <sofa>
String Kitchen_st "Кухня" <cinema>
String Restroom_st "Туалет/Ванна" <faucet>
String Bedroom_st "Спальня" <bedroom>
String Outside_st "Улица"
Number ChartPeriod "Интервал" <flow> //<flow> - иконка
String ChartPeriodName "Графики" <line>
//==============================================================================================================
Group Lights_Random
Group:Switch:OR(ON, OFF) Lamp "Управление освещением [(%d)]" <light> (Lights_Random)
Switch Ghost_Lights "Имитация присутствия, свет" <parents_1_1> (Entrance)
Switch ElectroDragon1_WC "Лампа туалет [%s]" <light> (Lamp, Restroom) { mqtt=">[mosquitto:cmnd/ElectroDragon1/POWER1:command:*:default], <[mosquitto:stat/ElectroDragon1/POWER1:state:default]" } // настройка в файле \openHAB-conf\services\mqtt.cfg, mosquitto.url=tcp://localhost:1883
Switch ElectroDragon1_Corridor "Лампа коридор [%s]" <light> (Lamp, Lights_Random, Restroom) { mqtt=">[mosquitto:cmnd/ElectroDragon1/POWER2:command:*:default], <[mosquitto:stat/ElectroDragon1/POWER2:state:default]" }
Switch Sonoff_Camera12v "Камера подъезд [%s]" <camera> (Entrance) { mqtt=">[mosquitto:cmnd/Camera12v/POWER1:command:*:default], <[mosquitto:stat/Camera12v/POWER1:state:default]" }
Switch ElectroDragon2_Bath "Лампа ванна [%s]" <light> (Lamp, Restroom) { mqtt=">[mosquitto:cmnd/ElectroDragon2/POWER1:command:*:default], <[mosquitto:stat/ElectroDragon2/POWER1:state:default]" }
Switch ElectroDragon2_Kitchen "Люстра кухня [%s]" <light> (Lamp, Lights_Random, Kitchen) { mqtt=">[mosquitto:cmnd/ElectroDragon2/POWER2:command:*:default], <[mosquitto:stat/ElectroDragon2/POWER2:state:default]" }
Switch Sonoff_Table_lamp "Лампа настольная в спальне [%s]" <light> (Lamp, Lights_Random, Bedroom) { mqtt=">[mosquitto:cmnd/Table_lamp/POWER:command:*:default], <[mosquitto:stat/Table_lamp/POWER:state:default]" }
Switch ElectroDragon3_Bedroom "Люстра в спальне [%s]" <light> (Lamp, Bedroom) { mqtt=">[mosquitto:cmnd/ElectroDragon3/POWER1:command:*:default], <[mosquitto:stat/ElectroDragon3/POWER1:state:default]" }
Switch ElectroDragon3_Boxroom "Лампа кладовка [%s]" <light> (Lamp, Bedroom) { mqtt=">[mosquitto:cmnd/ElectroDragon3/POWER2:command:*:default], <[mosquitto:stat/ElectroDragon3/POWER2:state:default]" }
Switch Sonoff_Living_room "Люстра гостиная [%s]" <light> (Lamp, Lights_Random, Living_room) { mqtt=">[mosquitto:cmnd/Living_room/POWER:command:*:default], <[mosquitto:stat/Living_room/POWER:state:default]" }
Number WaterOverlap "Перекрытие воды" <faucet>
//==============================================================================================================
Number P36_XP5_ADC "Noise [%.2f °C]" { http="<[http://192.168.88.60/sec/?pt=36&cmd=get:60000:REGEX((.*?))]" }
Number P36_XP5_ADC_dB "Noise [%.2f °C]"
String USB_Maximum_amplitude "USB Maximum amplitude [%s]" <line> {channel="exec:command:USB_Maximum_amplitude:output"}
Number USB_Maximum_amplitude_dB "Датчик шума USB, [%.2f]" <line> (Entrance)
Number P1_HTU21D_Temp "Темп. на улице [%.2f °C]" <temperature> (Pipes) { http="<[http://192.168.88.60/sec/?pt=0&scl=1&i2c_dev=htu21d&i2c_par=1:60000:REGEX((.*?))]" }
Number P1_HTU21D_Hum "Влажность на улице [%.2f %%]" <humidity> { http="<[http://192.168.88.60/sec/?pt=0&scl=1&i2c_dev=htu21d:60000:REGEX((.*?))]" }
Number P1_MAX44009 "Освещ. улицы [%.2f lux]" <sunrise> { http="<[http://192.168.88.60/sec/?pt=0&scl=1&i2c_dev=max44009:60000:REGEX((.*?))]" }
Switch P2_ALL "ВЫКЛ всё [%s]" { mqtt="<[mosquitto:megad/60/2:state:JSONPATH($.value)]" } //{channel ="megad:device:14in:P2_ALL:in"}
//Switch P2_ALL_hold "ВКЛ всё [%s]" { mqtt="<[mosquitto:megad/60/10:state:JSONPATH($.[?(@.m=='0')].value)]" }
Switch P4_Domofon "Домофон [%s]" (Entrance) { mqtt="<[mosquitto:megad/60/4:state:JSONPATH($.value)]" } //{channel ="megad:device:14in:P4_Domofon:in"}
String P3_SSD1306_Text "Дисплей SSD1306 Text [%s]" { http=">[*:GET:http://192.168.88.60/sec/?pt=3&text=%2$s]" }
String P3_SSD1306_SmallText "Дисплей SSD1306 SmallText [%s]" { http=">[*:GET:http://192.168.88.60/sec/?pt=3&text=%2$s&col=30&row=0]" }
Switch P5_Door "Дверь [MAP(door.map):%s]" { mqtt="<[mosquitto:megad/60/5:state:JSONPATH($.value)]" } //{channel ="megad:device:14in:P5_Door:contact"}
String P5_Door_state "Дверь [%s]"
String P5_Door_state_general "Дверь [%s]" <door> (Entrance)
DateTime P5_last_use "Door, last use [%1$td.%1$tm, %1$tR]"
Number P5_DoorRunStart "P5_DoorRunStart [%s]"
Number P5_last_use_ago "Door, last use, h. ago [%.2f]"
Group:Number:AVG Pipes "Температура отопления [%.2f °C]" <temperature> (Pipes)
Number P6_DS18B20_WC_cold "Темп. хол. трубы, °C [%.2f]" <temperature_cold> (Pipes) { http="<[http://192.168.88.60/sec/?pt=6&cmd=list:60000:REGEX(.*?961b01000080:(.*?))]" }
Number P6_DS18B20_WC_cold_min "Мин. значение хол. трубы в месяце, °C [%.2f]"
Number P6_DS18B20_WC_hot "Темп. гор. трубы, °C [%.2f]" <temperature_hot> (Pipes) { http="<[http://192.168.88.60/sec/?pt=6&cmd=list:60000:REGEX(.*?141201000080:(.*?);(.*))]" }
Number P6_DS18B20_WC_hot_max "Макс. значение гор. трубы в месяце, °C [%.2f]"
Group:Number:AVG Indoor "Температура в комнатах [%.2f °C]" <temperature> (Indoor)
Number P7_DS18B20_Kitchen "Темп. кухня [%.2f °C]" <temperature> (Kitchen, Indoor) { http="<[http://192.168.88.60/sec/?pt=7&cmd=list:60000:REGEX(.*?ff4902731604:(?!85)(.*?);(.*))]" }
Number P7_DS18B20_livingroom "Темп. гостиная [%.2f °C]" <temperature> (Living_room, Indoor) { http="<[http://192.168.88.60/sec/?pt=7&cmd=list:60000:REGEX(.*?ff04f2711605:(?!85)(.*?);(.*))]" }
Number P7_DS18B20_Heat_bedroom "Темп. бат. спальни [%.2f °C]" <radiator> (Pipes) { http="<[http://192.168.88.60/sec/?pt=7&cmd=list:60000:REGEX(.*?fff9b7731604:(?!85)(.*?))]" }
Number P7_DS18B20_bedroom_avg "Средняя темп. батареи в месяце [%.2f °C]"
Group Counters "Приборы учета" <office> (Counters)
Group WaterCold
String CountWaterCold "Холодная вода: "
Switch P8_WaterPulse_cold "Холодная, счетчик Valtec VLF-R-IL [%s]" { mqtt="<[mosquitto:megad/60/8:state:JSONPATH($.value)]" } //{channel ="megad:device:14in:P8_WaterPulse_cold:in"}
Number CountWaterM3Cold "ХВС Valtec VLF-R-IL, м. куб. [%.2f]" <humidity> (Counters)
String CountWaterM3Cold_general "Холодная Valtec, м. куб. [%s]" <office>
Number CountWaterM3Cold_Kalends "ХВС на 1е число, м. куб. [%.2f]" <water> (Counters)
Number CountWaterM3Cold_Consumption "ХВС расход в тек.мес., м. куб. [%.2f]" <humidity> (Counters)
Group WaterHot
String CountWaterHot "Горячая вода: "
Switch P9_WaterPulse_hot "Горячая, счетчик Valtec VLF-R-IL [%s]" { mqtt="<[mosquitto:megad/60/9:state:JSONPATH($.value)]" } //{channel ="megad:device:14in:P9_WaterPulse_hot:in"}
Number CountWaterM3Hot "ГВС Valtec VLF-R-IL, м. куб. [%.2f]" <humidity> (Counters)
String CountWaterM3Hot_general "Горячая Valtec, м. куб. [%s]" <office>
Number CountWaterM3Hot_Kalends "ГВС на 1е число, м. куб. [%.2f]" <water> (Counters)
Number CountWaterM3Hot_Consumption "ГВС расход в тек.мес., м. куб. [%.2f]" <humidity> (Counters)
Group Incotex201
Number P10_CountElecImp "Импульсы э/э, текущее значение (3200/кВт*ч) [%s]" { mqtt="<[mosquitto:megad/60/10:state:JSONPATH($.cnt)]" } //{channel ="megad:device:14in:P10_CountElecImp:incount"}
Number MercuryIncotex201KWh "Э/э Меркурий 201.5, кВт*ч [%.2f]" <energy>
String MercuryIncotex201KWh_general "Э/э Меркурий 201.5, кВт*ч [%s]" <office> (Counters)
Number MercuryIncotex201KWh_Kalends "Э/э на начало месяца, кВт*ч [%.2f]" <energy> (Counters)
Number MercuryIncotex201KWh_Consumption "Э/э расход в тек.месяце, кВт*ч [%.2f]" <line> (Counters)
Number MercuryIncotex201KWh_Consumption_Price "Э/э по 3,62 в тек.месяце, руб. [%.2f]" <pie>
//==============================================================================================================
Group:Switch:OR(OFF, ON) Reachable "Недоступное оборудования [(%d)]" <network> (Reachable)
Switch ElectroDragon1_Reachable "ElectroDragon1 [%s]" <network> (Reachable) { mqtt="<[mosquitto:tele/ElectroDragon1/LWT:state:MAP(tasmota.map)]" }
Switch Sonoff_Camera12v_Reachable "Sonoff SV_Камера подъезд [%s]" <network> (Reachable) { mqtt="<[mosquitto:tele/Camera12v/LWT:state:MAP(tasmota.map)]" }
Switch ElectroDragon2_Reachable "ElectroDragon2 [%s]" <network> (Reachable) { mqtt="<[mosquitto:tele/ElectroDragon2/LWT:state:MAP(tasmota.map)]" }
Switch Sonoff_Table_lamp_Reachable "Sonoff лампа настольная [%s]" <network> (Reachable) { mqtt="<[mosquitto:tele/Table_lamp/LWT:state:MAP(tasmota.map)]" }
Switch ElectroDragon3_Reachable "ElectroDragon3 [%s]" <network> (Reachable) { mqtt="<[mosquitto:tele/ElectroDragon3/LWT:state:MAP(tasmota.map)]" }
Switch Sonoff_Living_room_Reachable "Sonoff люстра гостиная [%s]" <network> (Reachable) { mqtt="<[mosquitto:tele/Living_room/LWT:state:MAP(tasmota.map)]" }
Switch LAN_MikroTik "MikroTik hAP lite RB941-2nD-TC [%s]" <qualityofservice> (Reachable) { channel="network:pingdevice:LAN_MikroTik:online" }
Switch LAN_MegaD2561 "MegaD-2561 + MegaD-14-IN [%s]" <qualityofservice> (Reachable) { channel="network:pingdevice:LAN_MegaD2561:online" }
Switch LAN_Beward "Beward B2710DR [%s]" <qualityofservice> (Reachable) { channel="network:pingdevice:LAN_Beward:online" }
//==============================================================================================================
DateTime dateTimeNTP "Дата и время [%1$tA, %1$td.%1$tm.%1$tY, %1$tR]" <calendar> { channel="ntp:ntp:pool:dateTime" } //расшифровка букв https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html
String dateTime "Дата и время сервера [%s]" <calendar>
//==============================================================================================================
Group Systeminfo "Информация сервера" <screen> (Systeminfo)
/* CPU information*/
Number CPU_Load <line-stagnation> (Systeminfo) { channel="systeminfo:computer:work:cpu#load"}
Number CPU_Threads <line-stagnation> (Systeminfo) { channel="systeminfo:computer:work:cpu#threads" }
Number CPU_Uptime <line-stagnation> (Systeminfo) { channel="systeminfo:computer:work:cpu#uptime" }
/* Storage information*/
Number Storage_Total <line-stagnation> (Systeminfo) { channel="systeminfo:computer:work:storage#total" }
Number Storage_Available_Percent <line-stagnation> (Systeminfo) { channel="systeminfo:computer:work:storage#availablePercent" }
/* Memory information*/
Number Memory_Available <line-stagnation> (Systeminfo) { channel="systeminfo:computer:work:memory#available" }
Number Memory_Available_Percent <line-stagnation> (Systeminfo) { channel="systeminfo:computer:work:memory#availablePercent" }
/* Network information*/
Number Network_DataSent <line-stagnation> (Systeminfo) { channel="systeminfo:computer:work:network#dataSent" }
Number Network_DataRecevied <line-stagnation> (Systeminfo) { channel="systeminfo:computer:work:network#dataReceived" }
//==============================================================================================================
Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета
default.sitemap
Код: Выделить всё
sitemap default label="хххххххххххххх"
{
Frame label="Квартира" {
Text item=Lamp {
Switch item=Lamp mappings=[OFF="ВЫКЛ всё", ON="ВКЛ всё"]
Switch item=ElectroDragon1_WC
Switch item=ElectroDragon1_Corridor
Switch item=ElectroDragon2_Bath
Switch item=ElectroDragon2_Kitchen
Switch item=Sonoff_Table_lamp
Switch item=ElectroDragon3_Bedroom
Switch item=ElectroDragon3_Boxroom
Switch item=Sonoff_Living_room
//Switch item=Ghost_Lights
}
Group item=Indoor
Group item=Pipes
Text item=P5_Door_state_general
Text item=Counters {
Frame label="Электроэнергия" {
Text item=MercuryIncotex201KWh_general
Text item=MercuryIncotex201KWh_Kalends
}
Frame label="Холодная вода (ХВС)" {
Text item=CountWaterM3Cold_general
Text item=CountWaterM3Cold_Kalends
}
Frame label="Горячая вода (ГВС)" {
Text item=CountWaterM3Hot_general
Text item=CountWaterM3Hot_Kalends
}
}
Text item=dateTimeNTP
}
Frame label="Улица" {
Text item=P1_HTU21D_Temp
Text item=P1_HTU21D_Hum
Text item=P1_MAX44009
}
Frame label="Служебное" {
Text item=ChartPeriodName {
Image refresh=60000 url="http://192.168.88.70:3000/render/dashboard-solo/db/font8?refresh=5m&orgId=1&panelId=2&theme=light&width=700&height=350"
Image refresh=60000 url="http://192.168.88.70:3000/render/dashboard-solo/db/font8?refresh=5m&orgId=1&panelId=1&theme=light&width=700&height=350"
Image refresh=60000 url="http://192.168.88.70:3000/render/dashboard-solo/db/font8?refresh=5m&orgId=1&panelId=9&theme=light&width=700&height=350"
}
Switch item=WaterOverlap mappings=[1="Течет", 2="Перекрыто"]
Group item=Systeminfo
Group item=Reachable
}
}
Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета
default.rules
Код: Выделить всё
import org.openhab.core.library.types.*
import org.openhab.core.persistence.*
import org.openhab.model.script.actions.*
import org.joda.time.*
import java.lang.Math
import java.util.Calendar
import java.util.Date
import java.util.TimeZone
import java.text.SimpleDateFormat
import java.util.List //https://github.com/openhab/openhab/wiki/Actions#mail-actions
import java.util.Random
import java.lang.Double.*
import java.lang.String.*
/* =============================================================================================================== */
/*
// Начальная настройка показаний
rule "System started Counters"
when
System started
then
postUpdate(MercuryIncotex201KWh, 1656.25)
postUpdate(CountWaterM3Cold, 98.772)
postUpdate(CountWaterM3Hot, 56.879)
// Корректировка 21.08.2018 15.00
// Корректировка 27.10.2018 15.00
end
*/
/*
rule "P5_initial" //эмуляция открытия закрытия двери
when
Time cron "0 0/1 * * * ?" //каждую 1 мин
then
postUpdate(P5_Door, OPEN)
Thread::sleep(60000)
postUpdate(P5_Door, CLOSED)
end
*/
/*
rule "initial" //чтобы уйти от NULL в самом начале
when
System started
then
postUpdate(CountWaterM3Hot_Consumption, 0)
postUpdate(CountWaterM3Cold_Consumption, 0)
end
*/
/* =============================================================================================================== */
//ВЫКЛ всё
rule "P2 ALL OFF"
when
Item P2_ALL changed to ON
then
publish("mosquitto","cmnd/ElectroDragon1/POWER1","OFF")
publish("mosquitto","cmnd/ElectroDragon2/POWER1","OFF")
publish("mosquitto","cmnd/ElectroDragon2/POWER2","OFF")
publish("mosquitto","cmnd/Table_lamp/POWER1","OFF")
publish("mosquitto","cmnd/ElectroDragon3/POWER1","OFF")
publish("mosquitto","cmnd/ElectroDragon3/POWER2","OFF")
publish("mosquitto","cmnd/Living_room/POWER1","OFF")
Thread::sleep(15000) //15000 миллисекунд в секундах
publish("mosquitto","cmnd/ElectroDragon1/POWER2","OFF") //прихожая
end
/*
rule "P2 ALL ON"
when
Item P2_ALL_hold changed
then
publish("mosquitto","cmnd/ElectroDragon1/POWER2","ON") //прихожая
publish("mosquitto","cmnd/ElectroDragon1/POWER1","ON")
publish("mosquitto","cmnd/ElectroDragon2/POWER1","ON")
publish("mosquitto","cmnd/ElectroDragon2/POWER2","ON")
publish("mosquitto","cmnd/Table_lamp/POWER1","ON")
publish("mosquitto","cmnd/ElectroDragon3/POWER1","ON")
publish("mosquitto","cmnd/Living_room/POWER1","ON")
end
*/
/* =============================================================================================================== */
rule "Time to SSD1306"
when
Time cron "0 0/1 * * * ?" //каждую 1 минут
then
var String Temp = (((P1_HTU21D_Temp.state as DecimalType)*10).intValue/10.0).toString //оставляем один знак после запятой и преобразуем в строку
//val Temp = String::format("%.0f", (P1_HTU21D_Temp.state as DecimalType).doubleValue )
var String Hour = String::format( "%1$tk", new Date() ) //https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html
var String Minute = String::format( "%1$tM", new Date() )
sendHttpGetRequest("http://192.168.88.60/sec/?pt=3&disp_cmd=1&row=0") //очистка верней строки
Thread::sleep(2000) //2000 миллисекунд в секундах
sendCommand(P3_SSD1306_Text,"ssssssss") //очистка основной строки
Thread::sleep(2500) //2500 миллисекунд в секундах
sendCommand(P3_SSD1306_SmallText, "Time")
sendCommand(P3_SSD1306_Text, "_" + Hour + ";" + Minute)
Thread::sleep(30000) //30000 миллисекунд в секундах
sendHttpGetRequest("http://192.168.88.60/sec/?pt=3&disp_cmd=1&row=0") //очистка верней строки
Thread::sleep(2000) //2000 миллисекунд в секундах
sendCommand(P3_SSD1306_Text,"ssssssss") //очистка основной строки
Thread::sleep(2500) //2500 миллисекунд в секундах
sendCommand(P3_SSD1306_SmallText, "Outdoor")
sendCommand(P3_SSD1306_Text, "_" + Temp + ":")
end
/* =============================================================================================================== */
//подсчет показаний хол. воды
rule "CountWaterImpCold"
when
Item P8_WaterPulse_cold changed to ON //received update ON
then
var Number WatCold = CountWaterM3Cold.state as DecimalType
var Number tmp1
var Number Kal1
var Number Dif1
tmp1 = WatCold + 0.01 // один полный импульс при прохождении 10 л жидкости
postUpdate(CountWaterM3Cold, tmp1.doubleValue)
if (CountWaterM3Cold.state instanceof DecimalType) {
Kal1 = CountWaterM3Cold.minimumSince(now.toDateMidnight.withDayOfMonth(1)).state as DecimalType //на начало месяца
postUpdate(CountWaterM3Cold_Kalends, Kal1.doubleValue )
Dif1 = tmp1 - Kal1
postUpdate(CountWaterM3Cold_Consumption, Dif1.doubleValue )
}
end
//подсчет показаний гор. воды
rule "CountWaterImpHot"
when
Item P9_WaterPulse_hot changed to ON //received update ON
then
var Number WatHot = CountWaterM3Hot.state as DecimalType
var Number tmp2
var Number Kal2
var Number Dif2
tmp2 = WatHot + 0.01 // один полный импульс при прохождении 10 л жидкости
postUpdate(CountWaterM3Hot, tmp2.doubleValue)
if (CountWaterM3Hot.state instanceof DecimalType) {
Kal2 = CountWaterM3Hot.minimumSince(now.toDateMidnight.withDayOfMonth(1)).state as DecimalType //на начало месяца
postUpdate(CountWaterM3Hot_Kalends, Kal2.doubleValue )
Dif2 = tmp2 - Kal2
postUpdate(CountWaterM3Hot_Consumption, Dif2.doubleValue )
}
end
//отображение воды в sitemap
rule "WaterSitemap"
when
Time cron "0 0/10 * * * ?" //каждые 10 минут
then
val CropDigital3 = String::format("%.2f", (CountWaterM3Cold.state as DecimalType).doubleValue )
val CropDigital4 = String::format("%.2f", (CountWaterM3Cold_Consumption.state as DecimalType).doubleValue )
postUpdate(CountWaterM3Cold_general, CropDigital3 + " (" + CropDigital4 + " в тек.мес.)" )
val CropDigital5 = String::format("%.2f", (CountWaterM3Hot.state as DecimalType).doubleValue )
val CropDigital6 = String::format("%.2f", (CountWaterM3Hot_Consumption.state as DecimalType).doubleValue )
postUpdate(CountWaterM3Hot_general, CropDigital5 + " (" + CropDigital6 + " в тек.мес.)" )
end
/* =============================================================================================================== */
//подсчет кВт*ч эл. счетчика через счетчик порта MegaD
rule "MercuryIncotex201KWh"
when
Item P10_CountElecImp changed
then
var Number Imp = P10_CountElecImp.state as DecimalType
var Number KWh = MercuryIncotex201KWh.state as DecimalType
if ( Imp >= 320 )
{
//KWh = KWh + 0.1 // 1 кВт*ч - 3200 импульсов
KWh = KWh + Imp/3200 // 1 кВт*ч - 3200 импульсов
postUpdate(MercuryIncotex201KWh, KWh)
sendHttpGetRequest("http://192.168.88.60/sec/?pt=10&cnt=0")
}
end
rule "MercuryIncotex201KWh_Past"
when
Time cron "0 0/5 * * * ?" //каждые 5 минут
then
var Number KWh = MercuryIncotex201KWh.state as DecimalType
var Number Kal
var Number Dif
var Number Pri
if (MercuryIncotex201KWh.state instanceof DecimalType) {
Kal = MercuryIncotex201KWh.minimumSince(now.toDateMidnight.withDayOfMonth(1)).state as DecimalType //на начало месяца
//Kal = (MercuryIncotex201KWh.minimumSince(now.toDateMidnight.withDayOfMonth(1).withMonthOfYear(1), "rrd4j").state as DecimalType) //на начало года //https://knx-user-forum.de/forum/supportforen/openhab/33557-anf%C3%A4nger
postUpdate(MercuryIncotex201KWh_Kalends, Kal.doubleValue )
Dif = KWh - Kal
postUpdate(MercuryIncotex201KWh_Consumption, Dif.doubleValue )
Pri = Dif * 3.62 //3,62 рубля за кВт*ч
postUpdate(MercuryIncotex201KWh_Consumption_Price, Pri.doubleValue )
}
val CropDigital1 = String::format("%.2f", KWh.doubleValue ) //формат строки для sitemap
val CropDigital2 = String::format("%.2f", Dif.doubleValue ) //формат строки для sitemap
postUpdate(MercuryIncotex201KWh_general, CropDigital1 + " (" + CropDigital2 + " в тек.мес.)" )
end
/* =============================================================================================================== */
//дверь
rule "P5 Door closed" //ON=закрыта
when
Item P5_Door changed to ON
then
postUpdate(P5_last_use, new DateTimeType() )
postUpdate(P5_Door_state, "закрыта")
end
rule "P5 Door open" //OFF=открыта
when
Item P5_Door changed to OFF
then
var Number RunStart
RunStart = now.millis
postUpdate(P5_DoorRunStart, RunStart.doubleValue ) // Timestamp when the switch was turned off
postUpdate(P5_last_use, new DateTimeType() )
postUpdate(P5_Door_state, "открыта" )
//postUpdate(P5_Door_state_general, "открыта" )
end
rule "P5_last_use_ago"
when
Time cron "0 0/3 * * * ?" //каждые 3 мин
then
//postUpdate(P5_DoorRunStart, 0)
var Number RunStart = P5_DoorRunStart.state as DecimalType
var Number DoorTime
var Number RunEnd
RunEnd = now.millis
if (P5_Door.state==ON) {
DoorTime = (RunEnd - RunStart) / 3600000 //миллисекунды в часы
postUpdate(P5_last_use_ago, DoorTime.doubleValue)
val CropDigital = String::format("%.2f", DoorTime.doubleValue ) //формат строки для sitemap
postUpdate(P5_Door_state_general, P5_Door_state.state + " (" + CropDigital + " ч)" )
}
end
/* =============================================================================================================== */
// пересчет Volume adjustment в децибелы
rule "USB_Maximum_amplitude"
when
Time cron "0 0/1 * * * ?" //каждую 11 минуту
//Item USB_Maximum_amplitude received update
then
var Number Vol=Float::parseFloat(String::format("%s",USB_Maximum_amplitude.state))
Vol = 20 * Math::log10(Vol.doubleValue()) + 80 //dB = 20 x log10(Amplitude) - zero_offset - https://forum.arduino.cc/index.php?topic=376308.0
postUpdate(USB_Maximum_amplitude_dB, Vol) //с микрофона
var Number Vol2=Float::parseFloat(String::format("%s",P36_XP5_ADC.state))
if (Vol2==0) { Vol2 = 1 }
Vol2 = 20 * Math::log10(Vol2.doubleValue()) + 20
postUpdate(P36_XP5_ADC_dB, Vol2) //с платы
/* if ( Vol > 120) {
postUpdate(USB_Maximum_amplitude_dB, 120) //не может быть больше 120 дБ
} else {
postUpdate(USB_Maximum_amplitude_dB, Vol.doubleValue) //Настоящее значение
}
*/
end
/* =============================================================================================================== */
// перезагрузка камеры Beward B2710DR по расписанию
rule "Beward reset"
when
Time cron "0 30 05 ? * MON,WED,FRI,SUN" //http://www.quartz-scheduler.org/documentation/quartz-2.1.x/tutorials/tutorial-lesson-06
then
publish("mosquitto","cmnd/Camera12v/POWER1","OFF")
Thread::sleep(60000)
publish("mosquitto","cmnd/Camera12v/POWER1","ON")
end
/* =============================================================================================================== */
// Перекрытие воды
rule "WaterOverlap"
when
Item WaterOverlap received command
then
if (WaterOverlap.state == 1) {
publish("mosquitto", "megad/60/cmd","11:0")
Thread::sleep(100)
publish("mosquitto", "megad/60/cmd","12:0")
Thread::sleep(100)
publish("mosquitto", "megad/60/cmd","11:1") //двигаем
Thread::sleep(18000) //миллисекунд в секундах
publish("mosquitto", "megad/60/cmd","11:0")
}
if (WaterOverlap.state == 2) {
publish("mosquitto", "megad/60/cmd","11:0")
Thread::sleep(100)
publish("mosquitto", "megad/60/cmd","12:0")
Thread::sleep(100)
publish("mosquitto", "megad/60/cmd","12:1") //двигаем
Thread::sleep(18000) //миллисекунд в секундах
publish("mosquitto", "megad/60/cmd","12:0")
}
end
Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета
Через несколько дней будут рабочие конфиги.
- Вложения
-
- 2019-07-13_09-57.png (136.96 КБ) 8984 просмотра
Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета
По рекомендации уважаемого d.v.ermakov обзавелся таки датчиком звука Gravity: Analog Sound Level Meter SKU:SEN0232 https://wiki.dfrobot.com/Gravity__Analo ... KU_SEN0232 - вышло недешево, но при первом взгляде - работает - на внешние раздражите реагирует:
Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета
Думаю мегой здесь полностью по mqtt управлять, без http (а не как у меня вперемешку на опенхабе было). Интерфейсы более чем дружественные, всё буквально парой кликов через веб-интерфейс можно сделать:
Re: Арендная квартира: MegaD, Home Assistant, датчик шума и приборы учета
Датчик шума https://wiki.dfrobot.com/Gravity__Analo ... KU_SEN0232 и его применение в home assistant:
считывание:
запрос:
считывание:
Код: Выделить всё
- platform: mqtt
name: "Датчик шума"
device_class: signal_strength
state_topic: "megad/7/36"
#value_template: '{{ value_json.value }}'
value_template: "{{ (value_json.value|float/1023*3.3*50) | round(1) }}"
unit_of_measurement: "dBA"
Код: Выделить всё
- alias: Mega Датчик шума
trigger:
- platform: time_pattern
minutes: '/5'
seconds: 40
action:
- service: mqtt.publish
data:
topic: "megad/7/cmd"
payload: "get:36"
- Вложения
-
- Voltage-db.png (11.22 КБ) 8862 просмотра
Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета
Не, ну если нравится - то вопросов нет.
ИОБ вроде как наиболее интересный по совокупности возможностей сейчас.
Автор старается брать лучшее из других проектов.
Если не ошибаюсь - в прошлом месяце интерфейс визуализации от HA прицепил, от опенхаба вроде тоже habpanel есть...
Re: Арендная квартира: MegaD, Home Assistant, датчик шума и приборы учета
Переехал полностью на Home Assistant. Выглядит так:
Re: Арендная квартира: MegaD, Home Assistant, датчик шума и приборы учета
/config/configuration.yaml
/config/customize.yaml
/config/automations.yaml
Код: Выделить всё
###################################################
# #
# Home Assistant Configuration #
# #
###################################################
#!!!! ПРАВИТЬ ПОКАЗАНИЯ СЧЕТЧИКОВ ВОДЫ ПЕРЕД СОХРАНЕНИЕМ !!!!
# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:
homeassistant:
name: !secret name
time_zone: Asia/Yekaterinburg
unit_system: metric
customize: !include customize.yaml
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
###################################################
# #
# Panel #
# #
###################################################
panel_iframe:
tasmoadmin:
title: TasmoAdmin
icon: mdi:car-esp
url: http://192.168.8.8:9541/devices
####################################################
# #
# sensor #
# #
####################################################
sensor:
- platform: command_line
name: "Освещенность улицы"
command: "/usr/bin/curl -X GET 'http://192.168.8.7/sec/?pt=0&scl=1&i2c_dev=max44009'"
value_template: '{{ (value|float) | round(1) }}'
scan_interval: 300
- platform: mqtt
name: "Темп. на улице"
device_class: temperature
state_topic: "megad/7/0"
value_template: '{{ value_json.value.temp }}'
unit_of_measurement: "°C"
- platform: mqtt
name: "Влажность на улице"
device_class: humidity
state_topic: "megad/7/0"
value_template: '{{ value_json.value.hum }}'
unit_of_measurement: "°C"
- platform: mqtt
name: "Темп. хол. трубы"
device_class: temperature
state_topic: "megad/7/6"
value_template: '{{ value_json["value"]["961b01000080"] }}'
unit_of_measurement: "°C"
- platform: mqtt
name: "Темп. гор. трубы"
device_class: temperature
state_topic: "megad/7/6"
value_template: '{{ value_json["value"]["141201000080"] }}'
unit_of_measurement: "°C"
- platform: mqtt
name: "Темп. кухня"
device_class: temperature
state_topic: "megad/7/7"
value_template: >- #еще вариант: https://community.home-assistant.io/t/trigger-numeric-state-below-value-not-firing/28911
{%- if value_json.value.ff4902731604|float >= 0 and value_json.value.ff4902731604|float <= 70 -%}
{{ value_json.value.ff4902731604 | round(1) }}
{%- else -%}
nan
{%- endif -%}
unit_of_measurement: "°C"
- platform: mqtt
name: "Темп. гостиная"
device_class: temperature
state_topic: "megad/7/7"
#value_template: '{{ value_json.value.ff04f2711605 }}'
value_template: >-
{%- if value_json.value.ff04f2711605|float >= 0 and value_json.value.ff04f2711605|float <= 70 -%}
{{ value_json.value.ff04f2711605 | round(1) }}
{%- else -%}
nan
{%- endif -%}
unit_of_measurement: "°C"
- platform: mqtt
name: "Темп. бат. спальни"
device_class: temperature
state_topic: "megad/7/7"
value_template: >-
{%- if value_json.value.fff9b7731604|float >= 0 and value_json.value.fff9b7731604|float <= 70 -%}
{{ value_json.value.fff9b7731604 | round(1) }}
{%- else -%}
nan
{%- endif -%}
unit_of_measurement: "°C"
- platform: mqtt
name: "Датчик шума"
device_class: signal_strength
state_topic: "megad/7/36"
value_template: "{{ (value_json.value|float/1023*3.3*50) | round(1) }}"
unit_of_measurement: "dBA"
- platform: filter
name: "Шум"
entity_id: sensor.datchik_shuma
filters:
- filter: time_simple_moving_average
window_size: 00:05
precision: 2
- platform: snmp #https://www.ab-log.ru/forum/viewtopic.php?t=1004&start=400
name: "RouterOS Wireless"
host: 192.168.8.1
baseoid: .1.3.6.1.4.1.14988.1.1.1.3.1.6.1
accept_errors: true
unit_of_measurement: "pc"
- platform: openweathermap
api_key: !secret openweathermap_api_key
language: ru
monitored_conditions:
- weather
- temperature
- platform: template # https://community.home-assistant.io/t/water-meter-sensor-help-configuring-it/28229/20
sensors:
water_cold_counter_m3:
friendly_name: "ХВС показания"
unit_of_measurement: 'm3'
value_template: "{{ (states('counter.water_cold_counter') | float)/1000 }}"
water_hot_counter_m3:
friendly_name: "ГВС показания"
unit_of_measurement: 'm3'
value_template: "{{ (states('counter.water_hot_counter') | float)/1000 }}"
energy_counter:
friendly_name: "Счетчик э/э"
unit_of_measurement: ''
value_template: "{{ (states('energy_counter') | float)/1 }}"
illuminance:
friendly_name: "Освещенность улицы"
device_class: illuminance
unit_of_measurement: "lx"
entity_id: sensor.osveshchennost_ulitsy
value_template: "{{ states.sensor.osveshchennost_ulitsy.state }}"
####################################################
# #
# binary_sensor #
# #
####################################################
binary_sensor:
- platform: mqtt
name: "Входная дверь"
device_class: door
state_topic: "megad/7/5"
value_template: "{{ value_json.value }}"
qos: 1
payload_on: "OFF"
payload_off: "ON"
- platform: mqtt
name: "Выключить всё"
device_class: moving
state_topic: "megad/7/2"
value_template: "{{ value_json.value }}"
qos: 1
payload_on: "ON"
payload_off: "OFF"
- platform: mqtt
name: "Домофон"
device_class: sound
state_topic: "megad/7/4"
value_template: "{{ value_json.value }}"
qos: 1
payload_on: "ON"
payload_off: "OFF"
- platform: mqtt
name: "Холодная вода"
device_class: opening
state_topic: "megad/7/8"
value_template: "{{ value_json.value }}"
qos: 1
payload_on: "ON"
payload_off: "OFF"
- platform: mqtt
name: "Горячая вода"
device_class: opening
state_topic: "megad/7/9"
value_template: "{{ value_json.value }}"
qos: 1
payload_on: "ON"
payload_off: "OFF"
- platform: mqtt
name: "Счетчик э/э"
device_class: opening
state_topic: "megad/7/10"
value_template: "{{ value_json.value }}"
qos: 1
payload_on: "ON"
payload_off: "OFF"
####################################################
# #
# light #
# #
####################################################
light:
- platform: mqtt
name: "Туалет"
state_topic: "stat/ElectroDragon1/RESULT"
value_template: "{{ value_json.POWER1 }}"
command_topic: "cmnd/ElectroDragon1/POWER1"
availability_topic: "tele/ElectroDragon1/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
- platform: mqtt
name: "Коридор"
state_topic: "stat/ElectroDragon1/RESULT"
value_template: "{{ value_json.POWER2 }}"
command_topic: "cmnd/ElectroDragon1/POWER2"
availability_topic: "tele/ElectroDragon1/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
- platform: mqtt
name: "Ванна"
state_topic: "stat/ElectroDragon2/RESULT"
value_template: "{{ value_json.POWER1 }}"
command_topic: "cmnd/ElectroDragon2/POWER1"
availability_topic: "tele/ElectroDragon2/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
- platform: mqtt
name: "Кухня"
state_topic: "stat/ElectroDragon2/RESULT"
value_template: "{{ value_json.POWER2 }}"
command_topic: "cmnd/ElectroDragon2/POWER2"
availability_topic: "tele/ElectroDragon2/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
- platform: mqtt
name: "Спальня"
state_topic: "stat/ElectroDragon3/RESULT"
value_template: "{{ value_json.POWER1 }}"
command_topic: "cmnd/ElectroDragon3/POWER1"
availability_topic: "tele/ElectroDragon3/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
- platform: mqtt
name: "Кладовка"
state_topic: "stat/ElectroDragon3/RESULT"
value_template: "{{ value_json.POWER2 }}"
command_topic: "cmnd/ElectroDragon3/POWER2"
availability_topic: "tele/ElectroDragon3/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
- platform: mqtt
name: "Настольная лампа"
state_topic: "stat/TableLamp/RESULT"
value_template: "{{ value_json.POWER }}"
command_topic: "cmnd/TableLamp/POWER"
availability_topic: "tele/TableLamp/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
- platform: mqtt
name: "Гостиная"
state_topic: "stat/Living_room/RESULT"
value_template: "{{ value_json.POWER }}"
command_topic: "cmnd/Living_room/POWER"
availability_topic: "tele/Living_room/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
####################################################
# #
# switch #
# #
####################################################
switch:
- platform: mqtt
name: "Камера подъезд"
state_topic: "stat/Camera12v/RESULT"
value_template: "{{ value_json.POWER }}"
command_topic: "cmnd/Camera12v/POWER"
availability_topic: "tele/Camera12v/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
cover:
- platform: command_line
covers:
water_overlap:
friendly_name: Вода
command_open: "/usr/bin/curl -X GET 'http://192.168.8.7/sec/?pt=11&cmd=11:0'; /usr/bin/curl -X GET 'http://192.168.8.7/sec/?pt=11&cmd=11:1'; sleep 20; /usr/bin/curl -X GET 'http://192.168.8.7/sec/?pt=11&cmd=11:0'"
command_close: "/usr/bin/curl -X GET 'http://192.168.8.7/sec/?pt=11&cmd=12:0'; /usr/bin/curl -X GET 'http://192.168.8.7/sec/?pt=11&cmd=12:1'; sleep 20; /usr/bin/curl -X GET 'http://192.168.8.7/sec/?pt=11&cmd=12:0'"
command_stop: "/usr/bin/curl -X GET 'http://192.168.8.7/sec/?pt=11&cmd=11:0'; /usr/bin/curl -X GET 'http://192.168.8.7/sec/?pt=11&cmd=12:0'"
####################################################
# #
# another #
# #
####################################################
counter:
water_cold_counter:
initial: 132699
step: 10
water_hot_counter:
initial: 76983
step: 10
energy_counter:
initial: 22029
step: 1
rest_command:
display_send_time:
url: "http://192.168.8.7/sec/?pt=3&text=_{{ as_timestamp(now()) | timestamp_custom('%H;%M') }}" #одна цифра без нуля{{ now().hour }};{{ now().minute }}
display_send_time_small:
url: 'http://192.168.8.7/sec/?pt=3&text=___Time&col=30&row=0'
display_clear_big:
url: 'http://192.168.8.7/sec/?pt=3&text=ssssss'
display_clear_small:
url: 'http://192.168.8.7/sec/?pt=3&disp_cmd=1&row=0'
display_send_weather:
url: "http://192.168.8.7/sec/?pt=3&text=_{{states('sensor.owm_temperature')}}:"
display_send_weather_small:
url: 'http://192.168.8.7/sec/?pt=3&text=_Weather&col=30&row=0'
camera:
- platform: ffmpeg
name: Подъезд
input: -rtsp_transport tcp -i rtsp://xxx:xxx@192.168.8.5:554/av0_0
device_tracker:
- platform: snmp
host: 192.168.8.1
community: public
baseoid: 1.3.6.1.2.1.17.4.3.1.1
# - platform: nmap_tracker
# hosts:
# - 192.168.8.0/24
# home_interval: 10
# consider_home: 180
# exclude:
# - 192.168.8.8
speedtestdotnet:
scan_interval:
minutes: 180
monitored_conditions:
- ping
- download
- upload
# Text to speech
tts:
- platform: google_translate
Код: Выделить всё
## Настроки иконок и видимости ##
sensor.water_cold_counter_m3:
icon: mdi:counter
sensor.water_hot_counter_m3:
icon: mdi:counter
sensor.energy_counter:
icon: mdi:counter
cover.voda:
device_class: damper
icon: mdi:water-pump
Код: Выделить всё
######################################################
# #
# Узнать состояние всех sonoffs после перезапуска HA #
# #
######################################################
- alias: SONOFF state on HA start-up
trigger:
platform: homeassistant
event: start
action:
- service: mqtt.publish
data:
topic: "cmnd/sonoffs/POWER"
payload: ""
- delay: '00:00:05'
- service: mqtt.publish
data:
topic: "cmnd/sonoffs/POWER2"
payload: ""
######################################################
# #
# Time to OLED-дисплей SSD1306 #
# #
######################################################
- alias: Time to display
trigger:
- platform: time_pattern
minutes: '/1'
seconds: 5
action:
- service: rest_command.display_clear_small
- delay: '00:00:01'
- service: rest_command.display_clear_big
- delay: '00:00:01'
- service: rest_command.display_send_time_small
- service: rest_command.display_send_time
- delay: '00:00:25'
- service: rest_command.display_clear_small
- delay: '00:00:01'
- service: rest_command.display_clear_big
- delay: '00:00:01'
- service: rest_command.display_send_weather_small
- service: rest_command.display_send_weather
###################################################
# #
# turn off all #
# #
###################################################
- alias: Turn off all
trigger:
- platform: state
entity_id: binary_sensor.vykliuchit_vsio
from: 'off'
to: 'on'
condition: []
action:
- service: mqtt.publish
data:
topic: "cmnd/ElectroDragon1/POWER1"
payload: "OFF"
- service: mqtt.publish
data:
topic: "cmnd/ElectroDragon2/POWER1"
payload: "OFF"
- service: mqtt.publish
data:
topic: "cmnd/ElectroDragon2/POWER2"
payload: "OFF"
- service: mqtt.publish
data:
topic: "cmnd/Table_lamp/POWER1"
payload: "OFF"
- service: mqtt.publish
data:
topic: "cmnd/ElectroDragon3/POWER1"
payload: "OFF"
- service: mqtt.publish
data:
topic: "cmnd/ElectroDragon3/POWER2"
payload: "OFF"
- service: mqtt.publish
data:
topic: "cmnd/Living_room/POWER1"
payload: "OFF"
- delay: '00:00:20'
- service: mqtt.publish
data:
topic: "cmnd/ElectroDragon1/POWER2"
payload: "OFF"
######################################################
# #
# Датчики мега #
# #
######################################################
- alias: Mega MQTT Sensor
trigger:
- platform: time_pattern
minutes: '/5'
seconds: 10
action:
- service: mqtt.publish
data:
topic: "megad/7/cmd"
payload: "get:0" #Темп/влажн на улице
- delay: '00:00:10'
- service: mqtt.publish
data:
topic: "megad/7/cmd"
payload: "get:6" #1 Темп. бат спальни 2 Темп. у окна кухни 3 Темп. в гостиной
- delay: '00:00:10'
- service: mqtt.publish
data:
topic: "megad/7/cmd"
payload: "get:7" #1 Темп трубы ХВС 2 Темп трубы ГВС
- delay: '00:00:10'
- service: mqtt.publish
data:
topic: "megad/7/cmd"
payload: "get:36" #Датчик шума
###################################################
# #
# count #
# #
###################################################
- alias: Cold water count
trigger:
- platform: state
entity_id: binary_sensor.kholodnaia_voda
from: 'off'
to: 'on'
condition: []
action:
- service: counter.increment
entity_id: counter.water_cold_counter
- alias: Hot water count
trigger:
- platform: state
entity_id: binary_sensor.goriachaia_voda
from: 'off'
to: 'on'
condition: []
action:
- service: counter.increment
entity_id: counter.water_hot_counter
Re: Арендная квартира: MegaD, Home Assistant, датчик шума и приборы учета
lovelace:
Код: Выделить всё
title: xxxxxxxxxx
views:
- badges: []
cards:
- cards:
- entity: light.koridor
hold_action:
action: more-info
icon: 'mdi:led-strip'
show_icon: true
show_name: true
tap_action:
action: toggle
type: entity-button
- entity: light.vanna
hold_action:
action: more-info
show_icon: true
show_name: true
tap_action:
action: toggle
type: entity-button
- entity: light.tualet
hold_action:
action: more-info
show_icon: true
show_name: true
tap_action:
action: toggle
type: entity-button
- entity: light.kukhnia
hold_action:
action: more-info
icon: 'mdi:ceiling-light'
show_icon: true
show_name: true
tap_action:
action: toggle
type: entity-button
type: horizontal-stack
- entity: group.all_lights
hold_action:
action: more-info
icon: 'mdi:close-circle-outline'
icon_height: 37px
name: ВКЛ/ВЫКЛ всё освещение
show_icon: true
show_name: true
tap_action:
action: toggle
type: entity-button
- cards:
- entity: light.spalnia
hold_action:
action: more-info
icon: 'mdi:ceiling-light'
show_icon: true
show_name: true
tap_action:
action: toggle
type: entity-button
- entity: light.nastolnaia_lampa
hold_action:
action: more-info
icon: 'mdi:desk-lamp'
show_icon: true
show_name: true
tap_action:
action: toggle
type: entity-button
- entity: light.kladovka
hold_action:
action: more-info
show_icon: true
show_name: true
tap_action:
action: toggle
type: entity-button
- entity: light.gostinaia
hold_action:
action: more-info
icon: 'mdi:ceiling-light'
show_icon: true
show_name: true
tap_action:
action: toggle
type: entity-button
type: horizontal-stack
- entities:
- entity: binary_sensor.vkhodnaia_dver
secondary_info: last-changed
- entity: camera.podezd
- entity: binary_sensor.domofon
secondary_info: last-changed
- entity: sensor.datchik_shuma
show_header_toggle: false
title: Входная группа
type: entities
- entities:
- entity: sensor.temp_kukhnia
- entity: sensor.temp_gostinaia
- entity: sensor.temp_bat_spalni
title: Температура в квартире
type: glance
- entities:
- entity: sensor.water_cold_counter_m3
- entity: sensor.water_hot_counter_m3
- entity: sensor.temp_gor_truby
- entity: sensor.temp_khol_truby
- entity: cover.voda
show_header_toggle: false
title: Приборы учета
type: entities
- entities:
- entity: sensor.temp_na_ulitse
- entity: sensor.vlazhnost_na_ulitse
- entity: sensor.illuminance
- entity: weather.font8
show_header_toggle: false
theme: default
title: Улица
type: glance
icon: 'mdi:home-heart'
path: default_view
theme: default
title: Home
- badges: []
cards:
- entities:
- entity: sensor.routeros_wireless
- entity: sensor.speedtest_download
- entity: sensor.speedtest_upload
- entity: sensor.speedtest_ping
title: Интернет
type: glance
- entities:
- entity: sensor.temp_gostinaia
- entity: sensor.temp_bat_spalni
- entity: sensor.owm_temperature
hours_to_show: 80
title: Изм. температуры
type: history-graph
- entities:
- entity: sensor.speedtest_download
- entity: sensor.speedtest_upload
hours_to_show: 80
title: Интернет
type: history-graph
icon: 'mdi:history'
theme: default
title: History
Re: Арендная квартира: MegaD, Home Assistant, датчик шума и приборы учета
Выложил на https://github.com/empenoso/openHAB_two-bedroom-flat
пока старая версия, которую уже не использую с openHAB.
пока старая версия, которую уже не использую с openHAB.
Последний раз редактировалось empenoso 09 ноя 2019, 09:31, всего редактировалось 1 раз.