TGTGInsightаналитика telegramLIVE / telegram public index
← SaintBytеChannel
SaintBytеChannel avatar

TGINSIGHT POST

Post #730

@saintbyte_channel

SaintBytеChannel

Просмотры199Количество просмотров
Опубликован27 мар.27.03.2026, 06:37
Содержимое поста

Содержимое

Что обычно посреди недели? Конечно, рефлексия. Погода как раз подобающая этому занятию — дождь и туман. Но фиг с ними! Я сегодня опять отбился после очередного спринта на работе — привнёс в кодовую базу ещё больше говнокода. Но сегодня я буду себя хвалить и вообще напишу про технологии, потому что не все подписываются на нас из-за снимков птиц и болотных пейзажей. Почти год назад купил я у китайцев градусник бренда jaalee. Не простой — а уличный с Bluetooth. Запустил — и даже поначалу балдел: удобно ведь, 📱когда можно прямо не вставая с дивана глянуть, какая погода за окном! Просто мечта 📱Гены Рыжова с его заветной кнопкой 📱«впадлу встать и в окно посмотреть». Все, конечно, здорово: графики в программе красивые, данные выгружаются легко... Но есть одна беда: лень-то меня победила — а в сам прибор вмещается всего неделя показаний. И конечно бывает невозможно подключиться к градуснику. Надо автоматизацию. Уже в этом году я для борьбы с умными лампочками достал из запасов и 📱настроил ещё мини-комп. Стал ковыряться с лампочками — не пошло. Нашёл девайс попроще — градусник. Градусник работает по BLE — это Bluetooth, но энергоэффективный, и простое сканирование Bluetooth устройства BLE не находит. Свисткам для Bluetooth нужна поддержка BLE. Никакой обратной совместимости. Градусник постоянно прослушивает эфир до тех пор, пока я где-нибудь не начну сканирование, после чего устройство отправляет ответ что он типа доступен и нашелся. Этот ответ содержит ManufacturerData — нечто вроде специального послания или имени Wi-Fi-точки. Покопавшись в интернете, выяснил, что данные моего градусника Jaalee нужно извлекать именно из поля ManufacturerData. Там достаточно места: два байта на температуру, два байта на влажность, один байт на уровень заряда батареи. Сходу закодить решение не получилось, пришлось экспериментировать. Документация есть, но не хватает мелких нюансов, чтобы всё заработало. Готовый код есть только на Python. Написал из примера библиотеки go-ble BLE-сканер, решил поиграть с ним и заметил разницу в ManufacturerData (см. картинку, первые строки — чтобы удобно было считать смещение). Попробовал, разбирался с документацией. И у меня все получилось я извлек нормальные данные из ManufacturerData Дальше я решил завайбкодить приложение, которое уже будет следить за градусником и записывать показания. Примерно, как мне казалось, я уже закончил, когда пришло понимание, что вайбкодингу нельзя доверять вещи сложнее написания функции, потому что демон падал со стектрейом в процессе работы из-за некоторых мест которые ИИ не предусмотрел. 📱Демона на Golang смотрите в моем гитхабе. Сильно не пинайте он пока в процессе разработки , но температуру из градусника jaalee вытащить может. ....А еще я купил еще один градусник с BLE Xiomi LYWSD03MMC =)))