Yeah I'd thought of that. But the engine would need to be running for it to work and I don't want to have it idling all night while we sleep.
Hear me out... I don't mean use a block heater in the usual way...
This is an 850W unit, and you'd run a battery dead PDQ, but if you got a lower power unit (which would likely require a separate pump), add a controller, and maybe ditch the engine heating part, I'll bet you can get a night's worth of heat out of a battery no prob.
If you were REALLY clever, you could use the thermal mass in the engine coolant from when it was running, in a heat exchanger configuration, selective pre-heat water in a tank, and then use that the engine to kick start the whole thing while driving (or a single warm up cycle for being stationary). Then the heater is running on a much lower duty cycle to just maintain the temperature of the system. You're definitely not buying that off the shelf, but if you're halfway savvy with Python (thinking Raspberry Pi), it'd be an easy afternoon's exercise. Pi, thermo-sensor(s) of some sort (I tend to over-instrument, but I'm thinking one for the water and one for the air in the bed, possibly a third for the coolant), servo actuated valves, a bunch of PEX, a tank, some insulation... I've not actually put together a build sheet or anything, but I'll bet you could be fully operational to a high degree in well under $500.
Coolant side:
engine ==== temp sensor ==== valve === heater ==== || heat exchanger interface
...........................................................||==== pump =====||
Potable side:
heat exchanger interface.... tank ||==== temp sensor ======= run through insulated floor ====||
.........................................................|| === pump ==== valve in ==== valve out =================||
Software side:
sensor reading coolant temp to automatically open engine side valve to pre-charge off engine heat
sensor reading water temp to turn heating element on/off
sensor reading air temp to turn recirculating pump on/off
pump to circulate
solenoid actuated valves
Switches for manual operation
Flip switch in advance to pre-heat hot water tank via engine coolant, simply opens valve to engine, then monitors temp to keep water from getting too hot, shuts off if temp gets too high
Once engine is off, continue using coolant to maintain temp until coolant temp falls below water temp set point
Once coolant temp falls below set point, switch to heating element with high/low switch gates
While air temp is low, operate pump on high/low switch gates
Flip switch in the morning in preparation for starting to pump heat back into coolant/engine
I think that's about all the bases... If you really want to get fancy, I've used an iPhone screen on a ready-made plug in board for a very nice touchscreen interface. They're cheap.