Простые устройства / Simple Devices описание методов
Модератор: immortal
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 816 раз
Re: Простые устройства / Simple Devices описание методов
А вообще логика не доработана ----
А ведь перед этим за полгода работала на ура...
А ведь перед этим за полгода работала на ура...
Спасибо нам ПОМОЖЕТ..!
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 694 раза
- Контактная информация:
Re: Простые устройства / Simple Devices описание методов
В Rooms updateActivityStatus
а потом еще раз в Rooms_updateActivityStatus.php
Получается какаято слабо-соленая каша с сахаром )
Код взят из образа для малины из конекта. Может что-то одно из этого нужно отключить?
СпойлерПоказать
Код: Выделить всё
$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]['diff']=time()-$rooms[$i]['time'];
}
function rooms_cmp($a, $b)
{
if ($a['diff'] == $b['diff']) {
return 0;
}
return ($a['diff'] < $b['diff']) ? -1 : 1;
}
usort($rooms,"rooms_cmp");
if (!$rooms[0]['active']) {
$somebodyHomeText="Никого нет дома. Были в ".date('H:i',$rooms[0]['time'])." (".$rooms[0]['room'].")";
} else {
$res_rooms=array();
for($i=0;$i<$total;$i++) {
if ($rooms[$i]['active']) {
$res_rooms[]=$rooms[$i]['room'];
}
}
$somebodyHomeText="Кто-то дома: ".implode(", ",$res_rooms);
}
setGlobal('somebodyHomeText',$somebodyHomeText);
//echo "Updated";
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/Rooms_updateActivityStatus.php');
/* end injection of {SDevices} */
СпойлерПоказать
Код: Выделить всё
<?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");
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']) {
$res_rooms[] = $rooms[$i]['room'];
}
}
$somebodyHomeText = LANG_DEVICES_ROOMS_SOMEBODYHOME." ". LANG_DEVICES_ROOMS_ACTIVITY . " " . implode(", ", $res_rooms);
}
echo $somebodyHomeText;
setGlobal('somebodyHomeText', $somebodyHomeText);
Получается какаято слабо-соленая каша с сахаром )
Код взят из образа для малины из конекта. Может что-то одно из этого нужно отключить?
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 816 раз
Re: Простые устройства / Simple Devices описание методов
Оставь вот это только в первом
//echo "Updated";
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/Rooms_updateActivityStatus.php');
/* end injection of {SDevices} */
и все
//echo "Updated";
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/Rooms_updateActivityStatus.php');
/* end injection of {SDevices} */
и все
Спасибо нам ПОМОЖЕТ..!
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 816 раз
Re: Простые устройства / Simple Devices описание методов
Ну а как вот это
Нашел!!!
в обьектах найди - OperationalModes
там внутри него NobodyHomeMode
а уж у него есть такое свойство NobodyHomeMode.active (H) установи 1 и заработает
Помогло ?
Нашел!!!
в обьектах найди - OperationalModes
там внутри него NobodyHomeMode
а уж у него есть такое свойство NobodyHomeMode.active (H) установи 1 и заработает
Помогло ?
Спасибо нам ПОМОЖЕТ..!
-
- Сообщения: 2086
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 458 раз
Re: Простые устройства / Simple Devices описание методов
разобраться в методах, мусор и если с образа то там есть отсутствующее, но потом это добавляли в код пу (хотя по памяти я туда еще в одном месте инжекцию сам подключал)
сам код в пу влияющий на режим ущербен, имхо, у себя его совсем убрал, и четко своей логикой кто-то есть, никого нет, все спят
при этом все настройки и плюшки от пу работают
сам код в пу влияющий на режим ущербен, имхо, у себя его совсем убрал, и четко своей логикой кто-то есть, никого нет, все спят
при этом все настройки и плюшки от пу работают
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 694 раза
- Контактная информация:
Re: Простые устройства / Simple Devices описание методов
А как включаете все спят? Никого нет заработало.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
-
- Сообщения: 2086
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 458 раз
Re: Простые устройства / Simple Devices описание методов
Код: Выделить всё
if ($night == 1 && $security == 0)
{
$this->setProperty('active', 2);
sg('minMsgLevel', 3);
}
else
{
$this->setProperty('active', 1);
}
кратко: класс юзерс и румс в класс пресенсе, там по условиям с проверкой двери активате или деактивате режима, в нем по условиям дальше все разруливается, еще и на эконом влияет с другим режимом и т.д.
все по изменению свойств без опросов в таймере (через таймер минутный ночной, темное время и в часовом режим энергопотребления)
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 694 раза
- Контактная информация:
Re: Простые устройства / Simple Devices описание методов
Режим все спят это NightMode ?
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
-
- Сообщения: 2086
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 458 раз
Re: Простые устройства / Simple Devices описание методов
нет, но расписывать не буду с телефона
switch ($status)
{
case 0: $s = 'Кто-то дома'; break;
case 1: $s = 'Никого нет дома'; break;
case 2: $s = 'Все спят'; break;
}
у нободихоме три состояния и там все режимы взаимосвязаны
switch ($status)
{
case 0: $s = 'Кто-то дома'; break;
case 1: $s = 'Никого нет дома'; break;
case 2: $s = 'Все спят'; break;
}
у нободихоме три состояния и там все режимы взаимосвязаны
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 694 раза
- Контактная информация:
Re: Простые устройства / Simple Devices описание методов
Сделал сценарий, который в NobodyHomeMode.ChangeMin будет хранить время, через которое автоматически включится nobodyhome.
В кнопке на сцене в состоянии off заменить текст на
Сценарий запускается раз в 10 минут через onNewMinute. Еще бы в идеале хранить где-то имя объекта, продлившее таймер.
Код: Выделить всё
$shed=SQLSelectOne("SELECT RUNTIME FROM `jobs` where title='nobodyhome'")[RUNTIME];
echo $shed;
sg('NobodyHomeMode.ChangeShedulled',$shed);
$timestamp = strtotime($shed);
sg('NobodyHomeMode.ChangeTS',$timestamp);
/// $min=(gmdate('i',trim(time()-$timestamp)));
$min=round(($timestamp-time())/60);
sg('NobodyHomeMode.ChangeMin',$min);
Код: Выделить всё
Кто-то<br/>дома
Код: Выделить всё
Кто-то<br/>дома(%NobodyHomeMode.ChangeMin%)
Сценарий запускается раз в 10 минут через onNewMinute. Еще бы в идеале хранить где-то имя объекта, продлившее таймер.
- За это сообщение автора directman66 поблагодарили (всего 2):
- gvasiliy (Сб май 26, 2018 10:47 pm) • olegvolk75 (Пт июн 08, 2018 11:07 am)
- Рейтинг: 2.33%
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram