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

Счётчик проветривания помещения.

Добавлено: Чт дек 02, 2021 3:34 pm
oikworld
Всем привет!
Понадобилась система проверки проветривания дома. Так как на всех окнах стоят датчики открытия-закрытия, пошёл путем записи времени в открытом состоянии окна. Написал метод в датчиках открытия, который записывает время последнего открытия я и когда окно снова закроется, записывает в счётчик ПУ новое свойство добавляя старое.
Далее добавил в этот метод обновление счётчика на тот случай если окно оставалось закрытым или открытым более чем час, чтобы счётчик обновлялся.
Всё вроде бы работает. Просто хотел чтобы вы посмотрели насколько грамотно написано или лучше упростить?

Этот метод срабатывает Когда откроется или закроется окно:

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

$status;
$TimeOpen;
$TimeClose;
$TotalOpen;

$status = $this->getProperty('status');
if ($status == 0) {
  $this->setProperty('TimeOpen', time());
} else {
  $TimeOpen = $this->getProperty('TimeOpen');
  $TimeClose = time();
  $TotalOpen = gg('Counter05.value');
  $TotalOpen = ($TimeClose - $TimeOpen) /60 + $TotalOpen;
  $TotalOpen = round($TotalOpen, 1);
  sg('Counter05.value', $TotalOpen);   //soedinenie s s4et4ikom 4istij vozdux
}
Ниже метод обновления счётчика вызывается один раз в час:

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

$status;
$TimeOpen;
$TimeClose;
$TotalOpen;

$status = $this->getProperty('status');
if ($status == 0) {
  $TimeOpen = $this->getProperty('TimeOpen');
  $TimeClose = time();
  $TotalOpen = gg('Counter05.value');
  $TotalOpen = ($TimeClose - $TimeOpen) /60 + $TotalOpen;
  $TotalOpen = round($TotalOpen, 1);
  sg('Counter05.value', $TotalOpen);   //soedinenie s s4et4ikom 4istij vozdux
  $this->setProperty('TimeOpen', time());
}  else {

  $refresh = gg('Counter05.value'); 

  sg('Counter05.value', $refresh); 

}