The system needs to do the following things: operate a PID loop that: reads from the temperature sensor writes to the duty cycle stores the error etc for PID make available to homekit: read the current temperature write the desired temperature read the off/heating/cooling status write the off/heating/cooling status make available to web interface: read the current temperature write the desired temperature read the off/heating/cooling status write the off/heating/cooling status make available to promtheus interface: current temperature current heating/cooling errors with things metrics core logic: read/write the setpoint read/write available the setpoint read/write available the current temp read/write available the state of off/heating/cooling read the current temperature from the MAX318650 operate a PID loop that con