Страница 2 из 2
Re: Циклическое выполнение команды
Добавлено: Чт ноя 28, 2019 1:36 pm
freesh
tarasfrompir писал(а): Чт ноя 28, 2019 1:33 pm
freesh писал(а): Чт ноя 28, 2019 1:28 pm
Kumehtar писал(а): Чт ноя 28, 2019 1:16 pm
tarasfrompir писал(а): Чт ноя 28, 2019 12:20 pm
Вот так будет просто и надежно
Но это для старта - а там уже логику можна и на таймеры повесить
НО ТОЛЬКО ВСЕ СДЕЛАТЬ ПО ДРУГОМУ.... а не так как сделано
Так вообще не запускается =(
freesh писал(а): Чт ноя 28, 2019 11:09 am
А если попробовать банально повесить на onNewSecond?
А так, вроде, работает. Но "повесил" пока на onNewMinute. Теперь понять, как сделать что-то типа onNewSecond
(как тут:
viewtopic.php?t=386#p1932)
Да, решение от tarasfrompir получше и должно работать, видимо пускаешь неправильно. Грубо говоря по нажатию кнопки - если перешло в режим ВключитьПеремигивание - в switcher.status должна записаться 1 а при выключении должна туда записаться 0
Я бы добавил сюда + запускать этот же метод в свойстве status
Или добавить в логиактион этот кусок кода
Я поэтому и спросил про StatusUpdated - этот метод же отработает если мы просто статус поменяем. опять-таки смотря как зпускать, если по switcher.activate / deactivate то кнопка по умолчанию пишет 1 / 0 в статус же
Re: Циклическое выполнение команды
Добавлено: Чт ноя 28, 2019 1:40 pm
tarasfrompir
Все проверил - все четко
Только нужно еще и дописать немного
Код: Выделить всё
while (true) // бесконечный цикл
{
$status0=gg('switcher.status');
if ($status0 <> 1){
callMethod('Living_room_f.turnoff'); // выключить второе устройство
callMethod('CEB00F_test.turnoff'); // включить первое устройство
break; // если выключатель поменял состояние ("выключен") выйти из цикла
}
callMethod('CEB00F_test.turnon'); // включить первое устройство
callMethod('Living_room_f.turnoff'); // выключить второе устройство
sleep(3);
$status0=gg('switcher.status');
if ($status0 <> 1){
callMethod('Living_room_f.turnoff'); // выключить второе устройство
callMethod('CEB00F_test.turnoff'); // включить первое устройство
break; // если выключатель поменял состояние ("выключен") выйти из цикла
}
callMethod('CEB00F_test.turnoff'); // включить первое устройство
callMethod('Living_room_f.turnon'); // выключить второе устройство
sleep(3);
}
Re: Циклическое выполнение команды
Добавлено: Чт ноя 28, 2019 3:25 pm
Kumehtar
tarasfrompir писал(а): Чт ноя 28, 2019 1:22 pm
Подожди ану ка расскажи как ты запускаеш сам этот метод...
Сначала запускал прямо в коде выключателя.
Сейчас сделал скрипт flash, а в коде выключателя
Код: Выделить всё
callMethod('switcher.switch');
runscript('flash');
Итог: Скрипт запускается и работает правильно (устройства переключаются), но как только он запускается, другие выключатели не управляются и остановить скрипт тоже не могу...
Re: Циклическое выполнение команды
Добавлено: Чт ноя 28, 2019 3:28 pm
freesh
Kumehtar писал(а): Чт ноя 28, 2019 3:25 pm
tarasfrompir писал(а): Чт ноя 28, 2019 1:22 pm
Подожди ану ка расскажи как ты запускаеш сам этот метод...
Сначала запускал прямо в коде выключателя.
Сейчас сделал скрипт flash, а в коде выключателя
Код: Выделить всё
callMethod('switcher.switch');
runscript('flash');
Итог: Скрипт запускается и работает правильно (устройства переключаются), но как только он запускается, другие выключатели не управляются и остановить скрипт тоже не могу...
У меня метод свитч в Xiaomi home тоже мне устраивал светомузыку и не выключался))
Попробуй CallMethod('switcher.turnon'); - для включения и turnoff для выключения.
Re: Циклическое выполнение команды
Добавлено: Чт ноя 28, 2019 3:31 pm
tarasfrompir
Kumehtar писал(а): Чт ноя 28, 2019 3:25 pm
tarasfrompir писал(а): Чт ноя 28, 2019 1:22 pm
Подожди ану ка расскажи как ты запускаеш сам этот метод...
Сначала запускал прямо в коде выключателя.
Сейчас сделал скрипт flash, а в коде выключателя
Код: Выделить всё
callMethod('switcher.switch');
runscript('flash');
Итог: Скрипт запускается и работает правильно (устройства переключаются), но как только он запускается, другие выключатели не управляются и остановить скрипт тоже не могу...
Создаеш УПРАВЛЯЕМОЕ РЕЛЕ - и в его методе ЛогикАктион вставляеш этот код что сверху - только вместо switcher - вставляеш Имя УПРАВЛЯЕМОГО РЕЛЕ. Теперь нажав на это реле у тебя начнут моргать лампочки - нажав еще раз они перестанут.
Re: Циклическое выполнение команды
Добавлено: Чт ноя 28, 2019 3:42 pm
Kumehtar
tarasfrompir писал(а): Чт ноя 28, 2019 3:31 pm
Kumehtar писал(а): Чт ноя 28, 2019 3:25 pm
tarasfrompir писал(а): Чт ноя 28, 2019 1:22 pm
Подожди ану ка расскажи как ты запускаеш сам этот метод...
Сначала запускал прямо в коде выключателя.
Сейчас сделал скрипт flash, а в коде выключателя
Код: Выделить всё
callMethod('switcher.switch');
runscript('flash');
Итог: Скрипт запускается и работает правильно (устройства переключаются), но как только он запускается, другие выключатели не управляются и остановить скрипт тоже не могу...
Создаеш УПРАВЛЯЕМОЕ РЕЛЕ - и в его методе ЛогикАктион вставляеш этот код что сверху - только вместо switcher - вставляеш Имя УПРАВЛЯЕМОГО РЕЛЕ. Теперь нажав на это реле у тебя начнут моргать лампочки - нажав еще раз они перестанут.

Разведка боем удалась!!! =) Спасибо большое