docs(wiki): full English pass + update for v1.7.13 and built-in scale gateway
- Features.md: translate all Italian UI strings to English (chat examples, Avvia cottura → Start Cooking, Spiega → Explain, La quantità è giusta → correct) - Android-Kiosk.md: translate Italian button labels (Concedi permessi → Grant permissions, Rileva automaticamente → Auto-discover); fix REQUEST_INSTALL_PACKAGES description (OTA kiosk self-updates, not scale APK); fix REORDER_TASKS description; add 'Header Overlay Buttons' section documenting the three web overlay buttons (✕ ↻ ⚙️) and the permanent native button hiding - Scale-Gateway.md: translate Italian button labels (Cerca Bilance Bluetooth → Find Bluetooth Scales, Leggi bilancia → Read Scale, Disconnetti/Riconnetti → Disconnect/Reconnect) - FAQ.md: translate all Italian strings (AI non disponibile → AI not available, Bring! non configurato, Leggi bilancia, Carica altri → Load more); replace outdated 'Gateway install fails' section (separate APK no longer exists for kiosk users) with 'Kiosk app update fails'; update ✕ button description to reflect the new 3-button overlay (✕ ↻ ⚙️); restore missing Getting Help section - Home.md: update What's New v1.7.13 with complete list of changes; mark evershelf-scale-gateway/ as DEPRECATED in repo structure
This commit is contained in:
@@ -36,12 +36,12 @@ Overview of what the wizard will configure.
|
||||
### Step 3 — Permissions
|
||||
Grant camera, microphone, and storage permissions needed by the web app.
|
||||
|
||||
The button transforms from "Concedi permessi" to **"✅ Permessi concessi — Continua →"** (green) once all permissions are granted.
|
||||
The button transforms from **"Grant permissions"** to **"✅ Permissions granted — Continue →"** (green) once all permissions are granted.
|
||||
|
||||
### Step 4 — Server URL
|
||||
Enter your EverShelf server URL (e.g. `https://192.168.1.100/dispensa`).
|
||||
|
||||
**Or tap "Rileva automaticamente"** to let the wizard scan your LAN:
|
||||
**Or tap "Auto-discover"** to let the wizard scan your LAN:
|
||||
- 60 parallel threads, TCP pre-check, ports 80/443/8080/8443
|
||||
- Only scans your actual Wi-Fi/Ethernet subnet (VPN and cellular interfaces ignored)
|
||||
- Real-time feedback as hosts are tested
|
||||
@@ -62,9 +62,23 @@ All done — the web app loads in full-screen kiosk mode.
|
||||
|
||||
---
|
||||
|
||||
## Header Overlay Buttons
|
||||
|
||||
Three buttons are injected into the top-left of the web header by the kiosk app:
|
||||
|
||||
| Button | Action |
|
||||
|--------|--------|
|
||||
| **✕** | Exit kiosk mode (confirmation dialog) |
|
||||
| **↻** | Hard-refresh — clears WebView cache and reloads the app |
|
||||
| **⚙️** | Open EverShelf Settings |
|
||||
|
||||
The native Android settings button is permanently hidden once the overlay is injected — the **⚙️** web button replaces it entirely.
|
||||
|
||||
---
|
||||
|
||||
## Exiting Kiosk Mode
|
||||
|
||||
Tap the **✕** button in the header (top-left). A confirmation dialog appears.
|
||||
Tap the **✕** button in the header overlay (top-left). A confirmation dialog appears.
|
||||
|
||||
---
|
||||
|
||||
@@ -133,6 +147,6 @@ Requires Android Studio or JDK 17+ with the Android SDK.
|
||||
| `CAMERA` | Barcode scanning and AI photo identification |
|
||||
| `RECORD_AUDIO` | Voice input in AI chat |
|
||||
| `WAKE_LOCK` | Keep the screen on |
|
||||
| `REQUEST_INSTALL_PACKAGES` | Install the Scale Gateway APK |
|
||||
| `REQUEST_INSTALL_PACKAGES` | Over-the-air kiosk self-updates (installs new APK from GitHub releases) |
|
||||
| `ACCESS_WIFI_STATE` | LAN auto-discovery |
|
||||
| `REORDER_TASKS` | Bring app to foreground after gateway launch |
|
||||
| `REORDER_TASKS` | Bring the kiosk app to foreground when needed |
|
||||
|
||||
+12
-14
@@ -43,15 +43,13 @@ docker compose up -d
|
||||
|
||||
## AI Features
|
||||
|
||||
### AI features don't work / "AI non disponibile"
|
||||
### "AI not available" error
|
||||
|
||||
1. Check that `GEMINI_API_KEY` is set in `.env`
|
||||
2. Verify the key is valid at [aistudio.google.com](https://aistudio.google.com)
|
||||
3. Check that you haven't exceeded the free tier quota (15 req/min, 1500 req/day)
|
||||
4. Look for errors in the PHP error log
|
||||
|
||||
### Recipe generation stops midway
|
||||
|
||||
This is usually a Gemini API timeout. The app streams results via SSE — if the server PHP timeout is too low, the stream is cut short. Increase `max_execution_time` in `php.ini`:
|
||||
|
||||
```ini
|
||||
@@ -62,7 +60,7 @@ max_execution_time = 120
|
||||
|
||||
## Shopping List (Bring!)
|
||||
|
||||
### "Bring! non configurato" message in the shopping tab
|
||||
### "Bring! not configured" message in the shopping tab
|
||||
|
||||
Add your Bring! credentials to `.env`:
|
||||
|
||||
@@ -90,7 +88,7 @@ BRING_PASSWORD=yourpassword
|
||||
### Scale shows weight but form doesn't auto-fill
|
||||
|
||||
- The auto-fill only triggers for products with unit `g` or `ml`
|
||||
- Make sure you tapped "⚖️ Leggi bilancia" first to activate the scale modal
|
||||
- Make sure you tapped **"⚖️ Read Scale"** first to activate the scale modal
|
||||
- The weight must stabilize (stay within 10g) for the countdown to start
|
||||
|
||||
### Bluetooth scale not appearing in the gateway app
|
||||
@@ -109,19 +107,19 @@ BRING_PASSWORD=yourpassword
|
||||
- Try entering the URL manually instead of using auto-discovery
|
||||
- Check that the server responds on the expected port (80/443/8080/8443)
|
||||
|
||||
### Gateway install fails with an error dialog
|
||||
### Kiosk app update fails
|
||||
|
||||
The dialog shows the exact failure code. Common causes:
|
||||
The kiosk checks for a new release every 6 hours and downloads it from GitHub. If the install fails:
|
||||
|
||||
| Code | Cause | Fix |
|
||||
|------|-------|-----|
|
||||
| `STATUS_FAILURE` (1) | Generic install failure — often OEM restriction | Enable "Install from unknown sources" for the kiosk app in Android Settings |
|
||||
| `STATUS_FAILURE_CONFLICT` (3) | Signature mismatch with existing install | Uninstall the old gateway app, then retry |
|
||||
| `STATUS_FAILURE_STORAGE` (6) | Not enough storage | Free up space on the device |
|
||||
| Symptom | Fix |
|
||||
|---------|-----|
|
||||
| "Install from unknown sources" dialog | Enable the setting for the EverShelf Kiosk app in Android Settings |
|
||||
| Persistent failure after download | Force-stop the app, clear its data, and relaunch the update flow |
|
||||
| Not enough space | Free up storage on the device |
|
||||
|
||||
### Exit button (✕) is not visible
|
||||
|
||||
The ✕ button is injected into the header by the kiosk app. If the web app's header is covered or the page failed to load, try the hard refresh (↻) button. If neither is visible, triple-tap the page title area to access the developer settings.
|
||||
Three buttons are always visible in the kiosk header overlay: **✕** (exit), **↻** (refresh), **⚙️** (settings). If the page failed to load entirely, tap **↻** first. If nothing is visible, restart the device.
|
||||
|
||||
### App is stuck in kiosk mode after a crash
|
||||
|
||||
@@ -139,7 +137,7 @@ The version is cached by the browser. Do a hard refresh:
|
||||
|
||||
### Transactions are missing from the log
|
||||
|
||||
The log shows the last 50 entries by default. Tap "Carica altri" to load more. Entries older than the database creation date won't appear.
|
||||
The log shows the last 50 entries by default. Tap **"Load more"** to load more. Entries older than the database creation date won't appear.
|
||||
|
||||
### "Can only undo transactions within 24 hours"
|
||||
|
||||
|
||||
@@ -83,9 +83,9 @@ Recipes stream live via Server-Sent Events so results appear as they are generat
|
||||
### AI Chat Assistant
|
||||
|
||||
Open **💬 Chat** to ask questions like:
|
||||
- "Cosa posso fare con le uova e la pasta?"
|
||||
- "Quanti giorni dura il prosciutto cotto aperto in frigo?"
|
||||
- "Suggeriscimi uno spuntino veloce"
|
||||
- "What can I make with eggs and pasta?"
|
||||
- "How long does cooked ham last once opened in the fridge?"
|
||||
- "Suggest a quick snack"
|
||||
|
||||
The assistant knows your current inventory.
|
||||
|
||||
@@ -121,7 +121,7 @@ Configure `BRING_EMAIL` and `BRING_PASSWORD` in `.env` to enable.
|
||||
|
||||
## 🍳 Cooking Mode
|
||||
|
||||
Start cooking mode from any recipe by tapping **▶ Avvia cottura**.
|
||||
Start cooking mode from any recipe by tapping **▶ Start Cooking**.
|
||||
|
||||
### Features
|
||||
|
||||
@@ -132,7 +132,7 @@ Start cooking mode from any recipe by tapping **▶ Avvia cottura**.
|
||||
- Custom REST endpoint (e.g. Home Assistant)
|
||||
- **Built-in timers** — automatic timer suggestions based on recipe text; 10-second vocal countdown warning before expiry
|
||||
- **Ingredient tracking** — mark ingredients as used; leftover quantities prompt a "move to another location" flow
|
||||
- **Recipe completion** — "Buon appetito!" spoken on the last step
|
||||
- **Recipe completion** — "Buon appetito!" *(Enjoy your meal!)* spoken on the last step
|
||||
|
||||
---
|
||||
|
||||
@@ -155,8 +155,8 @@ Actions per item: Use, Throw away, Edit, Dismiss. Swipe or tap arrows to navigat
|
||||
Highlights suspicious quantities (e.g. "You have 0 eggs but used 12 this month"). Actions:
|
||||
- One-tap correction to the suggested quantity
|
||||
- Inline edit with free-form quantity
|
||||
- "🤖 Spiega" for AI explanation
|
||||
- Dismiss (with current quantity shown: "La quantità è giusta (2 pz)")
|
||||
- "🤖 Explain" for AI explanation
|
||||
- Dismiss (with current quantity shown: "The quantity is correct (2 pcs)")
|
||||
|
||||
### Anti-Waste Report
|
||||
|
||||
|
||||
+6
-3
@@ -47,8 +47,11 @@ All data stays on your server. No cloud, no subscriptions.
|
||||
## 🆕 What's New
|
||||
|
||||
### v1.7.13 (2026-05-16)
|
||||
- **Critical fix:** Fresh-install crash resolved — `transactions` schema was missing the `undone` column, causing a database failure on every new installation
|
||||
- **Fix:** Race condition in DB migrations no longer causes `duplicate column name` errors on concurrent first requests
|
||||
- **Fix:** Kiosk Settings button (⚙️) added to the web overlay — tapping the camera button no longer accidentally opens kiosk settings
|
||||
- **Fix:** Opened-item expiry badge is now consistent with the top banner: low-risk items (jams, condiments) show amber ⚠️ "Check soon" instead of misleading red ⛔ "Expired"
|
||||
- **Cooking Mode:** 3D wheel UI with perspective card flip, ghost steps (prev/next), float animation, and full `prefers-reduced-motion` support
|
||||
- **CI:** `data/category_ai_cache.json` added to `.gitignore`
|
||||
- **Critical fix (DB):** Fresh-install crash resolved — `transactions` schema was missing the `undone` column
|
||||
|
||||
### v1.7.12 (2026-05-13)
|
||||
- "Use first" banner now shows opening date and location instead of a confusing calculated expiry
|
||||
@@ -81,7 +84,7 @@ EverShelf/
|
||||
├── translations/ # i18n JSON files (it, en, de)
|
||||
├── docs/openapi.yaml # OpenAPI 3.0 spec
|
||||
├── evershelf-kiosk/ # Android kiosk app (Kotlin)
|
||||
└── evershelf-scale-gateway/ # Android BLE gateway app (Kotlin)
|
||||
└── evershelf-scale-gateway/ # Android BLE gateway app (Kotlin) — DEPRECATED, built into kiosk since v1.6.0
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -75,7 +75,7 @@ In EverShelf **Settings → Scale**:
|
||||
|
||||
### 4. Connect your scale
|
||||
|
||||
Tap **"Cerca Bilance Bluetooth"** (Find Bluetooth Scales). Make sure your scale is powered on. Tap it in the list to pair and connect.
|
||||
Tap **"Find Bluetooth Scales"**. Make sure your scale is powered on. Tap it in the list to pair and connect.
|
||||
|
||||
---
|
||||
|
||||
@@ -84,7 +84,7 @@ Tap **"Cerca Bilance Bluetooth"** (Find Bluetooth Scales). Make sure your scale
|
||||
When scale integration is enabled:
|
||||
|
||||
1. Open the **Add** or **Use** form for any product with unit `g` or `ml`
|
||||
2. A **"⚖️ Leggi bilancia"** button appears
|
||||
2. A **"⚖️ Read Scale"** button appears
|
||||
3. Tap it — a live weight display appears with a stability indicator
|
||||
4. Step on or place the product on the scale
|
||||
5. When the reading stabilizes, a **5-second countdown** starts
|
||||
@@ -127,7 +127,7 @@ Every 6 hours the gateway app checks GitHub releases. If a newer version is avai
|
||||
### Weight not appearing in EverShelf
|
||||
- Confirm the Gateway URL in EverShelf Settings matches the URL shown in the gateway app
|
||||
- Check that the Android device and the EverShelf server are on the same network
|
||||
- Tap "Disconnetti / Riconnetti" in the gateway app to refresh the WebSocket connection
|
||||
- Tap "Disconnect / Reconnect" in the gateway app to refresh the WebSocket connection
|
||||
|
||||
### "Mixed content" error in browser
|
||||
- Make sure you are accessing EverShelf over HTTPS (not plain HTTP)
|
||||
|
||||
Reference in New Issue
Block a user