I thought it might be interesting and enlightening to share the DIY tech that helps us all live our best off-grid lives. If you have a PV array that can produce 100 kWh in the depths of winter, this might not be the topic for you. For those of us who have to pay attention to the solar energy forecast and juggle our EV charging (or pool heater, etc.) around it, let's chat about what you've invented or deployed to make it easier to get close to (or better than) an on-grid day to day experience.
I'll start.
We're in southwest Victoria, Australia, within earshot of the Southern Ocean at -38.7 degrees latitude. We're 70km from town and off-grid for electricity and water, with propane deliveries for cooktop, hot water and slab hydronic heating. We have 23 kW of roof-top PV, 60 kWh of DIY LiFePO4 batteries supported by a full Victron setup and a 10 kVA genny (used maybe twice a year). Our primary loads comprise a Tesla Model Y, two large heat pumps, two ovens, a washer, heat-pump dryer and dishwasher. Rooftop rainwater is stored in a 120K litre tank and we have a 6K litre tank fed from the river for watering the garden.
Challenges:
1. Make it easy to charge the car without having to pay attention to the house battery SOC
2. Ensure the house water tank doesn't empty due to a burst hose or tap left on
3. Ensure the garden water tank is full in summer
I solved #1 with a combination of Node Red, the Tesla BLE proxy running in a Raspberry pi, the Solcast API, Home Assistant and mqtt to integrate it all. It took me some time and many iterations to determine how I wanted this to work. In summary, Node Red is the mastermind. If I plug in the EV, it will start charging under Node Red control of the supplied current. It considers the current house battery SOC, the forecast PV (by hour) for the next 24 hours and the forecast power usage (by hour, based on yesterday's). In automatic mode, the house battery will get enough power to hit 95% before nightfall, with the car being given the excess (calculated every 20 seconds). If I've forgotten to charge the car and there's surplus PV, it'll start charging the car in auto mode. It'll protect the house battery from unacceptable discharge by reducing or stopping charging.
I can set manual mode on an HA dashboard if I want to set a specific car charging rate. If it calculates that the house SOC will be below a given value within the next 12 hours, it will enter automatic mode to vary EV charging based on available PV or stop it if the SOC is forecast below threshold.
All of this info is available on the HA dashboard, with the key data being the forecast minimum SOC over the coming 12 and 24 hours and when next we'll hit 100%.
Much easier was solving #2, with a solar-powered Arduino and an ultrasonic transducer on our tank. This measures the water level and sends data via LORA radio to a LORA-MQTT gateway. There's a wifi smart plug (Shelly) on the house water pump that allows it to be controlled and to report on/off. Node Red picks up these data and will alert me via Telegram or Pushover if the tank is draining rapidly. This saved us once when a hose burst while we were away.
The answer to #3 is a solar powered pump from Aliexpress 100m down the hill. It pumps from our river-fed stock water system up to the house, controlled by another Arduino and an ultrasonic transducer on the garden tank, but this time communicating via LORA to an Arduino on the pump. The pump is on until the sun isn't or the tank is full. A similar setup controls pumping of river water into our main stock tank.
All of these elements send data that winds up in InfluxDB and is visualised with Grafana. Victron has very flexible options for DIY automation and I've chosen to use the mqtt broker running in the Victron Cerbo GX. Solcast is one external (cloud-based) dependency and the Tesla API is the other. The BLE proxy allows me to locally control the car charging with as many API calls as I want, whereas the Tesla API is severely rate-limited. I now only use that api to determine the car's state of charge for display on the dashboard, but I could live without it.
Two dashboard screenshots are attached. Note that power used for car charging is excluded from the forecast, as it's too variable. The forecast is updated hourly.
Over to you! Share what you've cooked up to make your life easier.
Tesla ble proxy: https://github.com/wimaha/TeslaBleHttpProxy
Solcast: https://toolkit.solcast.com.au/
Node Red: https://nodered.org/
Arduino w/LORA: https://lowpowerlab.com/
LORA mqtt gateway: https://github.com/1technophile/OpenMQTTGateway
I'll start.
We're in southwest Victoria, Australia, within earshot of the Southern Ocean at -38.7 degrees latitude. We're 70km from town and off-grid for electricity and water, with propane deliveries for cooktop, hot water and slab hydronic heating. We have 23 kW of roof-top PV, 60 kWh of DIY LiFePO4 batteries supported by a full Victron setup and a 10 kVA genny (used maybe twice a year). Our primary loads comprise a Tesla Model Y, two large heat pumps, two ovens, a washer, heat-pump dryer and dishwasher. Rooftop rainwater is stored in a 120K litre tank and we have a 6K litre tank fed from the river for watering the garden.
Challenges:
1. Make it easy to charge the car without having to pay attention to the house battery SOC
2. Ensure the house water tank doesn't empty due to a burst hose or tap left on
3. Ensure the garden water tank is full in summer
I solved #1 with a combination of Node Red, the Tesla BLE proxy running in a Raspberry pi, the Solcast API, Home Assistant and mqtt to integrate it all. It took me some time and many iterations to determine how I wanted this to work. In summary, Node Red is the mastermind. If I plug in the EV, it will start charging under Node Red control of the supplied current. It considers the current house battery SOC, the forecast PV (by hour) for the next 24 hours and the forecast power usage (by hour, based on yesterday's). In automatic mode, the house battery will get enough power to hit 95% before nightfall, with the car being given the excess (calculated every 20 seconds). If I've forgotten to charge the car and there's surplus PV, it'll start charging the car in auto mode. It'll protect the house battery from unacceptable discharge by reducing or stopping charging.
I can set manual mode on an HA dashboard if I want to set a specific car charging rate. If it calculates that the house SOC will be below a given value within the next 12 hours, it will enter automatic mode to vary EV charging based on available PV or stop it if the SOC is forecast below threshold.
All of this info is available on the HA dashboard, with the key data being the forecast minimum SOC over the coming 12 and 24 hours and when next we'll hit 100%.
Much easier was solving #2, with a solar-powered Arduino and an ultrasonic transducer on our tank. This measures the water level and sends data via LORA radio to a LORA-MQTT gateway. There's a wifi smart plug (Shelly) on the house water pump that allows it to be controlled and to report on/off. Node Red picks up these data and will alert me via Telegram or Pushover if the tank is draining rapidly. This saved us once when a hose burst while we were away.
The answer to #3 is a solar powered pump from Aliexpress 100m down the hill. It pumps from our river-fed stock water system up to the house, controlled by another Arduino and an ultrasonic transducer on the garden tank, but this time communicating via LORA to an Arduino on the pump. The pump is on until the sun isn't or the tank is full. A similar setup controls pumping of river water into our main stock tank.
All of these elements send data that winds up in InfluxDB and is visualised with Grafana. Victron has very flexible options for DIY automation and I've chosen to use the mqtt broker running in the Victron Cerbo GX. Solcast is one external (cloud-based) dependency and the Tesla API is the other. The BLE proxy allows me to locally control the car charging with as many API calls as I want, whereas the Tesla API is severely rate-limited. I now only use that api to determine the car's state of charge for display on the dashboard, but I could live without it.
Two dashboard screenshots are attached. Note that power used for car charging is excluded from the forecast, as it's too variable. The forecast is updated hourly.
Over to you! Share what you've cooked up to make your life easier.
Tesla ble proxy: https://github.com/wimaha/TeslaBleHttpProxy
Solcast: https://toolkit.solcast.com.au/
Node Red: https://nodered.org/
Arduino w/LORA: https://lowpowerlab.com/
LORA mqtt gateway: https://github.com/1technophile/OpenMQTTGateway
Attachments
Last edited: