Introduction: Arduino for a Wired Home Assistant Network

About: I don't know

Wifi components like the various Sonoff, Tasmota and ESP8266 are very easy to configure and use, but things often are not easy as they appear.

In industrial/business environments wireless automation is not so common. Wireless components are less reliable than their wired counterparts.

Would you use a wireless smoke sensor in a factory? I don't think so. And why use a wifi magnetic door sensor in your home?

Wired sensors/actuators are very more reliable, don't need battery, no radio waves in your home.

What i did is an hardware component that can be connected via RS-485 to a home assistant controller (via the Modbus platform). It's based on an arduino. It's similar to the Sonoff switch/relay, but it's wired.

It can act as a light controller (via a relay and an input for the buttons).

It can act as a remote switch (via a relay and an input for the buttons).

It can act as a thermostat.

It can act as a temperature sensor.

A single arduino board can be all these things at the same time, with many input/outputs connected.

Step 1: Build the Hardware Part

You need an arduino board.

I've used an arduino nano but others will be ok.

Connect the Rs-485 converter, a display if you plan to use it, relay(s) and set it up for push buttons.

Step 2: Flash the Firmware

Code can be found at https://github.com/andrea1388/ArduinoModBusHomeAssistant

Don't forget to configure it before copiling. You need to set up the pins used as input, outputs, if it have a Temperature sensor, a display and so on

Step 3: Configure Home Assistant

Edit the configuration.yaml

climate:
- platform: modbus name: Thermostat slave: 1 target_temp_register: 0 current_temp_register: 2 data_count: 2 precision: 1 unit_of_measurement: °C data_type: float

Step 4: Connect the Arduino With the Raspberry Running Home Assistant

Usa a RS-485 USB dongle. You can find it on ebay or amazon. It's very cheap.

Step 5: Restart Home Assistant

Now you can see the temperature set point and control it. Set point can be controlled via automation script and from other components. Using a google assistant you can modify the temperature via vocal commands.