Страница 3 из 3

Re: Запуск сценария, если устройство онлайн

Добавлено: Сб июл 20, 2019 12:02 pm
Divan
Добавил код по вашему, все равно не работает, компьютер и телефон в сети, сценарий срабатывает.

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'));
}

Re: Запуск сценария, если устройство онлайн

Добавлено: Ср авг 07, 2019 7:29 pm
Divan
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'));
}

Re: Запуск сценария, если устройство онлайн

Добавлено: Вс авг 25, 2019 2:17 pm
Divan
Скажите, как настроить сценарии таким образом, чтобы сценарий срабатывал один раз? У меня телефон в ждущем режиме выключает wifi, стоит его включить, так устройство становится онлайн и запускается сценарии. Если в модуле "Устройства онлайн" я выставлю пинг онлайн на 10 секунд и пинг офлайн на 30 минут, то придя домой, сценарии запустится не через 10 секунд, а запустится пока не отсчитает 30 минут.

Re: Запуск сценария, если устройство онлайн

Добавлено: Вс авг 25, 2019 2:25 pm
Jilber
Что значит один раз ? Только при возвращении домой ? И как интересно модуль определит пришли вы домой или просто телефон засыпал и отключал Wi-Fi ? Если есть какие-то датчики движения и включается режим "Никого нет дома", то можно попробовать добавить в сценарии проверку был ли включен этот режим при появлении телефона в сети: если был, то хозяин пришёл, а если нет - то просто проснулся телефон. :)

Re: Запуск сценария, если устройство онлайн

Добавлено: Вс авг 25, 2019 2:48 pm
Divan
Во, супер предложение "добавить в сценарии проверку был ли включен этот режим при появлении телефона в сети: если был, то хозяин пришёл, а если нет - то просто проснулся телефон." У меня пока нет датчиков движения, вместо них я использовал модуль gps google location, сценарии запускался, как телефон оказывался в домашней зоне, но сейчас стал работать плохо, работает с большой задержкой, хотя обновляется каждую минуту, теперь я не использую gps tracker, а использую "Устройства онлайн", это надежнее, телефон автоматически включает Wi-Fi когда я оказываюсь дома. Хорошо бы добавить запись логов, как у модуля gps tracker, запись появилась, больше устройство не запустит сценарии и чтоб это включалось как дополнительная функция. Конечно можно в телефоне, в настройках Wi-Fi выключить функцию спящий режим, но это уже не умная система.

Re: Запуск сценария, если устройство онлайн

Добавлено: Вс авг 25, 2019 2:53 pm
Jilber
Я думаю в любом случае одним модулем "Устройства Online" тут не обойтись. Если есть что-то ещё, управляемое умным домом, то можно попробовать определять дома ли хозяин например по включенному освещению, кондиционеру, ТВ и т.д. Ну или вручную включать "Никого нет дома" перед уходом... :-)

Re: Запуск сценария, если устройство онлайн

Добавлено: Вс авг 25, 2019 3:14 pm
Divan
Кстати, хороший вариант. Можно тогда сделать так, раз запустился сценарии, то можно сделать сверку, если свет включен, то больше не запускать сценарии. Надо попробовать собрать такой код.

Re: Запуск сценария, если устройство онлайн

Добавлено: Пн авг 26, 2019 12:34 am
Divan
Jilber писал(а): Вс авг 25, 2019 2:53 pm Я думаю в любом случае одним модулем "Устройства Online" тут не обойтись. Если есть что-то ещё, управляемое умным домом, то можно попробовать определять дома ли хозяин например по включенному освещению, кондиционеру, ТВ и т.д. Ну или вручную включать "Никого нет дома" перед уходом... :-)
Вы мне подкинули идею (с меня вам лайк :D ) и я сделал следующее, добавил статус ночной лампы, теперь при повторном включении телефона сценарии не срабатывает. Вложил два варианта, в виде графического кода и в виде кода PHP. Теперь у меня работает так, если компьютер включен, то сценарии не запускается, если включена ночная лампа, то сценарии также не запускается, чтобы сценарии сработал, должны быть отключены оба устройства.

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

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'));
}


Re: Запуск сценария, если устройство онлайн

Добавлено: Пн авг 26, 2019 1:07 am
xor
Вы сами не запутаетесь?
вместо

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

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) { 
если тел подключился в указанное время и комп и лампа выключены, то привет.

Re: Запуск сценария, если устройство онлайн

Добавлено: Пн авг 26, 2019 1:13 am
Divan
Видите ли, я код собираю через Blockly, а код взял тот, который мне собрал сам Blockly, поэтому и представил графический код