Периодически запуск сценариев

Новые релизы, обновления и т.п.

Модератор: immortal

Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

Re: Периодически запуск сценариев

Сообщение Bagir » Вт июн 02, 2020 1:07 am

xor писал(а):
Вт июн 02, 2020 12:21 am
две секунды, по мне, слишком часто, но у меня бак большой. так что мне и обычных таймеров хватит, чтоб алиска крикнула, если что. Жалко, что плиткой индукционной управлять не могу.
Бак тоже большой. Там читаю не часто. А в колонне температура сильно меняется при изменении потока охлаждения дефлегматора. По ней хочу в будущем крутить сервопривод на кране охлаждения. Индукционной плитой тоже рулить не могу. Ну очень жаль конечно.
Подкину идею! Греем бак, греем, греем, греем, и тут спортосодержащая смесь закипает, и температура в колонне резко растет. Вот по этой температуре куба можно судить о процентном содержании спирта. Я прикрутил этот расчет. Пока на тесте. Но похоже всё работает отлично.
Надо будет нам как нибудь это обсудить в личке. Как протестирую, напишу письмо и пришлю код.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Logrus
Сообщения: 2079
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Периодически запуск сценариев

Сообщение Logrus » Вт июн 02, 2020 2:45 am

Надо будет нам как нибудь это обсудить в личке.
в тлг приходи
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Периодически запуск сценариев

Сообщение Chainik » Вт июн 02, 2020 8:44 am

Bagir писал(а):
Вт июн 02, 2020 1:07 am
...
Надо будет нам как нибудь это обсудить в личке. ...
Такие вопросы обычно на троих обсуждают ))) :lol:
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

Re: Периодически запуск сценариев

Сообщение Bagir » Вт июн 02, 2020 9:03 am

Это верно, на троих грамотнее будет. До выходных на работе пропадаю, а там будет время на эксперименты. Думаю открыть тему "Самогонный аппарат" и выложить туда наработки. У меня по сути пока нет ничего такого. Два термодатчика, куб и колонна. Так что код подойдет и к другому аппарату.
По поводу периодического запуска сценариев. Обдумывая вариант со своим циклом, хотелось бы минимизировать лишние действия. Как запустить и тормознуть я примеры видел. А вот как передавать данные в цикл пока не знаю. Можно конечно периодически из цикла читать свойство или прямо лезть в SQL, но как раз от этого и хочется уйти. Может кто в курсе, можно ли из метода или сценария МД отправить данные в цикл?
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Периодически запуск сценариев

Сообщение Chainik » Вт июн 02, 2020 10:04 am

Bagir писал(а):
Вт июн 02, 2020 9:03 am
... Может кто в курсе, можно ли из метода или сценария МД отправить данные в цикл?
Не пробовал, но мне кажется, что если метод или сценарий будет передавать данные "сам в себя" (не в другой метод/сценарий), то можно. Допустим делаем бесконечный цикл. Оттуда будет оператор "Goto", перебрасывающий выполнение кода за пределы цикла для вычисления значения переменной. Другим "Goto" возвращаемся в цикл с новым значением переменной.
Внутри цикла можно сделать счетчики, чтобы "бегать" за новой переменной не при каждой итерации, а, допустим, через каждые 100 итераций.
Но это пока голая теория. Надо проверять.

Правда, надо еще что-нибудь сделать, чтобы наш бесконечный цикл не вылетел по TimeOut (30 сек. по-умолчанию).
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Периодически запуск сценариев

Сообщение skysilver » Вт июн 02, 2020 10:35 am

Bagir писал(а):
Вт июн 02, 2020 9:03 am
Может кто в курсе, можно ли из метода или сценария МД отправить данные в цикл?
1. Либо через таблицу в БД, как посредник.
2. Либо в цикле слушать сокет, а из методов/сценариев кидать туда команды.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

Re: Периодически запуск сценариев

Сообщение Bagir » Вт июн 02, 2020 7:12 pm

Chainik писал(а):
Вт июн 02, 2020 10:04 am
если метод или сценарий будет передавать данные "сам в себя"
Тут как раз хочется уйти от методов и сценариев. Сейчас у меня именно так и сделано. При их вызове тоже совершается много работы в системе.
Chainik писал(а):
Вт июн 02, 2020 10:04 am
Внутри цикла можно сделать счетчики, чтобы "бегать" за новой переменной не при каждой итерации, а, допустим, через каждые 100 итераций.
Это первое, что пришло в голову, но тут мы получим задержку на период от одной до 100 итераций. Получится ситуация, когда мы говорим перейти к следующей фазе процесса, а система как бы ждет, "думает". Придется уменьшать счетчик. Это вызовет частые чтения свойства. Но, в прочем, это не так и страшно, по сравнению с тем, что у меня сейчас.
skysilver писал(а):
Вт июн 02, 2020 10:35 am
1. Либо через таблицу в БД, как посредник.
2. Либо в цикле слушать сокет, а из методов/сценариев кидать туда команды.
Через БД, по сути это почти тоже самое что использовать штатную getGlobal(). И так же придется добавить счетчик.
А вот сокет выглядит очень интересным решением. Но я пока не рискну. Дело в том, что у меня как раз беда с этими сокетами. Очень часто падает цикл. Да и сам механизм работы сокетов я не изучал. Это пока в моей личной очереди.

Так что, учитывая что руки чешутся попробовать, склоняюсь к варианту читать свойство из цикла каждые несколько итераций. На следующей неделе у меня как раз будет несколько перегонов спирта сырца. Вот и испытаю.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Периодически запуск сценариев

Сообщение Chainik » Вт июн 02, 2020 7:47 pm

Bagir писал(а):
Вт июн 02, 2020 7:12 pm
...
А вот сокет выглядит очень интересным решением. Но я пока не рискну. Дело в том, что у меня как раз беда с этими сокетами. Очень часто падает цикл. Да и сам механизм работы сокетов я не изучал. Это пока в моей личной очереди. ...
Вот "наводка" по поводу сокетов (https://connect.smartliving.ru/profile/ ... occet.html).
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

Re: Периодически запуск сценариев

Сообщение Bagir » Вт июн 02, 2020 8:04 pm

Chainik писал(а):
Вт июн 02, 2020 7:47 pm
Вот "наводка" по поводу сокетов
Идея манит как магнит. Но эта зараза у меня и так глючит по страшному. Может быть на php7 было бы стабильнее. Я до сих пор сижу на WinXP и PHP5. Перейти на Win7 не проблема, да на этом же компе сидит USB свисток Zwave. Эта гадина столько крови с меня выпила, что просто страшно вспоминать. Сейчас удалось просто заставить Z работать очень стабильно. А на его термодатчиках у меня логика управления отопительными котлами завязана. Поэтому не могу так просто перейти за раз. Скорее всего поставлю второй комп для плавного перехода. Для пробы сокетов я постараюсь сначала наладить их стабильную работу.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Периодически запуск сценариев

Сообщение Chainik » Вт июн 02, 2020 8:15 pm

Bagir писал(а):
Вт июн 02, 2020 8:04 pm
... Идея манит как магнит. Но эта зараза у меня и так глючит по страшному. ...
Не торопитесь с сокетами. Идти надо последовательно, не перескакивая с темы на тему.
Давно-давно я включил у себя сокеты и такое началось... Выключил и больше не возвращался к ним, нафик-нафик...
Может быть сейчас на PHP 7 все стабильнее. Надо тестировать.
Ответить