MaKon
MaKon
Местный

Регистрация: 06.11.2010

Москва

Сообщений: 713

24.03.2013 в 23:48:42

Некоторое время назад я имел тяжбу с управляющей компанией на предмет низкой температуры ГВС. Тяжба увенчалась успехом. Но осадочек-то остался. А так как мы помним что на универсальный сенсор фибаро можно повесить до 4 датчиков температуры, то и сделаем это. На данный момент работы выполнены не до конца, но температуру уже меряем. В качестве термометров закупаем DS18B20+ (без плюса тоже можно, но не нужно). Измерять температуру ХВС нам особо не надо, но при цене датчика в 40р почему бы и нет? Датчики распаяны на витую пару. С другой стороны установлены разъемы 8P8C (на стене есть розетка о 2 портах куда они и подключаются).

Сами датчики обмазываются термопастой и притягиваются стальными хомутами к соответствующим трубам.

И мы имеем показания температуры на стояках водоснабжения :) Ну и заодно прикручиваем к контроллеру плагин с целью просмотра ретроспективы. Продолжение следует

0
Вложение
Бамбр
Бамбр
Местный

Регистрация: 06.06.2012

Санкт-Петербург

Сообщений: 315

25.03.2013 в 19:27:34

а не должен быть весь объем датчика погружен в среду, температура которой измеряется? так он может показывать среднее между температурой трубы и температурой окружающего воздуха.

0
MaKon
MaKon
Местный

Регистрация: 06.11.2010

Москва

Сообщений: 713

25.03.2013 в 22:25:56

Бамбр, должен, но вы думаете есть серьезная разница в значениях?

0
Бамбр
Бамбр
Местный

Регистрация: 06.06.2012

Санкт-Петербург

Сообщений: 315

25.03.2013 в 23:29:40

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

0
MaKon
MaKon
Местный

Регистрация: 06.11.2010

Москва

Сообщений: 713

26.03.2013 в 16:34:32

Бамбр написал : ну, если он меряет какую-то среднюю температуру, то разница должна быть.

Конечно разница есть. Но несущественная, Ибо датчик обмазан термопастой, плотно притянут к трубе стальным хомутом (который также подогревает обратную сторону датчика) и все это закутано в теплоизоляцию. Так что разница незначительна

0
Director
Director
Новичок

Регистрация: 17.12.2011

Дзержинск

Сообщений: 92

28.03.2013 в 20:36:34

ну когда же продолжение будет...

0
MaKon
MaKon
Местный

Регистрация: 06.11.2010

Москва

Сообщений: 713

29.03.2013 в 13:29:10

едет дополнительное оборудование. К сожалению, очень часто обновлять тему не могу. Но постараюсь. Может быть в выходной еще напишу

0
MaKon
MaKon
Местный

Регистрация: 06.11.2010

Москва

Сообщений: 713

11.04.2013 в 13:31:11

Оборудование приехало. Тпереь у меня есть (в разных количествах): 1) Универсальный бинарный датчик 2) Датчик движения/освещенности/влажности/температуры в одном 3) Встраиваемый диммер Fibaro 4) Диммер ZME 5) Брелок ZME 6) Встраиваемое 2*1,5 кВт реле Fibaro 7) Выключатель нагрузки с датчиком энергопотребления Aeon Labs 8) Настенный контроллер на батарейках ZME

Скажу сразу, что если у вас цель сделать автоматизацию своего дома с относительно сложными сценами, то вам придется разбираться с программированием на Lua-Luup. На самом деле там ничего сложного. Изучать я только начал, так что больно не пинать :) Как я уже писал, у меня была задача перекрывать водоснабжение в квартире при уходе людей. На первый взгляд все очень просто. Если люди ушли - воду перекрыть. Если пришли - открыть. Но иногда, вопреки совету производителя, мы можем оставить включенными стиральную/посудомоечную машину и уйти из дома. И вот тогда воду перекрывать не стОит. Вот как решил задачу я. К стиральной машине подключен выключатель с датчиком энергопотребления. На основании данных с этого датчика, удалось выяснить что если машина закончила стирку, то ее потребление находится в районе 3-4 Ватт. Стабильно. В процессе стирки значение потребления постоянно меняется и оно, естественно, выше.

