Before I even received my Decent Espresso Machine I was searching for possibilities to integrate the machine with Home Automation systems.
On the diaspora I stubled upon the Web API created by Johanna Schander (https://github.com/decentespresso/de1app/tree/main/de1plus/plugins/web_api) and also the more detailed API by Henrik Pejer (https://github.com/pejer/decentespresso_module_system/tree/modules/modules/pejer_web_api). The second one was integrated directly to the app. So it will break with every update. Since there is a good working plugin system I thought this should be used.
I talked to both and with their "blessing" I combined both ideas and added mine to it.
- get a simple or detailed state of the machine
- change the state to standby or enable it
- get, display or download shot files
- get, download or upload profiles
- Copy the files to the plugin folder into a folder called "advanced_rest_api".
- Adjust the plugin settings in the settings file if needed.
- Activate the plugin in the app settings.
There is a documentation about all available API endpoints in the attached json - which is also displayed in the Web UI.
Navigate to http://DECENT-IP:8888 in your preferred browser. The port can be changed in the settings. 8080 should be prevented if it is used with the webcast feature.
There is example configuration for Home Assistant (https://home-assistant.io) in the homeassistant directory.
As requested I added a Homebridge accessory config.
- install the Homebridge Http Switch Plugin (https://github.com/Supereg/homebridge-http-switch)
- create a new device and add the example configuration
Update: there is now a better way to integrate this plugin with Homebridge: https://github.com/muelmx/homebridge-decent-advanced-rest-api / https://www.npmjs.com/package/homebridge-decent-advanced-rest-api Many thanks to muelmx :-)
... please contact me for feature requests.
Of course the usage of this is at your own risk. It may break your machine. You are creating a web server with an unencypted connection in your network. Please be cautious.
This is my first work in TCL - please be nice ;-)