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. Only 0.24 kWh per day at -11C.
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 = 15.0 + (absoutside/2);
We will see if this change keeps it ice free when it's really cold for minimal power. So far it stays liquid in the center at -27C uncovered.
Temperatures are compared to the average of 10 values every 6 seconds from the previous 60 secs. New values are only accepted if within 2 degrees of the average to eliminate the odd bad value.
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. I may cover it overnight with a piece of foam if it's really cold.
We sometimes see -35C so the NodeMCU controller also has a temperature controlled heater. The controller and components are inside a small plastic box with a 5 Watt Christmas light as a heater and another temperature sensor. All of this is wrapped in house insulation inside a big plastic box. It hardly needs any power to maintain between 5 and 7C. About 20% or 1 Watt at -7C outside. Warmer than ambient also stops condensation in the box.
The ESP32 Cam board runs warm so I only put some insulation behind it. You can read the temp with a handheld infrared temp sensor from the front. It's around 15C above ambient. A little warmth also keeps condensation off the front of the fake security cam.
NodeMCU components and program is based on this project: https://hackaday.io/project/171474-wifi-waterbed-temperature-control
$10 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
See new and improved metal version with easily removable lexan roof to keep the snow and rain off of it. Bonus feature: When the squirrels get zapped they also get hit in the head when they leap up. Now they mostly avoid it.
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.
Update: Added small quick-release toggle clamps to hold the roof posts instead of the large spring clamps.
See pics in Files.