# espressod
Espresso Machine Control - HomeKit and Promtheus enabled

```
Usage of ./espressod:
  -db string
    	Database path (default "./db")
  -gpio
    	load gpio code (default true)
  -maxTemp float
    	Maximum temperature value (default 130)
  -metrics
    	Enable prometheus metrics (default true)
  -minTemp float
    	Minimum temperature value (default 10)
  -name string
    	Device name (default "Astoria Boiler Thermostat")
  -pin string
    	Homekit Pairing PIN (default "00102003")
  -promPort int
    	Port to reigster /metrics handler on (default 2112)
  -stepTemp float
    	Temperature setting step size (default 0.1)
```

# How to Use
`espressod` is a standalone golang daemon that creates a Thermostat accessory for use in HomeKit. It also exposes most of the metrics relevant to the operation of the system via a prometheus instrumentation URI. Starting the daemon with no options will setup the accessory and try to control the boiler via a solid state relay. A momentary switch changes the setpoint from min to max and back.

# Why I Wrote This

I purchased a second hand commerical espresso machine a few years ago, and it is far too much work to turn it on and then wait the 30+ minutes for it to warm up fully. I was also concerend with how much power it was drawing. So I in-lined a 40A 250V Solid State Relay which I hooked to a raspberry pi, and wired a PT100 temperature sensor into the boiler. I now have very precise and very easy to automate temperature control of the machine.

Some details can be found on [The Guru College](http://gurucollege.net/post/astoria-argenta-sae-project/).