Сяоми-киберпанк

Posted: 2023-03-07 in Hardware, IT
Метки:

Решил тут немного поиграться с железками «умного дома», использующими BLE (Bluetooth Low Energy).

Нашёл вот такой вот внешне симпатичный датчик температуры и влажности со встроенными часами:
LYWSD02MMC
Модель Xiaomi Mijia LYWSD02MMC. Дисплей на электронных чернилах (e-ink), две батарейки 2032, управление по bluetooth.

Выяснилось, что корпорашка сяоми оборзела в край (как и вообще китайские разрабы прошивок в целом), и для того, чтобы тупо поставить время, предлагается поставить их сраный апп, зарегаться в китайском облаке и согласиться на отслеживание IMEI и прочего большого списка данных с телефона. Кнопочек на устройстве нет.

Естественно, ничего подобного я делать и не собирался. =)
Для работы с такими неэтичными устройствами к счастью нашёлся годный PyPi-модуль:
https://pypi.org/project/lywsd02/

Сперва с помощью nRF-сканера или любой тулы bluetooth-мониторинга узнаём мак-адрес этих часов.

Потом делаем раз:
pip install lywsd02

Дальше прямо по этому мануалу : https://github.com/h4/lywsd02/tree/364b228922540babc3600d9e2131ff32721c5120
в питоновской консоли:

from lywsd02 import Lywsd02Client

mac = '3F:59:C8:xx:yy:zz'
client = Lywsd02Client(mac)

client.time = datetime.datetime.now()

Иногда часовой пояс стоит китайский — фиксим командой
client.tz_offset = 1
После смены часового пояса иногда бывает надо поставить время заново.

Если надо получить данные с датчиков, то выполняем ещё пару команд:
data = client.data
print(data.temperature)
print(data.humidity)
print(client.battery)

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

Да, я НАСТОЛЬКО не хочу пользоваться их всратой шпионящей «приложенькой», что мне проще на ноуте под отдельным пользователем поставить доп-пакет и в питоновской консоли чуть-чуть похакать.

P.S. подобные устройства крайне уязвимы, стыковать их с чем-то выпущенным в сеть не стоит, а от массового взлома и сетевых приколистов их спасает только крайне слабый и недальнобойный передатчик вкупе с пока ещё относительно малым интересом ко взлому таких устройств.

P.S.S. А вот роутеры Xiaomi покупать нельзя ни в коем случае, если только под них нет открытых альтернативных прошивок.

- комментарии
  1. lexx:

    Мдя… Лучше купить микросхему часов и спаять самому. С кнопками и без блютус. Или с малинкой и домашним ntpd

  2. lexx:

    По хорошему, своя автономная локальная сеть нужна в доме. С хорошим шлюзом вовне и аккумуляторами с контроллерами питания этого всего. Видеокамеры проводные с отдельным многоканальным регистратором.
    ЗЫ
    Кстати, почему я не могу свой киррилический сайт вписать? Это бага!

  3. Amin:

    Очень уважаю тех, кто может сам что-то спаять, тем более аккуратно и в виде готового изделия, которое не стыдно повесить на видном месте. Но это не для всех, увы.

    Локальная сеть уже есть, если у вас есть роутер =)
    Другое дело, что прошивка там тоже нужна +/- доверенная.