Страница 2 из 3
Re: Статус системы "Кто-то есть" как настроить.
Добавлено: Ср июл 25, 2018 12:18 pm
VladPTZ
Я по большей части свою логику и использую, но датчики движения это тот случай когда решил попробовать имеющийся функционал, но попал на обратную сторону готового функционала не понятно как работает и как настроить под свои задачи. Почему этот тайаут просто не вывели в настройку через свойство.
Re: Статус системы "Кто-то есть" как настроить.
Добавлено: Ср июл 25, 2018 2:12 pm
tarasfrompir
Ну так исправь метод - Rooms_updateActivityStatus.php
на вот так -
Код: Выделить всё
<?php
if (defined('DISABLE_SIMPLE_DEVICES') && DISABLE_SIMPLE_DEVICES==1) return;
$rooms = getObjectsByClass("Rooms");
$total = count($rooms);
for ($i = 0; $i < $total; $i++) {
$rooms[$i]['room'] = getGlobal($rooms[$i]['TITLE'] . '.Title');
if (!$rooms[$i]['room']) {
$rooms[$i]['room'] = $rooms[$i]['TITLE'];
}
$rooms[$i]['active'] = getGlobal($rooms[$i]['TITLE'] . '.SomebodyHere');
$rooms[$i]['time'] = getGlobal($rooms[$i]['TITLE'] . '.LatestActivity');
if (!$rooms[$i]['time']) {
$rooms[$i]['time'] = 0;
}
$rooms[$i]['diff'] = time() - $rooms[$i]['time'];
}
if (!function_exists('cmpRoomsActivity')) {
function cmpRoomsActivity($a, $b)
{
if ($a['diff'] == $b['diff']) {
return 0;
}
return ($a['diff'] < $b['diff']) ? -1 : 1;
}
}
usort($rooms, "cmpRoomsActivity");
$res_rooms = array();
for ($i = 0; $i < $total; $i++) {
if ($rooms[$i]['active']) {
$res_rooms[] = $rooms[$i]['room'];
$countactiverooms = $countactiverooms+1;
}
}
if (!$countactiverooms) {
//поскольку нету активности в доме то включает режим економии а также получает статус никого нет дома
callMethodSafe('NobodyHomeMode.activate');
callMethodSafe('EconomMode.activate');
$somebodyHomeText = LANG_DEVICES_ROOMS_NOBODYHOME." ".LANG_DEVICES_ROOMS_ACTIVITY." " . date('H:i', $rooms[0]['time']) . " (" . $rooms[0]['room'] . ")";
} else {
$somebodyHomeText = LANG_DEVICES_ROOMS_SOMEBODYHOME." ". LANG_DEVICES_ROOMS_ACTIVITY . " " . implode(", ", $res_rooms);
}
echo $somebodyHomeText;
setGlobal('somebodyHomeText', $somebodyHomeText);
Re: Статус системы "Кто-то есть" как настроить.
Добавлено: Чт июл 26, 2018 10:20 am
nightwind
VladPTZ писал(а): ↑Ср июл 25, 2018 12:18 pm
Я по большей части свою логику и использую, но датчики движения это тот случай когда решил попробовать имеющийся функционал, но попал на обратную сторону готового функционала не понятно как работает и как настроить под свои задачи. Почему этот тайаут просто не вывели в настройку через свойство.
вывод в настройку через свойство - оверхед на постоянное обращение к базе. а настраивать ты его будешь 1-2 раза. Я наоборот поубирал из свойств всякие константы и понаписывал их через define
Re: Статус системы "Кто-то есть" как настроить.
Добавлено: Чт июл 26, 2018 10:21 am
nightwind
tarasfrompir1 писал(а): ↑Ср июл 25, 2018 2:12 pm
Ну так исправь метод - Rooms_updateActivityStatus.php
на вот так -
...
и после обновления останешься с тыквой)
лучше перенести этот код в метод, и отказаться от включения файлов
Re: Статус системы "Кто-то есть" как настроить.
Добавлено: Чт июл 26, 2018 10:23 am
tarasfrompir
я сделал себе форк - внес свои изменения и обновялюсь по мере надобности
И тогда
Нам не страшен серый волк ....
ПС
Я никого не склоняю - ни к чему просто факт...
Re: Статус системы "Кто-то есть" как настроить.
Добавлено: Ср дек 12, 2018 11:42 am
sigment
Сделал фоновые подсветки, при активации Sunset все включилось, а в 23:13 почему-то включился Эко, хотя движения в комнатах были.
Единственное упоминание времени которое я нашел это 23:30 в onNewMinute. Если честно, я очень поверхностно понимаю, что тут прописано...
Код: Выделить всё
if (timeIs("23:30") && (gg("EconomMode.active")!="1") && (gg("NobodyHomeMode.active")=="1")) {
callMethod('EconomMode.activate');
Подскажите, как сделать, чтоб Экорежим активировался/деактивировался правильно?
Включал в ручную Ни кого нет дома, при движении NobodyHomeMode деактивируется. Но эко остаётся активным.
Re: Статус системы "Кто-то есть" как настроить.
Добавлено: Чт дек 13, 2018 12:17 am
sigment
Что-то вообще ни чего не понимаю, Eco mode как включился вчера так и не выключается, но по закату подсветка все-равно включилась.
Re: Статус системы "Кто-то есть" как настроить.
Добавлено: Чт дек 13, 2018 12:37 am
Logrus
уже не помню точно, но у меня примерно так:
энерджитариф ночной и дневной (там еще выходные, ага не виноват)
никого нет, кто то есть, все спят
эконом включается когда дневной и галкой выбора учитывать нет присутствие, то когда никого нет
т.е. днем и никого, днем если не учитывать, на основании этого можно уже для устройств несколько вариантов реализовывать
а вообще будет так как надо и это напишешь, в образах все режимы имитация пример
Re: Статус системы "Кто-то есть" как настроить.
Добавлено: Чт дек 13, 2018 1:01 am
xor
sigment писал(а): ↑Ср дек 12, 2018 11:42 am
...
Код: Выделить всё
if (timeIs("23:30") && (gg("EconomMode.active")!="1") && (gg("NobodyHomeMode.active")=="1")) {
callMethod('EconomMode.activate');
...
Тут написано, что если в 23:30 экорежим неактивен и при этом НикогоДома, то вкл. экорежим. Если минутой позже в доме будет движ и НикогоДома сбросится в 0, на экорежим эта строка никак не повлияет. Она срабатывает только один раз в сутки, в полдвенадцатого ночи.
Да, интересно время выбрано.
И ещё топик называется
Статус системы "Кто-то есть" как настроить., а вы сюда со своим экономрежимом
Re: Статус системы "Кто-то есть" как настроить.
Добавлено: Пт янв 04, 2019 4:58 pm
djeremy
Подскажите что надо сделать что бы при обновлениях мой код не затирался? добавил код что бы писалось время вот так
Кто-то есть..
Кухня 18:54, Спальня 18:53, Зал 18:52 очеь удобно и сразу понятно где и когда произошло движение. но блин каждый раз затирается этот файл, выставить на него рид онли но это не правильно.