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