SmartLiving.ru

Обсуждение проекта
 
Текущее время: Пт янв 19, 2018 1:04 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 106 ]  На страницу 1, 2, 3, 4, 5 ... 11  След.
Автор Сообщение
 Заголовок сообщения: [Модуль] Xiaomi miIO
СообщениеДобавлено: Сб дек 09, 2017 12:29 am 
Не в сети

Зарегистрирован: Чт авг 21, 2014 8:28 am
Сообщения: 954
Откуда: Киров, Россия
Благодарил (а): 169 раз.
Поблагодарили: 444 раз.
Поддержка wifi-устройств из экосистемы Xiaomi в MajorDoMo

Задача модуля - реализация взаимодействия с wifi-устройствами Xiaomi с помощью отправки и приема пакетов по протоколу miIO.

miIO - проприетарный сетевой протокол Xiaomi с шифрованием, по которому взаимодействуют wifi-устройства из экосистемы Xiaomi и приложение Mihome на смартфоне. В качестве транспорта используется UDP и порт 54321. Содержимое пакетов шифруется. Ключи шифрования формируются на основе уникальных токенов. Для контроля корректности принимаемых пакетов используется контрольная сумма на основе алгоритма MD5.

Использование этого протокола позволяет управлять теми устройствами, которые не имеют открытого API (режима разработчика). Например, Xiaomi Mi Robot Vacuum, Xiaomi Mi Smart WiFi Socket, Xiaomi Philips LED Ceiling Lamp и многие другие. Также позволяет расширить имеющиеся возможности открытого api у xiaomi-шлюза, в частности переводить его в режим сопряжения, привязывать и отвязывать к нему датчики, управлять радио и др.

В основе модуля лежит библиотека php-miio из проекта http://connect.smartliving.ru/members/tasks/40.html

Модуль на Github - https://github.com/skysilver-lab/majordomo-xiaomimiio
Модуль в Connect - https://connect.smartliving.ru/tasks/51.html

Требования:
  • Необходима более-менее свежая версия MajorDoMo, в которой присутствует функционал управления запуском и остановом циклов, а также есть функция getURLBackground().
  • Сервер MajorDoMo и miIO-устройства должны находиться в одном сегменте локальной сети, в котором разрешен широковещательный UDP-трафик с портом назначения 54321.
  • На сервере должен быть отключен, либо корректно настроен межсетевой экран для пропуска сетевых пакетов UDP/54321.
  • Важно! Для всех устройств должны быть получены их уникальные токены!
    В большинстве случаев устройства не сообщают свой токен в ответных сообщениях, поэтому выяснять токены придется вручную. Без токенов будет работать только поиск устройств в сети и определение статуса онлайн/оффлайн. Способы получения токенов описаны здесь

!Добавление новых устройств!
Предвижу, что это будет один из наиболее частых вопросов, поэтому сразу привожу возможные варианты. Выбирайте наиболее подходящий для себя. Отсортировал в порядке увеличения объема трудозатрат (исследования, программирования) с вашей стороны.
  • Смиренно ждать, когда у меня появится интерес и возможность купить то или иное устройство, поддержку которого я добавлю сам в своих интересах. Ускорить этот процесс можно с помощью лайков моих сообщений на форуме, переводом "копеечки" на электронные кошелки (см. ниже) и на баланс проекта в Connect.
  • Вы отправляете мне устройство, я добавляю его в модуль и оставляю устройство себе в качестве вознаграждения.
  • Вы переводите мне сумму денег, необходимую для покупки устройства. Я покупаю его, добавляю в модуль и оставляю устройство себе в качестве вознаграждения.
  • Вы предоставляете удаленный доступ к MajorDoMo и устройству, создаете задачу в Connect с определенным бюджетом (по договоренности). Я добавляю устройство в модуль, закрываю задачу, и средства перечисляются на мой внутренний счет Connect.
  • Вы самостоятельно исследуете API-взаимодействия с устройством по источниками в интернете или через перехват и расшифровку трафика в локальной сети. Подробно описываете полученные функции API, а я по мере возможности и наличия времени добавляю устройство в модуль с сопутствующим тестированием всех этапов с вашей стороны.
  • Вы делаете форк проекта на Github, вносите в него поддержку нужного устройства самостоятельно и делаете пул-реквест в мой репозиторий.

На данный момент у меня имеются Yeelight Color Lamp, Yeelight White Lamp, Philips Light Bulb, Xiaomi Gateway V2. Их поддержка уже частично реализована и будет продолжена в приоритетном режиме.

Поддержать разработку, развитие модуля и добавление новых устройств:

[Показать] Скрытый текст: Скриншоты модуля
Вложение:
miio0.7.1.png
miio0.7.1.png [ 37.8 КБ | Просмотров: 1619 ]

Вложение:
miio0.7.2.png
miio0.7.2.png [ 9.61 КБ | Просмотров: 1619 ]

Вложение:
miio0.7.3.png
miio0.7.3.png [ 23.05 КБ | Просмотров: 1619 ]

Вложение:
miio0.7.4.png
miio0.7.4.png [ 32.99 КБ | Просмотров: 1619 ]


С уважением, skysilver.

_________________
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram


Последний раз редактировалось skysilver Пт дек 22, 2017 12:03 pm, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [Модуль] Xiaomi miIO
СообщениеДобавлено: Сб дек 09, 2017 12:29 am 
Не в сети

Зарегистрирован: Чт авг 21, 2014 8:28 am
Сообщения: 954
Откуда: Киров, Россия
Благодарил (а): 169 раз.
Поблагодарили: 444 раз.
Перечень поддерживаемых устройств

Важно! Для всех устройств (независимо от уровня поддержки) работает поиск в сети, определение статуса онлайн/оффлайн, получение данных miIO.info, отправка простой команды (без параметров) через свойство command.

Поддерживаемые устройства:
  1. Шлюз ZigBee Mi Smart Home Gateway 2 [ПРОВЕРЕНО]
    • получение номера zigbee-канала;
    • получение пароля для взаимодействия в режиме разработчика;
    • получение статуса радио (состояние, громкость, текущий трек);
    • управление громкостью радио;
    • управление воспроизведением радио (on, off, toggle, prev, next);
    • воспроизведение заданной радиостанции;
    • добавление новой радиостанции в список избранного;
    • удаление радиостанции из списка избранного;
    • получение списка суб-устройств;
    • удаление (отвязывание) суб-устройств;
    • перевод шлюза в режим сопряжения для добавления нового суб-устройства.
  2. Розетка Mi Smart Socket Plug 2 [ПРОВЕРЕНО]
    • включение/выключение;
    • получение внутренней температуры;
  3. Пылесос Mi Vacuum Cleaner [ПРОВЕРЕНО]
    • получение текущего статуса;
    • получение сведений о расходых материалах;
    • получение сведений об уборке;
    • получения сведений об ошибках;
    • управление отправкой через свойство command:
      • app_start - начать уборку;
      • app_stop - остановить уборку;
      • app_pause - приостановить уборку;
      • app_spot - прибрать участок вокруг пылесоса;
      • app_charge - отправить на базу и встать на зарядку;
      • find_me - посигналить, чтобы найти пылесос.
  4. Настольная лампа Philips EyeCare Smart Desk Lamp 2 [ПРОВЕРЕНО]
    • получение текущего статуса;
    • включение/выключение;
    • регулировка яркости.
  5. Белая лампочка Е27 Philips Light Bulb [ПРОВЕРЕНО]
    • получение текущего статуса;
    • включение/выключение;
    • регулировка яркости;
    • регулировка цветовой температуры;
    • управление сценами;
    • таймер выключения.
  6. Белая лампочка Е27 Yeelight White Bulb [ПРОВЕРЕНО]
    • получение текущего статуса;
    • включение/выключение;
    • регулировка яркости.
  7. Цветная лампочка Е27 Yeelight Color Bulb [ПРОВЕРЕНО]
    • получение текущего статуса;
    • включение/выключение;
    • регулировка яркости;
    • регулировка цвета RGB;
    • регулировка цветовой температуры.
  8. Настольная лампа Mi LED Desk Lamp [НЕ ПРОВЕРЕНО]
    • получение текущего статуса;
    • включение/выключение;
    • регулировка яркости.
  9. Потолочный светильник Yeelight Ceiling Light [НЕ ПРОВЕРЕНО]
    • получение текущего статуса;
    • включение/выключение;
    • регулировка яркости.
  10. Потолочный светильник Philips EyeCare Smart Ceiling Lamp [НЕ ПРОВЕРЕНО]
    • получение текущего статуса;
    • включение/выключение;
    • регулировка яркости;
    • регулировка цветовой температуры;
    • управление сценами;
    • таймер выключения;
    • интеллектуальный ночник;
    • автонастройка цветовой температуры.
  11. Светодиодная лента Yeelight LED Lightstrip [НЕ ПРОВЕРЕНО]
    • получение текущего статуса;
    • включение/выключение;
    • регулировка яркости;
    • регулировка цвета RGB;
    • регулировка цветовой температуры.
  12. Удлинитель (6 розеток) Mi Smart Power Strip 6 Plugs [ПРОВЕРЕНО]
    • получение текущего статуса (в т.ч. температура, потребляемая мощность и сила тока);
    • включение/выключение;
    • включение/выключение светодиода wifi.
  13. Увлажнитель Mi Air Humidifier [ПРОВЕРЕНО]
    • получение текущего статуса и параметров;
    • включение/выключение;
    • смена режима (silent, medium, high);
    • управление сигналом (buzzer);
    • управление led-индикатором (переключение режимов bright, dim, off).
  14. IR-контроллер Mi IR Remote 360 [ПРОВЕРЕНО]
    • отправка IR-команды через опцию ir_play.

Устройства без поддержки, но доступные для выбора при указании типа и вывода логотипа:
  1. IP-камера "кубик" Mi Square Smart Camera
  2. IP-камера Mi Dafang Smart Camera 120

_________________
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram


Последний раз редактировалось skysilver Ср янв 10, 2018 2:34 am, всего редактировалось 12 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [Модуль] Xiaomi miIO
СообщениеДобавлено: Сб дек 09, 2017 12:30 am 
Не в сети

Зарегистрирован: Чт авг 21, 2014 8:28 am
Сообщения: 954
Откуда: Киров, Россия
Благодарил (а): 169 раз.
Поблагодарили: 444 раз.
История версий

10.01.2018 v.1.0-beta.

  • Добавлено автоопределение типа (модели) устройств во время поиска при условии, что устройство сообщает свой токен.
  • Для шлюза Mi Smart Home Gateway 2 добавлен функционал работы с zigbee суб-устройствами (вкладка Zigbee):
    • получение списка суб-устройств;
    • удаление (отвязывание) суб-устройств;
    • перевод шлюза в режим сопряжения для добавления нового суб-устройства.
  • В перечень устройств внесена камера Mi Dafang Smart Camera 120.

26.12.2017 v.0.9.5-beta.

  • Для Philips EyeCare Smart Ceiling Lamp добавлены опции snm (управление сценами), dv (таймер выключения), bl (интеллектуальный ночник), ac (автонастройка цветовой температуры).
  • Для Philips Light Bulb добавлены опции snm (управление сценами), dv (таймер выключения).
  • Для Mi Air Humidifier добавлено управление led-индикатором (подсветкой) - переключение режимов bright, dim, off.

22.12.2017 v.0.9-beta.

  • Добавлена базовая поддержка Mi Air Humidifier:
    • получение текущего статуса и параметров;
    • включение/выключение;
    • смена режима (silent, medium, high);
    • управление сигналом (buzzer).
  • Для Mi IR Remote 360 добавлена опция ir_play для отправки IR-команды.
  • Добавлен выбор Простых устройств для buzzer, wifi_led, humidity, current, power_consuption_rate.
  • Сортировка перечня устройств в выпадающем списке по алфавиту.
  • Убрана опция mode у Mi Smart Power Strip 6 Plugs.

[Показать] Скрытый текст: Предыдущие версии
15.12.2017 v.0.8-beta

  • Добавлена регулировка цветовой температуры (в кельвинах от 1700к до 6500к) для Yeelight.
  • Добавлена регулировка цвета RGB (в формате hex) для Yeelight.
  • Добавлена базовая поддержка Yeelight LED Lightstrip:
    • получение текущего статуса;
    • включение/выключение;
    • регулировка яркости;
    • регулировка цветовой температуры;
    • регулировка цвета RGB.
  • Добавлена базовая поддержка Yeelight Ceiling Light, Mi LED Desk Lamp, Philips EyeCare Smart Ceiling Lamp:
    • получение текущего статуса;
    • включение/выключение;
    • регулировка яркости;
    • регулировка цветовой температуры.
  • Добавлена поддержка Mi Smart Power Strip 6 Plugs:
    • получение текущего статуса (в т.ч. температура, потребляемая мощность и сила тока);
    • включение/выключение;
    • включение/выключение светодиода wifi.
  • В интерфейс модуля добавлена кнопка для тестирования API-команд.
  • В перечень устройств внесен Mi IR Remote 360.
  • В About добавлена ссылка на тему на форуме.

8.12.2017 v.0.7-beta

  • Улучшен механизм формирования MSG ID при отправке сообщений из очереди.
  • Добавлено поле NOTE в таблицу miio_commands.
  • Добавлено поле SETTINGS в таблицу miio_devices.
  • Реализовано API для управления радио в Mi Smart Home Gateway 2:
    • получение статуса (состояние, громкость, текущий трек),
    • управление громкостью,
    • управление воспроизведением (on, off, toggle, prev, next),
    • проиграть заданный трек,
    • добавить новый трек в список избранного,
    • удалить трек из списка избранного,
    • параметры радио вынесены на отдельную вкладку.
  • Для шлюза Mi Smart Home Gateway 2 добавлено получение номера zigbee-канала и пароля для взаимодействия в режиме разработчика.
  • Исправлена ошибка получения статуса расходников у Mi Vacuum Cleaner.
  • Рефакторинг.

5.12.2017 v.0.6-alpha

  • В интерфейс модуля добавлена кнопка для запроса актуального состояния устройства.
  • В интерфейс модуля добавлена кнопка для получения сведения miIO.info.
  • Добавлено условие постановки команды в очередь запросов - обязательное наличие IP и токена.
  • Рефакторинг.

4.12.2017 v.0.5-alpha

  • Добавлена базовая поддержка Mi Smart Socket Plug 2.
  • Добавлены текстовые описания статусов и ошибок для Mi Vacuum Cleaner.
  • Добавлена команда установки цветовой температуры set_cct.
  • Исправлена ошибка обработки токенов вида FF... и ff...
  • Исправлена ошибка определения оффлайн устройств.
  • Вынесены в настройки период автопоиска и логирование цикла.
  • В интерфейс модуля добавлен индикатор статуса цикла.

3.12.2017 v.0.4-alpha

  • Добавлена базовая поддержка устройств Mi Vacuum Cleaner, Philips EyeCare Smart Lamp 2, Philips Light Bulb, Yeelight Color Bulb, Yeelight White Bulb.
  • В перечень устройств внесен Mi Smart Home Gateway 2 и Mi Square Smart Camera.
  • Добавлены поля TIME_DIFF и UPDATED в таблицу miio_devices.

2.12.2017 v.0.3-alpha

  • Реализованы периодический поиск устройств в сети, обновление статуса онлайн-оффлайн, обновление ip-адреса.
  • Добавлено вывод изображений устройств и статуса онлайн-оффлайн на главной странице модуля.
  • Дополнен About.
  • Множественные улучшения и доработки.

1.12.2017 v.0.2-alpha

  • Таймауты ожидания данных из сокета по умолчанию 2 сек. при отправке команды и 10 сек. при поиске устройств в сети.
  • Работа над оформлением кода.
  • Улучшения в интерфейсе модуля.

30.11.2017 v.0.1-alpha

  • Базовые функции модуля.

_________________
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram


Последний раз редактировалось skysilver Ср янв 10, 2018 1:01 am, всего редактировалось 5 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [Модуль] Xiaomi miIO
СообщениеДобавлено: Сб дек 09, 2017 12:30 am 
Не в сети

Зарегистрирован: Чт авг 21, 2014 8:28 am
Сообщения: 954
Откуда: Киров, Россия
Благодарил (а): 169 раз.
Поблагодарили: 444 раз.
[резерв]

_________________
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [Модуль] Xiaomi miIO
СообщениеДобавлено: Сб дек 09, 2017 9:08 am 
Не в сети
Аватара пользователя

Зарегистрирован: Сб июн 11, 2016 12:02 am
Сообщения: 249
Благодарил (а): 82 раз.
Поблагодарили: 30 раз.
Спасибо! Вчера уже установил модуль, добавил пылесос, указал токен. Свойства девайса подгрузились нормально. Вот только не понял еще как давать ему команды? Есть поле Command. Видимо туда что-то указывать. А какие значения? Есть ли информация или самому подбирать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [Модуль] Xiaomi miIO
СообщениеДобавлено: Сб дек 09, 2017 9:45 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пт дек 14, 2012 12:24 pm
Сообщения: 1173
Откуда: Россия, Нижняя Тура
Благодарил (а): 353 раз.
Поблагодарили: 75 раз.
Примеры для управления радио можно? Адреса, пароли, явки... :)

_________________
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [Модуль] Xiaomi miIO
СообщениеДобавлено: Сб дек 09, 2017 11:20 am 
Не в сети

Зарегистрирован: Чт авг 21, 2014 8:28 am
Сообщения: 954
Откуда: Киров, Россия
Благодарил (а): 169 раз.
Поблагодарили: 444 раз.
VooDooN писал(а):
Спасибо! Вчера уже установил модуль, добавил пылесос, указал токен. Свойства девайса подгрузились нормально. Вот только не понял еще как давать ему команды? Есть поле Command. Видимо туда что-то указывать. А какие значения? Есть ли информация или самому подбирать?


А вот если бы был в группе в телеграмме, то уже бы знал. ))

Вот команды
app_start
app_stop
app_pause
app_spot
app_charge
find_me

Прежде чем отправить на базу (app_charge) надо остановить уборку, дать команду app_stop.

_________________
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [Модуль] Xiaomi miIO
СообщениеДобавлено: Сб дек 09, 2017 11:22 am 
Не в сети

Зарегистрирован: Чт авг 21, 2014 8:28 am
Сообщения: 954
Откуда: Киров, Россия
Благодарил (а): 169 раз.
Поблагодарили: 444 раз.
Amarok писал(а):
Примеры для управления радио можно? Адреса, пароли, явки... :)

Управляется через current_volume (просто число уровня громкости) и current_status. В него нужно через setGlobal писать on, off, toggle, prev, next. Переводить, думаю, не надо.

_________________
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [Модуль] Xiaomi miIO
СообщениеДобавлено: Сб дек 09, 2017 12:39 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт дек 14, 2012 12:24 pm
Сообщения: 1173
Откуда: Россия, Нижняя Тура
Благодарил (а): 353 раз.
Поблагодарили: 75 раз.
skysilver писал(а):
Amarok писал(а):
Примеры для управления радио можно? Адреса, пароли, явки... :)

Управляется через current_volume (просто число уровня громкости) и current_status. В него нужно через setGlobal писать on, off, toggle, prev, next. Переводить, думаю, не надо.

А станции как запускать?

_________________
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [Модуль] Xiaomi miIO
СообщениеДобавлено: Сб дек 09, 2017 12:53 pm 
Не в сети

Зарегистрирован: Чт авг 21, 2014 8:28 am
Сообщения: 954
Откуда: Киров, Россия
Благодарил (а): 169 раз.
Поблагодарили: 444 раз.
Amarok писал(а):
А станции как запускать?
В current_program передать id нужной станции. Включится станция с этим id и с громкостью current_volume.

_________________
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 106 ]  На страницу 1, 2, 3, 4, 5 ... 11  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB