При изменении свойства (например в ручную) привязанный к нему метод вызывается два раза.
Соответственно say из этого метода тоже произносится два раза.
Куда копать?
Двойной вызов метода
Модератор: immortal
-
- Сообщения: 1463
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Двойной вызов метода
В первую очередь, надо посмотреть, не записан ли случайно код метода и в метод класса, и в метод объекта. Т.е. строчка с say присутствует и там, и там, при этом в методе объекта в пункте "Вызывать родительский метод" указано "перед..." или "после...".
Наверняка, здесь "собака порылась".
Наверняка, здесь "собака порылась".
-
- Сообщения: 438
- Зарегистрирован: Чт авг 24, 2017 9:38 am
- Благодарил (а): 51 раз
- Поблагодарили: 86 раз
- Контактная информация:
Re: Двойной вызов метода
Ага. Нашёл кое-что.
Создал тестовое свойство и тестовый метод в том же объекте.
Он работает нормально без задвоений!
Единственное отличие состоит в том, что проблемные свойства прикручены к mqtt...
Если изменение свойства происходят по инициативе mqtt - всё нормально. Если вручную - задвоение.
Любые идеи...
Создал тестовое свойство и тестовый метод в том же объекте.
Он работает нормально без задвоений!
Единственное отличие состоит в том, что проблемные свойства прикручены к mqtt...
Если изменение свойства происходят по инициативе mqtt - всё нормально. Если вручную - задвоение.
Любые идеи...
- ~220v
- Сообщения: 96
- Зарегистрирован: Пн дек 23, 2019 5:56 pm
- Благодарил (а): 109 раз
- Поблагодарили: 18 раз
Re: Двойной вызов метода
Тоже разбирался с такой же проблемой. Обнаружил что первая сработка метода идёт от ручной правки свойства (или от какого-то скрипта). Это видно в самом свойстве, если быстро (до 2-й сработки метода) обновить страницу с нужным свойством.
Если через время (после 2-й сработки) опять обновить страницу с нашим свойством, то видно что обновление пришло уже от MQTT
Подозреваю что изменённое свойство идёт в MQTT, а из MQTT опять в свойство Возможно если поставить опцию "только чтение" в настройках MQTT такого не будет, не проверял...