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

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

pvvx

Активный участник сообщества
Короче - не работает в вашем SDK aes_ll_encryption().
Может она аппаратная, возможно нужна инициализация и т.д.
 

pvvx

Активный участник сообщества
Так работает:
C:
void tn_aes_128(unsigned char *key, unsigned char *plaintext, unsigned char *result) {
    aes_encrypt(key, plaintext, result);
}
Код:
Bindkey - '000102030405060708090a0b0c0d0e0f'
Adv Data - '01640ce40c3eb31500003e0a1a0000'
Nonce - '2415342d585ad2fc4101000000'
Adv Crypt Data  - '02353d4f95800e4dca11e7e935b39e'
MIC - '5cefa691'
...
MAC - '2415342d585a'
counter - 1
Bindkey - '000102030405060708090a0b0c0d0e0f'
Adv Data - '01640ce40c3eb31500003e0a1a0000'
Nonce - '2415342d585ad2fc4101000000'
Adv Crypt Data - '0201061b16d2fc4102353d4f95800e4dca11e7e935b39e010000005cefa691'
ret - 0x0, decrypt data - '01640ce40c3eb31500003e0a1a0000'
Т.е. для вашего SDK надо заменить tn_aes_128() на aes_encrypt()
 

pvvx

Активный участник сообщества
Я переставил и в своем проекте, чтобы было универсально для разных SDK. И уже проверил с BTHome V1 (crypted) - работает.
 

Slacky

Member
Я переставил и в своем проекте, чтобы было универсально для разных SDK. И уже проверил с BTHome V1 (crypted) - работает.
Я только убрал tn_aes_128. В ccm.c изменил
C:
#define UPDATE_CBC_MAC          \
    for (i = 0; i < 16; i++)      \
        y[i] ^= b[i];           \
        aes_encrypt((u8*)key, y, y);



/*
 * Encrypt or decrypt a partial block with CTR
 * Warning: using b for temporary storage! src and dst must not be b!
 * This avoids allocating one more 16 bytes buffer while allowing src == dst.
 */
#define CTR_CRYPT(dst, src, len)    \
    aes_encrypt((u8*) key, ctr, b);  \
    for (i = 0; i < len; i++)        \
        dst[i] = src[i] ^ b[i];
 

izhadapter

New member
О крутая штука. Недавно купил Поставлю в мотор-колесо следить за нагревом обмотки.

А кто-нибудь уже задумывался о web версии термометра?
Может уже кто-то видел? Если нет ,готов как-то финансово вложиться.
Надо хотя бы чтобы показывал температуру и влажность а потом можно и другие плюшки добавлять, типа пороги реле-термостата, сирену при повышении температуры, графики и так далее и тому подобное.

Насчёт реле очень классная идея Я бы ещё добавил второе реле чтобы одно реле работало по температуре а другое по влажности это более удобно по-моему опыту
 

pvvx

Активный участник сообщества
А кто-нибудь уже задумывался о web версии термометра?
Она и так web.
А для WiFi нужно АКБ от авто.
Надо хотя бы чтобы показывал температуру и влажность а потом можно и другие плюшки добавлять, типа пороги реле-термостата, сирену при повышении температуры, графики и так далее и тому подобное.
Насчёт реле очень классная идея Я бы ещё добавил второе реле чтобы одно реле работало по температуре а другое по влажности это более удобно по-моему опыту
Всё это есть в Home Assistant, а у него и Web и приложение в Android.
 

izhadapter

New member
Понял, очень интересно но очень много иностранных букв...
Да и потом у этого термометра нет wifi

Мне-то надо просто через браузер соединиться с этим термометром и смотреть температуру.

Приложение на смартфон это неинтересно их нельзя переписать за несколько минут сидя в туалете а в html странице накинул там 10 строк JavaScript и поехали дальше.
 

pvvx

