Статья

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

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

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

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

Режим Sonoff DIY

Удаляем модуль из приложения eWeLink, модуль перезагрузится.Отключаем питание, устанавливаем перемычку на DIY.Подаем питание, зажимаем кнопку на 5 секунд, пока светодиод не сменит свою индикацию.Зажимаем еще раз кнопку на 5 секунд, пока светодиод не начнет мигать непрерывно.Подключаемся к сети ITEAD-XXXX и переходим в браузере по адресу 10.10.7.1, попадаем в Sonoff DIY конфигуратор, где вбиваем название вашей сети и пароль от нее. Модуль перегружается и получает ip адрес в нашей сети.Открываем какой-нибудь сетевой сканер (я использую 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

Найдите в файле Listen 8080 и измените на Listen 80.Найдите параметр DocumentRoot «/usr/local/var/www» и измените его на DocumentRoot«/Users/your-user/ваша_папка», где «your-user» - имя вашего пользователя в системе.Также необходимо изменить ссылку на тег прямо под строкой DocumentRoot. Путь тот же, что и в шаге выше.В этом же блоке вы найдете параметр AllowOverride, который должен быть изменен на AllowOverride All.Найдите в файл mod_rewrite.so и раскомментируйте строку, удалив первый символ решетки #: LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so.Изменяем юзера для запуска
User your_user
Group staff
где «your-user» - имя вашего пользователя в системе.Находим в файле директиву #ServerName www.example.com:8080 и заменяем ее на ServerName localhost.Создаем вашу_папку, описанную в шаге 2 в корне домашнего каталога вашего пользователя. Перезапускаем 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. Подключаемся к ней, ждем, открывается окно конфигурации:

Выбираем свою 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/подтверждаем добавление несертифицированного устройства и через минуту сопряжения устройство добавляется в Дом.

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

Я надеюсь, что у вас все получится!


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

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

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

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

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

Advanced REST client.

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

https://github.com/itead/Sonoff_Devices_DIY_Tools">Sonoff_Devices_DIY_Tools вроде R2 не поддерживает.

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

DIY режиме.

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

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

python -m SimpleHTTPServer 80

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

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

Макос это та же убунта, но с закрытым ядром. ;) Никогда не использовал рест клиенты из консоли, но думаю так тоже можно.

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

Ребят помогите по возможности. Имеем 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 - с ним все просто и быстро, а тут уже день убил безрезультатно. Ткните носом криворукого, заранее спасибо. 

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


дружище? распиновку не подскажешь случаем для прошивки? спасибо заранее!!

большое спасибо!

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


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

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



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

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

Для 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}]}

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

использовал этот 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}]}

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

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

Тоже самое((

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

дошел до шага: проверяем http://localhost:8080/">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.

и остальное?



Спасибо огромное автору статьи! Всё получилось, правда, я не заморачивался (так как у меня на ноутбуке только 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.

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

а кто-нибудь прошивал Sonoff TX этим же способом? это возможно без пайки?

ЧИТАТЬ ВСЕМ У КОГО НЕ ПОЛУЧИЛОСЬ, не спешите доставать паяльники! (Sonoff Mini R2, ставим прошивку HAA) 
Инструкция кишит ошибками. В начале порт 8080 меняем на 80, потом назад используется 8080, с ваша_папка та же история. Но суть вообще не в этом. ссылку можно вообще использовать любую, тобишь можно не заморачиватся и использовать любую файловую шару, главное чтобы был http а не https, проблема не в этом.


Короче провозился 5 часов, пробовал по разному, на ota_flash тупо приходил ответ 200, но ничего не происходило. Как и у всех. Возможно дело в особенности прошившвки haa, если ее шить именно через сонофовую DIY апишку. 
Короче нашел способ как прошится по воздуху очень быстро. По пунктам.


  1. - 5 сек держим + 5 сек держим, ITEAD-XXXX, пароль 12345678, Идем на 10.10.7.1 вводим имя сети и пароль роутера
  2. - Ставим tasmota одной командой, которая делает все сама (ищет сеть, подключается, делает otaunlock, и шьет прошивку)  (https://github.com/njh/sonoff-ota-flash-cli#installation">sonoff-ota-flash-cli), просто скачайте sh скрипт и тупо запустите (./sonoff-ota-flash.sh). По дороге спросит Proceed with flashing? [N/y] , вводим на клавиатуре y и жмем enter
  3. - Все произойдет на считанные секунды, релешка перезагрузится и появится сеть tasmota 
  4. - Подключаемся, прописываем настроки wifi, появится айпишник, копируем, ждем перезагрузки, вводим айпишник в браузер,и дальше тупо из менюхи нажимаем Firmware Upgrade, выбираем файл fullhaaboot.bin и шьем.
  5. - Дальше появится сеть HAA ну и все как обычно, подключаемся к и настраиваем есть и конфиг http://192.168.4.1:4567">http://192.168.4.1:4567

Вот и все! Прошится по воздуху может каждый. Ничего сложного. Никаких серверов, рест клиентов, айпи сканнеров и прочей фигни. Если что я залазил в sonoff-ota-flash.sh и пробовал там ставить линку на fullhaaboot.bin и прописывать SHASUM, не помогало. Результат был тот же что и по этой инструкции. Так что не тратьте время и просто выполните все пункты, прошивка через промежуточную прошивку tasmotой. По другому пока никак.


Ну и на закуску, рабочий json, без методов тыка, осмысленный, с которым и работает кнопка, и полноценно работают контакты выключателя (режим обычного выключателя, не возвратного, без пружинок)
{"c":{"l":13,"b":[{"g":0,"t":5}],"z":0},"a":[{"0":{"r":[{"g":12}]},"1":{"r":[{"g":12,"v":1}]},"b":[{"g":0},{"g":4},{"g":4,"t":0}]}]}


Вернуться назад

Устройства


ITEAD

Sonoff MINI DIY

(2 отзыва)

ITEAD

Sonoff Basic R3

(1 отзыв)

Вернуться назад