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