I've used a raspberry pi zeri along with a temperature sensor (ds18b20) and a usb wifi dongle. The device reports back the temperature of the spa every 5 minutes to thingspeak, where alarm for low temperature or no incoming data are triggered, and notification if sent throughmaker.ifttt.com
That way I get an email when the temperature is lower than it should. I have not put the sensor in its final spot (which will be where the filter is) but I'm planning to use it as a water level too. If I put at the right spot, when the water gets lower (i.e. through evaporation or some leak), the temperature reported will be lower than expected (97-100F) and would trigger an alarm. So 2 checks with a single sensor.
I wrote a simple script reading the sensor file (1-wire sensor), script runs through the cronjob every 5 minutes and relay the info through wifi, to thingspeak. Result is the 2 charts below. In thingspeak, I've setup 2 "react", one for "no data for 30 minutes" in case the spa loses power, and one to check if temperature is lower than 95 for 15 minutes. In both cases, if threshold is met, a url is sent (through HTTPThing in thingspeak) to maker.ifttt.com. Ifttt.com takes the incoming url along with the data (current temperature) and sends an email which I could technically forward as a text message too I guess.
I've used the radio power supply (12v) with a regulator to power the raspberry, that should be sufficient. I may put the temperature sensor where the longnose's is (ozone injector), still not sure. It is just hanging on the side until I decide what I'll do.
I used a few scripts from the internet to create my own script. feel free to modify and copy whatever you want here.
I'll leave this running for a while, and i'm planning to add a few probes this summer. I have a ph probe for example. I'll also replicate this to monitor the pool, especially the ph and the salt level.
-one wire sendor
setup raspbian (lite) on your sdcard
boot raspberry pi
enable one wire (https://pinout.xyz/pinout/1_wire) through /boot/config.txt
build the one wire dongle as shown in the pictures of this post
plug the one wire
copy the python templogger.py file from this to your raspberry pi
edit the templogger.py to add your own thingspeak key
you have to edit the python to put your own device id
try manually the python "python templogger.py"
add a cronjob for the script to be called every 5 minutes
that's pretty much it. At this stage you have to configure thingspeak and IFFT.