Wow, a number of people have started following this project recently, and I realized I haven't written any updates in several months... So just to let you all know, yes this project is still alive!
One of the problems I had with the code was random lockups every few days (and always in the middle of the night). After posting about the problem on Reddit I found an answer -- the horizontal scroll bar at the bottom of the display was sucking up resources because of the timing constraints, however I didn't want to completely eliminate the option because it still shows a lot of useful information. The solution was to disable the scrolling whenever it gets dark out. Because of the sunlight sensor, the scrolling will resume if you turn the lights on, but at night when nobody is looking at it anyway there is no need to continue showing the information. This has worked fantastic! I've had the ESP32 running in the greenhouse all Winter, and only had a single lockup during that time.
I also upgraded to an 8-port relay board. I want to rewire my small heaters so I can control both the fan and heating elements of each of the heaters. It would also be nice if I could control the high/low setting of each of the heaters. At most this would require up to six relays, however a reasonable setup would be to use a single relay to turn on both heating elements to low, a second relay to turn on both heating elements to high, and two more relays to individually turn on each heater (if the heating elements are turned off then only the fans will be running). I'll have to tear apart the heaters over the Summer to see if this is even possible with these particular units.
One other issue I ran into at the end of last year's growing season... these heaters REALLY pull a lot of juice! I have electrical cords rated for 15 amps, however the three-way blocks I plugged in to the end of each cord apparently could not take the heat, and literally melted. I would assume since I've been using this setup for a few years now that corrosion in the plugs increased the heat, but I also noted the blocks were only rated for 12A. I have replaced the blocks with some heavy-duty power strips, and we'll see if that helps. Gotta be real careful with that stuff, it would really suck to burn down my greenhouse!
And finally, I got a 3D printer this year. Exciting stuff, and I've already started designing boxes for other projects, so I may design a box for this one as well, unless I find a suitable ready-made box at the hardware store. I basically need something large enough to hold all of the electronics plus eight power outlets isolated from the electronics, plus two more outlets wired in before the relays to provide power to the electronics. Whew, that's a lot of outlets...