Прошивка Sonoff Mini при помощи режима Sonoff DIY по воздуху

16 августа 2020, 08:43

Данная статья носит чисто технический характер, поэтому без картинок и сразу к процессу.

Подключение к eWelink, обновление прошивки

  1. Зажимаем кнопку на 5 секунд, пока светодиод не сменит свою индикацию.
  2. Зажимаем еще раз кнопку на 5 секунд, пока светодиод не начнет мигать непрерывно.
  3. Открываем на телефоне приложение eWeLink/добавить устройство/режим совместимости/далее/выбираем наш WiFi/далее/подключаемся к сети ITEAD-XXXX. Приложение закинет модуль в нашу сеть, затем модуль отключит свою точку доступа и подключится к нашей сети.
  4. Убеждаемся в том, что модуль работает корректно, нажатием кнопки On/Off в приложении eWeLink, затем заходим в settings/info и обновляем прошивку на версию 3.5.

Режим Sonoff DIY

  1. Удаляем модуль из приложения eWeLink, модуль перезагрузится.
  2. Отключаем питание, устанавливаем перемычку на DIY.
  3. Подаем питание, зажимаем кнопку на 5 секунд, пока светодиод не сменит свою индикацию.
  4. Зажимаем еще раз кнопку на 5 секунд, пока светодиод не начнет мигать непрерывно.
  5. Подключаемся к сети ITEAD-XXXX и переходим в браузере по адресу 10.10.7.1, попадаем в Sonoff DIY конфигуратор, где вбиваем название вашей сети и пароль от нее. Модуль перегружается и получает ip адрес в нашей сети.
  6. Открываем какой-нибудь сетевой сканер (я использую Ip Scanner от 10base-t interactiv) и находим новый ip адрес модуля в нашей сети. 

Устанавливаем apache на macos :

Устанавливаем зависимости:

brew install openldap libiconv 

Отключаем и удаляем все старые конфигурации Apache, если они были:      

sudo apachectl stopsudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null

Ставим новый Apache:

brew install httpd 

Запускаем Apache в автоматическом режиме:

sudo brew services start httpd

Apache уже запущен, проверяем http://localhost:8080, вы должны увидеть простой заголовок с надписью «It works!».
Команды для управления:

sudo apachectl start
sudo apachectl stop
sudo apachectl -k restart

Правим конфигурацию Apache:

open -a TextEdit /usr/local/etc/httpd/httpd.conf1
  1. Найдите в файле Listen 8080 и измените на Listen 80.
  2. Найдите параметр DocumentRoot «/usr/local/var/www»  и измените его на DocumentRoot«/Users/your-user/ваша_папка», где «your-user» - имя вашего пользователя в системе.
  3. Также необходимо изменить ссылку на тег прямо под строкой DocumentRoot. Путь тот же, что и в шаге выше.
  4. В этом же блоке вы найдете параметр AllowOverride, который должен быть изменен на AllowOverride All.
  5. Найдите в файл mod_rewrite.so и раскомментируйте строку, удалив первый символ решетки #:              LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so.
  6. Изменяем юзера для запуска
    User your_user
    Group staff
    где «your-user» - имя вашего пользователя в системе.
  7. Находим в файле директиву #ServerName www.example.com:8080 и заменяем ее на ServerName localhost.
  8. Создаем вашу_папку, описанную в шаге 2 в корне домашнего каталога вашего пользователя. 
  9. Перезапускаем Apache командой:
sudo apachectl -k restart

Мы можем залить прошивку не более 500Кб, учитывайте это, если будете заливать другую.

Например, tasmota.bin весит больше 500 кб, поэтому если собрались заливать тасмоту, качайте tasmota-lite.bin. Я же использую прошивку от RavenSystem.
Скачиваем fullhaaboot.bin отсюда и копируем ее в вашу_папку из шага 2.
Проверяем с телефона в браузере зайти по адресу http://ваш_ip_адрес:8080, должна открыться ваша_папка с файлом fullhaaboot.bin внутри, файл должен быть доступен для скачивания. 

Устанавливаем AdvancedRestClient из AppleStore.
Открываем AdvancedRestClient:
Method POST            
Request URL http://ip_адрес_модуля:8081/zeroconf/info            
Request Parameters – Body             
Body content type – application/json            
Format Json            
В Body вставляем запрос:

