Автоматическое изменение содержимого скрипта

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

Модератор: immortal

Ответить
Igor3691
Сообщения: 24
Зарегистрирован: Ср июн 28, 2017 1:48 pm
Благодарил (а): 14 раз
Поблагодарили: 0

Автоматическое изменение содержимого скрипта

Сообщение Igor3691 » Чт фев 07, 2019 1:07 pm

Никак не придумаю. В скрипте "getURL('192.168.1.114/?play=0', 0) " ежедневно увеличивать значение play= на единицу (...play=1, play=2 и т.д.), а по достижении значения play=254, вернуть play=0.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Автоматическое изменение содержимого скрипта

Сообщение Chainik » Чт фев 07, 2019 4:51 pm

Igor3691 писал(а):
Чт фев 07, 2019 1:07 pm
Никак не придумаю. В скрипте "getURL('192.168.1.114/?play=0', 0) " ежедневно увеличивать значение play= на единицу (...play=1, play=2 и т.д.), а по достижении значения play=254, вернуть play=0.
Думаю, у вас должно быть Объект.Свойство, где будет сохраняться текущее значение play. Ведь сам скрипт его "помнить" не может. По коду, примерно, так:

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

$play = gg('Имя_объекта.Имя_Cвойства_для_play');
If ($play == "254") {
sg('Имя_объекта.Имя_Cвойства_для_play', 0);
getURL('192.168.1.114/?play=0', 0);
} else {
$play = ++$play;
getURL("192.168.1.114/?play=".$play, 0);
}
Только начальное значение свойства впишите руками.
За это сообщение автора Chainik поблагодарил:
Igor3691 (Чт фев 07, 2019 9:45 pm)
Рейтинг: 1.16%
Igor3691
Сообщения: 24
Зарегистрирован: Ср июн 28, 2017 1:48 pm
Благодарил (а): 14 раз
Поблагодарили: 0

Re: Автоматическое изменение содержимого скрипта

Сообщение Igor3691 » Чт фев 07, 2019 9:48 pm

Замечательно, но чего-то не хватает. Переключает только один раз потому, что свойство для play в Объекте не меняется. И еще. Я так код писать еще не очень понимаю. Можно то же самое, но в Blockly?

Дотумкал! Нужно добавить "setGlobal('Имя_объекта'.'.'.'Имя_Cвойства_для_play', $play, 0);" Но в графическом виде всё же хотелось бы посмотреть для полного понимания.
Последний раз редактировалось Igor3691 Чт фев 07, 2019 10:39 pm, всего редактировалось 1 раз.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Автоматическое изменение содержимого скрипта

Сообщение Chainik » Чт фев 07, 2019 10:24 pm

Igor3691 писал(а):
Чт фев 07, 2019 9:48 pm
Замечательно, но чего-то не хватает. Переключает только один раз потому, что свойство для play в Объекте не меняется. И еще. Я так код писать еще не очень понимаю. Можно то же самое, но в Blockly?
Не хватает механизма, который раз в сутки будет запускать ваш скрипт.
К примеру, можно сделать так. Дописать в «onNewMinute» (Панель управления --> ОБЪЕКТЫ --> Объекты --> [класс] Timer --> ClockChime --> onNewMinute) такой код:

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

if (timeIs('02:15')) {
runScript("Имя_вашего_скрипта");
}
Тогда ваш скрипт будет запускаться по ночам ежедневно в 02:15.

Blockly никогда не пользовался, поэтому тут подсказать ничего не могу. Можно переключить из режима Blockly в режим PHP и вставить код.
За это сообщение автора Chainik поблагодарил:
Igor3691 (Чт фев 07, 2019 10:44 pm)
Рейтинг: 1.16%
Igor3691
Сообщения: 24
Зарегистрирован: Ср июн 28, 2017 1:48 pm
Благодарил (а): 14 раз
Поблагодарили: 0

Re: Автоматическое изменение содержимого скрипта

Сообщение Igor3691 » Чт фев 07, 2019 10:44 pm

Большое спасибо. С запуском все в порядке. Запускается при появлении устройства в сети. Но и пример тоже пригодится. Жаль с Blocly не срослось. Для понимания новичкам полезно.
Аватара пользователя
xor
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

Re: Автоматическое изменение содержимого скрипта

Сообщение xor » Пт фев 08, 2019 12:31 pm

Чтобы запустить раз в день появился метод onnewday (срабатывает в полночь), для другого времени можно пользоваться планировщиком.Если свойство меняется раз в сутки, негуманно чекать его раз в минуту.

Отправлено с моего Redmi 4X через Tapatalk


Ответить