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