Web-based dashboard and controls for the Ember Mug²
🔗 https://EduardDopler.github.io/amber-light/
Chromium-based browsers are the only browsers supporting the Bluetooth API, which is kind of essential for a bluetooth connection.
Tested with Google Chrome 124+.
Bluetooth API is only available in secure contexts (HTTPS). I use Caddy locally.
Chrome has experimental support for persistent bluetooth connections. This way, the browser is able to access devices it connected to in the past without querying permission again after every browser restart.
Enable it via this Chrome flag: chrome://flags/#enable-web-bluetooth-new-permissions-backend
And vote for this feature here and here.
In general, the mug struggles with reconnecting itself to a previous bluetooth host. Sometimes we can observe bluetooth beacons (advertisements) being sent but the connection still fails, or just takes a long time. As the same happens with the native Ember app, it is probably safe to assume this cannot be fixed by software.
If you run into this, press and hold the mug's power button until the LED flashes blue to initiate a new connection.
If the LED still flashes after successfully connecting, just press the button again to return to normal operation mode.
See your browser's console for connection info, warnings errors.
- Setting target temperature, unit (°C/°F), mug color and mug name
- Notifications
- Connection status
- Target temp reached
- Battery low/full
- Styling
- Offline support/PWA
I love good coffee. Among other things, it has to have the perfect temperature. In theory, the Ember mug is a good temperature-controlled mug, doing its job. At this price point you would expect a company to build a decent, reliable app that also doesn't collect a ton of your personal and device data. Disappointed in all aspects, I built this minimal alternative.
Main goals:
- Fast
- Simple
- No thrills
- No data collection
- The Web™️ (Web Bluetooth API)
- No runtime dependencies/libraries, only plain: HTML, CSS, JS
- Web components/custom elements (Light DOM)
- Dev dependencies: Vite, Prettier, ESLint, Caddy
- Paul Orlob: https://github.com/orlopau/ember-mug
- For reverse engineering the UUIDs and the meaning of values transmitted by the mug and the app