Средняя температура по дому

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
Аватара пользователя
Amarok
Сообщения: 1427
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Средняя температура по дому

Сообщение Amarok » Вс апр 27, 2014 12:39 pm

Захотелось научить Алису высчитывать среднюю температуру по дому. Возник вопрос:
Есть класс Rooms, в нем объекты и у каждого объекта в свойствах есть температура. Как сложить все температуры объектов и получить усредненное значение?

Набросал пока тупо:

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

$hometemp=gg('AmarokLair.Temperature')+gg('Kitchen.Temperature')+gg('Livingroom.Temperature');
$hometemp1=$hometemp/3; 
Значения таковы: +27, 0, 0. На выходе получаем... 29. Брррррр.....
Моя Алиска живёт на Proxmox в Debian 12
Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

Re: Средняя температура по дому

Сообщение shemnik69 » Пн апр 28, 2014 11:24 am

Немного каверзно наверное.
Вот пример, в доме 5 датчиков температуры.
2 из них следят уровень температуры котла (подача) и выходной гребенки теплого пола. Еще 3 установлены по комнатам, 1 в кухне и 2 в детских. Так вот, самый стабильный уровень в детских, т.е это 22-23 градуса. На кухне по понятным причинам есть постоянные перепады 17-25, связано это и с тем что сейчас постоянно при-открыто окно. Если увязывать несколько параметров в одну усредненную температуру то мы получаем по сути самообман . Те. (22 + 22 +17) /3 = 20.3??? т.е получается что средняя температура по "больнице" 20 градусов. Если задать это параметр для котла то он будет греть там где и так тепло и пытаться нагреть там где и не надо этого.
Я тоже пытался, исходя из массы данных, который выдают датчики (температура например от 10 датчиков) выделить полезную с точки зрения автоматики и простоты анализа и совокупить ее с конкретными задачами ..не тут, то было .С наскоку не получается. :lol:
Вот еще пример... Ванная комната (ванны нет есть душевая кабина, но по аналогии) там всегда уровень влажности высок. Его снизить можно двумя способами :
1. Самый простой увеличить воздухообмен например 5-6 V*Час или более.
2. Поддерживать более высокую температуру увеличивая способность воздуха к содержанию влаги.
Но тогда он отдаст ее при контакте с менее нагретым предметом (роса).
Т.е по сути выход только в установке принудительной вентиляции. Она есть как ее постоянно гонять или как то по команде датчика активироваться.
Влажность как таковая воздуха величина довольно переменчивая и всегда!!! воздух вне помещения по содержанию влаги "суше" чем внутри. Но теперь на улице тепло а зимой -20 и менее а внутри +20-23 если просто качать объемы по комнате то это бесполезная трата ресурса как отопительного так и эл. энергии (вентиляторы).
Значит нужен знаковый момент говорящий нам, о том что параметры влажность высокие. Это может выдать датчик влажности..да все просто но не совсем...
Вот душевая кабина, просыхает минут за 20 -30, на ее стенках примерно 1-1.5 л. влаги т.е она испарилась и растворилась в объеме того воздуха который в комнате. Если просто прокачать, до снижения влажности то одновременно и снизим температуру, изменим парциальное давления пара и получим выпадение росы!!!! Т.е нежелательно сразу по мере роста влажности менять температуру. Но так будет при работе вентиляции.
Выход это переменные режимы т.е датчик дает команду что влага есть, а сам он не включает вентиляторы. Его включает МК (УД) на основе 2-5 параметров температуры, влажности, времени суток, загруженности помещения и т.п. Итогом стал алгоритм который смотрит на 1. Включен свет в ванной. 2. Температура воздуха на улице 3 .Температура воздуха на кухне 4. Включился бойлер !!! (значит увеличился проходящий объем воды) 5. В душевой включено освещение ?? (параметр условный но зимой он работает).
Итог. Вентилятор (вытяжной) работает по времени, и комбинации команд от описанных выше параметров. Иначе было роса на окне (стеклопакет) . Сейчас (не по времени, а по работе системы) вроде практически нет.
Тоже самое и с усредненной температурой..
У меня в погребе стоит датчик в мороз он меня однажды поднял тревогу, сказав что там стало холодно.!!!! Для карошки как известно менее + 4 градусов уже плохо, она начинает сахарить и меняет вкус..нехорошо. НО в погребе нет отопления, есть только стены и сама теплоемкость бетонных стен. Кроме того открывая дверь (люк) мы разумеется меняем внутри температуру как бы быстро это не делать. Ставят лампочку, нагреватель и т.п забывая о том что "картошка" или другие капризные продукты внизу, а тепло будет вверху ...и как правило на уровне размещения полок и т.п температура на 2-3 градуса отличается от того что под потолком. Датчик это и показал. Данные с него идут раз в 1 час, чаще нет смысла. Но как показала практика и не надо.
Может кому то данная тема и не интересна..каждый может творить как считает нужным, но логичнее и правильнее, когда знаешь что делать, и делать хорошо.
За это сообщение автора shemnik69 поблагодарил:
Bagir (Сб дек 27, 2014 2:03 am)
Рейтинг: 1.16%
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Средняя температура по дому

