Путем экспериментов выяснил некую закономерность в поведении счетчиков.
- Счетчики замыканий (например wb-mr6c_95/Input 3 counter) и счетчики разных типов нажатий (например wb-mr6c_95/Input 3 Long Press Counter или wb-mr6c_95/Input 3 Single Press Counter) при пропадании питания работают по-разному. А именно, счетчик замыканий обнуляется и вызывает срабатывание правила с нулевым счетчиком.
Cчетчики разных типов нажатий mqtt остаются неизменными и не вызывают сработку правил.
Это легко повторить, просто скинув клемму с устройства и вернув на место.
Работа счетчиков при потере питания
Значения счетчиков до отключения питания

Значения счетчиков при отключенном питании

Значения счетчиков после восстановления питания


Видно, что обнулился только счетчик wb-mr6c_95/Input 3 counter и сработало правило
Apr 04 22:37:14 wirenboard-AC6A3GB6 wb-rules[5389]: INFO: [rule info] switchAction triggered for 'wb-mr6c_95/Input 3 counter'(counter=0)
Apr 04 22:37:14 wirenboard-AC6A3GB6 wb-rules[5389]: WARNING: [rule warning] !!! Switching action on 'wb-mr6c_95/Input 3 counter'(counter=0) is skipped!!! (possible wrong triggered)
- Вторую часть проблемы (самопроизвольный срабатывание скриптов на счетчики с ненулевыми значениями) тоже смог локализовать. Это связано с работой mqtt-моста с брокером HomeAssistant. Выяснил, что при восстановлении моста, если топики на WB и HA отличаются, то значения топиков WB и HA меняются местами, вместо синхронизации. Что приводит к срабатыванию правил на счетчики.
Напомню, у меня поднят мост на стороне HA c таким конфигом:
connection wb-bridge
address 192.168.88.150:1883
topic /devices/+/controls/+/# both 1 wb ""
try_private true
cleansession false
notifications true
Получается, что при пропадании электричества в НA остается не нулевой счетчик, при восстановлении в WB счетчик обнуляется (правило срабатывает первый раз с нулем), а потом, при поднятии моста в WB записывается ненулевое значение счетчика (и снова срабатывает правило уже с ненулевым значением).
Восстановление моста
Восстановление устройства при отключенном bridge
До отключения:

После восстановления питания счетчик Input 3 Counter сбросился в 0 и сработал скрипт на 0

Apr 04 22:55:28 wirenboard-AC6A3GB6 wb-mqtt-serial[26661]: INFO: [serial client] Events are disabled for <modbus:95:input: 499>
Apr 04 22:55:28 wirenboard-AC6A3GB6 wb-mqtt-serial[26661]: INFO: [serial client] Events are disabled for <modbus:95:input: 500>
Apr 04 22:55:28 wirenboard-AC6A3GB6 wb-mqtt-serial[26661]: INFO: [serial client] Events are enabled for <modbus:95:input: 501>
Apr 04 22:55:28 wirenboard-AC6A3GB6 wb-mqtt-serial[26661]: INFO: [serial client] Events are enabled for <modbus:95:input: 517>
Apr 04 22:55:28 wirenboard-AC6A3GB6 wb-mqtt-serial[26661]: INFO: [serial client] Events are disabled for <modbus:95: reboot>
Apr 04 22:55:28 wirenboard-AC6A3GB6 wb-rules[5389]: INFO: [rule info] switchAction triggered for 'wb-mr6c_95/Input 3 counter'(counter=0)
Apr 04 22:55:28 wirenboard-AC6A3GB6 wb-rules[5389]: WARNING: [rule warning] !!! Switching action on 'wb-mr6c_95/Input 3 counter'(counter=0) is skipped!!! (possible wrong triggered)
Apr 04 22:56:06 wirenboard-AC6A3GB6 wb-rules[5389]: INFO: [rule info] _update_git_status started!
Apr 04 22:56:10 wirenboard-AC6A3GB6 mosquitto[3818]: 1743800170: Client core-mosquitto.wb-bridge has exceeded timeout, disconnecting.
После восстановления mqtt-моста
значения mqtt топика счетчика Input 3 Counter на WB и на HA поменялись местами (0<->17)

И сразу сработало правило на счетчик со значением 17

Apr 04 23:24:08 wirenboard-AC6A3GB6 mosquitto[3818]: 1743801848: New connection from 192.168.88.100:50472 on port 1883.
Apr 04 23:24:08 wirenboard-AC6A3GB6 mosquitto[3818]: 1743801848: New bridge connected from 192.168.88.100:50472 as core-mosquitto.wb-bridge (p2, c0, k60).
Apr 04 23:24:13 wirenboard-AC6A3GB6 wb-rules[5389]: INFO: [rule info] switchAction triggered for 'wb-mr6c_95/Input 3 counter'(counter=17)
Apr 04 23:24:13 wirenboard-AC6A3GB6 wb-rules[5389]: INFO: [rule info] Switching action on 'wb-mr6c_95/Input 3 counter'(counter=17)
Apr 04 23:24:35 wirenboard-AC6A3GB6 tailscaled[15580]: control: netmap: got new dial plan from control
Это странное поведение пока не знаю как победить.
Пробовал добавлять параметры
cleansession true # управляет сессией на удалённом брокере (WB)
local_cleansession true # управляет сессией на локальном брокере (HA)
QoS ставил в 0.
Но это не помогло.
Может вы подскажете решение.