UPDATE! В данный момент концепция меняется, всвязи с недостатками описанного ниже метода. Далее можно не читать :) продолжение в отдельном посте Начнем с простого. Хозяева уходят из дома. Если машина выключена (потребление 0) - перекрыть воду. Тут надо сказать, что выбранный мной выключатель/датчик нельзя по-простому использовать в сцене, ибо там можно настроить срабатывание только на изменение состояния (вкл/выкл) встроенного реле. Поэтому пришлось писать недостающее на luup. 1) Создаем сцену в которой при срабатывании датчика ухода хозяев из дома перекрывается вода. 2) Но сделать сразу мы это можем только если стиральная машина выключена. Поэтому дописываем в триггер код:

*local ConsumptionDetectorSID = "urn:micasaverde-com:serviceId:EnergyMetering1" -- SID датчика потребления энергии local ConsumptionDetectorID = 18 -- ID of VirtualSwitch -- ID датчика потребления энергии

local Consumption = luup.variable_get(ConsumptionDetectorSID, "Watts", ConsumptionDetectorID) -- получаем в переменную текущее значение потребления энергии

Consumption = tonumber(Consumption) --преобразовываем строковое значение в числовое для последующей возможности сравнить

if (Consumption==0) then -- если полученное значение равно 0 (машина выключена) return true -- запускаем сцену end

return false -- а иначе не запускаем*

на этом текущая подзадача выполнена.

Далее нас ждут танцы с бубном. Этот несчастный датчик потребления энергии не умеет хранить внутри себя дату-время последнего изменения показаний. Поэтому я установил плагин Combination Switch. По своей сути это триггер. Любо включен, либо выключен. Условия при которых он меняет свое состояние настраиваются внутри. У меня сделано так чтобы при потреблении от 5 до 9999 ватт он был включен. В противном случае - выключен. То есть в нашей ситуации он говорит нам в первом случае что в данный момент происходит стирка. Во втором случае он говорит нам что потребление низкое, сравнимое с послестирочным значением. В моем случае если это значение больше 10 минут - можно смело выключать машину. Стирка точно окончена. Задача номер два. Надо понять, когда последний раз машина меняла свое состояние (с высокого на низкое и наоборот). Для этого использованы 2 триггера в новой сцене. В одном мы реагируем на включение Combination Switch (высокое потребление). В другом мы реагируем на выключение Combination Switch (низкое потребление). В самом Combination Switch создаем дополнительную переменную вида LastTrip. И в первом триггере добавляем код:

*local VirtualSwitchSID = "urn:micasaverde-com:serviceId:SecuritySensor1" -- SID Combination Switch local VirtualSwitchID = 35 -- ID Combination Switch

local TripTime = os.time() -- Получаем тукущее системное время

luup.variable_set(VirtualSwitchSID, "LastTrip", TripTime, VirtualSwitchID) -- И записываем его в переменную LastTrip

return true*

Для второго триггера полностью аналогично.

Теперь если стиральная машина переходит из высокого потребления в низкое и обратно - мы знаем когда это произошло.

Ну и финальный рывок. Если 10 минут потребление не менялось и было низким - запустить сцену перекрытия воды. Для этого в первой сцене (где мы перекрывали воду если машина выключена) добавляем новый триггер и настраиваем его на срабатывание если Combination Switch выключен (низкое потребление). И добавляем код Luup:

*local SleepTestPeriod = 10 -- Время ожидания в минутах. Если низкое потребление будет все это время - можно перекрывать воду local MaxSleepDetectorSID = "urn:micasaverde-com:serviceId:SecuritySensor1" -- SID Combination Switch local MaxSleepDetectorID = 35 -- ID Combination Switch local DoorSensorSID = "urn:micasaverde-com:serviceId:SecuritySensor1" -- SID датчика отсутствия людей. Нужно иметь ввиду что у меня он принимает значение 1 если люди есть и 0 если нет local DoorSensorID = 12 -- ID of DoorSensor -- ID датчика отсутствия людей

function checkLastTrip() -- функция проверки условий

