| Предыдущая версия справа и слева
Предыдущая версия
Следующая версия
|
Предыдущая версия
|
iot:firmware:ravensystem:haa:sonoff:rfr2 [2021/01/19 09:33] Николай Солошин [Чтение прошивки] |
iot:firmware:ravensystem:haa:sonoff:rfr2 [2022/02/16 19:09] (текущий) Николай Солошин ↷ Операцией перемещения обновлены ссылки |
| |
| Эта статья описывает процедуру OTA-прошивки и настройки реле Sonoff RFR2 с использованием программатора USB-TTL и скрипта Esptool под RavenSystem "HAA"((Она же "RavenCore v2", она же "Home Accessory Architect".)), которая позволяет напрямую добавить устройство в HomeKit((Оно же приложение "Дом" или "Home App" на iPhone/iPad.)). | Эта статья описывает процедуру OTA-прошивки и настройки реле Sonoff RFR2 с использованием программатора USB-TTL и скрипта Esptool под RavenSystem "HAA"((Она же "RavenCore v2", она же "Home Accessory Architect".)), которая позволяет напрямую добавить устройство в HomeKit((Оно же приложение "Дом" или "Home App" на iPhone/iPad.)). |
| | |
| | :!: Прошивка под Tasmota [[iot:firmware:tasmota:sonoff:rfr2:turn_off_the_light|рассмотрена тут]]. |
| |
| ===== Фотографии ===== | ===== Фотографии ===== |
| |
| {{:homekit:ravensystem:haa:sonoff:sonoff-rfr2.jpg?nolink&695|}} | {{iot:firmware:ravensystem:haa:sonoff:sonoff-rfr2.jpg?nolink&695|}} |
| {{:homekit:ravensystem:haa:sonoff:sonoff-rfr2-full.jpg?linkonly|Полноразмерные фото}}. | \\ {{iot:firmware:ravensystem:haa:sonoff:sonoff-rfr2-full.jpg?linkonly|Полноразмерные фото}}. |
| |
| ===== Подготовка ===== | ===== Подготовка ===== |
| ===== Подключение ===== | ===== Подключение ===== |
| |
| - Припаять гребенку на плату((Она находится {{:homekit:ravensystem:haa:sonoff:sonoff-rfr2-pins.jpg?linkonly|тут}}, расписание выводов на обратной стороне платы.)); | - Припаять гребенку на плату((Она находится {{iot:firmware:ravensystem:haa:sonoff:sonoff-rfr2-pins.jpg?linkonly|тут}}, расписание выводов на обратной стороне платы.)); |
| - Проверить напряжение на программаторе -- **должно быть 3V3**((Обычно, это, или джампер или микропереключатель на плате, к {{:homekit:ravensystem:haa:sonoff:usb-ttl-3v3.jpg?linkonly|примеру}}.)); | - Проверить напряжение на программаторе -- **должно быть 3V3**((Обычно, это, или джампер или микропереключатель на плате, к {{iot:firmware:ravensystem:haa:sonoff:usb-ttl-3v3.jpg?linkonly|примеру}}.)); |
| - Соединить контакты, перекрестив прием и передачу((То есть, на реле контакт RX подключить к контакту TX на конвертере, а TX, соответственно, к RX.)), а остальные соединить прямо((Т.е. 3V3 к 3V3, а GND к GND.)); | - Соединить контакты, перекрестив прием и передачу((То есть, на реле контакт RX подключить к контакту TX на конвертере, а TX, соответственно, к RX.)), а остальные соединить прямо((Т.е. 3V3 к 3V3, а GND к GND.)); |
| - Нажать кнопку на реле, вставить программатор в USB и сразу кнопку отпустить((Ничего держать и считать секунды не надо! Нажали, вставили, отпустили.)). | - Нажать кнопку на реле, вставить программатор в USB и сразу кнопку отпустить((Ничего держать и считать секунды не надо! Нажали, вставили, отпустили.)). |
| ===== Прошивка ===== | ===== Прошивка ===== |
| |
| Для последующего удобства работы, создайте папку, к примеру, "Temp" в корне системного диска ((Чаще всего, это "C:".)) и перейдите в нее, набрав в консоли команду ''cd c:\Temp''. | Для последующего удобства работы, создайте папку, к примеру, "Temp" в корне системного диска((Чаще всего, это "C:".)) и перейдите в нее, набрав в консоли команду ''cd c:\Temp''. |
| |
| ==== Проверка соединения ==== | ==== Проверка соединения ==== |
| Перед любыми манипуляциями с использованием программатора, необходимо сделать резервную копию заводской прошивки((Ходят слухи, что прошивка привязывается к аппаратному обеспечению и не подходит от другого такого же устройства... Не проверял.))! | Перед любыми манипуляциями с использованием программатора, необходимо сделать резервную копию заводской прошивки((Ходят слухи, что прошивка привязывается к аппаратному обеспечению и не подходит от другого такого же устройства... Не проверял.))! |
| |
| Для этого сперва надо узнать объем флеш-памяти((На момент написания статьи, реле Sonoff RFR2 содержит 1 мегабайт встроенной флеш-памяти и все команды, по умолчанию, указаны для этого размера!)), введя команду ''esptool.py flash_id'', а потом команду ''esptool.py read_flash 0x000000 0x100000 flash_backup.bin'', изменив значение "0x100000" на соответствующее((Для 1 мб, будет "0x100000", для двух -- "0x200000" и т.д.)). | Для этого сперва надо узнать объем флеш-памяти((На момент написания статьи, реле Sonoff RFR2 содержит 1 мегабайт встроенной флеш-памяти и все команды, по умолчанию, указаны для этого размера!)), введя команду ''esptool.py flash_id''. |
| | |
| | <code winbatch>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... |
| | Manufacturer: 51 |
| | Device: 4014 |
| | Detected flash size: 1MB |
| | Hard resetting via RTS pin...</code> |
| | |
| | Потом команду ''esptool.py read_flash 0x000000 0x100000 flash_backup.bin'', изменив значение "0x100000" на соответствующее((Для 1 мб, будет "0x100000", для двух -- "0x200000" и т.д.)). |
| |
| <code winbatch>esptool.py v3.0 | <code winbatch>esptool.py v3.0 |
| //На мой взгляд, второй вариант, хоть и быстрее, но более сложный и муторный. Ввиду этого, я пользуюсь первым, т.к. подождать минут 5-10, пока устройство докачает необходимые данные, для меня не проблема.// | //На мой взгляд, второй вариант, хоть и быстрее, но более сложный и муторный. Ввиду этого, я пользуюсь первым, т.к. подождать минут 5-10, пока устройство докачает необходимые данные, для меня не проблема.// |
| |
| Для OTA прошивки, нужно загрузить [[https://github.com/RavenSystem/haa/releases|из репозитория]] последний релиз файла "fullhaaboot.bin", сохранить его в рабочей папке и выполнить команду ''esptool.py write_flash -fs 1MB -fm dout -ff 40m 0x0 fullhaaboot.bin''((На момент написания статьи, реле Sonoff RFR2 содержит 1 мегабайт встроенной флеш-памяти и все команды, по умолчанию, указаны для этого размера!)), указав правильный объем памяти. | Для OTA прошивки, нужно загрузить [[https://github.com/RavenSystem/haa/releases|из репозитория]] последний релиз((На момент написания статьи используется релиз за номером 4.3.x. Также проверена версия 6.8.x -- пока все соответствует.)) файла "fullhaaboot.bin", сохранить его в рабочей папке и выполнить команду ''esptool.py write_flash -fs 1MB -fm dout -ff 40m 0x0 fullhaaboot.bin''((На момент написания статьи, реле Sonoff RFR2 содержит 1 мегабайт встроенной флеш-памяти и все команды, по умолчанию, указаны для этого размера!)), указав правильный объем памяти. |
| |
| Аналогичный вывод показывает, что все хорошо: | Аналогичный вывод показывает, что все хорошо: |
| - открыть список доступных сетей на телефоне или ноутбуке; | - открыть список доступных сетей на телефоне или ноутбуке; |
| - подключиться сети, название которой начинается на "HAA-" и содержит [[#read_mac|MAC-адрес]] свежепрошитого реле; | - подключиться сети, название которой начинается на "HAA-" и содержит [[#read_mac|MAC-адрес]] свежепрошитого реле; |
| - ввести SSID и пароль к вашей сети и нажать "Save". | - перейти браузером по адресу ''<nowiki>http://192.168.4.1:4567</nowiki>''(("Captive portal" отключили в [[https://github.com/RavenSystem/esp-homekit-devices/releases/tag/HAA_4.9.0|HAA v4.9.0]] и [[https://github.com/RavenSystem/esp-homekit-devices/releases/tag/HAAOTA_4.4.0|HAA OTA v4.4.0]]... Зачем?!)), ввести SSID и пароль к вашей сети и нажать "Save". |
| |
| Теперь осталось подождать минут 5-10, пока на устройство загрузятся все необходимые данные и оно не начнет открываться по выданному вашим DHCP-сервером адресу. | Теперь осталось подождать минут 5-10, пока на устройство загрузятся все необходимые данные и оно не начнет открываться по выданному вашим DHCP-сервером адресу на порту 4567((Изменили в [[https://github.com/RavenSystem/esp-homekit-devices/releases/tag/HAA_4.9.0|HAA v4.9.0]] и [[https://github.com/RavenSystem/esp-homekit-devices/releases/tag/HAAOTA_4.4.0|HAA OTA v4.4.0]], раньше открывалось по стандартному порту 80... Не менее -- зачем?!)). |
| |
| ==== JSON строка ==== | ==== Строка JSON ==== |
| |
| Тут все просто и одновременно не очень, т.к. формат этой строки совершенно не интуитивен и без постоянного подглядывания в [[https://github.com/RavenSystem/esp-homekit-devices/wiki/Configuration|документацию]] малопонятен... если не сказать большего... LOL | Тут все просто и одновременно не очень, т.к. формат этой строки совершенно не интуитивен и без постоянного подглядывания в [[https://github.com/RavenSystem/esp-homekit-devices/wiki/Configuration|документацию]] малопонятен... если не сказать большего... LOL |
| |
| <code javascript>{"c":{"l":13,"b":[{"g":0,"t":5}],"z":0},"a":[{"0":{"r":[{"g":12}]},"1":{"r":[{"g":12,"v":1}]},"b":[{"g":0}]}]}</code> | <code javascript>{"c":{"l":13,"b":[{"g":0,"t":5}],"z":0},"a":[{"0":{"r":[{"g":12}]},"1":{"r":[{"g":12,"v":1}]},"b":[{"g":0}]}]}</code> |
| | |
| | Для автоматического выключения реле по таймеру, нужно добавить ключ ''<nowiki>"d"</nowiki>'', как в примере ниже, где он установлен на 600 секунд, что равняется 10 минутам. |
| | |
| | <code javascript>{"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}]}</code> |
| |
| :!: //Для перевода реле в режим настройки после записи строки, нужно нажать физическую кнопку на корпусе и подержать ее 8 секунд! В обычном режиме веб-сервер прошивки не доступен!// | :!: //Для перевода реле в режим настройки после записи строки, нужно нажать физическую кнопку на корпусе и подержать ее 8 секунд! В обычном режиме веб-сервер прошивки не доступен!// |
| |
| Собственно, на этом и все! Осталось только добавить в HomeKit, используя {{ :homekit:ravensystem:haa:sonoff:haa-homekit2.jpg?linkonly |этот код}} и радоваться современной и удобной жизни! ;-) | Собственно, на этом и все! Осталось только добавить в HomeKit, используя {{ iot:firmware:ravensystem:haa:sonoff:haa-homekit2.jpg?linkonly |этот код}} и радоваться современной и удобной жизни! ;-) |
| |
| ==== Сопряжение ==== | ==== Сопряжение ==== |
| |
| Для сопряжения выключателей с устройством, на реле нужно нажать кнопку на 3 секунды, пока светодиод не моргнет один раз, и нажать нужную кнопку на выключателе. Для удаления -- нажать на 5 секунд, пока не моргнет 2 раза. | Для сопряжения выключателей с устройством, на реле нужно нажать кнопку на 3 секунды, пока светодиод не моргнет один раз, и нажать нужную кнопку на выключателе. Для удаления -- нажать на 5 секунд, пока не моргнет 2 раза. |