Статья

Прошивка HАA на Sonoff Basic и настройка JSON

Сегодня разберём подробный процесс перепрошивки девайса Sonoff Basic на альтернативную прошивку, совместимую с HomeKit

Подготовка: 

скачиваем и устанавливаем последнюю версию Python с официального сайта;       
скачиваем программу для прошивки ESP DOWNLOAD TOOL;
скачиваем 3 файла прошивки OTA.

Запускаем программу для прошивки.
Выбираем вариант 8285 или 8266, в зависимости от маркировки чипа на реле (у меня реле было на 8285 чипе).
Указываем все параметры как на скрине:

  • Подключаем TTL конвертер к плате реле 3.3 к 3.3, TX к RX, RX к TX, GND-GND (можно подпаяться, я просто засунул гребенку, немного разогнув контакты), зажав кнопку на реле подключаем конвертер к компьютеру - программа для прошивки должна определить COM порт.     

  • Стираем оригинальную прошивку ERASE, после этого отключаем и заново подключаем TTL конвертер от компьютера, зажав кнопку на реле, выбираем FLASH и ждем надписи FINISH

  • Отключаем реле от TTL, подключаем на вход 220 и включаем в сеть, должна появится точка доступа с названием TLC-..... . Подключаемся к ней и если все сделали правильно, устройство перекинет на веб страницу по адресу 192.168.4.1. Если не перекидывает, пробуем еще раз - можно с компьютера, а можно с телефона. На веб странице прошивки ОТА меняем путь репозитория на RavenSystem/haa, выбираем свою домашнюю точку WIFI и указываем от нее пароль - жмем JOIN.

  • Ждем от 5 до 7 минут (за это время реле скачает прошивку HAA, визуально реле не будет подавать признаков жизни, в настройках роутера  можно увидеть устройство сначала с именем TLC-...., после нескольких перезагрузок имя устройства поменяется HAA-.... - значит прошивка закончилась), узнаем, какой IP ей назначил DHCP сервер и переходим в браузере по этому IP и видим веб страницу прошивки HAA, где необходимо указать только JSON Config, который есть на сайте

  • Для Sonof Basic есть уже готовый с базовым функционалом:

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

Копируем его в поле и жмем Save, реле перезагрузится, теперь осталось только добавить его в HomeKIt на вашем устройстве Apple. 

Открываем приложение Дом, , Добавить аксессуар, Нет кода.. , и видим устройство с названием HAA-.... выбираем его и указываем пароль 021-82-017.

P.S. JSON Config можно менять в зависимости от необходимого функционала, для этого есть конфигуратор. Встроив реле в ночник, я захотел оставить функционал родной кнопки, но она фиксированная - либо положение вкл. либо выкл. а родная кнопка на реле только кратковременно замыкается. Выпаиваем родную кнопку с платы и припаиваем провода от кнопки ночника, меняем JSON:

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

и все работает.


Полезная статья, спасибо за инфу и добро пожаловать!

Рекомендую прошивать прошивки от RC https://github.com/vglucas/HomeKitFlasher/wiki/README">этим. Удобно и быстро



Пробывал пару раз, так нормально и не заработал, плюс отсутствие анг, вроде должны добавить в след версиях 

Английского нет, но все и так же понятно. Работает идеально, прошивает и затирает раза в 2 быстрее предложенного варианта (хотя он тоже беспроигрышный). Плюс настройки уже все прописаны. Нормально не заработал, это как? Там установка долгая, но проблем с работой не наблюдал

Эта программа тоже запоминает пути и конфиги так что с этим проблем нет, стирание у меня идёт за 10-11 секунд, сама прошивка меньше минуты. Может у меня просто был не удачный опыт с итальянский программой, буду пробывать :)

Лайк, полезно! Опередил, хотел написать что то подобное,тогда с меня лого.

Договорились ;) 

  1. Почти всё так, но както на половину статья написана (Можно было дописать как менять json на прошитом устройстве и обновлять прошивку)

2. Подготовка:


скачиваем и устанавливаем последнюю версию Python с официального сайта; Зачем?

Но однозначно лайк

В этой статье хотел познакомить начинающих с базой, в след статье постепенно начнём настраивать Json под надобности пользователя. 

перепечатка вики от RC на русском языке? XD

Python зечем?

очень бы хотелось подробную инструкцию или мануал по конфигурированию JSON ... а то я так и не могу по нормальному ворота настроить ... подробности здесь в комментах https://sprut.ai/client/article/3328">https://sprut.ai/client/articl...

Важно добавить про web json конфигуратор который работает в две стороны

Есть ссылка в P.s. 

он отстает от Хосе по количеству подерживаемых устройств.
и там периодически новые переменные появляются, либо внутри девайсов заменяются на другие более логичные. так что этим конфигуратором надо с оглядкой на версию HAA пользоваться.

Этот конфигуратор не идеальный согласен, там и баги есть, при перекидывание кнопки на gp2 в дополнительных, в базовой настройкe он все равно вешает ее на gp0 

Добрый день. Спасибо за статью.

Добавите примеров больше разных.

Я пользуюсь ravencore 
в прошивке выставлял №6. Переключатель Basic + TH Sensor DTH22

Я так понял в HAA более точно можно настраивать?

Я бы прошился на HAA если можно сделать как sonoff 2ch + DTH22 но что писать в код я не знаю 

Подожди пару дней, я выложу вторую часть там будет подробнее по настройку и пример как работать с Json конфигуратором. 

