Blockly и таймеры

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

Ответить
Аватара пользователя
Zinur
Сообщения: 1
Зарегистрирован: Пн авг 10, 2020 11:55 am
Благодарил (а): 0
Поблагодарили: 0

Blockly и таймеры

Сообщение Zinur » Пн авг 10, 2020 8:29 pm

Здравствуйте. Прошу помощи. В MajorDomo я новичок и c PHP не знаком поэтому решил использовать blockly. Не могу заставить работать два таймера в одном сценарии по условию.
Когда таймер один все работает.


1 -пробовал один таймер вложить в другой не работает
1.png
1.png (35.53 КБ) 1762 просмотра
if (true) {
$timerCode1=<<<EOT
setGlobal('TV1'.'.'.'notification', 'Пора отдохнуть телевизор отключится через 2 минуты');
setGlobal('TV1'.'.'.'muted', '1');
$timerCode=<<<EOT
setGlobal('TV1'.'.'.'power', '1');
EOT;
setTimeOut('timer2', $timerCode1, (int)('5'));

EOT;
setTimeOut('timer1', $timerCode, (int)('5'));
}

2 - пробовал запускать оба таймер с разным временем выдает ошибку
2.png
2.png (35.98 КБ) 1762 просмотра
Parse error: syntax error, unexpected end of file in C:\_majordomo\htdocs/cms/cached/ea598e4f6552d7d6c93335d8a61f4ee3.php on line 14

if (true) {
$timerCode=<<<EOT
setGlobal('TV1'.'.'.'notification', 'Пора отдохнуть телевизор отключится через 2 минуты');
setGlobal('TV1'.'.'.'muted', '1');
EOT;
setTimeOut('timer1', $timerCode, (int)('5'));
$timerCode=<<<EOT
setGlobal('TV1'.'.'.'power', '1');

EOT;
setTimeOut('timer2', $timerCode, (int)('5'));
}
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

Re: Blockly и таймеры

Сообщение Divan » Вт авг 11, 2020 7:04 pm

Два таймера в блокли не будут работать. Можете создать отдельные сценарии с таймерами и потом, их всех собрать в одном сценарий.

У вас не правильно задана истина. Для ее работы необходимо привязать объект.свойство к истине или ложь. см. на скриншоте как нужно делать правильно.
СпойлерПоказать
Снимок.JPG
Снимок.JPG (34.35 КБ) 1685 просмотров
Истину нет смысла применять, это лишнее. Достаточно делать вот так: если объект.свойство равно 0 или 1, то выполнять действие. При запуске сценария идет проверка правил и если условия не совпадают, то данный сценарий не запустится. Для примера я вам привел схему выключения звука, если телевизор работает. В таком случае, если телевизор выключен, сценарий не сработает.
СпойлерПоказать
Снимок2.JPG
Снимок2.JPG (23.84 КБ) 1685 просмотров
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Blockly и таймеры

Сообщение nick7zmail » Ср дек 15, 2021 10:12 pm

А че за бред? Почему 2 таймера не будут в блокли работать?

ПС: словил такой же баг, пытаясь показать клиенту как должно работать...при этом код руками поправляешь - всё классно....че то бредятина какая-то...недоработка в блокли, или модуле, который проверяет код перед сохранением?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить