[Бридж] Apple HomeKit и MajorDoMo

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

[Бридж] Apple HomeKit и MajorDoMo

Сообщение sergejey » Чт мар 09, 2017 2:16 pm

Изображение

Удалось наладить работу системы через стандартное приложение Дом на iOs -- работает в связке с модулем Простые устройства.
Поддерживаются следующие типы устройств:

* Выключатели
* Датчики температуры
* Датчики влажности
* Датчики движения
* Кнопки
(список со временем будет расширен доработкой модуля Простые устройства)

Пример работы можно посмотреть здесь: https://www.youtube.com/watch?v=z9sNosAi2jE (в руке телефон с приложением, на фоне сцена с выключателями -- состояние меняется и там и там синхронно)

Самое интересное -- как установить... Подробной инструкции у меня нету, так что расскажу тезисно, а у кого будет возможность воспроизвести и написать подробнее, то милости просим. Когда я устанавливал разные пакеты, то, к сожалению, не записывал подробно все команды и ссылки, где находил инструкции по установке, так что второй раз всё настроить придётся тоже заново поискать :)

Я проводил эксперименты на Linux, а точнее на Raspberry Pi3 (Jessie). Как на Windows это всё воспроизвести -- не знаю :)

Шаг 1. Устанавливаем MQTT-брокер Mosquitto (если не установлен).
Обычно достаточно простого sudo apt-get install mosquitto , но если что ищем инструкции по установке брокера

Шаг 2. Устанавливаем NodeJS
Тоже ищем инструкции. Возможно, оно и через apt-get установится, но не уверен.

Шаг 3. Устанавливаем HomeBridge и добавляем его в автозагрузку
За отправную точку можно взять эту инструкцию http://www.ohlzon.net/2016/01/25/raspbe ... omebridge/ -- там и про NodeJS написано, но по-моему указанный там способ устанавливает старую версию NodeJS, которая уже не подходит для HomeBridge.

Шаг 4. Устанавливаем и настраиваем плагин homebridge-mqtt
Сайт плагина https://github.com/cflurin/homebridge-mqtt

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

Шаг 5. Создаём в разделе Объекты класс HomeBridgeClass
добавляем к классу метод под названием например dataUpdated и со следующим кодом:

Код: Выделить всё

require(DIR_MODULES.'devices/processHomebridgeMQTT.inc.php');
так же добавляем в класс следующие свойства и у каждого в пункте "запускать при изменении" выбираем вышесозданный метод dataUpdated:
from_get
from_identify
from_response
from_set
from_connected
mode
to_add
to_add_service
to_get
to_remove
to_remove_service
to_set
to_set_accessoryinformation
to_set_reachability

После добавления метода и свойств в класс создаём в этом же классе объект с именем HomeBridge

Шаг 6. Устанавливаем в MajorDoMo плагин работы с MQTT (если ещё не установлен)
... и проверяем, чтобы в настройках модуля была подписка на топик homebridge/from/#
далее в этом же модуле добавляем пути публикации и связываем их с соттветствующими свойствами объекта HomeBridge:

homebridge/to/set (привязан к HomeBridge.to_set)
homebridge/from/response (привязан к HomeBridge.from_response)
homebridge/to/add (привязан к HomeBridge.to_add)
homebridge/to/get (привязан к HomeBridge.to_get)
homebridge/to/remove (привязан к HomeBridge.to_remove)
homebridge/from/get (привязан к HomeBridge.from_get)
homebridge/from/set (привязан к HomeBridge.from_set)
homebridge/from/identify (привязан к HomeBridge.from_identify)
homebridge/from/connected (привязан к HomeBridge.from_connected)
homebridge/to/add/service (привязан к HomeBridge.to_add_service)
homebridge/to/remove/service (привязан к HomeBridge.to_remove_service)
homebridge/to/set/accessoryinformation (привязан к HomeBridge.to_set_accessoryinformation)
homebridge/to/set/reachability (привязан к HomeBridge.to_set_reachability)

эти топики используются для обмена данными с HomeBridge и, соответственно, с приложением Дом.

Шаг 7. Заходим в модуль Простые устройства, видим появившуюся кнопку HomeBridge Sync, нажимаем, проверяем, что в телефоне появились устройства.

Всё.

В последующем устройства будут появляться и удаляться автоматически, так что ничего из шагов 1-7 на настроенной системе делать больше не придётся.
На самом телефоне устройства можно раскидать по комнатам и, при желании, управлять системой через интернет, используя AppleTV в качестве шлюза. Ну и Сири, соответственно, тоже должна работать, хотя я, честно говоря, не разобрался, как ей правильно команды говорить :)
За это сообщение автора sergejey поблагодарили (всего 6):
Denis_k (Чт мар 09, 2017 2:32 pm) • C_3AXAPOB (Чт мар 09, 2017 2:47 pm) • nick7zmail (Чт мар 09, 2017 3:01 pm) • Dicont (Вт май 22, 2018 11:34 pm) • TurburatoR (Ср авг 15, 2018 8:49 pm) • Val (Пн авг 20, 2018 11:24 am)
Рейтинг: 6.98%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Интеграция MajorDoMo и HomeKit (iHome)

Сообщение nick7zmail » Чт мар 09, 2017 3:01 pm

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

Отправлено с моего Xperia Z через Tapatalk
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Интеграция MajorDoMo и HomeKit (iHome)

Сообщение olehs » Чт мар 09, 2017 4:20 pm

nick7zmail писал(а):Пытался одно время настроить у себя хоум бридж под виндой...у меня место на ноуте кончилось)) чуствую - скоро опять эксперементировать начну))

Отправлено с моего Xperia Z через Tapatalk
У меня отлично работает, правда с моим форком плагина Homebridge-Http
https://github.com/olehs/homebridge-http
C_3AXAPOB
Сообщения: 510
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 124 раза
Поблагодарили: 101 раз

Re: Интеграция MajorDoMo и HomeKit (iHome)

Сообщение C_3AXAPOB » Чт мар 09, 2017 10:57 pm

Почему-то из приложения Дом не получается управлять устройствами. На статусы приложение Дом реагирует т.е. показывает градусы, что включено, что выключено, изменения статусов, но само ничего не может включить/выключить. Иконка меняется на включено/выключено но физическое устройство не реагирует. Что смотреть?
Система на Ubuntu server 16.10.
Orange pi pc plus, megaD-2561, Xiaomi
--------------------------------------------------
http://connect.smartliving.ru/profile/908
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Интеграция MajorDoMo и HomeKit (iHome)

Сообщение sergejey » Пт мар 10, 2017 9:05 am

C_3AXAPOB писал(а):Почему-то из приложения Дом не получается управлять устройствами. На статусы приложение Дом реагирует т.е. показывает градусы, что включено, что выключено, изменения статусов, но само ничего не может включить/выключить. Иконка меняется на включено/выключено но физическое устройство не реагирует. Что смотреть?
Система на Ubuntu server 16.10.
Нужно смотреть есть ли подписка в модуле MQTT на вышеуказанные топики и меняется ли там значения при нажатии на иконки в программе. Так же можно смотреть XRAY -- там сейчас задан вывод системной информации при поступлении данных из приложения и в него.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
C_3AXAPOB
Сообщения: 510
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 124 раза
Поблагодарили: 101 раз

Re: Интеграция MajorDoMo и HomeKit (iHome)

Сообщение C_3AXAPOB » Пт мар 10, 2017 9:07 pm

sergejey писал(а): Нужно смотреть есть ли подписка в модуле MQTT на вышеуказанные топики и меняется ли там значения при нажатии на иконки в программе. Так же можно смотреть XRAY -- там сейчас задан вывод системной информации при поступлении данных из приложения и в него.
Подписка MQTT вроде есть, значения в топиках меняются.
СпойлерПоказать
Снимок экрана от 2017-03-10 22-16-47.png
Снимок экрана от 2017-03-10 22-16-47.png (127.94 КБ) 19331 просмотр
А вот в XREY от бриджа тишина, только отправка в MQTT:
HB sending to_set:
{"name":"Relay01","service_name":"\u0412\u044b\u0442\u044f\u0436\u043a\u0430","service":"Switch","characteristic":"On","value":false}

То есть МЖД отправляет мои нажатия на выключатель на сцене. А изменения статусов из приложения Дом доходят до MQTT и теряются между MQTT и модулем МЖД.
Orange pi pc plus, megaD-2561, Xiaomi
--------------------------------------------------
http://connect.smartliving.ru/profile/908
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Интеграция MajorDoMo и HomeKit (iHome)

Сообщение sergejey » Пт мар 10, 2017 11:06 pm

C_3AXAPOB писал(а):Почему-то из приложения Дом не получается управлять устройствами. На статусы приложение Дом реагирует т.е. показывает градусы, что включено, что выключено, изменения статусов, но само ничего не может включить/выключить. Иконка меняется на включено/выключено но физическое устройство не реагирует. Что смотреть?
Система на Ubuntu server 16.10.
Как обычно кое-что забыл... Обновил 5-й пункт инструкции в первом сообщении.
За это сообщение автора sergejey поблагодарил:
C_3AXAPOB (Пт мар 10, 2017 11:10 pm)
Рейтинг: 1.16%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
C_3AXAPOB
Сообщения: 510
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 124 раза
Поблагодарили: 101 раз

Re: Интеграция MajorDoMo и HomeKit (iHome)

Сообщение C_3AXAPOB » Пт мар 10, 2017 11:32 pm

sergejey писал(а): Как обычно кое-что забыл... Обновил 5-й пункт инструкции в первом сообщении.
Возможно еще что-то забыли?После нажатия кнопки в приложении Дом статус на сцене стал меняться но физически устройство не отключается(включается).
Orange pi pc plus, megaD-2561, Xiaomi
--------------------------------------------------
http://connect.smartliving.ru/profile/908
C_3AXAPOB
Сообщения: 510
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 124 раза
Поблагодарили: 101 раз

Re: Интеграция MajorDoMo и HomeKit (iHome)

Сообщение C_3AXAPOB » Пт мар 10, 2017 11:34 pm

C_3AXAPOB писал(а):
sergejey писал(а): Как обычно кое-что забыл... Обновил 5-й пункт инструкции в первом сообщении.
Возможно еще что-то забыли?После нажатия кнопки в приложении Дом статус на сцене стал меняться но физически устройство не отключается(включается).
Возможно это проблема Простых устройств? У меня например в простых устройствах не работает условное управление. Т.е. влажность поднимается до установленного значения но устройство - вытяжка не включается.
Orange pi pc plus, megaD-2561, Xiaomi
--------------------------------------------------
http://connect.smartliving.ru/profile/908
Dark_Veter
Сообщения: 295
Зарегистрирован: Вт апр 23, 2013 5:16 pm
Откуда: Брянск
Благодарил (а): 18 раз
Поблагодарили: 94 раза

Re: Интеграция MajorDoMo и HomeKit (iHome)

Сообщение Dark_Veter » Пн мар 13, 2017 12:16 pm

C_3AXAPOB писал(а):Возможно еще что-то забыли?После нажатия кнопки в приложении Дом статус на сцене стал меняться но физически устройство не отключается(включается).
У меня такая же проблема. Статус меняется и на телефоне и в системе, но физическое устройство не реагирует.
Debian GNU/Linux 7.9 (wheezy), версия 0.9.0b, Connect
Ответить