I think this needs to be part of an overloaded class. There are many potential kinds of controller that need different data and we can't make a table for every one.
This will handle the specifics of controlling the temp. Because we are controlling real world machines there is more to it than meets the eye...
You need
Target temp
An over-temp tolerance (this is the margin you are prepared to accept over the target temp. If it's zero it will be switching the heater/cooler on and off constantly)
An under-temp tolerance (as above)
Compressor delay. It takes time for a compressor (eg in a fridge) to start working and doesn't do it much good to be rapidly turned on and off so this is the minimum delay between switch ons (eg 5-10mins). Assume this is on the cooler channel only.
Temp offset. If we know the temp sensor is off for some reason we can correct here
We will need some stateless storage to do the timings.
Needs to be able to gracefully handle the thermometer signal disappearing, as they are likely to be BLE.
I think this needs to be part of an overloaded class. There are many potential kinds of controller that need different data and we can't make a table for every one.
This will handle the specifics of controlling the temp. Because we are controlling real world machines there is more to it than meets the eye...
You need
We will need some stateless storage to do the timings.
Needs to be able to gracefully handle the thermometer signal disappearing, as they are likely to be BLE.
Also this needs some logging.