Прошиваем Sonoff по wi-fi без прошивателя

Последний раз, когда мы касались темы использования Sonoff в HomeKit мы рассказывали о том, как без прошивки и паяльника завести устройство в Homebridge, а потом соответственно и в приложение Дом. Сегодня же разговор пойдет о том, как все-таки отвязаться от чужих серверов и сделать это правильно и, главное, быстро.



Основными минусами предыдущего способа заключались в том, что:

  • требовалось достаточно много времени для того, чтобы завести свое первое Sonoff устройство в Homebridge
  • все-таки периодически полученный токен «слетал» и приходить доставать новый
  • не у всех и не всегда это получалось
  • оставалась зависимость от внешней среды и европейских серверов E-welink

В описанном способе ниже нам все-также не потребуется приобретение прошивателя, а сам способ заведения устройства в HomeBridge стал еще проще предыдущего.

За основу этого метода берется opensource проект SonOTA. Именно благодаря этому проекту стало возможным прошивать наши Sonoff устройства без покупки отдельных стиков/прошивателей и т.д.

ВАЖНО: Использование данного способа возможно для прошивки до версии 1.6 или после версии 2.0.

Прошивка

И так. Приступим к описанию самих шагов прошивки. Все инструкции ниже будут даны для «маководов», как для наиболее «ущербных» в своих возможностях, но при этом наиболее изворотливых особей 🙂

  1. Устанавливаем Python 3 на Mac — ссылка
  2. Устанавливаем Developer Tools если нас об этом попросят во время установки (у большинства они уже в общем-то стоят)
  3. Отключаем все Firewalls (по-умолчанию, у меня было всё выключено)
  4. После успешной установки скачиваем репозиторий 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 нам необходимо будет выполнить следующий список действий:

  1. Установить MQTT сервер на Raspberry
  2. Настроить MQTT на нашем Sonoff устройстве
  3. Установить и настроить плагин для 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

Подписывайтесь на канал InDaHomeKit в Telegram и Яндекс.Дзен, чтобы у вас всегда было что почитать: новости мира умного дома, обзоры новых устройств, инструкции по подключению.

Так же у нас отличные паблики VK, Facebook и Twitter.

Желающие также могут поддержать наш проект здесь