local LastTrip = luup.variable_get(MaxSleepDetectorSID, "LastTrip", MaxSleepDetectorID) -- получаем дату-время последнего изменения потрребления энергии (настраивали на 2м шаге) local DoorStatus = luup.variable_get(DoorSensorSID, "Tripped", DoorSensorID) -- получаем состояние присутствия/отсутствия людей

if (DoorStatus == "1") then -- Если во время выполнения сцены пришли люди - прекратить выполнение сцены return false end

LastTrip = tonumber(LastTrip) -- преобразуем в цифровой вид (из текстового) время последнего изменения потребления

if ((os.difftime(os.time(), LastTrip) / 60) >= SleepTestPeriod) then --Если потребление не менялось уже SleepTestPeriod время, то запустить сцену перекрытия водоснабжения return true else

luup.call_delay ("checkLastTrip", 60) -- Иначе повторить проверку через 1 минуту end

end

return false*

Ходовые испытания последнего скрипта продолжаются :)

Ну а теперь надо создать простую сцену открытия шаровых кранов если люди пришли домой. В новой сцене создаем триггер, срабатывающий при появлении людей. И даже кода добавлять не надо. Признаю что решение, возможно, не оптимальное, но я только учусь.

0
MaKon
MaKon
Местный

Регистрация: 06.11.2010

Москва

Сообщений: 713

11.04.2013 в 13:43:07

Пару слов о загадочных SID и ID. У каждого устройства (и подустройства) в сети z-wave есть адрес в виде цифры. Это и есть ID. Чтобы его узнать - открываем настройки нужного устройства. Закладка Settings. Вот он - красным обведен. Нам нужно именно число. Без #

У каждого устройства есть переменные, в которых оно хранит свое состояние. Например у датчика потребления энергии есть переменная Watts, которая показывает текущее значение потребления энергии. Чтобы узнать SID этой переменной открываем свойства устройства. Вкладка Advanced. Ищем нжную нам переменную и наводим на нее курсор мыши. В сплывающей подсказке появится интересующий нас SID:

Поэтому если нам нужно узнать значение, например Watts, нам нужно сделать так: local Consumption = luup.variable_get(ConsumptionDetectorSID, "Watts", ConsumptionDetectorID) Где: local Consumption = создаем новую переменную luup.variable_get вызываем системную функцию получения значения переменной в скобках через запятую сначала указываем SID переменной, затем имя переменной в кавычках, затем ID устройства с которого нам нужно взять эту переменную

0
Вложение
BOE
BOE
Местный

Регистрация: 04.03.2009

Москва

Сообщений: 437

12.04.2013 в 10:14:35

MaKon написал : Оборудование приехало. Тпереь у меня есть (в разных количествах): 1) Универсальный бинарный датчик 2) Датчик движения/освещенности/влажности/температуры в одном 3) Встраиваемый диммер Fibaro 4) Диммер ZME 5) Брелок ZME 6) Встраиваемое 2*1,5 кВт реле Fibaro 7) Выключатель нагрузки с датчиком энергопотребления Aeon Labs 8) Настенный контроллер на батарейках ZME

несколько вопросов если не возражаете: - в какую сумму вам обошелся этот комплект оборудования с учетом доставки? - что за устройство -Выключатель нагрузки с датчиком энергопотребления Aeon Labs? если можно дайте ссылку. Какое из перечисленных устройств вы используете для открытия-закрытия кранов?

0
MaKon
MaKon
Местный

Регистрация: 06.11.2010

Москва

Сообщений: 713

12.04.2013 в 10:26:05

цены можно посмотреть тут Привожу артикулы: 1) FIB_FGBS-001 2) AEO_MULTISENS 3) FIB_FGD-211 4) ZME_06433 5) ZME_KFOB 6) FIB_FGS-221 7) AEO_SES_EU Хотя сейчас бы купил гораздо более компактное устройство от Fibaro. Хотя и это спряталось у меня довольно удачно. 8) ZME_06443 Доставка 1000 рублей.

BOE написал : что за устройство -Выключатель нагрузки с датчиком энергопотребления Aeon Labs? если можно дайте ссылку.

п. 7

BOE написал : Какое из перечисленных устройств вы используете для открытия-закрытия кранов?

FAR FA 300517 3440

0

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий.

Присоединяйтесь к самому крупному DIY сообществу