This project implements monitoring and basic controlling of a panasonic aquarea heatpump in an environment with a heatmeter and an electricity meter. Especially the controlling is still to be done.
This project is made to be run on a HouseBus Node but follows the Arduino / Platform IO project style and should be easily portable to other microcontrollers supported by Arduino/PlatformIO.
- Basically an STM32F072 board with CAN enabled.
- STM32Duino Arduino Core.
- uavcan v1 for communication via CAN bus, implemented using the 107 systems Arduino UAVCAN library.
- Basic Arduino STM32F072 CAN implementation from nopnop2002
- CAN bootloader from the original HouseBus Node project - use a standard linker file if the application is to be used standalone.
- UART to Panasonic Aquarea heatpump (Thanks to HeishaMon for all the protocol reverse engineering!)
- UART to UART/MBUS Adapter to Engelmann Sensostar U heat meter, could with little software changes work with any other MBUS heatmeter or MBUS/Infrared
- 1x UART in Rx Only mode to read Easymeter Q3DA electricity meter
- (Planned: Second Q3DA electricity meter for electrical heater)
- CAN to house bus
Connect everything together, see source code for connection details.
If you don't want to use the CAN bootloader, you have to remove the custom linker file in the custom board settings (boards/
).
Be aware, that the STM32 uses 3.3 V I/O level, but has mostly 5V tolerant pins. I went safe and added a 360 ohms serial resistor and a protection diode to 3.3V on the heatpump lines (also as they go outdoor).
The node starts transmitting UAVCAN messages for all the connected meters regularly, listen to them using Yakut or write them to influx db with UAVCANv1 InfluxDB writer.
Basic control is implemented with the uavcan.node.ExecuteCommand.1.1
command. See source code for details as this is WIP.