Страница 1 из 5
помогите разобратся с скриптом
Добавлено: Пт дек 21, 2018 1:36 am
vitar78
Пишу код который при пропадании устройств из сети будет включать режим охраны
но никак не получается заставить работать правильно
надо чтоб при доступности любого устройства выключался режим а при отсутствии всех устройств режим активировался.
Код: Выделить всё
$adm = getGlobal('admin'.'.'.'WiFiStatus');
$and = getGlobal('Andrey'.'.'.'WiFiStatus');
if (($adm && $and)==0);
{
callMethod('SecurityArmedMode'.'.'.'activate ');
}
if else (($adm) == 1);
{
callMethod('SecurityArmedMode'.'.'.'deactivate ');
}
if else (($and) == 1);
{
callMethod('SecurityArmedMode'.'.'.'deactivate ');
}
Re: помогите разобратся с скриптом
Добавлено: Пт дек 21, 2018 7:57 am
Lerych
vitar78 писал(а): ↑Пт дек 21, 2018 1:36 am
Пишу код который при пропадании устройств из сети будет включать режим охраны
но никак не получается заставить работать правильно
надо чтоб при доступности любого устройства выключался режим а при отсутствии всех устройств режим активировался.
Код: Выделить всё
$adm = getGlobal('admin'.'.'.'WiFiStatus');
$and = getGlobal('Andrey'.'.'.'WiFiStatus');
if (($adm && $and)==0);
{
}
if else (($adm) == 1);
{
callMethod('SecurityArmedMode'.'.'.'deactivate ');
}
if else (($and) == 1);
{
callMethod('SecurityArmedMode'.'.'.'deactivate ');
}
Синтаксис написания у тебя странный. Надо просто писать:
$adm = getGlobal('admin.WiFiStatus');
и
callMethod('SecurityArmedMode.activate');
Логику пока не смотрел
Re: помогите разобратся с скриптом
Добавлено: Пт дек 21, 2018 8:54 am
tarasfrompir
оформ все это циклом если не 2 пользователя а ну так 5 - 10
Re: помогите разобратся с скриптом
Добавлено: Пт дек 21, 2018 11:26 am
vitar78
Код: Выделить всё
$adm = getGlobal('admin.WiFiStatus');
$and = getGlobal('Andrey.WiFiStatus');
for (($adm && $and)==0);
{
callMethod('SecurityArmedMode.activate');
}
for (($adm) == 1);
{
callMethod('SecurityArmedMode.deactivate');
}
for (($and) == 1);
{
callMethod('SecurityArmedMode.deactivate');
}
попробовал оформить циклом но как это обыгрывать
Re: помогите разобратся с скриптом
Добавлено: Пт дек 21, 2018 11:47 am
Chainik
vitar78 писал(а): ↑Пт дек 21, 2018 11:26 am
...
попробовал оформить циклом но как это обыгрывать
Можно попробовать так:
Код: Выделить всё
//тут мы инвертируем статусы (т.е. если был 1, получим 0, и наоборот)
$adm = abs(getGlobal('admin.WiFiStatus') - 1);
$and = abs(getGlobal('Andrey.WiFiStatus') - 1);
$NoBody = $adm * $and;
//$NoBody, равное "0", будет означать, что кто-то есть
if ($NoBody == 0) {
callMethod('SecurityArmedMode.deactivate');
} else {
callMethod('SecurityArmedMode.activate');
}
Только если у единственного постояльца смартфон ночью разрядится... Наряд с хлебом-солью встречать придется...

Re: помогите разобратся с скриптом
Добавлено: Пт дек 21, 2018 11:58 am
vitar78
Chainik писал(а): ↑Пт дек 21, 2018 11:47 am
vitar78 писал(а): ↑Пт дек 21, 2018 11:26 am
...
попробовал оформить циклом но как это обыгрывать
Можно попробовать так:
Код: Выделить всё
//тут мы инвертируем статусы (т.е. если был 1, получим 0, и наоборот)
$adm = abs(getGlobal('admin.WiFiStatus') - 1);
$and = abs(getGlobal('Andrey.WiFiStatus') - 1);
$NoBody = $adm * $and;
//$NoBody, равное "0", будет означать, что кто-то есть
if ($NoBody == 0) {
callMethod('SecurityArmedMode.deactivate');
} else {
callMethod('SecurityArmedMode.activate');
}
Только если у единственного постояльца смартфон ночью разрядится... Наряд с хлебом-солью встречать придется...
правильно если количество пользователей увеличивается
Код: Выделить всё
//тут мы инвертируем статусы (т.е. если был 1, получим 0, и наоборот)
$adm = abs(getGlobal('admin.WiFiStatus') - 1);
$and = abs(getGlobal('Andrey.WiFiStatus') - 1);
$ts1 = abs(getGlobal('test1.WiFiStatus') - 1);
$ts2= abs(getGlobal('test2.WiFiStatus') - 1);
$NoBody = $adm * $and * test1 * test2;
//$NoBody, равное "0", будет означать, что кто-то есть
if ($NoBody == 0) {
callMethod('SecurityArmedMode.deactivate');
} else {
callMethod('SecurityArmedMode.activate');
}
Re: помогите разобратся с скриптом
Добавлено: Пт дек 21, 2018 12:00 pm
Chainik
vitar78 писал(а): ↑Пт дек 21, 2018 11:58 am
...
правильно если количество пользователей увеличивается
...
Правильно.
Re: помогите разобратся с скриптом
Добавлено: Пт дек 21, 2018 12:07 pm
Logrus
а можно подсмотреть как к примеру у меня состояния активности в комнатах и у пользователей собираются, но это так малюсенький кусочек всего
п.с. постоянно встают волосы дыбом от реализаций простого, через кучу не нужных вычислений, потом жалуются чет все тупит
Re: помогите разобратся с скриптом
Добавлено: Пт дек 21, 2018 12:27 pm
vitar78
Logrus писал(а): ↑Пт дек 21, 2018 12:07 pm
а можно подсмотреть как к примеру у меня состояния активности в комнатах и у пользователей собираются, но это так малюсенький кусочек всего
п.с. постоянно встают волосы дыбом от реализаций простого, через кучу не нужных вычислений, потом жалуются чет все тупит
Пытался по вашему примеру никого нет дома сделать но запутался, и решил что надо сначала у себя реализовать по своей логике для понимания.
Re: помогите разобратся с скриптом
Добавлено: Пт дек 21, 2018 12:45 pm
Logrus
Пытался по вашему примеру никого нет дома сделать но запутался
вот, а там сейчас на порядок сложнее (((
логика одна, двоичная

- Снимок.PNG (18.47 КБ) 6272 просмотра
относительно этого, сравнить выше и про что сказал
Код: Выделить всё
$presence = 0;
$objects = getObjectsByClass('Users');
foreach ($objects as $obj) {
if (getGlobal($obj['TITLE'] . '.WiFiStatus') == 1) {
$presence = 1;
break;
}
}
if ($presence) {
callMethod('SecurityArmedMode.activate');
} else {
callMethod('SecurityArmedMode.deactivate');
}
метод вызывается по изменению свойства WiFiStatus
это "пример" для сравнения с выше