Command Line Interface ====================== .. seo:: :description: Documentation for the command line interface of ESPHome. Base Usage ---------- ESPHome's command line interface always has the following format .. code-block:: console esphome [ARGUMENTS] .. note:: You can specify multiple configuration files in the command line interface, just list all files in front of the like so: .. code-block:: console esphome livingroom.yaml kitchen.yaml run ``run`` Command --------------- The ``esphome run`` command is the most common command for ESPHome. It * Validates the configuration * Compiles a firmware * Uploads the firmware (over OTA or USB) * Starts the log view .. program:: esphome run .. option:: --upload-port UPLOAD_PORT Manually specify the upload port/ip to use. For example ``/dev/cu.SLAB_USBtoUART``. .. option:: --no-logs Disable starting log view. .. option:: --topic TOPIC Manually set the topic to subscribe to for MQTT logs (defaults to the one in the configuration). .. option:: --username USERNAME Manually set the username to subscribe with for MQTT logs (defaults to the one in the configuration). .. option:: --password PASSWORD Manually set the password to subscribe with for MQTT logs (defaults to the one in the configuration). .. option:: --client-id CLIENT_ID Manually set the client ID to subscribe with for MQTT logs (defaults to a randomly chosen one). .. option:: --host-port HOST_PORT Specify the host port to use for legacy Over the Air uploads. ``config`` Command ------------------ .. program:: esphome config The ``esphome config`` validates the configuration and displays the validation result. ``compile`` Command ------------------- .. program:: esphome compile The ``esphome compile`` validates the configuration and compiles the firmware. .. option:: --only-generate If set, only generates the C++ source code and does not compile the firmware. ``upload`` Command ------------------ .. program:: esphome upload The ``esphome upload`` validates the configuration and uploads the most recent firmware build. .. option:: --upload-port UPLOAD_PORT Manually specify the upload port/ip to use. For example ``/dev/cu.SLAB_USBtoUART``. .. option:: --host-port HOST_PORT Specify the host port to use for legacy Over the Air uploads. ``clean-mqtt`` Command ---------------------- .. program:: esphome clean-mqtt The ``esphome clean-mqtt`` cleans retained MQTT discovery messages from the MQTT broker. See :ref:`mqtt-using_with_home_assistant`. .. option:: --topic TOPIC Manually set the topic to clean retained messages from (defaults to the MQTT discovery topic of the node). .. option:: --username USERNAME Manually set the username to subscribe with. .. option:: --password PASSWORD Manually set the password to subscribe with. .. option:: --client-id CLIENT_ID Manually set the client ID to subscribe with. ``wizard`` Command ------------------ .. program:: esphome wizard The ``esphome wizard`` command starts the esphome configuration creation wizard. ``mqtt-fingerprint`` Command ---------------------------- .. program:: esphome mqtt-fingerprint The ``esphome mqtt-fingerprint`` command shows the MQTT SSL fingerprints of the remote used for SSL MQTT connections. See :ref:`mqtt-ssl_fingerprints`. ``version`` Command ------------------- .. program:: esphome version The ``esphome version`` command shows the current ESPHome version and exits. ``clean`` Command ----------------- .. program:: esphome clean The ``esphome clean`` command cleans all build files and can help with some build issues. ``hass-config`` Command ----------------------- .. program:: esphome hass-config The ``esphome hass-config`` command shows an auto-generated Home Assistant configuration for the ESPHome node configuration file. This is useful if you're not using MQTT discovery. ``dashboard`` Command --------------------- .. program:: esphome dashboard The ``esphome dashboard`` command starts the esphome dashboard server for using esphome through a graphical user interface. .. option:: --port PORT Manually set the HTTP port to open connections on (defaults to 6052) .. option:: --password PASSWORD The optional password to require for all requests. .. option:: --open-ui If set, opens the dashboard UI in a browser once the server is up and running.