If you know ESPHome, you can skip most of this document and just use the template in the [ESPHome Configuration](ESPHome Configuration/esp360-default-1.yaml) folder.
if you don't know much about esphome this guide will guide you through the installation process. if you need more information you can head to [Discord](https://discord.gg/PsrK3KDkRy) and if you see something that is not clear enough, do not hesistate to make a pull request and improve the documentation for everybody.
there are three way to use your device :
* standalone : good if you plan to setup the device once and forget about it, interract with your device using a webpage
* ESPhome : good if you plan to change the configuration often and add more esphome device, interract with your device using a webpage
* home assistant : if you use it aldready, it has a ESPhome plugin and the step are close the the ESPhome one. interract through home assistant
you also need to follow the next step no matter what setup you choose and finnish with the template step.
# Universal first step
for this step you will require a USB-C cable that has power + data (a normal cable should but some cheap aliexpress cable only have the power wire and no data wire) and a computer with chrome or edge browser (no firefox)
open the following [link](https://web.esphome.io/) in your browser once the device is connected to your computer using the USB-C cable
and select the USB-Serial device, if no USB serial device appear, ensure your USB cable is good and that you have the CH240X driver (the tool give you the link to install the driver if needed)
as you can see it's empty. this is only the generic ESPHome configuration. follow to the next section to compile the firmware with the IR, RF and sensors feature
# Standalone
first follow this guide that will help you install the compiler for the ESPhome firmware
here is what the template looks like. you can edit the name field and the wifi ssid + password with your
```
esphome:
name: esp360-default-1
friendly_name: ESP360-default-1
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
api:
encryption:
...
```
you can add your own action.
this is an example that send an IR code that turn ON and OFF a fan.
you will need to adapt the transmit_nec function to your protocol and replace the address and command field accordingly
```
- platform: template
name: "fan"
turn_on_action:
remote_transmitter.transmit_nec:
transmitter_id: IR_TX
address: 0xFE01
command: 0xE21D
turn_off_action:
remote_transmitter.transmit_nec:
transmitter_id: IR_TX
address: 0xFE01
command: 0xE21D
```
if you dont know theses, you can start by compilling the base template and go to the webpage of the ESP 360 remote, you should see a terminal that display the data from the sensors and the IR + RF transceiver
just point the remote you want to clone toward the ESP 360 remote and look at the code display in the terminal.
this line give you the protocol (NEC) the address and the command. if you have another protocol lookup in the ESPhome documentation the specific syntax.
Edit the example template with your value and add as many as you need for every function of your remote you want to clone and use from the ESP 360 Remote.