• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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

Активный участник сообщества
В ZigbeeTLc это всё помечено REJOIN_FAILURE_TIMER
и уже не помню, но в SDK изменен zb_config.h и другие файлы (сидят в каталоге patch_sdk)
 

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
 
Сверху Снизу