> For the complete documentation index, see [llms.txt](https://wiki.blynk.su/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.blynk.su/blynk-legacy/rezhim-ota.md).

# Режим OTA

* ## ОТА <a href="#ota" id="ota"></a>

  Blynk поддерживает беспроводные обновления для таких плат как: ESP8266, NodeMCU и SparkFun Blynk. OTA пока поддерживается только для локальных серверов.

### Как это работает? <a href="#ota-how-does-it-work" id="ota-how-does-it-work"></a>

* Вам нужно использовать [обычный скетч для экспортированных приложений](https://github.com/blynkkk/blynk-library/tree/v0.6.1/examples/Blynk.Inject/Template_ESP8266) ;
* После того, как вы запустили свое оборудование, вы готовы к OTA;
* Вы можете запустить обновление прошивки для конкретного оборудования с помощью его [токена ](https://wiki.blynk.su/blynk-legacy/pages/S74rTuiYke9cWffAcOPm#4.-token-avtorizacii)или для всего оборудования.

#### Поток <a href="#ota-how-does-it-work-flow" id="ota-how-does-it-work-flow"></a>

1. Пользователь с правами администратора запускает OTA с помощью одного из HTTPS-запросов;
2. Пользователь предоставляет в HTTPS-запросе учетные данные администратора и двоичный файл встроенного ПО для обновления оборудования;
3. Когда оборудование подключается к серверу - сервер проверяет его прошивку. В случае, если дата сборки прошивки оборудования отличается от загруженной прошивки, сервер отправляет аппаратному обеспечению специальную команду с URL-адресом новой прошивки;
4. Получение URL-адреса новой версии прошивки с помощью [обработчика](https://github.com/blynkkk/blynk-library/blob/v0.6.1/examples/Blynk.Inject/Template_ESP8266/OTA.h): &#x20;

   ```clike
      BLYNK_WRITE(InternalPinOTA) {
       // Получение ссылки на файл прошивки
       // Пример: http://localhost:8080/static/ota/FUp_2441873656843727242_upload.bin
       overTheAirURL = param.asString();
       ...
     }
   ```
5. Оборудование загружает новую прошивку и начинает обновление

### Примеры команд <a href="#ota-trigger-update-for-the-specific-hardware" id="ota-trigger-update-for-the-specific-hardware"></a>

#### Запустить обновление для конкретного оборудования <a href="#ota-trigger-update-for-the-specific-hardware" id="ota-trigger-update-for-the-specific-hardware"></a>

```
curl -v -F file=@Template_ESP8266.ino.nodemcu.bin --insecure -u admin@blynk.cc:admin https://localhost:9443/admin/ota/start?token=123
```

* `Template_ESP8266.ino.nodemcu.bin`- относительный (или полный) путь к вашей прошивке;
* `--insecure`флаг для серверов с самогенерируемыми сертификатами. Вам не нужен этот флаг, если вы использовали Let's Encrypt или другие доверенные сертификаты;
* `admin@blynk.cc:admin`учетные данные администратора на вашем сервере. Это значения по умолчанию. Формат `username:password`. Вы можете изменить его в `server.properties`файле;
* [`token`](https://wiki.blynk.su/blynk-legacy/pages/S74rTuiYke9cWffAcOPm#4.-token-avtorizacii)— это идентификатор вашего оборудования, к которому вы хотите применить обновление прошивки. [Обновление прошивки будет запущено только в том случае, если устройство находится в сети](#user-content-fn-1)[^1];

#### Запустить обновление всех устройств  <a href="#ota-trigger-ota-for-all-devices" id="ota-trigger-ota-for-all-devices"></a>

Обновление для всех устройств будет запущено только при их подключении к локальному серверу.&#x20;

```
curl -v -F file=@Template_ESP8266.ino.nodemcu.bin --insecure -u admin@blynk.cc:admin https://localhost:9443/admin/ota/start
```

В этом случае OTA сработает сразу после подключения устройства к серверу. Если устройство подключено к сети, обновление прошивки будет инициировано только после повторного подключения устройства.

#### Запустить обновление для конкретного пользователя <a href="#ota-trigger-ota-for-the-specific-user" id="ota-trigger-ota-for-the-specific-user"></a>

В этом случае обновление прошивки будет запущено для всех устройств указанного пользователя.

```
curl -v -F file=@Template_ESP8266.ino.nodemcu.bin --insecure -u admin@blynk.cc:admin https://localhost:9443/admin/ota/start?user=pupkin@gmail.com
```

#### Запустить обновление для конкретного проекта пользователя <a href="#ota-trigger-ota-for-specific-user-and-project" id="ota-trigger-ota-for-specific-user-and-project"></a>

В этом случае обновление прошивки будет запущено для всех устройств указанного пользователя в рамках указанного проекта.

```
curl -v -F file=@Template_ESP8266.ino.nodemcu.bin --insecure -u admin@blynk.cc:admin https://localhost:9443/admin/ota/start?user=pupkin@gmail.com&project=123
```

#### Остановить обновление <a href="#ota-stop-ota" id="ota-stop-ota"></a>

```
curl -v --insecure -u admin@blynk.cc:admin https://localhost:9443/admin/ota/stop
```

### Как собрать прошивку <a href="#ota-how-to-make-firmware" id="ota-how-to-make-firmware"></a>

Для того, чтобы собрать прошивку в Arduino IDE - зайдите в меню: Скетч -> Экспорт бинарного файла.

*ВНИМАНИЕ:* ESP8266 сейчас принимает прошивку только через HTTP, а не HTTPS.

[^1]: !ВНИМАНИЕ! Обновить отправленную команду на обновление оборудования нельзя, пока не будет выполнена команда [остановки обновления](#ota-stop-ota)
