See the intro video on YouTube:
This project requires a Sonoff flashed with Tasmota (or any wifi enabled device that has a REST API) and an RPi Pico W (an RPi without wireless also works with a wifi coprocessor with some code changes).
You may need to tune your P I and D terms accordingly depending on the ambient teperature and the heating characteristics of your hotpot.
There is a rudimentary recovery built-in to the program such that if it crashes (most often with the DS18B20 having CRC errors) it will try to save the state onto the SD card and reboot the microcontroller, which upon boot will check if there is a state written and will try to reload the latest target temperature and continue from there. Currently there's a bug with the time elapsed where it does not properly recover from it when a reboot happens.