Инструменты пользователя

Инструменты сайта


iot:firmware:ravensystem:haa:sonoff:rfr2

Это старая версия документа!


Прошивка Sonoff RFR2 под RavenSystem HAA

Эта статья описывает процедуру OTA-прошивки и настройки реле Sonoff RFR2 с использованием адаптера USB-TTL и Esptool под RavenSystem HAA1), которая позволяет напрямую добавить устройство в HomeKit2).

Фотографии

Подготовка

  1. Скачать и установить Python;
  2. Запустить Командную строку от имени администратора;
  3. Ввести команду pip install esptool.

Подключение

  1. Припаять гребенку на плату3);
  2. Проверить напряжение на программаторе – должно быть 3V3;
  3. Соединить контакты, перекрестив прием и передачу4), а остальные соединить прямо5);
  4. Нажать кнопку на реле, вставить программатор в USB и сразу кнопку отпустить6).

Прошивка

Для последующего удобства работы, создайте папку, к примеру, «Temp» в корне системного диска 7) и перейдите в нее, набрав в консоли команду cd c:\Temp.

Проверка соединения

Введите, к примеру, команду esptool.py read_mac8). Если в ответ скрипт выдаст примерно следующее, то все хорошо, можно приступать к дальнейшим действиям.

esptool.py v3.0
Found 1 serial ports
Serial port COM3
Connecting....
Detecting chip type... ESP8266
Chip is ESP8285
Features: WiFi, Embedded Flash
Crystal is 26MHz
MAC: XX:XX:XX:XX:XX:XX
Uploading stub...
Running stub...
Stub running...
MAC: XX:XX:XX:XX:XX:XX
Hard resetting via RTS pin...

:!: После выполнения каждой команды нужно переподключить программатор!

Чтение прошивки

Перед любыми манипуляциями с использованием программатора, необходимо сделать резервную копию заводской прошивки9)!

Для этого сперва надо узнать объем флеш-памяти10), введя команду esptool.py flash_id. Потом команду esptool.py read_flash 0x000000 0x100000 flash_backup.bin, отредактировав значение «0x100000» на соответствующее11).

esptool.py v3.0
Found 1 serial ports
Serial port COM3
Connecting....
Detecting chip type... ESP8266
Chip is ESP8285
Features: WiFi, Embedded Flash
Crystal is 26MHz
MAC: XX:XX:XX:XX:XX:XX
Uploading stub...
Running stub...
Stub running...
1048576 (100 %)
1048576 (100 %)
Read 1048576 bytes at 0x0 in 96.2 seconds (87.2 kbit/s)...
Hard resetting via RTS pin...

Очистка флеш-памяти

Перед записью новой прошивки желательно полностью очистить флеш-память от всего наследия, которое там может остаться. Для этого введите команду esptool.py erase_flash:

esptool.py v3.0
Found 1 serial ports
Serial port COM3
Connecting....
Detecting chip type... ESP8266
Chip is ESP8285
Features: WiFi, Embedded Flash
Crystal is 26MHz
MAC: XX:XX:XX:XX:XX:XX
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 1.0s
Hard resetting via RTS pin...

Запись прошивки

Вообще, RavenCore программатором можно прошивать двумя способами:

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

На мой взгляд, второй вариант, хоть и быстрее, но более сложный и муторный. Ввиду этого, я пользуюсь первым, т.к. подождать минут 5-10, пока устройство докачает необходимые данные, для меня не проблема.

Для OTA прошивки, нужно загрузить из репозитория последний релиз файла «fullhaaboot.bin», сохранить его в рабочей папке и выполнить команду esptool.py write_flash -fs 1MB -fm dout -ff 40m 0x0 fullhaaboot.bin12), указав правильный объем памяти.

Аналогичный вывод показывает, что все хорошо:

esptool.py v3.0
Found 1 serial ports
Serial port COM3
Connecting....
Detecting chip type... ESP8266
Chip is ESP8285
Features: WiFi, Embedded Flash
Crystal is 26MHz
MAC: XX:XX:XX:XX:XX:XX
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Compressed 403308 bytes to 285570...
Wrote 403308 bytes (285570 compressed) at 0x00000000 in 25.1 seconds (effective 128.4 kbit/s)...
Hash of data verified.
 
Leaving...
Hard resetting via RTS pin...

Конфигурация

Настройка данной прошивки, в общем случае, сводится к подключению ее к Wi-Fi-сети и записи в нее JSON строки, описывающей конфигурацию устройства.

Wi-Fi-сеть

Для подключения к Wi-Fi-сети, нужно:

  1. открыть список доступных сетей на телефоне или ноутбуке;
  2. подключиться сети, название которой начинается на «HAA-» и содержит MAC-адрес свежепрошитого реле;
  3. ввести SSID и пароль к вашей сети и нажать «Save».

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

JSON строка

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

В общем, для работы реле RFR2 нужно открыть страницу конфигурации устройства, вставить в поле «JSON Config» эту строку и нажать «Save»:

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

:!: Для перевода реле в режим настройки после записи строки, нужно нажать физическую кнопку на корпусе и подержать ее 8 секунд! В обычном режиме веб-сервер прошивки не доступен!

Собственно, на этом и все! Осталось только добавить в HomeKit, используя этот код и радоваться современной и удобной жизни! ;-)

Сопряжение

Для сопряжения выключателей с устройством, на реле нужно нажать кнопку на 3 секунды, пока светодиод не моргнет один раз, и нажать нужную кнопку на выключателе. Для удаления – нажать на 5 секунд, пока не моргнет 2 раза.

1)
Она же «RavenCore v2», она же «Home Accessory Architect».
2)
Оно же приложение «Дом» или «Home App» на iPhone/iPad.
3)
Она находится тут, расписание выводов на обратной стороне платы.
4)
То есть, на реле контакт RX подключить к контакту TX на конвертере, а TX, соответственно, к RX.
5)
Т.е. 3V3 к 3V3, а GND к GND.
6)
Ничего держать и считать секунды не надо! Нажали, вставили, отпустили.
7)
Чаще всего, это «C:».
8)
В версии Esptool 3.0 ничего кроме указывать не надо! В общем случае, и порт, и скорость, и всё прочее она определит сама.
9)
Ходят слухи, что прошивка привязывается к аппаратному обеспечению и не подходит от другого такого же устройства… Не проверял.
10) , 12)
На момент написания статьи, реле Sonoff RFR2 содержит 1 мегабайт встроенной флеш-памяти и все команды, по умолчанию, указаны для этого размера!
11)
Для 1 мб, будет «0x100000», для двух – «0x200000» и т.д.

Обсуждение

Ваш комментарий:
O S I T​ Y D K D​ W D A H Q C A K
 
Последнее изменение: 2022/02/12 11:40 (внешнее изменение)