Последний раз, когда мы касались темы использования
Sonoff в HomeKit мы рассказывали о том, как без прошивки и паяльника завести устройство в Homebridge, а потом соответственно и в приложение Дом. Сегодня же разговор пойдет о том, как все-таки отвязаться от чужих серверов и сделать это правильно и, главное, быстро.
Основными минусами
предыдущего способа заключались в том, что:
- требовалось достаточно много времени для того, чтобы завести свое первое Sonoff устройство в Homebridge
- все-таки периодически полученный токен «слетал» и приходить доставать новый
- не у всех и не всегда это получалось
- оставалась зависимость от внешней среды и европейских серверов E-welink
В описанном способе ниже нам все-также не потребуется приобретение прошивателя, а сам способ заведения устройства в HomeBridge стал еще проще предыдущего.
За основу этого метода берется opensource проект
SonOTA. Именно благодаря этому проекту стало возможным прошивать наши Sonoff устройства без покупки отдельных стиков/прошивателей и т.д.
ВАЖНО: Использование данного способа возможно для прошивки до версии 1.6.
Прошивка
И так. Приступим к описанию самих шагов прошивки. Все инструкции ниже будут даны для «маководов», как для наиболее «ущербных» в своих возможностях, но при этом наиболее изворотливых особей 🙂
- Устанавливаем Python 3 на Mac — ссылка
- Устанавливаем Developer Tools если нас об этом попросят во время установки (у большинства они уже в общем-то стоят)
- Отключаем все Firewalls (по-умолчанию, у меня было всё выключено)
- После успешной установки скачиваем репозиторий SonOTA с помощью обычной «download zip» или командой git clone
https://github.com/mirko/SonOTA.git
После этого заходим в директорию проекта и устанавливаем зависимости Python
cd SonOTA/
pip3 install --user -r requirements.txt
После этого запускаем исполняемый файл (опять же из командной строки)
./sonota.py
В этот момент на экране начнут появляться инструкции, которые необходимо будет пошагово выполнять. Во время этих инструкций вы должны будете сбросить свой Sonoff, подключить свой Mac к его Wi-Fi, потом подключиться к еще одной сети, и так до того момента пока вы в итоге не зайдете в браузере по выделенному IP для вашего уже прошитого Sonoff.
На этом можно считать этап прошивки завершенным. После этого мы можем на время отложить свой
Sonoff и перейти к нашей Raspberry.
Настройка MQTT
Для того, чтобы наш
Sonoff теперь появился в Homebridge нам необходимо будет выполнить следующий список действий:
- Установить MQTT сервер на Raspberry
- Настроить MQTT на нашем Sonoff устройстве
- Установить и настроить плагин для HomeBridge
Дальше все действия будут описываться для настройки
Sonoff Basic.
Устанавливаем MQTT сервер на Raspberry
sudo apt-get install mosquitto
На этом пункт 1 можно считать выполненным 🙂
Продолжаем…
Теперь возвращаемся к нашему
Sonoff и прописываем настройки для MQTT
Переходим Configuration -> Configure MQTT. И в настройках MQTT прописываем IP нашей малинки. В topic должно быть наименование вашего устройства. Если у вас оно одно, то можете оставить то, что стоит по-умолчанию: sonoff. В итоге у меня это выглядело так.
После этого нажимаем кнопку Save, устройство перезагрузится и вернется к жизни. Пункт 2 завершен.
Теперь пришло время установить плагин и настроить его. Нам необходим данный
плагин. Устанавливаем его как обычно, либо через командную строку либо через
веб-интерфейс, который мы обычно ставим в самом начале использования Homebridge. Через командную строку это будет выглядеть так
npm install -g homebridge-mqttthing
После чего переходим в config.json и добавляем следующий блок. Блок, указанный ниже, подойдет для
Sonoff basic. К сожалению, для того, чтобы настроить этот блок у меня ушло не мало времени чтобы разобраться с mqtt с нуля. Поэтому если вы не знакомы с MQTT и у вас не Sonoff basic, то возможно вам потребуется некоторое время для того, чтобы понять работу MQTT и найти нужные настройки и команды. В обратном случае вам повезло и ниже вы найдете готовую настройку для управления базовым реле
Sonoff.
{
"accessory": "mqttthing",
"type": "lightbulb",
"name": "Table Lamp",
"url": "tcp://192.168.31.107:1883",
"username": "DVES_USER",
"password": "DVES_PASS",
"logMqtt": true,
"topics": {
"getOn": "stat/sonoff/POWER",
"setOn": "cmnd/sonoff/POWER"
},
"onValue": "ON",
"offValue": "OFF"
}
Выше показан объект с настройкой плагина, который необходимо вставить в блок .
- accessorry — не меняем
- type — в моем случае sonoff подключен к лампе, поэтому здесь указан lightbulb (на странице плагина можно подсмотреть другие типы)
- name — имя устройство, которое вы вольны выбирать (я назвал свое «Table Lamp»)
- url — url сервера MQTT
- username и password — скопированы из настроек MQTT
- остальные настройки отвечают за работу с MQTT устройством и лучше их скопировать как есть (примечание: если свой устройство вы переименовали из sonoff во «что-то иное», то в командах getOn и setOn надо также переименовать sonoff в «что-то иное»
После сохранения изменений перезапускаем Homebridge и устройство должно появится на главном экране. На этом настройка закончена.
По итогам этих операций:
- мы перепрошили наш Sonoff и отвязали от внешних серверов
- мы запустили MQTT сервер на нашей малинке
- мы настроили Homebridge и сам sonoff на работу с mqtt