Suggestion for implementing home automation with RPi, HA and multiple Arduino, across serial Modbus RS485

Hi everyone, I hope that the section is right; anyway I need some suggestions from the community of HA to establish home automation with RPi and multiple Arduino .

What does single element:

  • Raspberry with home assistant stays for remote connection to home automation (android app, generic HUB) and to manage the scenario, implementing the logic of automation, etc.
  • multiple Arduino manages the “actuators/sensor” scattered around the house. They physically drive the end sensor to operate, read the value from the digital sensor, manage the thermostat, manage AC, manage power sockets, etc…

My goals are 2:

  • install sensors, energy meters, switches, potentiometers, cameras, actuators, etc… in every room, distant from each other
  • use cabled technology, no wireless, no Zigbee, Bluetooth or radio (only if it’s necessary, maybe only for video signal…)

The architecture i supposed to use is :

  1. HA, on raspberry Pi 4
  2. With Modbus on rs485 and an RS485 CAN HAT Controller establish the communication among all the device (logic HA master, and other slaves)
  3. Multiple slave Arduino with a MAX485 module, for commuting and decoding serial communication
  4. Single Arduino read/write information on the register and actuates the commands written on a specific area of register for the driver they own

So RPi and multiple Arduino slaves share a register with all the sensor states; every single Arduino read only the block they are interested in, and RPi refreshes Modbus constantly.

My questions are:

  1. This architecture, is the best way to achieve my goals?
  2. If it’s right, which hardware is natively compatible with HA, to achieve these goals? RS485 CAN HAT? ESPHome is mostly used for wireless communication…
  3. Also to manage multiple Arduino, placed in each room, what’s the best ways?
  4. Where and how I can manage events like “power on the light if sensor XY was activated” coming from Modbus register info, all from HA environment?
    4.bis. It’s suggested/possible to manage the event for some changes on the Modbus register or it’s better to write an updating cycling for these changes?

Thanks, HA community