Запуск сценария, если устройство онлайн
Модератор: immortal
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Запуск сценария, если устройство онлайн
Добавил код по вашему, все равно не работает, компьютер и телефон в сети, сценарий срабатывает.
if (getGlobal("Relay02.status") ==1 && timeBetween('10:00', '00:00')) {
callMethod("Relay04.turnOn");
$timerCode=<<<EOT
callMethod("Relay03.turnOn");
callMethod("Relay04.turnOff");
EOT;
setTimeOut('', $timerCode, (int)('600'));
}
if (getGlobal("Relay02.status") ==1 && timeBetween('10:00', '00:00')) {
callMethod("Relay04.turnOn");
$timerCode=<<<EOT
callMethod("Relay03.turnOn");
callMethod("Relay04.turnOff");
EOT;
setTimeOut('', $timerCode, (int)('600'));
}
- Вложения
-
- 1.JPG (63.82 КБ) 3366 просмотров
-
- 2.JPG (29.25 КБ) 3366 просмотров
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Запуск сценария, если устройство онлайн
SmoKE_xDDD писал(а): ↑Сб июл 20, 2019 11:33 amЕсли устройство включено и время между.Код: Выделить всё
if (getGlobal("Relay02.status") == 1 && timeBetween('23:00', '00:00'))
== 0 - тоже самое токо если устройство выключено
Теперь у меня ваш код работает, стал работать после того, как переустановил MD и закинул новую базу, а до этого по каким-то причинам он почему-то не работал, а потом стал сильно зависать. Спасибо вам )
Код: Выделить всё
if ((getGlobal('SRelays07.status') == 0) == timeBetween('23:00', '00:00')) {
callMethod("SRelays01.turnOn");
say('Включена люстра Зона 1', 2);
$timerCode=<<<EOT
runScript('Ночная лампа (белый цвет)', array());
say('Включена ночная лампа', 2);
EOT;
setTimeOut('Пришел домой', $timerCode, (int)('600'));
}
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Запуск сценария, если устройство онлайн
Скажите, как настроить сценарии таким образом, чтобы сценарий срабатывал один раз? У меня телефон в ждущем режиме выключает wifi, стоит его включить, так устройство становится онлайн и запускается сценарии. Если в модуле "Устройства онлайн" я выставлю пинг онлайн на 10 секунд и пинг офлайн на 30 минут, то придя домой, сценарии запустится не через 10 секунд, а запустится пока не отсчитает 30 минут.
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
-
- Сообщения: 684
- Зарегистрирован: Ср май 03, 2017 7:41 pm
- Благодарил (а): 113 раз
- Поблагодарили: 107 раз
Re: Запуск сценария, если устройство онлайн
Что значит один раз ? Только при возвращении домой ? И как интересно модуль определит пришли вы домой или просто телефон засыпал и отключал Wi-Fi ? Если есть какие-то датчики движения и включается режим "Никого нет дома", то можно попробовать добавить в сценарии проверку был ли включен этот режим при появлении телефона в сети: если был, то хозяин пришёл, а если нет - то просто проснулся телефон.
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Запуск сценария, если устройство онлайн
Во, супер предложение "добавить в сценарии проверку был ли включен этот режим при появлении телефона в сети: если был, то хозяин пришёл, а если нет - то просто проснулся телефон." У меня пока нет датчиков движения, вместо них я использовал модуль gps google location, сценарии запускался, как телефон оказывался в домашней зоне, но сейчас стал работать плохо, работает с большой задержкой, хотя обновляется каждую минуту, теперь я не использую gps tracker, а использую "Устройства онлайн", это надежнее, телефон автоматически включает Wi-Fi когда я оказываюсь дома. Хорошо бы добавить запись логов, как у модуля gps tracker, запись появилась, больше устройство не запустит сценарии и чтоб это включалось как дополнительная функция. Конечно можно в телефоне, в настройках Wi-Fi выключить функцию спящий режим, но это уже не умная система.
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
-
- Сообщения: 684
- Зарегистрирован: Ср май 03, 2017 7:41 pm
- Благодарил (а): 113 раз
- Поблагодарили: 107 раз
Re: Запуск сценария, если устройство онлайн
Я думаю в любом случае одним модулем "Устройства Online" тут не обойтись. Если есть что-то ещё, управляемое умным домом, то можно попробовать определять дома ли хозяин например по включенному освещению, кондиционеру, ТВ и т.д. Ну или вручную включать "Никого нет дома" перед уходом...
- Рейтинг: 1.16%
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Запуск сценария, если устройство онлайн
Кстати, хороший вариант. Можно тогда сделать так, раз запустился сценарии, то можно сделать сверку, если свет включен, то больше не запускать сценарии. Надо попробовать собрать такой код.
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Запуск сценария, если устройство онлайн
Вы мне подкинули идею (с меня вам лайк ) и я сделал следующее, добавил статус ночной лампы, теперь при повторном включении телефона сценарии не срабатывает. Вложил два варианта, в виде графического кода и в виде кода PHP. Теперь у меня работает так, если компьютер включен, то сценарии не запускается, если включена ночная лампа, то сценарии также не запускается, чтобы сценарии сработал, должны быть отключены оба устройства.Jilber писал(а): ↑Вс авг 25, 2019 2:53 pmЯ думаю в любом случае одним модулем "Устройства Online" тут не обойтись. Если есть что-то ещё, управляемое умным домом, то можно попробовать определять дома ли хозяин например по включенному освещению, кондиционеру, ТВ и т.д. Ну или вручную включать "Никого нет дома" перед уходом...
Код: Выделить всё
if (getGlobal("SRelays08.status") == getGlobal("SRelays07.status")) {
} else if (getGlobal("SRelays08.status") == getGlobal("SRelays04.status")) {
} else if (getGlobal("SRelays08.status") == timeBetween('23:15', '00:00')) {
say('Запущен сценарии Пришел домой с работы', 2);
callMethod("SRelays01.turnOn");
$timerCode=<<<EOT
runScript('Ночная лампа (белый цвет)', array());
callMethod("SRelays03.turnOff");
EOT;
setTimeOut('Пришел домой', $timerCode, (int)('600'));
}
- Вложения
-
- Графический код
- Безымянный.jpg (93.11 КБ) 3204 просмотра
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Запуск сценария, если устройство онлайн
Вы сами не запутаетесь?
вместо
не яснее ли
если тел подключился в указанное время и комп и лампа выключены, то привет.
вместо
Код: Выделить всё
if (getGlobal("SRelays08.status") == getGlobal("SRelays07.status")) {
} else if (getGlobal("SRelays08.status") == getGlobal("SRelays04.status")) {
} else if (getGlobal("SRelays08.status") == timeBetween('23:15', '00:00')) {
Код: Выделить всё
if (gg("SRelays08.status") == timeBetween('23:15', '00:00') && gg("SRelays04.status")==0 && gg("SRelays07.status")==0) {
win10 connect https://connect.smartliving.ru/profile/303
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Запуск сценария, если устройство онлайн
Видите ли, я код собираю через Blockly, а код взял тот, который мне собрал сам Blockly, поэтому и представил графический код
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB