• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

TLSR8251 + LCD + термометр = LYWSD03MMC XIAOMI Bluetooth термометр

pvvx

Активный участник сообщества
В Tuya прошивке этим занят дополнительный микроконтроллер + таймер 555 + стабилизатор на 2.5В + транзисторы и это всё время жрет батарею.
Коэффициенты там зашиты без калибровки, от балды, как захотелось школьнику-китайцу.
Температуру он показывает +-3 С при +25С. Другие диапазоны не проверял.
 

pvvx

Активный участник сообщества
Дополнительный микроконтроллер - это "Tuya MCU" смотрите описание в Tuya - ведет связь по UART на 9600 с модулем на чипе TLSR8250, чтобы подольше были передачи и побольше сожрать батарейку. Этот MCU и пробуждает модуль BLE/Zigbee/WiFi для передачи данных, обычно раз в час, а так-же в него передаются Tuya ключи шифрования и из него получают тип устройства. Так сделано у многих Tuya устройств - BLE/Zigbee/WiFi. Модуль беспроводной связи обеспечивает только связь энтого MCU с Tuya Cloud или роутером...
 

pvvx

Активный участник сообщества
Tuya MCU Protocol - который в 90% случаев не соответствует данному описанию. Устройства Tuya делают в палатках всякие бомжи, по этому ничего и никогда не соответствует.
Разбирать данный протокол нет смысла, т.к. проще выпаять или выкусить этот чип, тем самым уменьшив потребление.
Он всё-равно тупой и отдает данные раз в час и типа того. Т.е. бесполезная деталь, с которой ещё надо общаться более мощному CPU...
 

almirus

New member
Этот MCU и пробуждает модуль BLE/Zigbee/WiFi для передачи данных, обычно раз в час
даже это они не реализовали на самом деле (в этом самый большой косяк), если не открывать приложение, датчик ничего полезного не шлет, а просто копит показания у себя.
и только по запросу из Апп (хаба) шлет все что накопил и просаживает батарею.
 

pvvx

Активный участник сообщества
даже это они не реализовали на самом деле (в этом самый большой косяк), если не открывать приложение, датчик ничего полезного не шлет, а просто копит показания у себя.
и только по запросу из Апп (хаба) шлет все что накопил и просаживает батарею.
У этого датчика влажности почвы данные передаются только при BLE соединении (потребление вроде 0.4 мА). Их накапливает модуль с TLSR8250, т.к. у Tuya MCU нет ресурсов для сохранения данных.
В остальное время TLSR8250 передает обычную BLE рекламу с Tuya идентификаторами (49.5 мкА, период BLE рекламы 1 сек).
Шлюз Tuya тоже может периодически соединяться с BLE устройствами для считывания показаний и передачи в Cloud.
"MCU и пробуждает модуль BLE/Zigbee/WiFi для передачи данных" - это общая концепция Tuya MCU. А куда идут данные - в память модуля или сразу на передачу - зависит от типа модуля.
Не удивлюсь, если Tuya MCU чип имеет вообще 8-ми битный CPU... Там всегда стерта маркировка.
 

pvvx

Активный участник сообщества
Причин для удаления Tuya MCU несколько:
  • Постоянное потребление питания этим чипом.
  • Низкая точность отдаваемых данных. Обычно ограничено целыми значениями температуры, влажности и т.д.
  • На время коммуникации с модулем уходит больше энергии, чем работа с подключенными к Tuya MCU датчиками.
  • Низкая и не регулируемая частота опроса датчиков у Tuya MCU
  • Протокол связи ещё ни разу полностью не совпал с описанием в Tuya. И разгадывать его нет смысла из-за п.п. выше.
  • В 50% данные чипы Tuya MCU глючат. Типа зависают и не отдают данные, если не пересбросить батарейку. При этом сразу высаживают батарейку.
 

pvvx

Активный участник сообщества
@almirus - без паяльника этот сенсор влажности почвы не исправить. А на это не пойдут 99% купивших его. И это не надолго, т.к. датчик всё равно коррозирует, а после переработки необходимо ещё покрыть все компоненты специальным лаком и т.д. По этому я не тороплюсь с его ПО, а отнесено как совсем второстепенное дело...
И если нужен такой сенсор - проще купить что-то из EFFEKTA zFlora S Max, а Tuya выкинуть
 

pvvx

