If outside temp < 0.5C system turns ON. OFF if outside temp > 1.0C.
When system is ON the bottom of the Frisbee is maintained above freezing by turning on and off a short length of deicing cable.
When ON it's 60 watts but at -5C outside temp it only needs to be ON 10% of the time or 6 watts continuous so very little power if controlled this way.
Assuming significant thermal gradient required from the bottom of the Frisbee to the top of the water surface the setpoint is dependent on the outside temp, temp2. Code for this:
absoutside = fabs(temp2); //absolute value of outside temp. fabs is for floating point
if (enable == 1) setpoint = 4.0 + (absoutside/4.0); // setpoint temp
We will see if this change keeps it ice free when it's really cold for minimal power.
I could let it freeze overnight when the birds don't use it as the controller has a clock but it I'm not sure that's a good idea.
NodeMCU components and program is based on this project: https://hackaday.io/project/171474-wifi-waterbed-temperature-control
ESP32 Cam mounted inside a dollar store fake security cam: https://hackaday.io/project/175152-detect-water-leaks-with-a-10-wifi-webcam
5,000 Volt Birdfeeder: https://hackaday.io/project/172250-5000-volt-birdfeeder
All my control devices are monitored and controlled from web page HMIs hosted on the devices. HTML web page code is part of the control code in Arduino IDE.