NEWS
Автоматизация света и вытяжки в ванной по датчику движения и влажности (с использованием данных из sql)
-
Спасибо, но немного не то.
В моём случае я хочу чтобы включение происходило по росту влажности, а не по абсолютному значению.
Абсолютное значение по моим наблюдениям сейчас гуляет от 10 до 30%, летом думаю разбег будет ещё больше, но когда кто-то идёт в душ влажность по показаниям датчика в течении минуты повышается резко на 20-30%. По этому росту я хочу определять, что кто-то там ещё есть, несмотря на то, что от датчика движения нет сообщений, поскольку как только заходишь в душевую кабинку её стекла экранируют тепло от тела и датчик движения не работает.
-
Спасибо, но немного не то.
В моём случае я хочу чтобы включение происходило по росту влажности, а не по абсолютному значению.
Абсолютное значение по моим наблюдениям сейчас гуляет от 10 до 30%, летом думаю разбег будет ещё больше, но когда кто-то идёт в душ влажность по показаниям датчика в течении минуты повышается резко на 20-30%. По этому росту я хочу определять, что кто-то там ещё есть, несмотря на то, что от датчика движения нет сообщений, поскольку как только заходишь в душевую кабинку её стекла экранируют тепло от тела и датчик движения не работает. `
а с чего ты решил что влажность все время будет увеличиваться по 20% до 1000? Влажность поднимется практичски сразу и будет по немногу падать после включения вентилятора. -
а с чего ты решил что влажность все время будет увеличиваться по 20% до 1000? Влажность поднимется практичски сразу и будет по немногу падать после включения вентилятора. `
Какие ещё 1000? См. график во вложении. (График слишком сглаженный, т.к. показания снимались каждые 5 минут).В целом собираюсь реализовать такай сценарий:
1. чел входит в помещение душевой - срабатывает датчик движения, включает свет
2. пока чел в душевой кабине датчик движение не работает - но влажность увеличивается, значит кто-то есть, соответсвенно свет гасить не нужно
3. как только чел выходит из кабины - уже срабатывает датчик движения, а влажность постепенно начинает падать. За влажностью уже можно не следить - управлять светом по датчику движения.
4. вентилятор планирую включать уже после выхода чела из душевой кабины, скажем через 5 минут на 5 минут или при превышении некоего порога. Нужны дополнительные испытания.
Все эти телодвижения с влажностью нужны для учёта того, что кто-то есть в помещении.
Соответсвенно по п.2 я задумался как проанализировать скорость роста значения. Использовать значения истории видится наиболее логичным. Просто следить за скоростью роста показания влажности. Судя по анализу тех графиков что имею - если скорость роста более 2% за минуту - явно кто-то решил "подушиться".
Вобщем-то вроде процесс сдвинулся, если что - ещё спрошу.
5570_2018-02-25-br-hum.png -
Вот что получилось.
megadd.0.p31_P31 - датчик влажности
megadd.0.p32_P32 - датчик движения
megadd.1.p25_P25 - реле света
megadd.0.p8_P8 - реле вытяжки
`var timer_vanna; var timer_vanna_vent; var flag_motion_vanna = false; var flag_hum = false; on({id: 'megadd.0.p32_P32', change: 'any'}, function (obj) { if (obj.newState.val === false){ flag_motion_vanna = true; flag_hum = false; clearTimeout(timer_vanna); if (getState('megadd.1.p25_P25').val === false) { setState('megadd.1.p25_P25', true); } }else if (obj.newState.val === true) { timer_vanna = setTimeout(function() { flag_motion_vanna = false; if (getState('megadd.0.p32_P32').val === true && flag_hum === false) { setState('megadd.1.p25_P25', false); } }, 40000); } }); schedule({second: [0, 20, 40]}, function () { var end = new Date().getTime(); var DT1; var DT = 0; sendTo('sql.0', 'getHistory', { id: 'megadd.0.p31_P31_humidity', options: { end: new Date().getTime(), count: 10, aggregate: 'onchange' //аggregate: 'm4' // or 'none' to get raw values } }, function (result) { DT1=0; for (var i = 0; i < result.result.length; i++) { //console.log(result.result[i].id + ' D= ' + new Date(result.result[i].ts).toISOString()+' V=' +result.result[i].val); Hprev = result.result[i].val; DT1=DT1+result.result[i].val; //console.log('Rows: ' + JSON.stringify(result.result)); } DT1=DT1/10; Htek=getState('megadd.0.p31_P31_humidity').val; DT=Htek-DT1; //console.log('DT='+DT+'('+ Htek+'-'+DT1+')'); if (DT>=2 && flag_hum === false){ flag_hum = true; console.log('flag_hum=true DT='+DT+'>2'); if (getState('megadd.1.p25_P25').val === false) { setState('megadd.1.p25_P25', true); console.log('Был выключен - включаю'); } } else if (DT<-1 && flag_hum === true) { flag_hum = false; console.log('flag_hum=false DT='+DT+'<-1'); if (flag_motion_vanna === false) { console.log('Запуск таймера на отключение света'); timer_vanna = setTimeout(function() { if (getState('megadd.0.p32_P32').val === true && flag_hum === false) { setState('megadd.1.p25_P25', false); } }, 40000); } } if (DT<-2) { console.log('DT='+DT+' Запуск таймера на выключение вытяжки'); setState('megadd.0.p8_P8', true); clearTimeout(timer_vanna_vent); timer_vanna_vent = setTimeout(function() { setState('megadd.0.p8_P8', false); }, 185000); } }); });` [/i][/i][/i][/i][/i] -
Подниму старую тему. Актуально для тех кто пользует InfluxDB.
Для себя проблему идентификации повышения\понижения температуры (ну или других показателей) и скорости таких изменений решил следующим скриптом
function getRate(id) { var rate = 0; sendTo('influxdb.0', 'query', 'SELECT DERIVATIVE(mean(value), 1h) FROM \"'+id +'\" WHERE time > now() - 2h GROUP BY time(1h) fill(linear)', function (result) { if (result.error) { console.error(result.error); rate=0; } else { var res=JSON.parse(JSON.stringify(result.result[0])); if (typeof res[0]=="undefined") {rate=0} else {rate = Math.round(res[res.length-1].derivative*100)/100;} setState(id+'.tempDir1h', rate, true); } }); }данный скрипт использует стандартную функцую influxDB DERIVATIVE, которая возвращает скорость изменения показателя за указанный в параметре промежуток времени.
Скрипт берет данные из базы за последние 2 часа, усредняет их по часовым интервалам и возвращает скорость изменения за последний час. Отричательные значения говорят о снижении показателя, положительные об увеличении.
-
Тем кто ставит вентилятор в квартире в отверстие естественной вентиляции (ЕВ) имейте ввиду что выключенный вентилятор уменьшает тягу ЕВ в ~10 раз. Если у вас всего 2 таких отверстия одно на кухне, другое в ванной и в одно их них поставить вентилятор то можно сказать что вы в среднем ухудшили вентиляцию (за счёт вытяжки) в 2 раза для квартиры в целом. Для ванной вентиляция при выключенном ухудшится в ~10 раз.
Это легко проверяется датчиками CO2. Чтобы проветрить квартиру придётся не просто приоткрывать окно на маленькую щель, а делать сквозное проветривание.Так как тяги 1 лишь кухонной вытяжки не хватает. А если и в кухонной вытяжке поставили только периодически работающий вентилятор - то вообще всё плохо будет.
-
У меня выключенный вентилятор крутиться от естественного потока (некоторые вентиляторы имеют клапан, да…) `
То что он крутится это не значит что пропускная способность канала не снизилась. А клапаны от ЕВ откроются только на сильном перепаде высот и в определённое время года. Если до крыши этажей меньше 4, а в доме теплей чем на улице менее 5 градусов - уверен что клапан даже не откроется.
Рассчитать это очень сложно, но замерив по факту производительность высокочувствительным датчиком потока или косвенно по уровню CO2 (при щелевом приоткрытом окне) - выводы делаются однозначные.
-
я имел в виду такой клапан:

бывают и другие, жесткие на пружинкахсовершенно бесполезная вещь, сразу снял
а так да, не спорю, естественная вентиляция через выключенную вытяжку хуже
тоже баловался с заданием разных условий, по факту остановился на таком режиме: горит свет - работает вытяжка
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login