{
"deviceid":"",
"data":{}
}   
Нажимаем кнопку SEND. 
Получаем ответ со статусом OK 200 и ниже смотрим инфо по своему модулю.            
Нас интересует значение deviceid и otaunlock.            
Otaunlock должен быть в положении «true», device id переписываем в блокнотик.            

Если ota заблокирована, выполняем POST запрос на адрес:            
http://ip_адрес_модуля:8081/zeroconf/ota_unlock
со значением:
{
"deviceid":"",
"data":{}
}
Переходим по ссылке, закидываем скачанную прошивку fullhaaboot.bin и переписываем в блокнотик SHA256 File Checksum.

Составляем POST запрос в AdvancedRestClient:

http://ip_адрес_модуля:8081/zeroconf/ota_flash
{
"deviceid": "id модуля",
"data": {
"downloadUrl": "http://ваш_ip_адрес/ваша_папка/ fullhaaboot.bin ",
"sha256sum":
"сюда SHA256SUM из шага выше"
}
}
Нажимаем SEND, прошивка заливается, модуль перегружается и поднимает свою WiFi открытую сетку формата HAA_XXXX. Подключаемся к ней, ждем, открывается окно конфигурации:

1600x_image.png?1595423810
Выбираем свою WiFi сеть, вбиваем пароль от нее.
В строке JSON Config вставляем:
{"c":{"l":13,"b":[{"g":0,"t":5}]},"a":[{"0":{"r":[{"g":12}]},"1":{"r":[{"g":12,"v":1}]},"b":[{"g":0}]}]}
И нажимаем Save.
Не уверен в правильности JSON Config, ибо в дебри написания json не погружался, а этот от Sonoff Basic, но у меня с ним мини работает без каких-либо проблем.

После этого модуль готов для добавления в экосистему Apple HomeKit.

Открываем приложение Дом, жмем добавить новый аксессуар/ввести код вручную/вводим 021-82-107/видим наш модуль с именем HAA_XXX/подтверждаем добавление несертифицированного устройства и через минуту сопряжения устройство добавляется в Дом.
1600x_image.png?1597566312

Когда я шил второй миник, то у меня возникла проблема добавления, т.к. дом писал, что такое устройство уже есть. Возможно, это было связано с тем, что сам первый модуль был обесточен. При конфигурации второго модуля я дополнительно устанавливал галку на Reset HomeKit ID. Не уверен, что это понадобилось бы при наличии в сети уже прошитого аналогичного Sonoff Mini, но при возникновении ошибок при добавлении можете учитывать это в виду. Также этим способом можно прошить и прошивкой от tasmota, да и в принципе любую OTA прошивку.
Я надеюсь, что у вас все получится!


Все новости мира умных домов - t.me/SprutAI_News или Instagram
Остались вопросы? Мы в Telegram - @SprutAI

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Дмитрий Батюшин (ReD)
    Дмитрий Батюшин (ReD) 8 месяцев назад

    Полезная статья! для тех кто не хочет паять. 

  2. Антон Григорьев (Infinity)
    Антон Григорьев (Infinity) 8 месяцев назад

    Китайцы пишут что в Sonoff Basic R2 есть DIY.

    На самом деле получается в Sonoff Basic R2 нет DIY mode.

    "Небольшой модуль имеет возможность DIY, для пользователей с базовыми знаниями электрика" - это они про пайку?

    • Клим А. (user5471)
      Клим А. (user5471) 8 месяцев назад

      Есть. Сам прошивал несколько штук по воздуху через  Advanced REST client.

      • Антон Григорьев (Infinity)
        Антон Григорьев (Infinity) 8 месяцев назад

        Но  на R2 нет DIY перемычки.

        Sonoff_Devices_DIY_Tools вроде R2 не поддерживает.

        • Клим А. (user5471)
          Клим А. (user5471) 8 месяцев назад

          А перемычка и не нужна. Зажимаем кнопку на 5 секунд, пока светодиод не сменит свою индикацию. Зажимаем еще раз кнопку на 5 секунд, пока светодиод не начнет мигать непрерывно. Вы в  DIY режиме.

  3. Клим А. (user5471)
    Клим А. (user5471) 8 месяцев назад

    Проще конечно просто с помощью Advanced REST client сделать.

  4. Алексей Х (AlexxIT)
    Алексей Х (AlexxIT) 8 месяцев назад

    Только всю Apache часть инструкции заменяем на

    python -m SimpleHTTPServer 80

    Второй python есть по умолчанию в каждом macOS, так что ничего и ставить не нужно.

  5. Евгений Аверин (doc76)
    Евгений Аверин (doc76) 8 месяцев назад

    Ребят. MacOS не у всех есть. Возможно как то из под Windows? Или UBUNTU но без GUI

    • Дмитрий Логвинов (ITuranchoks)
      Дмитрий Логвинов (ITuranchoks) 8 месяцев назад
      Макос это та же убунта, но с закрытым ядром. ;) Никогда не использовал рест клиенты из консоли, но думаю так тоже можно.

  6. Александр Романов (raw)
    Александр Романов (raw) 7 месяцев назад

    Статья супер. Теперь бы ещё понять, как по проводу прошить эти mini.

  7. (gepich)
    (gepich) отредактировано 6 месяцев назад

    Ребят помогите по возможности. Имеем Sonoff R3, прошивка 3.6.0, модуль подключается к локальной сети, включается и выключается через POST запросы, otaUnlock true, диод моргает два раза. OsX, сервер поднимаю по рекомендации Алексей Х на Python. При попытке прошивки в терминале приходит 3 раза подряд строка: 

    10.0.1.15 - - [20/Oct/2020 22:11:50] "GET /tasmota-lite.bin?deviceid=100090dd53&ts=1270216262&sign=1ff5edfd0e3bb573831624710424eb7cadf5b68cd37d8968818e2e7a8ffdfb9f HTTP/1.1" 200 -

    с разницей 3-4 секунды, диод начинает моргать 3 раза и все дальше ничего не происходит. прошивка не заливается. Лью tasmota-lite и tasmota-minimal. Пробовал с/без перемычки, кнопку зажимал до постоянного моргания - тогда модуль вообще вываливается из локалки. Не хочу паять потому и взял R3 а не Basic - с ним все просто и быстро, а тут уже день убил безрезультатно. Ткните носом криворукого, заранее спасибо. 

    • (gepich)
      (gepich) отредактировано 6 месяцев назад

      припоял, прошил, забыл - 15 минут, DIY Tool модуль не видел Win7/10 Parallels, Win 7, OsX Catalina + Python HTTP сервер прошить также не получилось. 

  8. (cactusov)
    (cactusov) отредактировано 6 месяцев назад

    Друзья, помогите! На последнем шаге где http://ip_адрес_модуля:8081/zeroconf/ota_flash пришел ответ ОК 200, на мини погас диод и все, больше ни на что не реагирует. Теперь только паять и шить по проводам?

    шил прошивку по ссылке от RavenSystem

  9. (drakon5555)
    (drakon5555) 6 месяцев назад

    Подскажите пожалуйста как устройство управляется из интернета? Как приложение находит устройство, если у тебя нет внешнего публичного ip адреса, а только внутрений ip адрес провайдера?
    Мне не понятно как команда из интернета доходит до устройства?

    • (gepich)
      (gepich) отредактировано 6 месяцев назад

      Для того что бы устройство рулилось из внешнего мира, нужно что бы дома был AppleTV 4/iPad постоянно подключенный к питанию/HomePod если одно из этих условий не соблюдено, работать все будет на уровне локальной сети.

  10. Дмитрий Логвинов (ITuranchoks)
    Дмитрий Логвинов (ITuranchoks) 6 месяцев назад

    Реле добавляется в Apple Home, а тот в свою очередь рулится через iCloud. Выносить за NAT необязательно. Родное приложение после перепрошивки больше не найдет реле, что в общем то и логично ибо там внутри уже не sonoff.

  11. (De1iter)
    (De1iter) 4 месяца назад

    Для Sonoff MiniR2, методом научного тыка, нашел нужный json, с которым работает выключатель, может кому-нибудь пригодится:

    {"c":{"l":13,"b":[{"g":0,"t":5}]},"a":[{"0":{"r":[{"g":12}]},"1":{"r":[{"g":12,"v":1}]},"b":[{"g":0},{"g":4},{"g":4,"t":0}],"s":0}]}

    • (diesel777)
      (diesel777) 3 месяца назад

      Да работает под кнопочный да ))) а как кнопку заставить корректно работать то ? Чтоб срабатывало реле от нажатия - а не когда отпускаешь кнопку ) Родной софт позволяет так делать 

  12. (daemon-57)
    (daemon-57) 4 месяца назад

    через Sonoff_Devices_DIY_Tools-3.3.0(https://github.com/itead/Sonof...) залил прошивку tasmota(https://github.com/arendst/Tas...) и из  tasmota обновился на HAA(https://github.com/RavenSystem...). 10 мин делов.

    • (daemon-57)
      (daemon-57) 4 месяца назад

      использовал этот json

      {"c":{"l":13,"b":[{"g":0,"t":5}]},"a":[{"0":{"r":[{"g":12}]},"1":{"r":[{"g":12,"v":1}]},"b":[{"g":0},{"g":4},{"g":4,"t":0}],"s":0}]}

      • (diesel777)
        (diesel777) 3 месяца назад

        Да работает под кнопочный да ))) а как кнопку заставить корректно работать то ? Чтоб срабатывало реле от нажатия - а не когда отпускаешь кнопку ) Родной софт позволяет так делать ) 

  13. (KentOrsk)
    (KentOrsk) 4 месяца назад

    Сеть HAA не появляется(( в чем может быть проблема?

  14. (furo)
    (furo) отредактировано 4 месяца назад

    Прошу помощи - что пошло не так?

    дошел до шага: проверяем http://localhost:8080, проверил - все ок

    Правим конфигурацию Apache: ввожу оболочку и получаю :  

    The file /usr/local/etc/httpd/httpd.conf1 does not exist.

    что не так я делал? Где искать :  

    1. Найдите в файле Listen 8080 и измените на Listen 80.
    2. Найдите параметр DocumentRoot «/usr/local/var/www»  и измените его на DocumentRoot«/Users/your-user/ваша_папка», где «your-user» - имя вашего пользователя в системе.
    3. Также необходимо изменить ссылку на тег прямо под строкой DocumentRoot. Путь тот же, что и в шаге выше.
    4. В этом же блоке вы найдете параметр AllowOverride, который должен быть изменен на AllowOverride All.

    и остальное?

  15. (Evgenij)
    (Evgenij) 3 месяца назад

    Спасибо огромное автору статьи! Всё получилось, правда, я не заморачивался (так как у меня на ноутбуке только Windows10), а подключился к контактам на плате Sonoff MINIR2 и запрограммировал её с помощью USB-TTL конвертера и утилиты esptool.py (esptool.py -p COM4 --baud 115200 write_flash -fs 1MB -fm dout -ff 40m 0x0 fullhaaboot.bin), не забыв при этом предварительно очистить флэш-память устройства.

     Только код для добавления аксессуара в HomeKit у меня система приняла немного другой, а именно: 021-82-017.

  16. (Evgenij)
    (Evgenij) 3 месяца назад

    ... не как в тексте, а как на картинке...

К списку статей

Устройства в материале

Sonoff MINI DIY

Производитель: ITEAD

Sonoff Basic R3

Производитель: ITEAD

Скидки для сообщества

Интернет-магазин yourhomekit.ru

+7 914 550-51-11
Промокод:
SPRUT-BLG
Размер скидки:
8%
Cамый большой ассортимент в России аксессуаров Apple HomeKit

Тематические чаты

Похожие статьи

09 ноября 2018, 20:54
Кейс создания умного дома без каких либо прокладок в виде Raspberry pi
17 декабря 2019, 17:49
Универсальный привод для автоматического удаленного открытия окон с простой интеграцией в умные дома.
04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
15 октября 2018, 09:05
Прошивка для Sonoff c нативным HomeKit
02 ноября 2018, 12:14
Кнопка звонка с уведомлениями в HomeKit
15 ноября 2018, 09:42
Способы автоматизации механических ворот
27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
01 октября 2018, 07:43
Нативный HomeKit на ESP8266
25 сентября 2020, 11:49
Сенсорный монитор для управления умным домом. Настройка и использование.
15 ноября 2018, 13:11
Xiaomi Mi Remote 360 добавляем Apple HomeKit