Atmwifimeta что это за программа на xiaomi

Предыстория: в качестве одного из хобби у меня случился «Умный дом». Хочется красивых устройств, но при этом ещё хочется свободы и приватности. Поэтому занимаюсь скрещиванием ужика Xiaomi с ёжиком Home Assistant.

Для поддержания комфортных условий нам нужно знать, а что вообще у нас дома происходит. Короче говоря, нужны сенсоры. Их у Xiaomi есть много разных, но больше всего мне понравился квадратный градусник на электронных чернилах. Вот только он совсем не умный, в том смысле, что не предоставляет вообще никаких интерфейсов, кроме графического – ни тебе WiFi, ни BLE, ни ZigBee.

Зато батарейки CR2032 хватает на несколько лет. Есть ещё версия с блютусом, но она чуть менее изящная – эдакий толстый блинчик.

И вот в начале весны был анонсирован новый датчик температуры/влажности, на электронных чернилах, с BLE, да ещё и с часами. Часы мне не особенно-то и нужны, а вот всё остальное немедленно подавило все рациональные доводы и градусник был заказан на одном из популярных интернет-магазинов, по предзаказу. Ехало оно ехало, и наконец приехало.

Как установить Google Камеру и настроить её? #Shorts

В приложение MiHome датчик добавился без проблем (у меня англоязычный интерфейс везде, с русской версией MiHome, говорят, были трудности перевода). Показывает текущие значения и историю изменения показаний.

А вот с интеграцией в Home Assistant приключились сложности. Имеющийся компонент для датчика температуры ни в какую не хотел забирать данные с устройства и жаловался на неверный формат данных. Ну, делать нечего, достаём лопату и начинаем копать.

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

Первый подход к снаряду

Для начала, открываем терминал на убунте и запускаем bluetoothctl. Видим следующее:

[NEW] Controller 00:1A:7D:DA:71:13 fett [default] [NEW] Device 3F:59:C8:80:70:BE LYWSD02 [NEW] Device 4C:65:A8:DC:0D:AF MJ_HT_V1

MJ_HT_V1 – это старый датчик температуры, LYWSD02 – новый. Разница в формате именования модели несколько настораживает.

Дальше надо как-то почитать, а какие данные вообще у нас могут быть получены. Открыл исходники библиотеки mitemp, которая используется в Home Assistant для получения данных со старого датчика. Там нашёл, что используется библиотека blewrap, которая, в свою очередь, является обёрткой над двумя питоновскими библиотеками для работы с BLE. Столько много слоёв мне ни к чему, будем использовать bluepy. Документация есть, её не много и не мало, читаем и пишем скрипт, который проходит по всем полям данных, которые есть на устройстве.

from bluepy import btle mac = ‘3F:59:C8:80:70:BE’ p = btle.Peripheral(mac) for s in p.getServices(): print(‘Service:’, s.uuid) for c in s.getCharacteristics(): print(‘tCharacteristic:’, c.uuid) print(‘tt’, c.propertiesToString()) if c.supportsRead(): print(‘tt’, c.read())

В целом, всё просто – BLE-устройство предоставляет набор сервисов, каждый из которых состоит из набора характеристик. Каждая характеристика может быть одного из 8 типов, для одной характеристики можно указать несколько типов одновременно. Сервисы и характеристики идентифицируются двумя способами – адресом в виде HEX-значения и UUID. С UUID мне работать как-то привычнее.

Итак я считал все характеристики для обоих датчиков, посмотрел на них и понял, что снова под маркой Xiaomi продаются устройства от совершенно разных производителей. Среди значений старого датчика было найдено «Cleargrass Inc», а в новом – «miaomiaoce.com». Структура сервисов и характеристик у этих двух датчиков также абсолютно разные, да и список характеристик у нового датчика длиннее в два раза. Тут стало понятно, что нужно писать свою собственную библиотеку для интеграции с датчиком (нет, я конечно сначала погуглил, может есть чего полезного по запросу LYWSD02, но ничего толкового гугл не выдал).

Как же всё-таки получить данные?

Среди имеющихся типов характеристик, кроме READ, есть ещё WRITE и NOTIFY. WRITE – для отправки данных на устройство, а NOTIFY – для получения данных. Есть ещё одновременно WRITE NOTIFY – устройство будет отправлять данные только после того, как на них подпишутся, отправив нужный байт командой WRITE.

Попытки сделать что-то руками не принесли никакого результата, был достигнут первый рубеж отчаяния, но в этот момент я обчитался статей про поделки на базе чипов от Nordic Semiconductors и поставил на смартфон программу nRF Connect. С её помощью я смог подписаться на все сервисы, которые предоставляло устройство, сохранил логи ответов и стал пытаться понять, что в них лежит.

Вот эти тройные стрелки активируют подписку.

Читайте также:
Программа бюджет Смарт что это

Особенностью старого датчика было то, что данные о температуре и влажности приходили в виде UTF-строки, новый же всё отдавал в бинарном виде.

Подписка на уведомления

Чтобы получать данные с датчика, нужно отправить запрос на подписку. В библиотеке mitemp для этого отправлялись два байта на характеристику, но непонятно, откуда брать её Тут я посмотрел на то, как выглядит структура данных для старого датчика в nRF Connect и заметил, что нужный адрес указан для характеристики с данными, как некий дескриптор. Тогда я снова стал читать документацию к bluepy и понял, что адрес дескриптора легко можно получить из объекта характеристики. Осталось только написать класс с методом-колбеком, в который будут поступать данные из уведомления.

class MyDelegate(btle.DefaultDelegate): def handleNotification(self, cHandle, data): print(data) mac_addr = ‘3F:59:C8:80:70:BE’ p = btle.Peripheral(mac_addr) p.setDelegate(MyDelegate()) uuid = ‘EBE0CCC1-7A0A-4B0C-8A1A-6FF2997DA3A6’ # Метод всегда возвращает список, потому что может работать с диапазоном адресов ch = p.getCharacteristics(uuid=uuid)[0] # Получаем дескрипторы для характеристики desc = ch.getDescriptors(forUUID=0x2902)[0] # Значение байта, который нужно отправить был найден методом научного тыка desc.write(0x01.to_bytes(2, byteorder=»little»), withResponse=True) while True: p.waitForNotifications(5.0)

Отделяем зёрна от плевел

К счастью, только три характеристики были помечены как WRITE NOTIFY, при этом данные приходили с различной частотой и, эм. визуальными особенностями.

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

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

Предположим, то третья характеристика – это полезные данные о температуре и влажности. Для подтверждения гипотезы был проведён физический эксперимент – подошёл к датчику и грубо надышал на него. На дисплее резко увеличились значения данных, а в терминале – поменялись байтики. Ура, данные где-то рядом.

Разбор данных

Я обычно работаю с текстовыми данными (получи данные по HTTP в виде JSON/xml, положи их в файл или в базу), поэтому не очень понимал, как подступиться к задаче. Поэтому начал пытаться трансформировать данные разными способами, которые можно сделать из питона. Написал вот такую функцию-конвертилку и стал смотреть, как это соотносится с данными на экране датчика.

def parse(v): print([x for x in v]) print(».format(int.from_bytes(data, byteorder=’big’))) print(».format(int.from_bytes(data, byteorder=’little’)))

В консоль посыпались строчки разной степени непонятности, однако третий байт всегда был числом, и это число совпадало со значением влажности. Для верности я ещё раз подышал на датчик – и значения влажности на экране и в третьем байте изменились одинаково!

Тут я предположил, что в первых двух байтах хранится температура. Для того, чтобы данные менялись – перенёс датчик на полотенцесушитель в ванной. Но, сколько я ни пытался трансформировать результаты – нужных чисел не получалось.

На пути к успеху

В этот момент я ещё раз посмотрел на описание датчика и увидел, что внутри стоит датчик от Swiss Sensirion. Наверно, стоило с этого начинать, но это же не наш метод. На сайте Swiss Sensirion была найдена пачка датчиков, и даташиты к ним. В даташите, кроме всего прочего была найдена формула для конвертации байт, передаваемых по шине I2C в число.

Но… Получались очень странные значения. Что-то типа -34.66, а у меня было явно теплее. От грусти и печали я даже вскрыл датчик и проверил, а правда ли там сенсор от Swiss Sensirion. Выяснилось, что правда, но с индексом SHTC3, и для него нужна чуть-чуть другая формула.

Однако, всё равно данные после преобразования даже близко не были похожи на реальные. Тут я ещё больше загрустил, открыл исходники библиотеки для SHTC3 от Adafruit и стал пытаться адаптировать код трансформации из C++ в питон. Вывел всё в табличку – сырые данные, преобразованную сишную структуру и результат.

def handleNotification(self, cHandle, data): temp = data[:2] humid = data[2] unpacked = struct.unpack(‘H’, temp)[0] print(data, unpacked, -45 + 175 * unpacked / 2 ** 19, sep=’t’)

Получил что-то такое:

b’,n2′ 2604 -44.130821228027344 b’-n2′ 2605 -44.1304874420166 b’+n2′ 2603 -44.131155014038086 b’,n2′ 2604 -44.130821228027344

Да… как-то холодно… Но, стоп, подождите, а что это за 2604? Это же оно, 26.0 градусов на экране! Для подтверждения гипотезы снова унёс датчик на батарею, проверил – значения совпадают.

В итоге, получаем такой код преобразования данных:

def handleNotification(self, cHandle, data): humid_bytes = data[2] temp_bytes = data[:2] humidity = humid_bytes temperature = struct.unpack(‘H’, temp_bytes)[0] / 100 print(temperature, humidity)

Эпилог

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

Сейчас данные передаются в Home Assistant, дальше нужно допилить код интеграции и, возможно, переписать её с bluepy на bleak, поскольку bleak использует async/await и лучше подойдёт для Home Assistant, написанного aiohttp.

Читайте также:
Asus atk hotkey что это за программа

Ссылки:

  • Страничка датчика на mi.com
  • Документация к bluepy
  • Сенсор SHTC3
  • Сервисы и характеристики MJ_HT_V1
  • Сервисы и характеристики LYWSD02
  • Репозиторий с черновой версией интеграции в Home Assistant

Источник: habr.com

Mi WiFi: подробный обзор приложения и ссылки для скачивания

WiFiGid

Приветствую! Это будет очень короткий обзор по программе от Xiaomi по управлению домашней сетевой инфраструктурой – Mi Wi-Fi. Полный комплекс для управления умным домом под все возможные продукты знаменитого китайского производителя.

Внимание! Есть что-то добавить? Ссылки не работают? Нужна помощь? Пиши об этом в комментариях, портал WiFIGid попытается помочь.

Где скачать?

Есть несколько проверенных источников:

Не рекомендую скачивать программы из непроверенных мест. В них могли умышленно зашить заразу. Тем более если приложение распространяется официально и бесплатно – зачем искать другие места?

Mi WiFi: подробный обзор приложения и ссылки для скачивания

Приложения бесплатные, легко скачиваются и устанавливаются. Для входа понадобится аккаунт Xiaomi или Google Play – просто авторизуетесь через них и нет проблем, для сложных людей есть отдельная кнопка регистрации, так что разберетесь.

Версия с 4PDA завоевала популярность из-за русского языка и постоянного наличия APK. Исторически китайское приложение не всегда было в Гугл Плее, и до сих пор оно идет без русского языка.

Для iOS и ПК на базе Windows приложения не существует. Для них – пользуйтесь web-интерфейсами отдельных девайсов.

Для чего она нужна?

Однозначно, самая частая задача, для которой используют это приложение – настройка роутеров от Xiaomi с официальной прошивкой. Удобный интерфейс, с недавнего времени еще и не только на китайском, но и на русском, а некоторые функции намного удобнее стандартных веб-конфигураторов.

Это пример настройки Xiaomi Mi WiFi Router 3 через приложение:

Вот примерный перечень функций навскидку:

  1. Настройка роутеров и других устройств из серии умного дома от Xiaomi.
  2. Управление сетевыми жесткими дисками, подключенными к роутерам – здесь есть удобный файловый менеджер, функций которого не хватало в базовых прошивках (может уже и обновили их, но когда смотрел в последний раз, управление было в веб-интерфейсе очень кривым).
  3. Полный контроль домашней сети – кто подключен, кто пользуется интернетом, какие скорости соединения.
  4. Удобный обмен файлами по сети.

Mi WiFi: подробный обзор приложения и ссылки для скачивания

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

Источник: wifigid.ru

Xiaomi Mi Wi-Fi Router 4A: подключение и настройка роутера (по шагам)

Настройка Wi-Fi роутера Xiami Mi 4a

Доброго дня!

В последнее время на блоге я редко публикую заметки относительно настройки Wi-Fi роутеров (многие из них однотипны и похожи // за исключением каких-то отдельных моментов, например, проброски портов).

Но сегодня всё же решил сделать небольшое исключение для модельного ряда роутеров Xiaomi Mi Wi-Fi Router 4A ( во-первых , они сейчас достаточно популярны; во-вторых , обеспечивают хорошую скорость, стабильность и покрытие Wi-Fi сети; в-третьих , благодаря поддержке 5 GHz позволяют увеличить скорость Wi-Fi сети).

В общем-то, если ваш «старенький» роутер работает «так себе» — есть смысл попробовать его заменить на продукт от Xiaomi (благо, что настройка у него простая (мой пример ниже) , и с этим справится большинство пользователей ).

Пошаговая настройка роутера

ШАГ 1: цена + пару слов о характеристиках

Начну с того, что устройство из данной линейки роутеров можно приобрести во всех крупных магазинах (цены постоянно меняются, но на Aliexpress обычно чуть дешевле) :

  1. На Aliexpress — ссылка (1750 руб.);
  2. На Ozon — ссылка (2250 руб.);
  3. На WildBerries — ссылка (2100 руб.).

Роутер упакован в стандартную коробку средних размеров ( комплектация : инструкция, сам роутер (с антеннами) , блок питания, сетевой кабель (опционально: есть не всегда)).

Коробка от роутера

Коробка от роутера // Xiaomi Mi Wi-Fi Router 4A

Внешний вид роутера Xiami Mi 4a

Внешний вид роутера Xiaomi Mi 4a

  1. Количество антенн: 4 (внешние!) // это положительно сказывается на зоне покрытия: хорошо ловит даже за одной стенкой ;
  2. Wi-Fi сети 2,4 GHz и 5 GHz могут работать одновременно // 5 GHz сеть работает быстрее, чем 2,4 ;
  3. Мощность передатчика, dBm: 19 dBm // средний параметр. Для обычной квартиры хватает вполне ;
  4. Количество LAN-портов: 2;
  5. Количество WAN-портов: 1;
  6. Маршрутизация: DHCP-сервер, статическая маршрутизация, поддержка Dynamic DNS, NAT;
  7. Безопасность: WEP, WPA, WPA2;
  8. Поддержка IPv6: есть;
  9. Функционал роутера: фильтрация по IP-адресам и MAC-адресам
  10. Макс. скорость Ethernet: 1000 Мбит/с;
  11. Макс. скорость (реал.) беспроводного соединения: 100 Мбит/с;
  12. Цвет корпуса: белый (неск. светодиодов на корпусе);
  13. Размеры, мм: 200*130*50 (есть возможность крепления к стене);
  14. Питание: от сети 220 В (через адаптер).

От себя добавлю еще пару важных моментов: устройство не греется (сильно) после продолжительной работы и не перезагружается во время нагрузки (чего иногда так не хватает многим др. моделям маршрутизаторов).

ШАГ 2: непосредственное подключение

Здесь, в общем-то, всё стандартно.

На корпусе роутера есть:

  • один WAN-порт (помечен как «Internet») — к нему нужно подключить кабель от Интернет-провайдера;
  • два LAN-порта — к ним подключить компьютер/ноутбук (если собираетесь пользоваться только Wi-Fi подключением — то подключать что-то к этим портам не обязательно, т.к. роутер позволяет выполнить первичную настройку сразу через Wi-Fi) .
Читайте также:
Программа для эвм casebook что это

Вид сзади, разъемы (Xiami Mi 4a)

Вид сзади, разъемы (Xiaomi Mi 4a)

После необходимо соединить устройство с блоком питания и подключить его к сети 220 В. Сразу же должны начать мигать светодиоды на корпусе устройства (их 2! ).

Роутер подключен к сети

Роутер подключен к сети

Теперь можно переходить непосредственно к настройкам.

ШАГ 3: первичная настройка роутера

Для начала обратите внимание на тот момент, что ваш компьютер должен быть подключен к роутеру (например, через Wi-Fi или LAN-кабелем — это можно увидеть по значку сети // в трее, рядом с часами). Примечание : подключение может быть без доступа к Интернет, но оно должно быть!

Значок сети в Windows

Значок сети в Windows

Кстати!

Если вы для настройки роутера подключаетесь через Wi-Fi — обратите внимание, что по умолчанию создается сеть «Xiaomi_xxxx» без пароля! К ней можно присоединиться как с ноутбука/ПК, так и с телефона!

Настройка через Wi-Fi подкл.

Настройка через Wi-Fi подкл.

Идем далее.

Официально, насколько можно верить сайту производителю, прошивка устройства протестирована с браузерами Chrome и Microsoft Edge (рекомендую для задания параметров запустить один из них).

В браузере нужно перейти по одному из следующих адресов (в моем случае работали все три, в вашем актуален может быть только один из них):

В браузере должно появиться окно с предложением выбрать язык, страну, согласиться с лицензией и нажать кнопку «Попробовать» . Важно: выбор страны и соглашение с лицензией — обязательно, без этого окно со следующими параметрами не загружается!

Chrome - быстрая настройка роутера

Chrome — быстрая настройка роутера

После рекомендую выбрать ручной режим задания типа подключения к сети Интернет.

Выбор подключения вручную

Выбор подключения вручную

Теперь необходимо указать тип подключения (чаще всего это PPPOE или DHCP) и нажать «Далее» .

( прим. : на этом шаге может понадобиться логин и пароль для доступа к сети Интернет. Эту информацию должен предоставлять ваш Интернет провайдер).

Автоматическое получение IP-адреса

Автоматическое получение IP-адреса

Следующий момент : задание имени сети Wi-Fi и пароля для доступа к ней.

Рекомендую также поставить галочку напротив пункта: «Установить пароль сети Wi-Fi в качестве пароля администратора роутера» .

Задание настроек Wi-Fi

Задание настроек Wi-Fi

Собственно, после этого первичная настройка роутера завершена. Появится окно, в котором вы сможете узнать:

  • имя Wi-Fi сети и пароль для подключения к ней;
  • IP-адрес для входа в веб-интерфейс роутера (в моем примере 192.168.31.1 + пароль для доступа.

Быстрая настройка сети завершена

Быстрая настройка сети завершена

После закрытия этого окна роутер перезагрузится и настройки вступят в силу. Теперь можно подключиться к Wi-Fi сети и посмотреть — есть ли доступ к Интернет?!

ШАГ 4: расширенные настройки

URL-адреса для входа в веб-интерфейс роутера (в Chrome работает 100%):

Базовые

Для начала посоветовал бы открыть вкладку «Settings / Status» — ней можно сменить язык с English на Russian.

Меняем язык

Далее перейти во вкладку «Состояние» : здесь будут отображены все устройства, подключенные к роутеру (а также состояние сетей 2,4 и 5 GHz, доступ к сети Интернет).

Состояние - кто подключен к роутеру - Xiaomi Mi Router 4A

Состояние — кто подключен к роутеру — Xiaomi Mi Router 4A

Для изменения настроек Wi-Fi сети — нужно открыть вкладку «Настройка / параметры Wi-Fi сети» . На единой вкладке можно сразу же настроить и 2,4 GHz сеть, и 5 GHz сеть.

Что интересно : можно отрегулировать уровень сигнала (сильный / слабый), вручную выбрать канал, тип шифрования.

Настройки - параметры Wi-Fi - Xiaomi Mi Router 4A

Настройки — параметры Wi-Fi — Xiaomi Mi Router 4A

Во вкладке «Настройки / Параметры сети» можно выбрать:

  • тип подключения (PPPOE, DHCP, статический IP-адрес) // зависит от настроек вашего Интернет-провайдера;
  • указать DNS // более подробно о DNS и какие можно задать;
  • задать режим работы роутера (например, в качестве репитера).

Настройки - параметры сети - Xiaomi Mi Router 4A

Настройки — параметры сети — Xiaomi Mi Router 4A

Дополнительные

Есть еще ряд настроек, которые могут быть полезны при организации домашней локальной сети. И их я решил вынести сюда — в доп. параметры.

1) Во-первых, обратите внимание на вкладку «Настройки локальной сети» — здесь можно изменить IP-адреса в локальной сети. Например, вместо 192.168.31.1 сделать более привычный вариант 192.168.0.1 .

Параметры локальной сети - Xiaomi Mi Router 4A

Параметры локальной сети — Xiaomi Mi Router 4A

2) Во-вторых, если вы хотите пробросить порты (//перенаправить) — во вкладке «Назначение статического IP-адреса DHCP» можно установить для своего ПК постоянный IP в домашней локальной сети.

Прим. : после этого во вкладке «Перенаправление портов» для постоянного IP необходимо пробросить нужный порт.

Настройка статического IP-адреса - Xiaomi Mi Router 4A

Настройка статического IP-адреса — Xiaomi Mi Router 4A

Перенаправление портов - Xiaomi Mi Router 4A

Перенаправление портов — Xiaomi Mi Router 4A

3) В третьих, в прошивке Xiaomi Mi Router 4A есть вкладка «VPN» — и сегодня это может быть очень удобно (не придется вручную настраивать что-то в браузере)!

VPN - Xiaomi Mi Router 4A

VPN — Xiaomi Mi Router 4A

На этом пока всё.

Дополнения по теме — приветствуются в комментариях!

Источник: ocomp.info

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru