JonyBest писал(а): 15 авг 2021, 00:49
1. Такая же беда как и у Вас, тяжело заставить себя делать описания, от этого и недопонимание. Проект используется как шаблон для устройств умного дома в системе Home Assistant, а у меня их много . Чтобы добиться максимальной универсальности в блоках MQTT используется строковый массив, чтобы в одном месте поменял имена сенсоров - автоматом поменялись во всём проекте и т.д.
Новые блоки "Клеммы" во многом решают эту проблему - тот же массив из десяти строк, но доступ по имени клеммы - это удобнее, чем по индексу. Если понадобиться - можно сделать выход с адресом первого элемента. Можно поставить несколько блоков (каждый из них до 10-ти клемм).
Массив конечно более универсален для применения, но в ряде случаев блок клемм решает эти проблемы.
Собственно можно использовать и выход из массива по индексу с подключением клеммы - такую конструкцию можно использовать в любом месте отнимает (в т.ч. и в первой однократно выполняемой плате).
JonyBest писал(а): 15 авг 2021, 00:49
2. Кажись понял. Попробую исправить. Хотя в проекте только четыре строковые переменные. Сложение строк производится только в блоках перед использованием. Попробую переместить сложение строк на платы с датчиками, посмотрим что выиграем... На сколько я понял, чем больше строковых переменных, тем хуже в плане памяти. Клеммы частично решают этот вопрос, но все же...
Строки по затратам на них памяти и вычислительной мощности одно из самых ресурсо затратных операций. В идеале их следует подготовить один раз и лучше в памяти PROGMEM.
JonyBest писал(а): 15 авг 2021, 00:49
3. Платы 7-9 ОДНОКРАТНО по подключению к брокеру MQTT отсылают конфигурацию интеграции в системе Home Assistant., что позволяет быстрее настроить Home Assistant.
Конструкция для отправки один раз очень громоздкая - и не зависимо от того отправляется или нет вся этого конструкция работает при каждом входе в плату.
Запрос лучше готовить заранее - например в одной из первых плат, которую сделать однократно вызываемой, а блок запускать однократным коротким(1 цикл вхождение в плату) импульсом (мы это называем "Событием").
JonyBest писал(а): 15 авг 2021, 00:49
Проверил, при отсутствии соединения - платы сильно тормозят, тут надо, скорее, делать условие не из диспетчера задач, а по состоянию подключения(есть подключение к брокеру MQTT - передаем, нет - выключаем плату). Так то проект работает вполне быстро.
Скорее всего.
Сколько библиотек ни смотрел везде похожий ... :
1.Запуск соединения.
2. delay(2000);
3.Проверка соединения.
Давно планируем сделать это иначе...
JonyBest писал(а): 15 авг 2021, 00:49
Разбить датчики по отдельным платам с выполнением по условию "свободной задачи" - отличная мысль
Если Вы возьметесь оптимизацию Wi-Fi соединений и MQTT сообщений -
А вот за это отдельное спасибо - таким образом мы договорились о сотрудничестве, оно уже фактически происходит.
Очень этому рад.
Дело в том, что уже не первый раз выступаю на форуме с предложением объединить усилия - пока ответы были типы "А что нам за это будет", "А вы нас в начале убедите в полезности..." и т.п.
Уже само общение с Вами и изучение разных проектных решений оказывается очень полезным и определяет направления для доработки библиотек и блоков.
Еще раз сформулирую нашу цель - она продолжение целей Arduino и FLProg:
1.сделать проектирование систем автоматизации простым и доступным инженерам при этом убрать (сделать не видимыми ) сопутствующие проблемы - смена платформ (AVR,ESP,STM32 и др.), конфликт библиотек, макроопределений, "временные тормоза" разных библиотек и проектных решений.
2.уровень проектов должен позволять их использовать в промышленных решениях.
-------------
Еще раз спасибо за первый положительный отклик на сотрудничество, сегодня их уже целых два
И отдельный привет Rovki (KaScada) с которым мы сотрудничаем в режиме прямой связи.