Show HN: Hacking Bluetooth to brew coffee in GitHub actions (grack.com)
This is my adventure reverse engineering a De'Longhi coffeemaker's Bluetooth-Low-Energy-based protocol, writing a rust CLI for it, and hooking it up to GitHub actions to let us brew from either the browser or the GitHub app by filing issues (all the coffee are defined in issue templates).
37 comments
[ 0.32 ms ] story [ 87.4 ms ] threadOr maybe even the whole the Hyper Text Coffee Pot Control Protocol (HTCPCP)
https://en.m.wikipedia.org/wiki/Hyper_Text_Coffee_Pot_Contro...
I've tried to work with several different BTLE libraries in the past, and I've always had a ton of problems.
btleplug works flawlessly, has as good of an API as is possible given the intrinsic complexity, and is a pleasure to use.
Thank you btleplug team <3
btleplug[2] is great, but at least on Linux I prefer using bluez_async directly, which btleplug is just an interface for there[3], to avoid one more layer of dependencies.
bluez_async is quite similar to btleplug, and, from my experience, if you know one you can use the other just fine.
[1]: https://docs.rs/bluez-async/0.6.0/bluez_async/index.html
[2]: https://docs.rs/btleplug/0.10.4/btleplug/index.html
[3]: https://github.com/deviceplug/btleplug/blob/d6d8ba5486eba5d7...
But I also love coffee so you should send this to James Hoffman and see if he'll do a video on it
Building a GUI or TUI would be a fun addition too!
That said, it's super cool, I'm sure the author enjoyed this and I myself would definitely try to do it too, if I had a chance :D
THANKS FOR THIS.
Now I just need to have a robot putting cups under the dispenser
[1] https://www.bbc.com/news/technology-20439301
[2] https://en.wikipedia.org/wiki/Hyper_Text_Coffee_Pot_Control_...
https://en.m.wikipedia.org/wiki/Utah_teapot
(Ok, technically that is a tea pot. but the two do share a common design an form factor).
> the eye-watering price.
> $1,699.99 (Was $2,099.99, -19%)
F@&$ing hell
It may already be in your write-up, but if it is I missed it, sorry.
The application specifically allows you to program defaults and save beverages, so this is fully supported once you have the recipes decoded.
to be fair, 0 = unlimited isn't an unheard of setting
yeah, that sounds like fun stuff to explore - playing with different values. How granular is it?
The milk is measured in 1/10s of a second of flow, most likely because the volume depends on the foam setting.
I haven't gone as far as pushing the machine out of bounds intentionally, or even sending a parameter that's considered invalid yet.
Some suffer from broken or outdated Android apps like my Eurochron A620 bluetooth thermometer - the only way to make it work on a modern Android version is to hack it like the OP did. (If only old apps would make their source code publicly available...)
So this article is very much appreciated.