Fujimod
Try your camera firmware in the browser and build Fujimod SD boot files.
Safety-first coffee maker timer using Shelly Plug S Gen3 — countdown timers via MQTT, Android app, and web control
LifestyleKotlin · JavaScriptGitHub @Laffs2k5OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A safety-first home-automation project that turns a Shelly Plug S Gen3 into a timed coffee-maker controller. Every on-state is a countdown timer — the plug can never be left on indefinitely. The device runs autonomously with an mJS state machine and a connectivity watchdog, takes commands over a local MQTT broker (mTLS) with a cloud bridge for off-LAN access, and is also controllable directly over Wi-Fi (local HTTP). Clients: an Android app, a web page, or curl.
Live web control: https://laffs2k5.github.io/shelly-coffee-timer/
Documentation: Specification · Architecture · AI Test Guide · Regression Checklist
This is v2 — local MQTT broker + cloud bridge + connectivity watchdog, validated on hardware. The v1 release used Adafruit IO; that design is archived in docs/archive/ (frozen at the
adafruit-finaltag). v2 design: specs 11–12 and Architecture.
shelly-coffee-timer/
├── app/ Android app (Kotlin/Compose) with notification service
├── device/ mJS script for the Shelly (coffee.js)
├── web/ HTML control page (GitHub Pages)
├── scripts/ Bash utilities (feed setup, REST/MQTT testing)
├── docs/spec/ Specification documents (00–03, 05–12 + INDEX; 04 archived)
├── docs/ Architecture overview, test guides
├── docs/archive/ v1 (Adafruit) docs + v2 build/validation record
├── .github/workflows/ CI/CD: APK build, release, GitHub Pages deploy
├── .env.example Template for credentials
└── CLAUDE.md AI assistant context
cp .env.example .env and fill in your broker hosts, credentials, and Shelly IP; source .envMqtt.SetConfig via RPC — see doc 11 §5)scripts/build-device.sh produces device/coffee.min.js; flash it via RPC (Script.PutCode) or paste into the Shelly web UIscripts/app/ in Android Studio.p12 and your broker's private-CA public cert (.crt/.pem) — both via the Import buttons in Settings. (HTTP-direct and cloud work without these.)Nothing identity-specific is baked into the APK — the official released build is fully functional once you enter settings and import the CA +
.p12at runtime. No rebuild needed.
web/index.html locally in a browserAll secrets live in .env, which is gitignored. This repo is public — never commit real API keys. See doc 10 §7 for the full credentials policy.