Страница 1 из 1

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

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

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

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

$hometemp=gg('AmarokLair.Temperature')+gg('Kitchen.Temperature')+gg('Livingroom.Temperature');
$hometemp1=$hometemp/3; 
Значения таковы: +27, 0, 0. На выходе получаем... 29. Брррррр.....

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

Добавлено: Пн апр 28, 2014 11:24 am
shemnik69
Немного каверзно наверное.
Вот пример, в доме 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 час, чаще нет смысла. Но как показала практика и не надо.
Может кому то данная тема и не интересна..каждый может творить как считает нужным, но логичнее и правильнее, когда знаешь что делать, и делать хорошо.

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

Добавлено: Пн апр 28, 2014 11:38 am
sergejey
приблизительно так:

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

$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;
} 

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

Добавлено: Пн апр 28, 2014 2:44 pm
adzam
shemnik69 писал(а):Немного каверзно наверное.
Вот пример, в доме 5 датчиков температуры.
2 из них следят уровень температуры котла (подача) и выходной гребенки теплого пола. Еще 3 установлены по комнатам, 1 в кухне и 2 в детских. Так вот, самый стабильный уровень в детских, т.е это 22-23 градуса. На кухне по понятным причинам есть постоянные перепады 17-25, связано это и с тем что сейчас постоянно при-открыто окно. Если увязывать несколько параметров в одну усредненную температуру то мы получаем по сути самообман . Те. (22 + 22 +17) /3 = 20.3??? т.е получается что средняя температура по "больнице" 20 градусов. Если задать это параметр для котла то он будет греть там где и так тепло и пытаться нагреть там где и не надо этого.
Я вообще температуру в комнатах регулирую не котлом а вентилями на батареях в комнатах, а отсюда и экономия, если нагрузка на котел меньше то и расход газа - меньше.Вентиля срабатывают на открытие и прикрытие в зависимости от команды полученной с градусников и установленной нами желаемой температуры в комнате.

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

Добавлено: Пн апр 28, 2014 11:04 pm
shemnik69
Понятно. Мой вариант точно также, термо головки на радиаторах, а линия по ленинградской схеме. Электроклапаны. конечно хорошо. но на мой не искушенный взгляд хлопотно. К тому же правило автоматика должна быть простой. А значит надежной. Иначе то так то эдак...
Теперь по Алгоритму.
Я так понял цикл от 1 до максимально датчика данные суммируются и делятся на n-1 Т.е по факту как бы простой расчет среднего значения. А не проще как изначально предлагал автор поста. Да и такой алгоритм даже в Мегу зашить можно. Да и место, где такой алгоритм полезен ..например это распределенная сетка датчиков, но должно быть именно одно усредненное значение. Пример ... ???? но я уверен такой есть :D :D

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

Добавлено: Вт ноя 11, 2014 12:24 pm
PAV
Мой вариант:

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

$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));
   }
 

Сергей, а можно перенести в Сценарии и алгоритмы?

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

Добавлено: Вт ноя 11, 2014 4:58 pm
Ivan
Я еще сделал свойства группа датсиков. Т к. Есть домашние, уличные, и других объектов. А также учитываю. Его корректные значения и пропускают - not alive ( на случай если у него батарея кончилась или поломался)

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

Добавлено: Ср ноя 12, 2014 11:57 am
PAV
Вот это все как раз есть в моем коде ;) InsideTempSensors
if ((gg($objects[$i]['TITLE'].'.alive'))>0){