Хм, есть вопросы по этой функции. Хочется понять, как это работает под капотом. Что-то подобное, видимо, уже обсуждали, но не понятно, что в итоге.
- Насколько я понял, вызвав эту функцию один раз, я повешу обработчик изменения этого топика навечно. А мне-то нужно вызвать этот обработчик только один раз - найти устройства, и далее с ними работать. Можно, да, устанавливать и проверять флаг. Но можно ли вообще перестать слушать изменения, убрать этот обработчик в принципе?
А вот такой сценарий:
2.1. Скрипт запускается, устанавливается обработчик.
2.2. Скрипт изменяется, движок правил снова запускает его, уставливается новый обработчик.
Что происходит с обработчиком с шага 2.1? Он перестает выполняться? Или же теперь параллельно работает 2 обработчика?
UPD. Поэкспериментировал с пунктом 2, выяснил, что повторный вызов trackMqtt
в рамках одного скрипта позволяет навесить несколько обработчиков на один и тот же топик. Перезапуск же скрипта всё отменяет и позволяет начать всё с чистого листа.