там не то что более точно можно настроить, а фактически сделать любой немыслимый конфиг устройств.
RavenCore опирался на существующие физически устроства, а HAA позволяет создавать эти самые устройтсва.
Для 2ch+DHT22 в HAA у вас будет создано 3 акссесуара: 2 реле и датчик.

зачем было перепаивать, когда можно было указать тип кнопки "toggle"?

тогда переключение устройства будет происходить при смене состояния переключателя. просто если кнопка нажата, а вы выключили через смартфон, то всего лишь будет расхождение в визуальном состоянии.

Ну можно и не выпаивать, а просто запаралелить ей кнопку с ночника согласен,  в Json тип уже поменян. 

там даже параллелить не нужно, на платах сонофф есть место установки RF-модуля им и надо воспользоваться.
можно на пин RX повесить ваш выключатель и прописать его в конфиге (gpio3).

Согласен, про это будет в след статьях :), это рассчитана на начальный уровень пользователей. 

Класс жду продолжения если можно пример для ESP mini 

на GPIO14(D5) датчик DHT22, GPIO 0(D3) кнопка 1, GPIO12(D6) реле 1, GPIO 13(D7) светодиод,

реле 2 GPIO5(D1), кнопка 2 GPIO4(D2)

С соноф мини будет статья когда доедут и можно будет потестить в деле :) 3 статья будет по esp-01s 

Сам процесс прошивки описан хорошо. Полезная статья. Ждём продолжения - настройка и как JSON делать под свои нужды. Кстати как сделать сброс и повторную настройку JSON ? Прошивать по новой?

Спасибо, во второй статье постарался больше уделить Json, сейчас на модерации. Для того что бы устройство перевести в режим настройки Json необходимо 8 раз нажать кнопку. 

Я то думаю, почему у меня устройство отваливается после многократных нажатий.)) Спасибо.

Подскажите пожалуйста как сделать, что бы когда подавалось питание, рэле автоматически включалось

Большое спасибо за статью, все получилось буквально с первого раза.  Немного откорректировал JSON чтобы выключение происходило через 1,5 секунды после включения. Однако индикация в HK остается как включенная. Подскажите куда копать? 

Для автоматического выключения реле по таймеру, нужно добавить ключ "d", как в примере ниже, где он установлен на 600 секунд, что равняется 10 минутам.

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

А почему файлы не совпадают с тем что на рисунке и то что в архиве OTA?

Скрин брал с нета тк под рукой своего не было, во второй статье скрин реальный 

Все проходит ровно, вот только скачиваться прошивка не хочет, висит устройство в списке подключенных к сети и за час 600 килабайт скачало, пробовал на  S26 на BASIC и NOODMCU, везде одно и тоже, что не так ? Может сейчас проблемы с сервером, откуда прошивка скачатся должна, кто то сейчас ставит HAA, есть проблемы?

Вопрос решился! вышла новая версия HAA OTA 2.2.2

качаем новые файлы и наслаждаемся

https://github.com/RavenSystem/haa_ota/releases/latest/download/haaboot.bin">haaboot.bin


https://github.com/SuperHouse/esp-open-rtos/raw/master/bootloader/firmware_prebuilt/rboot.bin">rboot.bin 


https://github.com/SuperHouse/esp-open-rtos/raw/master/bootloader/firmware_prebuilt/blank_config.bin">blank_config.bin.

Оф.ссылка -  https://github.com/RavenSystem/esp-homekit-devices/wiki/Installation">https://github.com/RavenSystem/esp-homekit-devices/wiki/Installation

После прошивки по воздуху можно обновить до 2.2.2

Все работает норм!

Как происходит обновление по воздуху, может есть расписание какое? В веб-морде Sonoff есть галочка "Update all now (HAA OTA v3.0.2)" - выбираю, после нажимаю Save и ничего не происходит...

Кстати, да. Такая же ситуация. Но я думаю это из-за того что 3.0.2 на выходных только вышла.

Доброе утро! Помогите настроить Sonoff TH16, что бы и выключатель был, и температуру с влажностью показывал.


Есть у меня, Sonoff TH16 датчик DHT22, прошит на эту прошивку.

Использовал конфигуратор, ничегоне получилось.

Просто как выключатель работает, а с показометрами нет.



Спасибо.

json если вы его примотали к розетке: 


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

Всем привет. прошил по инструкции. но ПОЯВИЛАСЬ сеть LCM-C78076, а не TLC..... . к ней подключился. ввел сеть написал 

RavenSystem/haa нажал джойн сеть пропала и тишина прошло пол часа реакции нет. 

Присоединяюсь , такая же беда.

Алексей, Спасибо за указание конфигурации JSON для работы с кнопкой с фиксацией! То что нужно для работы с Bacic! 


У меня есть ещё двухканальный модуль Sonoff Dual R2. В нём первый канал управляется GPIO12, а второй GPIO5 если не путаю. Я честно несколько недель пытался сам намутить JSON чтобы и DUAL корректно работал с фикс кнопками, но не выходит что-то...

Знаете ли вы (или кто-то другой) как правильно его сконфигурировать? Спасибо :)

Сам отвечу на свой вопрос! :) Наконец-то с .....й попытки разобрался как это работает. Если кому-то тоже нужно чтобы Sonoff Dual R2 работал с выключателями или кнопками с фиксацией можете использовать следующий JSON:

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


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