Сообщение sergejey » Пн апр 28, 2014 11:38 am

приблизительно так:

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

$objects=getObjectsByClass("Rooms");
$total=count($objects);
if ($total>0) {
 $sum=0;
 for($i=0;$i<$total;$i++) {
  $sum+=(float)getGlobal($objects[$i]['TITLE'].".Temperature");
 }
 $avg=$sum/$total;
} 
За это сообщение автора sergejey поблагодарили (всего 4):
PAV (Вт ноя 11, 2014 12:56 pm) • tsember (Вс фев 08, 2015 2:39 am) • ypiter2006 (Пн янв 01, 2018 9:45 pm) • ipc2002 (Вт окт 29, 2019 9:35 pm)
Рейтинг: 4.65%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
adzam
Сообщения: 607
Зарегистрирован: Сб дек 08, 2012 10:28 pm
Откуда: Кишинев
Благодарил (а): 20 раз
Поблагодарили: 138 раз

Re: Средняя температура по дому

Сообщение adzam » Пн апр 28, 2014 2:44 pm

shemnik69 писал(а):Немного каверзно наверное.
Вот пример, в доме 5 датчиков температуры.
2 из них следят уровень температуры котла (подача) и выходной гребенки теплого пола. Еще 3 установлены по комнатам, 1 в кухне и 2 в детских. Так вот, самый стабильный уровень в детских, т.е это 22-23 градуса. На кухне по понятным причинам есть постоянные перепады 17-25, связано это и с тем что сейчас постоянно при-открыто окно. Если увязывать несколько параметров в одну усредненную температуру то мы получаем по сути самообман . Те. (22 + 22 +17) /3 = 20.3??? т.е получается что средняя температура по "больнице" 20 градусов. Если задать это параметр для котла то он будет греть там где и так тепло и пытаться нагреть там где и не надо этого.
Я вообще температуру в комнатах регулирую не котлом а вентилями на батареях в комнатах, а отсюда и экономия, если нагрузка на котел меньше то и расход газа - меньше.Вентиля срабатывают на открытие и прикрытие в зависимости от команды полученной с градусников и установленной нами желаемой температуры в комнате.
Мои проекты здесь...https://connect.smartliving.ru/profile/41/blog213.htm
Если вам помогло какое-либо мое сообщение - не ленитесь пользоваться кнопкой СПАСИБО.
Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

Re: Средняя температура по дому

Сообщение shemnik69 » Пн апр 28, 2014 11:04 pm

Понятно. Мой вариант точно также, термо головки на радиаторах, а линия по ленинградской схеме. Электроклапаны. конечно хорошо. но на мой не искушенный взгляд хлопотно. К тому же правило автоматика должна быть простой. А значит надежной. Иначе то так то эдак...
Теперь по Алгоритму.
Я так понял цикл от 1 до максимально датчика данные суммируются и делятся на n-1 Т.е по факту как бы простой расчет среднего значения. А не проще как изначально предлагал автор поста. Да и такой алгоритм даже в Мегу зашить можно. Да и место, где такой алгоритм полезен ..например это распределенная сетка датчиков, но должно быть именно одно усредненное значение. Пример ... ???? но я уверен такой есть :D :D
PAV
Сообщения: 968
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 71 раз
Поблагодарили: 95 раз

Re: Средняя температура по дому

Сообщение PAV » Вт ноя 11, 2014 12:24 pm

Мой вариант:

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

$objects=getObjectsByClass("InsideTempSensors");
$total=count($objects);
  if ($total>0) {
  $sum=0;
  $tot=0;
    for($i=0;$i<$total;$i++) {
      if ((gg($objects[$i]['TITLE'].'.alive'))>0){
      $tot++;
      $sum+=(float)getGlobal($objects[$i]['TITLE'].".temp");
      } 
    }
   $avg=$sum/$tot;
   callMethod("sensorTempInSUM.tempChanged", array("t"=>$avg));
   }
 

Сергей, а можно перенести в Сценарии и алгоритмы?
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: Средняя температура по дому

Сообщение Ivan » Вт ноя 11, 2014 4:58 pm

Я еще сделал свойства группа датсиков. Т к. Есть домашние, уличные, и других объектов. А также учитываю. Его корректные значения и пропускают - not alive ( на случай если у него батарея кончилась или поломался)
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
PAV
Сообщения: 968
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 71 раз
Поблагодарили: 95 раз

Re: Средняя температура по дому

Сообщение PAV » Ср ноя 12, 2014 11:57 am

Вот это все как раз есть в моем коде ;) InsideTempSensors
if ((gg($objects[$i]['TITLE'].'.alive'))>0){
Ответить