The Arduino device family are microcontroller boards that are often based on the ATmega328 chip. They come with digital input/output pins (some can be used as PWM outputs), analog inputs, and a USB connection. The equipment depends on the type of the board. The most common ones are the Arduino Uno and the Arduino Leonardo with 14 digital input/output pins and 6 analog input pins.
There are a lot of extensions (so-called shields) available. Those shields can be plugged-in into the existing connectors and stacked on top of each other. This makes it possible to expand the capabilities of the Arduino boards.
arduino integration is designed to let you use a directly attached board to your Home Assistant host over USB.
There is currently support for the following device types within Home Assistant:
To integrate an Arduino boards with Home Assistant, add the following section to your
# Example configuration.yaml entry arduino: port: /dev/ttyACM0
The exact number can be determined with the command shown below.
$ ls /dev/ttyACM*
If that’s not working, check your
journalctl -f output. Keep in mind that Arduino clones are often using a different name for the port (e.g.,
Add the user who is used to run Home Assistant to the groups to allow access to the serial port.
$ sudo usermod -a -G dialout,lock $USER
arduino sensor platform allows you to get numerical values from an analog input pin of an Arduino board. Usually the value is between 0 and 1024.
To enable an Arduino sensor with Home Assistant, add the following section to your
# Example configuration.yaml entry sensor: platform: arduino pins: 1: name: Door switch 0: name: Brightness
The 6 analog pins of an Arduino UNO are numbered from A0 to A5.
arduino switch platform allows you to control the digital pins of your Arduino board. Support for switching pins is limited to high/on and low/off of the digital pins. PWM (pin 3, 5, 6, 9, 10, and 11 on an Arduino Uno) is not supported yet.
To enable the Arduino pins with Home Assistant, add the following section to your
# Example configuration.yaml entry switch: platform: arduino pins: 11: name: Fan Office 12: name: Light Desk initial: true negate: true
List of of pins to use.
The pin number that corresponds with the pin numbering schema of your board.
The digital pins are numbered from 0 to 13 on a Arduino UNO. The available pins are 2 till 13. For testing purposes you can use pin 13 because with that pin you can control the internal LED.