Страница 1 из 29

[Бридж] Apple HomeKit и MajorDoMo

Добавлено: Чт мар 09, 2017 2:16 pm
sergejey
Изображение

Удалось наладить работу системы через стандартное приложение Дом на 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 в качестве шлюза. Ну и Сири, соответственно, тоже должна работать, хотя я, честно говоря, не разобрался, как ей правильно команды говорить :)

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

Добавлено: Чт мар 09, 2017 3:01 pm
nick7zmail
Пытался одно время настроить у себя хоум бридж под виндой...у меня место на ноуте кончилось)) чуствую - скоро опять эксперементировать начну))

Отправлено с моего Xperia Z через Tapatalk

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

Добавлено: Чт мар 09, 2017 4:20 pm
olehs
nick7zmail писал(а):Пытался одно время настроить у себя хоум бридж под виндой...у меня место на ноуте кончилось)) чуствую - скоро опять эксперементировать начну))

Отправлено с моего Xperia Z через Tapatalk
У меня отлично работает, правда с моим форком плагина Homebridge-Http
https://github.com/olehs/homebridge-http

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

Добавлено: Чт мар 09, 2017 10:57 pm
C_3AXAPOB
Почему-то из приложения Дом не получается управлять устройствами. На статусы приложение Дом реагирует т.е. показывает градусы, что включено, что выключено, изменения статусов, но само ничего не может включить/выключить. Иконка меняется на включено/выключено но физическое устройство не реагирует. Что смотреть?
Система на Ubuntu server 16.10.

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

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

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

Добавлено: Пт мар 10, 2017 9:07 pm
C_3AXAPOB
sergejey писал(а): Нужно смотреть есть ли подписка в модуле MQTT на вышеуказанные топики и меняется ли там значения при нажатии на иконки в программе. Так же можно смотреть XRAY -- там сейчас задан вывод системной информации при поступлении данных из приложения и в него.
Подписка MQTT вроде есть, значения в топиках меняются.
СпойлерПоказать
Снимок экрана от 2017-03-10 22-16-47.png
Снимок экрана от 2017-03-10 22-16-47.png (127.94 КБ) 19338 просмотров
А вот в 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 и модулем МЖД.

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

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

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

Добавлено: Пт мар 10, 2017 11:32 pm
C_3AXAPOB
sergejey писал(а): Как обычно кое-что забыл... Обновил 5-й пункт инструкции в первом сообщении.
Возможно еще что-то забыли?После нажатия кнопки в приложении Дом статус на сцене стал меняться но физически устройство не отключается(включается).

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

Добавлено: Пт мар 10, 2017 11:34 pm
C_3AXAPOB
C_3AXAPOB писал(а):
sergejey писал(а): Как обычно кое-что забыл... Обновил 5-й пункт инструкции в первом сообщении.
Возможно еще что-то забыли?После нажатия кнопки в приложении Дом статус на сцене стал меняться но физически устройство не отключается(включается).
Возможно это проблема Простых устройств? У меня например в простых устройствах не работает условное управление. Т.е. влажность поднимается до установленного значения но устройство - вытяжка не включается.

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

Добавлено: Пн мар 13, 2017 12:16 pm
Dark_Veter
C_3AXAPOB писал(а):Возможно еще что-то забыли?После нажатия кнопки в приложении Дом статус на сцене стал меняться но физически устройство не отключается(включается).
У меня такая же проблема. Статус меняется и на телефоне и в системе, но физическое устройство не реагирует.