Сделал скрипт вызывается каждую минуту, но идет спам что режим активирован. что я сделал не правильно ?Logrus писал(а): ↑Пт дек 21, 2018 12:45 pmвот, а там сейчас на порядок сложнее (((Пытался по вашему примеру никого нет дома сделать но запутался
логика одна, двоичная
Снимок.PNG
относительно этого, сравнить выше и про что сказал
метод вызывается по изменению свойства WiFiStatusКод: Выделить всё
$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'); }
это "пример" для сравнения с выше
помогите разобратся с скриптом
Модератор: immortal
-
- Сообщения: 128
- Зарегистрирован: Пт июл 15, 2016 3:12 am
- Благодарил (а): 6 раз
- Поблагодарили: 2 раза
Re: помогите разобратся с скриптом
-
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: помогите разобратся с скриптом
Наверное, метод надо вызывать только в том случае, если данный режим в текущий момент не действует. Т.е.:
Код: Выделить всё
if (gg('SecurityArmedMode.Имя_свойства_статуса_режима') == "1") {
callMethod('SecurityArmedMode.activate');
}
-
- Сообщения: 2084
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 457 раз
Re: помогите разобратся с скриптом
частично уже решитметод вызывается по изменению свойства WiFiStatus
ну я б выше только как пример рассматривал, т.к. (ну какая охрана от присутствия в сети устройства, она поверх режима никого нет с еще кучей условий - это если все в автомате, и снятие только вручную и т.д.)
все-таки даже если непонятно, код как пример стоит посмотреть (там это решено все и таймер излишен, все по событиям)
так к примеру у меня это промежуточное свойство и запись его идет через проверку на несоответствие, и далее уже проверка что вызвать в режиме естественно с проверкой состояния самого режима
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
-
- Сообщения: 148
- Зарегистрирован: Ср июл 25, 2018 10:37 pm
- Благодарил (а): 43 раза
- Поблагодарили: 8 раз
Re: помогите разобратся с скриптом
код срабатывает если любое условие выполняется, а надо если оба имеют 1.
что не так?
СпойлерПоказать
// Если сигнализация включена
if (gg('pirPRH.status')=="1")
//и включен ражим охраны
(gg('ThisComputer.securityMode')=="1");{
// Фиксируем движения в помещении
Say ('кто то в доме неизвестный!!',2);
// Делаем фотку с конкретной камеры
callMethod('Camera01.takeSnapshot');
// Считываем путь до файла
$img='/var/www/html/cms/images/'.gg('Camera01.snapshot');
// Отправляем фотку в телеграм Админу
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module->sendImageToAdmin($img);
}
if (gg('pirPRH.status')=="1")
//и включен ражим охраны
(gg('ThisComputer.securityMode')=="1");{
// Фиксируем движения в помещении
Say ('кто то в доме неизвестный!!',2);
// Делаем фотку с конкретной камеры
callMethod('Camera01.takeSnapshot');
// Считываем путь до файла
$img='/var/www/html/cms/images/'.gg('Camera01.snapshot');
// Отправляем фотку в телеграм Админу
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module->sendImageToAdmin($img);
}
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
-
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: помогите разобратся с скриптом
Не хватает указания на проверку условий одновременно
Код: Выделить всё
// Если сигнализация включена
//и включен ражим охраны
if (gg('pirPRH.status')=="1") && (gg('ThisComputer.securityMode')=="1"){
ДЕЙСТВИЯ
}
Последний раз редактировалось Chainik Вс апр 14, 2019 7:36 pm, всего редактировалось 1 раз.
- Рейтинг: 1.16%
-
- Сообщения: 148
- Зарегистрирован: Ср июл 25, 2018 10:37 pm
- Благодарил (а): 43 раза
- Поблагодарили: 8 раз
Re: помогите разобратся с скриптом
Код: Выделить всё
// Если сигнализация включена
//и включен ражим охраны
if (gg('pirPRH.status')=="1") && (gg('ThisComputer.securityMode')=="1");{
ДЕЙСТВИЯ
}
уже перерыл весь синтаксис оператора, вроде все верно, а нет.
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
-
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: помогите разобратся с скриптом
Наверняка скобки недоставил. Проверьте
Код: Выделить всё
// Если сигнализация включена
//и включен ражим охраны
if ((gg('pirPRH.status')=="1") && (gg('ThisComputer.securityMode')=="1"));{
ДЕЙСТВИЯ
}
-
- Сообщения: 148
- Зарегистрирован: Ср июл 25, 2018 10:37 pm
- Благодарил (а): 43 раза
- Поблагодарили: 8 раз
Re: помогите разобратся с скриптом
Наверняка скобки недоставил. Проверьте
есть такое, но тогда не работает, ДЕЙСТВИЕ выполняется в любом случае
Код: Выделить всё
// Если сигнализация включена
//и включен ражим охраны
if ((gg('pirPRH.status')=="1") && (gg('ThisComputer.securityMode')=="1"));{
ДЕЙСТВИЯ
}
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
-
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: помогите разобратся с скриптом
Действие должно выполнятся только в том случае, когда одновременно оба свойства = "1".
Для отладки, чтобы понять, что происходит, можно временно дописать say
Код: Выделить всё
// Если сигнализация включена
//и включен ражим охраны
if ((gg('pirPRH.status')=="1") && (gg('ThisComputer.securityMode')=="1"));{
say("pirPRH=".gg('pirPRH.status'));
say("securityMode=".gg('ThisComputer.securityMode'));
ДЕЙСТВИЯ
}
-
- Сообщения: 148
- Зарегистрирован: Ср июл 25, 2018 10:37 pm
- Благодарил (а): 43 раза
- Поблагодарили: 8 раз
Re: помогите разобратся с скриптом
21:04 Алиса: securityMode=1Chainik писал(а): ↑Чт апр 04, 2019 8:29 pm
Действие должно выполнятся только в том случае, когда одновременно оба свойства = "1".
Для отладки, чтобы понять, что происходит, можно временно дописать sayКод: Выделить всё
// Если сигнализация включена //и включен ражим охраны if ((gg('pirPRH.status')=="1") && (gg('ThisComputer.securityMode')=="1"));{ say('бла бла бла',2); say("pirPRH=".gg('pirPRH.status')); say("securityMode=".gg('ThisComputer.securityMode')); ДЕЙСТВИЯ }
21:04 Алиса: pirPRH=1
21:04 Алиса: бла бла бла
начинаю шизеть
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL