Статус системы "Кто-то есть" как настроить.

Всё, что не подходит под вышеперечисленные разделы

Модератор: immortal

Jilber
Сообщения: 606
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 99 раз
Поблагодарили: 97 раз

Re: Статус системы "Кто-то есть" как настроить.

Сообщение Jilber » Пт янв 04, 2019 5:06 pm

Код изменён в файле "default.html" из папки "templates" ? Скопируйте файл в папку "templates_alt" и исправляйте как хотите - она не затрагивается при обновлении.
Logrus
Сообщения: 1798
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 296 раз
Поблагодарили: 374 раза

Re: Статус системы "Кто-то есть" как настроить.

Сообщение Logrus » Пт янв 04, 2019 6:09 pm

djeremy писал(а):
Пт янв 04, 2019 4:58 pm
Подскажите что надо сделать что бы при обновлениях мой код не затирался? добавил код что бы писалось время вот так
Кто-то есть..
Кухня 18:54, Спальня 18:53, Зал 18:52 очеь удобно и сразу понятно где и когда произошло движение. но блин каждый раз затирается этот файл, выставить на него рид онли но это не правильно.
перед инжекцией ретурн, выше инжекцию на свой отредактированный, профит
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
djeremy
Сообщения: 23
Зарегистрирован: Пн дек 03, 2018 6:18 pm
Благодарил (а): 7 раз
Поблагодарили: 0

Re: Статус системы "Кто-то есть" как настроить.

Сообщение djeremy » Пт янв 04, 2019 6:34 pm

Logrus писал(а):
Пт янв 04, 2019 6:09 pm
перед инжекцией ретурн, выше инжекцию на свой отредактированный, профит
Не понимаю.. вот код файла Rooms_updateActivityStatus.php я пишу в него, но он меняется что логично, научите инжекции пожалуйста. есди что добавил 3 комментария что бы было понятно что я добавил.

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

<?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');
	$rooms[$i]['timela'] = getGlobal($rooms[$i]['TITLE'] . '.LatestActivityTime'); // Подключаем время
    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");

if (getGlobal('NobodyHomeMode.active')) {
    $somebodyHomeText = LANG_DEVICES_ROOMS_NOBODYHOME." ".LANG_DEVICES_ROOMS_ACTIVITY." " . date('H:i', $rooms[0]['time']) . " (" . $rooms[0]['room'] . ")";
} else {
    $res_rooms = array();
    for ($i = 0; $i < $total; $i++) {
        if ($rooms[$i]['active']) {
			$rooms[$i]['room'] = $rooms[$i]['room']." ".$rooms[$i]['timela']; // Добавляем время 
            $res_rooms[] = $rooms[$i]['room'];
        }
    }
    $somebodyHomeText = LANG_DEVICES_ROOMS_SOMEBODYHOME.'.';
    if (count($res_rooms)>0) {
        $somebodyHomeText.="<br>".implode(", ", $res_rooms); // Затираем слово активность
    }

}

echo $somebodyHomeText;

setGlobal('somebodyHomeText', $somebodyHomeText);
Logrus
Сообщения: 1798
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 296 раз
Поблагодарили: 374 раза

Re: Статус системы "Кто-то есть" как настроить.

Сообщение Logrus » Пт янв 04, 2019 8:00 pm

ааа, забыл, оно ж из файлов вызывается, а у себя вынес его вообще отдельно с изменениями (он у меня в методе на скрине ниже)
0.PNG
0.PNG (21.75 КБ) 2530 просмотров
сначала и подумал, про инжекцию, ну и выше написал как обойти, но там не так ...
Последний раз редактировалось Logrus Пт янв 04, 2019 8:07 pm, всего редактировалось 1 раз.
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Logrus
Сообщения: 1798
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 296 раз
Поблагодарили: 374 раза

Re: Статус системы "Кто-то есть" как настроить.

Сообщение Logrus » Пт янв 04, 2019 8:03 pm

сделайте так, в папке со структурой и после обновы всей пачкой меняйте
0.PNG
0.PNG (114.53 КБ) 2530 просмотров
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
djeremy
Сообщения: 23
Зарегистрирован: Пн дек 03, 2018 6:18 pm
Благодарил (а): 7 раз
Поблагодарили: 0

Re: Статус системы "Кто-то есть" как настроить.

Сообщение djeremy » Пт янв 04, 2019 9:33 pm

Понятно, спасибо, так не пойдет, тут ковырнул тут исправил после обновления может что то не зацепиться и так далее. Да и не выход это накатывать архивы вдруг что то новое интересное выйдет. По сути своими ковыряниями в другую ветвь ухожу. Выше писали уже кстати что этот код посторяется как в файле и именно он работает так и в где-то в объектах к сожалению копию кода найти не могу, то ли стер толи не там ищу. Смысл в том что вначале правил там код и ничего не менялось.
Logrus
Сообщения: 1798
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 296 раз
Поблагодарили: 374 раза

Re: Статус системы "Кто-то есть" как настроить.

Сообщение Logrus » Пт янв 04, 2019 10:14 pm

djeremy писал(а):
Пт янв 04, 2019 9:33 pm
Понятно, спасибо, так не пойдет, тут ковырнул тут исправил после обновления может что то не зацепиться и так далее. Да и не выход это накатывать архивы вдруг что то новое интересное выйдет. По сути своими ковыряниями в другую ветвь ухожу. Выше писали уже кстати что этот код посторяется как в файле и именно он работает так и в где-то в объектах к сожалению копию кода найти не могу, то ли стер толи не там ищу. Смысл в том что вначале правил там код и ничего не менялось.
именно с Rooms_updateActivityStatus.php ничего страшного вынести, там если только задвоение точки и двоеточия поправят, да вызов не с каждого срабатывания дд в комнате, а к onNewActivity перенесут
насчет задвоения, в дереве классов объектов в методах естественно его не должно быть
у многих там старое оставалось, что сейчас вынесено отдельно и т.д.
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
pasha413
Сообщения: 102
Зарегистрирован: Сб янв 13, 2018 6:28 pm
Благодарил (а): 24 раза
Поблагодарили: 3 раза

Re: Статус системы "Кто-то есть" как настроить.

Сообщение pasha413 » Пт авг 06, 2021 8:06 pm

Здравствуйте, уважаемые.
решил тоже сделать режим кто-то есть, по ссылке ниже все прописал, но при изменении свойства .isHome статус NobodyHomeMode не меняется. Простых устройств еще нет. систему настраиваю с нуля.
https://connect.smartliving.ru/profile/1646/blog64.html
В Минутном таймере и OperationalModes заменил на необходимое.
помогите, пожалуйста, или киньте ссылку где поглядеть еще поглядеть примеры.
для теста ставлю в устройствах онлайн 8.8.8.8 либо 8.8.8.9 для online\offline
СпойлерПоказать
online.png
online.png (29.84 КБ) 372 просмотра
test_user.png
test_user.png (39.27 КБ) 372 просмотра
isHome.png
isHome.png (16.68 КБ) 372 просмотра
HomeWiFi.png
HomeWiFi.png (70.29 КБ) 372 просмотра
Home.png
Home.png (55.02 КБ) 372 просмотра
atHome.png
atHome.png (23.35 КБ) 372 просмотра
PS: когда устройство оффлайн то test.isHome = 2
когда устройство онлайн то test.isHome = 1
Моё: Orange Pi Zero H2 + DietPi / Paspberry Pi3b + MJD 3.41
Ответить