pvvx / ZigbeeTLc

Custom firmware for Zigbee 3.0 IoT devices on the TLSR825x chip
Other
321 stars 15 forks source link

Большой период обновлений Яндекс Станция #76

Open Go2gagra opened 3 months ago

Go2gagra commented 3 months ago

Здравствуйте! Датчик на последней прошивке из вашего репозитория присылает показания нерегулярно, влажность примерно раз в 10 минут, а температура вообще по полчаса, и больше. раньше на прошивке от devbis 1.0.6 показания приходили четко раз в минуту, но датчик отваливается если выключить хаб (станция макс) на некоторое время.

Go2gagra commented 3 months ago

При замыкании ground-reset данные прилетают моментально

pvvx commented 3 months ago

Интервалы передачи в Zigbee задаются координатором при связывании кластеров... В Zigbee cмотрите установки "reporting". Если координатор не задает параметров "reporting" при связывании кластеров, тогда используются установки по умолчанию. Для текущих прошивок это: Default intervals for temperature and humidity reporting are set to 30-180 (min-max) seconds, reportableChanged to 0.1C and 0.5%. Так же координатор может не связывать кластеры. Тогда устройство не будет передавать измерения вообще. Но всегда возможно периодическое считывание значений.

Задайте необходимые вам интервалы и дельту изменений значений для "reporting" на "Яндекс Станции". Всё это основы стандарта Zigbee 3. Если не назначаются - значит "Яндекс Станция" не поддерживает Zigbee 3 и следует обратиться к её производителям.

При замыкании gnd-reset установки интервалов "reporting" игнорируются и одиночно пересылаются все значения кластеров, которые были связаны координатором Zigbee.

pvvx commented 3 months ago

Датчик на последней прошивке из вашего репозитория присылает показания нерегулярно, влажность примерно раз в 10 минут, а температура вообще по полчаса, и больше.

Видимо так назначает reporting "Яндекс Станция". Берегут свой сервер от частых передач и обновлений логов. :) Пишите им, чтобы сделали настройки нормальными для работы датчиков "Умного дома". А это интервалы для термометров 10..30 секунд и с порогом изменения для передачи на 0.1С по температуре и 0.5% по влажности, если они управляют обогревом или кондиционером и т.д. Если будут не согласны – устройте пиар в инет, что данная станция не годится для “Умного дома”. :)

Go2gagra commented 3 months ago

А могу я сам собрать прошивку, где можно принудительно указать интервал как было на 1.0.6 от девбис?

pvvx commented 3 months ago

А нет такого - принудительно. Это будет не соответствовать Zigbee 3.

Пробуйте. Копайте исходники SDK со стеком Zigbee и меняйте там процедуру назначения данных для report.

У devbis интервалы отрабатывают не те, что указаны из-за кратности таймера. И интервалы с другими данными установленные по умолчанию такие-же как и у данной прошивки, но у меня изменен минимум на 30 секунд. (у devbis в реальности выходит 20) 30 секунд по причине адаптации к Нome Assistant. Некоторые функции в нем не отрабатывают чаще. А для event отрабатывают... При 10 секундах мин/макс батарейка сдохнет за месяц в Zigbee. Для таких и аналогичных малых интервалов следует использовать BLE. Там это будет работать к году от CR2032. Zigbee прожорливее от 8 раз на передачу аналогичных данных.

И Cloud Яндекс может сойти с ума :) А может забанит вас. У Яндекса типичный интервал для влажности 30 минут. У Xiaomi и Tuya аналогично для всех значений...

Шлюз Xiaomi просто не передает данные чаще, если ему посылать с любым интервалом, к примеру каждую секунду...

В Нome Assistant при частой передаче данных увеличивается размер базы данных во столько раз, во сколько увеличили частоту данных. Т.е. TBW накопителя увеличится. Для HHD это не страшно. А для SSD при десятках таких датчиков - на пару лет хватит типового на 256 ГБ. Потом не гарантированно или сдохнет - начнет сыпаться. У меня уже второй. image 8 ГБ в сутки - это только база данных HA c фильтрами записи только нужных мне значений и буферизаций в RAM, ограничением глубины записей в 1 месяц.

Если у Вас выйдет с "Яндекс Станцией", отпишитесь. Возможно будет сделать настраиваемый флаг в исходниках - "принуждение к дефолтным значениям report" :) Для других координаторов Zigbee - это настраивается на ходу - в z2m в конфигурации, в ZHA патчем.