Активный участник сообщества
Мне-то надо просто через браузер соединиться с этим термометром и смотреть температуру.
А другого и нет. Все соединения с термометром происходят через браузер путем запуска странички html с js, как и перепрошивка, загрузка истории из термометра в график на html-js и т.д.... Вы ничего не посмотрели, а уже пишите выдумки
Всё отличие от WiFi - html страница хранится у вас (локально) или на каком http сервере. И не надо ничего муторно переписывать на устройстве с отключением соединения по WiFi с интернет.
 

pvvx

Активный участник сообщества
Всё отличие от WiFi - html страница хранится у вас (локально) или на каком http сервере. И не надо ничего муторно переписывать на самом устройстве с отключением соединения по WiFi с интернет, а так-же набивать непонятные "htttp туды-сюды 1 35 палка не та / опять не то : тут вроде домик стоял... 192..., а блин пароль забыл, где инструкция, какой там номер далее".
 

izhadapter

New member
я как раз посмотрел...
И дочитав до слов сервер облако yaml...
Понял , это не то что мне надо.
Всё что там написано это можно сказать собери то не знаю что напиши то не знаю что и Включи лампочку!
 

izhadapter

New member
Мне-то надо просто Одну хтмэль страницу без всякого подключения к интернету смотреть Мою температуру.
Безо всяких роутеров openwrt облак серверов https.
Это всё делается одностраничным html страничкой с последующим преобразованием в веб-приложенея с помощью технологии PWA вот и всё без этого чудовища под названиям хомоссистент
 

r1vver

New member
Мне-то надо просто Одну хтмэль страницу без всякого подключения к интернету смотреть Мою температуру.
Безо всяких роутеров openwrt облак серверов https.
Это всё делается одностраничным html страничкой с последующим преобразованием в веб-приложенея с помощью технологии PWA вот и всё без этого чудовища под названиям хомоссистент
ты наркоша?
 

izhadapter

New member
ты наркоша?
Вот это уже походит на то что надо, а то я с тем товарищем похоже на разных языках общался... Может у него корона просто выросла...
Не ну я конечно тупой, проблему осознаю.
 

pvvx

Активный участник сообщества
Мне-то надо просто Одну хтмэль страницу без всякого подключения к интернету смотреть Мою температуру.
Для этого в Chrome давно сделали специальный API, позволяющий соединяться с BLE устройствами. Называется Web Bluetooth API. И уже годы все его используют, наплодив множество описаний. Пример Связь с Bluetooth-устройствами через JavaScript
А вы только просыпаетесь? Это ничего - поправимо. Изучите сами, там не сложно...
И дочитав до слов сервер облако yaml...
Понял , это не то что мне надо.
А другим и это нужно. По этому и такое тоже есть.
 

Bebebe

New member
Подскажите, а можно ли использовать выход РА5(reset) как вход? Чтобы можно было применить устройство в качестве датчика?
 

izhadapter

New member
Подскажите, а можно ли использовать выход РА5(reset) как вход? Чтобы можно было применить устройство в качестве датчика?
В этом сообщении написано можно:
На странице есть кнопка считать состояние вывода. В целом вопрос довольно странный 😊
это же микроконтроллер - любой вывод теоретически позволяет использовать как вход Кроме тех которые физически этого не могут.
 

pvvx

Активный участник сообщества
Подскажите, а можно ли использовать выход РА5(reset) как вход? Чтобы можно было применить устройство в качестве датчика?
Тут как-бы не всё совсем однозначно.
РА5(reset) как-бы и не является выходом...
В режиме сна во всех встретившихся чипах контроллер GPIO отключается и работают только "подтяжки" к питанию или к GND.
Так он и работает. Т.е. большого тока не дает.
Для "датчика", типа геркона, назначены другие входы. Корпус то разбирается просто - он на винтиках.
 

Bebebe

New member
Некорректно вопрос задал. Да, совершенно не важно какой вывод будет входом. Можно ли на этой прошивке получать его состояние? Если да, то как?
 
Сверху Снизу