Here's my current setup. I'm getting ready for summer (Australia) and will soon have more solar than I can store, as well as hibernating the wood heater till next winter.
Key idea is to monitor battery amps and gradually step up current to the heater. If the battery current goes negative, you step down the heater current. It rides conditions.
This Raspberry Pi setup responds to MQTT data to drive a buck converter which will sink spare power into my water heater. It positions itself as lowest priority, modulating the buck current against: MPPT state, PV voltage, battery current, AC draw and so on. It never consumes battery power for heating purposes.
You could implement this idea without the Sorel TDC but you'll need sense water tank temp using a cheap analogue or digital temp probe.
Here's a pic:
And remote dashboard for same here: https://community.victronenergy.com/idea/160811/hot-water-heater-opportunity-load.html
Here's the mini TFT display giving me a summary of what's going on: