This guide is written to collection monitoring data from a Batrium BMS (and Outback Solar Mate3) and display it on a nice dashboard accessible from any web-connected device on your home network, using a Raspberry Pi4.
(If you don’t have a Mate3, you can simply ignore all mentions of it.)
How this all will work.
Your Batrium is broadcasting data over your wifi at all times.
If applicable, your Mate3 generates a JSON file which you access on your home network.
Node-red ingests, sorts, and saves this data in a database created by InfluxDB
Grafana reads this database, and displays the data in a lovely dashboard, which you can access from any web-connected device on your local wifi network.
Assumptions made in this guide is that you have:
- an operational solar/battery system
- a grasp of Ohm’s law
- all devices running and connected to your wireless network.
- a lack of fear for the command line interface (CLI)
I have used many sources, guides, snippets, code, and images from strangers on the internet which will be linked on the final page of this guide.
Wanna skip ahead?
Part 1 : Hardware configuration
Part 2 : Installing software
Part 3 : Configuring Grafana
Part 4 : Credits and final thoughts
Overview of hardware.
In this post, we’ll go over my current hardware configuration as to give you context on why I have done some of the things in this guide.
This guide was written with the following hardware in mind:
|Solar Charge Controller||MX60|
|Solar Charge Controller||FX60|
|Inverter Communications Hub||Mate3|
|Raspberry Pi + LCD Monitor||Pi 4|
|Windows Computer||Windows 10|
If you have an older Raspberry Pi or use a different operating system on your home PC, this should guide should still work, you might just have to use different software (SSH client, IP address finder, etc).
At the very least, this guide should get you 95% of the way there.
I am running two banks of batteries, built from 128x 202Ah 3.2v CATL LiFePO4 cells from Deligreen on Alibaba.
As our inverters are built for “24” volts and each individual LiFePO4 cell is nominally 3.2 volts, each bank is made from eight batteries in series (negative to positive to negative to positive), and each battery comprises of eight individual cells – creating a 8s8p configuration at 25.6v with 64 cells in total – bank with 12,928 amp hours at 3.2v, or 41.37kWh of available power… and we have two of these banks running in parallel.
If we pretend for a second that all of the specification on the cells can be believed (and we weren’t sold B-grade cells), our cells are rated at 1C charge and 3C discharge.
This means that we can theoretically charge our battery setup at a rate of 3232 amps, with a maximum discharge rate of 9696 amps (252kW at 26v!) – long story short, these batteries should theoretically be able to handle any power we throw at/ask of them… our DC breakers will trip and interconnect cables will burn out long before reaching the amp limits of our cells.
Outback Power Mate 3, Inverter(s), and Solar Charge Controller(s)
A solar charge controller takes the high voltage (40v+) from a solar photovoltaic (PV) array and turns it into a voltage compatible with your battery bank – in our case, 26v. We have a Outback Power MX60 and FX60, both capable of 60 amps each. At a battery bank voltage of 26v, this means I can bring in a maximum of 3120 watts (higher or lower battery voltages will change this maximum power input negligably).
An inverter takes the low voltage of your battery bank, and converts it to your local home voltage (whether that be 120v, 220v, 230v, 240v). I have three 3500kW inverters, which means that I have approximately 10,500kW worth of power available to use in my home. Please keep in mind that 10.5kW at 230v (in NZ) is 45.6amps, which doesn’t sound like a lot… but when that power is coming out of my batteries at 26v, it’s pulling over 400amps (!!!), which is a heck of a lot of amps to be pulling through cables if you accidentally undersized them.
The Mate3 is a little compute unit which talks to all of the Outback Solar inverters and chargers, make sure they are doing the right thing. Charging the batteries to the correct voltage levels, not exceeding amp limits, let the owner know if any fans or temp sensors die prematurely (which happens annoyingly often… at a cost of $40USD per replacement fan and $30USD a sensor, yowch!)
A Batrium is a Battery Monitor System (BMS) which does what it says on the box – basically monitors all of the cells in your bank to ensure that everything is hunky dory, and cells aren’t going out of balance (ie, remain the same voltage).
This whole “remain the same voltage” wasn’t an issue in the past with lead acid batteries, which (to my limited knowledge) apparently self-balanced themselves… but I’m not lead acid expert.
The Batrium BMS we use is called the Watchmon 4 (WM4). The WM4 is a central little single board compute unit which controls a string of battery cell monitors called “Longmons“. Each Longmon is daisy chained to one another, and sits on each row of 8x paralleled cells to monitor their voltage and essentially “burn off” power if the cells ever stray away from the mean voltage of the rest of the pack. As we have two packs of 8s8p cells, we need 16 Longmons to measure each row of 8p cells.
For the purposes of this guide, any modern Watchmon model which connects to wifi should work, as long as it’s broadcasting it’s cell info over your network (ie, if you install WatchMon Toolkit and it displays your cell data, you’re gucci.)
Finally, while I have sixteen longmons sending data to my Pi4 database, it is trivial to add more monitors to the database, which we will go into on a later step.
The Raspberry Pi 4 (RPi4) is a tiny single-board computer which runs Linux, and should set you back $35 freedom dollars, or closer to $100 dollaryoos if you live elsewhere.. The version I have is the 2gb model and runs Linux Debian Buster, if that means anything to you. The 2gb isn’t super great if you want to do anything with a relatively heavy workload, but it works just find for the database stuff we’ll be tackling shortly.
This guide is based on Raspberry Pi OS (32-bit), Debian Buster, released on 2021-01-11. If you have a new RPi4, please use Raspberry Pi Imager to install the latest version of RPi OS onto a MicroSD card 16gb or larger.