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

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

Добавлено: Вт июн 02, 2020 1:07 am
Bagir
xor писал(а):
Вт июн 02, 2020 12:21 am
две секунды, по мне, слишком часто, но у меня бак большой. так что мне и обычных таймеров хватит, чтоб алиска крикнула, если что. Жалко, что плиткой индукционной управлять не могу.
Бак тоже большой. Там читаю не часто. А в колонне температура сильно меняется при изменении потока охлаждения дефлегматора. По ней хочу в будущем крутить сервопривод на кране охлаждения. Индукционной плитой тоже рулить не могу. Ну очень жаль конечно.
Подкину идею! Греем бак, греем, греем, греем, и тут спортосодержащая смесь закипает, и температура в колонне резко растет. Вот по этой температуре куба можно судить о процентном содержании спирта. Я прикрутил этот расчет. Пока на тесте. Но похоже всё работает отлично.
Надо будет нам как нибудь это обсудить в личке. Как протестирую, напишу письмо и пришлю код.

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

Добавлено: Вт июн 02, 2020 2:45 am
Logrus
Надо будет нам как нибудь это обсудить в личке.
в тлг приходи

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

Добавлено: Вт июн 02, 2020 8:44 am
Chainik
Bagir писал(а):
Вт июн 02, 2020 1:07 am
...
Надо будет нам как нибудь это обсудить в личке. ...
Такие вопросы обычно на троих обсуждают ))) :lol:

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

Добавлено: Вт июн 02, 2020 9:03 am
Bagir
Это верно, на троих грамотнее будет. До выходных на работе пропадаю, а там будет время на эксперименты. Думаю открыть тему "Самогонный аппарат" и выложить туда наработки. У меня по сути пока нет ничего такого. Два термодатчика, куб и колонна. Так что код подойдет и к другому аппарату.
По поводу периодического запуска сценариев. Обдумывая вариант со своим циклом, хотелось бы минимизировать лишние действия. Как запустить и тормознуть я примеры видел. А вот как передавать данные в цикл пока не знаю. Можно конечно периодически из цикла читать свойство или прямо лезть в SQL, но как раз от этого и хочется уйти. Может кто в курсе, можно ли из метода или сценария МД отправить данные в цикл?

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

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

Правда, надо еще что-нибудь сделать, чтобы наш бесконечный цикл не вылетел по TimeOut (30 сек. по-умолчанию).

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

Добавлено: Вт июн 02, 2020 10:35 am
skysilver
Bagir писал(а):
Вт июн 02, 2020 9:03 am
Может кто в курсе, можно ли из метода или сценария МД отправить данные в цикл?
1. Либо через таблицу в БД, как посредник.
2. Либо в цикле слушать сокет, а из методов/сценариев кидать туда команды.

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

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

Так что, учитывая что руки чешутся попробовать, склоняюсь к варианту читать свойство из цикла каждые несколько итераций. На следующей неделе у меня как раз будет несколько перегонов спирта сырца. Вот и испытаю.

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

Добавлено: Вт июн 02, 2020 7:47 pm
Chainik
Bagir писал(а):
Вт июн 02, 2020 7:12 pm
...
А вот сокет выглядит очень интересным решением. Но я пока не рискну. Дело в том, что у меня как раз беда с этими сокетами. Очень часто падает цикл. Да и сам механизм работы сокетов я не изучал. Это пока в моей личной очереди. ...
Вот "наводка" по поводу сокетов (https://connect.smartliving.ru/profile/ ... occet.html).

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

Добавлено: Вт июн 02, 2020 8:04 pm
Bagir
Chainik писал(а):
Вт июн 02, 2020 7:47 pm
Вот "наводка" по поводу сокетов
Идея манит как магнит. Но эта зараза у меня и так глючит по страшному. Может быть на php7 было бы стабильнее. Я до сих пор сижу на WinXP и PHP5. Перейти на Win7 не проблема, да на этом же компе сидит USB свисток Zwave. Эта гадина столько крови с меня выпила, что просто страшно вспоминать. Сейчас удалось просто заставить Z работать очень стабильно. А на его термодатчиках у меня логика управления отопительными котлами завязана. Поэтому не могу так просто перейти за раз. Скорее всего поставлю второй комп для плавного перехода. Для пробы сокетов я постараюсь сначала наладить их стабильную работу.

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

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