Hoval Gateway Demo
This repository contains a sample file demonstrating how to parse the data flowing through the Hoval CAN bus used by Hoval heaters and other appliances from Hoval.
Not everything is recognized yet. Only request and response for data points are recognized.
- Raspberry PI
- CAN Transceiver and adapter (for example from Alibaba or Wish..) [https://www.alibaba.com/product-detail/Mcp2515-Mcp2515-Wholesale-Module-MCP2515-Receiver_62040051131.html?spm=a2700.galleryofferlist.normal_offer.2.1f39384bvdG9Yp&s=p]
Modify your CAN adapter and wire it to the Raspberry PI by following https://www.raspberrypi.org/forums/viewtopic.php?t=141052
Connect the CAN adapter to the H,L and ground lines of your Hoval appliance. Depending on the appliance it requires opening up the panel with the screen. Behind it there are a lot of connectors. One of them is labelled 'CAN bus'. You can connect your 3 wires (H, L and ground) there.
Flash the latest Debian version on your Raspberry PI
In your PI, open /boot/config.txt and add:
Install the can-utils, and python3 if not installed:
sudo apt-get install -y can-utils python3
Install needed python packages:
pip3 install python-can paho-mqtt
Setup the CAN adpater to be up at boot time with 50kbps that matches Hoval CAN bus speed:
echo "ip link set can0 up type can bitrate 50000" >> /etc/rc.local
Reboot the PI
Hoval GW Python script
The python script opens the
can0 device on the PI, listen for some of the datapoints and report them to MQTT server specified at the begining of the file. You need to adapt the following variable from the
hoval-gw.py file so that it matches your MQTT broker (for example using home-assistant):
# Change this to match your Home-Assistant / MQTT broker broker = '192.168.0.96' # IP of MQTT / Home-assistant MQTT broker_username = "hoval" broker_password = "hoval"
And then run it:
You can then configure home assistant with for example:
sensor: - platform: mqtt state_topic: "hoval-gw/Eau chaude réelle SF" unique_id: "hoval-gw-eau" name: "Eau chaude" unit_of_measurement: °C
This way you will get the following in your home assistant instance: