Recently, I start to use my electronics and programming skills to implement an home automation solution. For that, I use the OpenHAB2 software, that I find to be very flexible and that fits my needs.
I would like to have a wired network of sensors (pushbuttons, temperature, humidity, water level...). After research, I went to the following conclusions:
- KNX is powerfull, fits my needs, but is horribly expensive. (even just a transceiver)
- Many solutions from suppliers works with ethernet network, and I don't want that to be connected to internet, for safety reasons.
- I really want wired and not wireless. Because I think it's much more reliable and I don't want to live in a microwave oven.
- It exists some CAN-based free projects, but are usually provided with one other software, and mainly server-based (centralized) instead of producer-consumer based (decentralized).
So, I decide to propose my own implementation of an home automation system. Physical layer is done by a CAN bus, because transceivers are cheap and CAN bus is wired and reliable on long distances.
I used an OrangePi Zero+ (RaspberryPi-like platform) for the OpenHAB server, that is on my electric wiring box. The sensors and actuators are controlled locally using Arduino-based platform. Everything is then connected together throw a CAN-network, with MCP2515/MCP2551 as CAN-bus controller/transceiver.
The source code can be found on GitLab repo: