2018-05-13 11:37:02 +02:00
OTA Update Component
====================
2018-11-14 22:12:27 +01:00
.. seo ::
:description: Instructions for setting up Over-The-Air (OTA) updates for ESPs to upload firmwares remotely.
2018-11-19 18:32:16 +01:00
:image: system-update.png
2018-11-14 22:12:27 +01:00
:keywords: Xiaomi, Mi Flora, BLE, Bluetooth
2018-05-13 11:37:02 +02:00
With the OTA (Over The Air) update component you can upload your
firmware binaries to your node without having to use an USB cable for
uploads. esphomeyaml natively supports this through its `` run `` and
`` upload `` helper scripts.
2018-07-31 20:26:53 +02:00
.. note ::
Please be aware that ESP8266 modules must be reset after a serial
upload before OTA can work.
When you are trying to conduct an OTA update and receive an error message
`` Bad Answer: ERR: ERROR[11]: Invalid bootstrapping `` the reason is
very likely that power-cycling the ESP module is required once after
the serial upload.
2018-05-13 11:37:02 +02:00
Optionally, you can also define a password to use for OTA updates so
that an intruder isn’ t able to upload any firmware to the ESP without
having hardware access to it. This password is also hashed
automatically, so an intruder can’ t extract the password from the
binary.
esphomelib also supports an “OTA safe mode”. If for some reason your
node gets into a boot loop, esphomelib will automatically try to detect
this and will go over into a safe mode after 10 unsuccessful boot
attempts. In that mode, all components are disabled and only Serial
Logging+WiFi+OTA are initialized, so that you can upload a new binary.
2018-11-19 18:32:16 +01:00
.. code-block :: yaml
2018-05-13 11:37:02 +02:00
# Example configuration entry
ota:
safe_mode: True
password: VERYSECURE
Configuration variables:
2018-08-24 22:44:01 +02:00
------------------------
2018-05-13 11:37:02 +02:00
- **safe_mode** (*Optional* , boolean): Whether to enable safe mode.
Defaults to `` True `` .
- **password** (*Optional* , string): The password to use for updates.
- **port** (*Optional* , int): The port to use for OTA updates. Defaults
to `` 3232 `` for the ESP32 and `` 8266 `` for the ESP8266.
2018-06-01 18:10:00 +02:00
- **id** (*Optional* , :ref: `config-id` ): Manually specify the ID used for code generation.
2019-01-17 17:07:57 +01:00
Updating the password:
----------------------
Since the password is used both for compiling and uploading the regular `` esphomeyaml <file> run `` won't work of course. This issue can be worked around by executing the operations separately through a `` on_boot `` trigger:
.. code-block :: yaml
esphomeyaml:
on_boot:
- lambda: |-
id(ota).set_auth_password("New password");
ota:
password: "Old password"
id: ota
2018-10-07 10:04:14 +02:00
.. note ::
If you get errors like
.. code ::
ERROR [esphomeyaml.espota] Failed
ERROR [esphomeyaml.espota] Host livingroom.local Not Found
when attempting to upload via OTA, please try setting a :ref: `manual IP for WiFi <wifi-manual_ip>` .
2018-06-01 18:10:00 +02:00
See Also
--------
2019-02-07 13:54:45 +01:00
- :apiref: `ota_component.h`
- :ghedit: `Edit`
2018-10-12 16:33:22 +02:00
.. disqus ::