Для диагностики добавил логирование старого и нового значений в правилах. Лог подтверждает, что новое значение оказывается меньше предыдущего, что не должно происходить. В коде реализована проверка new_value > old_value, однако на практике наблюдается нарушение этого условия, что критично для работы.
Дополнительно отмечено, что в момент возникновения аномалии происходит рост load_average_1min, что может быть связано с проблемой:
Добрый день.
В приложенном архиве нет данных из логов правил за время показанное на скриншотах 10 февраля - но причину вижу так:
При перезапуске сервиса он загружает сохраненные значения счетчиков.
-- Boot fa7f90f4e9ad4842ba0570bc0ca68857 --
Feb 10 14:27:40 wirenboard-AF4XWIID systemd[1]: Starting MQTT Driver for GPIO-controlled switches...
Feb 10 14:27:54 wirenboard-AF4XWIID wb-mqtt-gpio[3351]: INFO: [gpio driver] Set initial value for A1_IN counter: 54514
И соответственно публикует (загруженное) значение в топик.
В указанное время контроллер как раз перезапускался. Естественно что данные счетчиков загрузились те что были последние сохраненные сервисом.
А зачем (почему) перезапускаете?