Активный участник сообщества
Да и горшков с растениями у меня нет. Есть огород и теплицы. В теплицах уже своя система. А на огород уже поздно – только если рассчитывать на следующий год. И основа там будет работа в BLE LE Long Range, а не в BT4.2. А переключать в данный протокол приемный BT адаптер не умеют 99.9% пользователей и нет поддержки в используемом народом ПО. Огород у меня большой и расстояния не для Zigbee/Wifi/Обычный BLE.Тем более сенсор практически в земле, что ещё сужает радиус связи. По этому, из доступных всем без переделок и докупки оборудования годится только протокол LE Long Rаnge. 500 метров с земли он обеспечит, в отличии от WiFi и Zigbee.
 

almirus

New member
@pvvx готов поколупаться паяльником :) тем более там по большей части нужно только откусить и проводники запаять, у меня таких пожирателей батарее 3 штуки 🙊
стоят в горшках год, коррозии не видно
 

Slacky

Member
Привет.

Виктор, можно вопрос по Zigbee на 8258, вдруг знаете? :))

Как сделать, чтобы новое устройство не подключалось к сети после подачи питания, а подключалось только после нажатия какой-то комбинации кнопок на самом устройстве? Как сделать управление кнопкой - это я разбирусь. Мне интересен сам запрет на подключение и последующее разрешение.

Все примеры из SDK подключаются сразу после прошивки.

Спасибо.
 

pvvx

Активный участник сообщества
"Новое" , т.е. незарегистрированное (?) ищет сеть для регистрации.
Уже регистрированное - так же.
И это наверняка инится в tl_zbTaskProcedure(), которая в блоб либе. И работает из tl_zbTaskProcedure()
А вызывает оно всякие call-back.
zbdemo_bdbInitCb() и всякие rejoin в zbdemo_bdbCommissioningCb()
Я не копался с вашей задачей, но копался с rejoin чтобы ограничить вызов сканирования - сделать интервал на 1 минуту, иначе садит батарейку влет.
Оно-же и дает сканирование сети при первом включении.
При старте сканируются все каналы, потом идет вставленная пауза и цикл повторяется.
При потере связи (если пару раз нет ответа-подтверждения) то запускается аналогичная фигня - тот-же rejoin.
В SDK он сделан пачкой сканов, с короткими паузами. Отработав такой блок пачек сканирований идет другая, немного большая пауза и так пока не кончится счетчик повторов этого безобразия или сдохнет батарейка.
Циклы описаны в этих переменных:
C:
//Contents of the rejoin interval in seconds
#define ZDO_REJOIN_TIMES                            5 // =5
#define    ZDO_REJOIN_DURATION                            0  // =6
#define ZDO_REJOIN_BACKOFF_TIME                        45 // =30
#define ZDO_MAX_REJOIN_BACKOFF_TIME                    180 // =90
#define ZDO_REJOIN_BACKOFF_ITERATION                0  // =8
 

pvvx

Активный участник сообщества
И при rejoin работает только таймер (процедуры повешенные на таймер). Другие процедуры не вызываются.
> В SDK он сделан пачкой сканов, с короткими паузами. Отработав такой блок пачек сканирований идет другая, немного большая пауза и так пока не кончится счетчик повторов этого безобразия или сдохнет батарейка.
По окончанию энтого опять вызовется call-back и всё повторится на десятки минут...
 

pvvx

Активный участник сообщества
Если все десятки устройств начнут сканировать сеть как описано в SDK при пропаже координатора, то сеть рухнет. Тупо забьют все каналы связи...
Часть устройств отвалится навсегда, т.к. есть ограничение сканирований... Так оно и работает в Zigbee, если им не подсунуть автономный роутер - они нападут на него :) а он уже будет ждать когда проснется координатор.
 

pvvx

Активный участник сообщества
У 90% использующих Zigbee координатор иногда отключается и устройства иногда выпадают из сети, т.к. всем лень поставить АКБ на какой Zigbee роутер :)
 

Slacky

Member
На форуме Телинка мне вот что ответили.

You can remove the bdbNetworkSteerStart related code from xx_bdbInitCb and xx_bdbCommissioningCb,
and move it to the key pressed handler.
 

Slacky

Member
У 90% использующих Zigbee координатор иногда отключается и устройства иногда выпадают из сети, т.к. всем лень поставить АКБ на какой Zigbee роутер :)
Прошил zigbee датчик от Туи, купленный по Ваше ссылке.

https://pvvx.github.io/TS0201_TZ3000/

Добавился в z2m, вроде работает.

Скриншот 23-10-2024 113238.jpg

При попытке изменить репортинг выдает ошибку по переполнению таблицы биндинга.

Скриншот 23-10-2024 112920.jpg
 
Сверху Снизу