# EverShelf
Self-hosted pantry manager with barcode scanning, AI identification, and shopping list integration.
Author: Stimpfl Daniel

v1.7.42
🔌 Connessione al server persa
🛒 - Spesa
⚠️

### 🚫 Scaduti

### ⏰ Prossime Scadenze

### 📦 Prodotti Aperti

## Dispensa

#### 🕐 Ultimi usati

#### ⭐ Più usati

## Scansiona

🛒 Modalità Spesa
Gemini Vision
✓
2×
Recenti

## Cosa vuoi fare?

## Aggiungi alla Dispensa

📍 Dove lo metti?
📦 Quantità
pz
📦 Ogni confezione contiene:
🫙 Sotto vuoto

La scadenza verrà estesa automaticamente

## Usa / Consuma

📍 Da dove?
Quanto hai usato?
⚖️
— —

Oppure specifica la quantità usata:

—

## Nuovo Prodotto

L'AI compilerà automaticamente i campi del prodotto

🏷️ Nome Prodotto *
🏢 Marca
📂 Categoria
📂 Sous-catégorie *
📏 Unità di misura
🔢 Quantità default
📦 Ogni confezione contiene:
📝 Note
🔖 Barcode

⚠️ Aggiungi il barcode così al prossimo acquisto basta scansionarlo!

## 📦 Tutti i Prodotti

## 🍳 Ricette

### 📖 Mes recettes

Tes propres recettes (cocktails, boissons...), ajoutées à la main.

## 🛒 Lista della Spesa

Connessione a Bring!...
💰 Spesa stimata: –

### 🛍️ Da comprare

0

### 💡 Suggerimenti AI

🧠

Nessuna previsione disponibile.
Aggiungi prodotti alla dispensa per ricevere previsioni intelligenti.

### 🧠 Previsioni intelligenti

0

## 🤖 Identificazione AI

Scatta una foto del prodotto e l'AI cercherà di identificarlo

## 📋 Storico

## ⚙️ Configurazione

#### 🌐 Lingua / Language

Seleziona la lingua dell'interfaccia. Select the interface language.

La pagina verrà ricaricata per applicare la nuova lingua.

#### 💱 Valuta

La valuta usata per tutti i costi e i prezzi nell'app.

#### 🌙 Tema / Aspetto

Scegli il tema dell'interfaccia.

#### 🌙 Salvaschermo

Mostra un orologio con fatti utili dopo un periodo di inattività. Di default è disattivato.

Attiva salvaschermo
⏱️ Avvia dopo

#### ♻️ Suggerimenti zero-waste

Durante la cottura, mostra consigli su come riutilizzare gli scarti prodotti in ogni passo (bucce, acqua di cottura, ecc.). Disattivo per impostazione predefinita.

Mostra suggerimenti durante la cottura

#### 📤 Esporta inventario

Scarica l'inventario corrente in CSV o apri una versione stampabile (PDF).

#### 🤖 Google Gemini AI

Chiave API per identificazione prodotti, scadenze e ricette.

API Key Gemini

#### 🛒 Lista della spesa

Configura la lista della spesa integrata o collega Bring!.

Abilita lista della spesa
Provider
Interno (senza Bring!) Bring! (app esterna)

#### Configurazione Bring!

📧 Email Bring!
🔒 Password Bring!

#### Assistenza AI

Suggerimenti AI
Previsione prodotti in esaurimento
Aggiungi automaticamente quando

rimasto in magazzino (0 = solo quando esaurito)

#### 💰 Stima Prezzi (AI)

Mostra il costo stimato di ogni prodotto nella lista della spesa usando l'AI.

Attiva stima prezzi
🌍 Paese di riferimento
🔄 Aggiorna prezzi ogni
mesi

#### 🍳 Preferenze Ricette

Configura le opzioni predefinite per la generazione delle ricette.

👥 Persone predefinite
🎯 Opzioni ricetta predefinite
⚡ Pasto Veloce 🥗 Poca Fame ⏰ Priorità Scadenze 💚 Extra Salutare 📦 Priorità Cose Aperte ♻️ Zero Sprechi
🚫 Intolleranze / Restrizioni

#### 📅 Piano Pasti Settimanale

Imposta la tipologia di pasto per ogni giorno. Sarà usata come guida nella generazione delle ricette.

✅ Attiva piano pasti settimanale
🌤️ = Pranzo · 🌙 = Cena · Tocca un badge per cambiarlo.

#### 📋 Tipologie disponibili

#### 🔌 Elettrodomestici Disponibili

Indica gli elettrodomestici che hai a disposizione. Saranno considerati nella generazione delle ricette.

Aggiungi velocemente:

#### 📷 Fotocamera

Scegli quale fotocamera utilizzare per la scansione barcode e l'identificazione AI.

📸 Fotocamera predefinita

Se hai più fotocamere, puoi selezionarne una specifica dall'elenco sopra dopo aver concesso i permessi.

Se il barcode non si legge, usa il pulsante «Identifica con AI» sotto la fotocamera. Richiede Gemini configurato.

#### 🔑 Token Impostazioni

Se `SETTINGS_TOKEN` è configurato nel `.env` server, inserisci qui il token prima di salvare le impostazioni. Lascia vuoto se non configurato.

Token di accesso

🔒 Questo server richiede un token API (API_TOKEN nel file .env). Il token viene salvato nel browser.

#### 🔒 Certificato HTTPS

Se il browser mostra l'errore "La connessione non è privata" (ERR_CERT_AUTHORITY_INVALID), devi installare il certificato CA nel dispositivo.

📥 Scarica Certificato CA
Istruzioni per Chrome (Android):
1. Scarica il certificato qui sopra
2. Vai in Impostazioni → Sicurezza e privacy → Altre impostazioni di sicurezza → Installa da archivio dispositivo
3. Seleziona il file EverShelf_CA.crt scaricato
4. Scegli "CA" e conferma
5. Riavvia Chrome
Istruzioni per Chrome (PC):
1. Scarica il certificato qui sopra
2. Vai in chrome://settings/certificates (o Impostazioni → Privacy e sicurezza → Sicurezza → Gestisci certificati)
3. Tab "Autorità" → Importa → seleziona il file
4. Spunta "Considera attendibile per identificare siti web"
5. Riavvia Chrome

#### 🔊 Voce & TTS

Configura la sintesi vocale. Puoi usare la voce offline del browser oppure un endpoint REST esterno (Home Assistant, ecc.).

✅ Attiva TTS
⚙️ Motore TTS
🗣️ Voce

Le voci disponibili dipendono dal sistema operativo e dal browser. Su macOS/iOS è disponibile la voce Paola (italiano). Premi ↺ se la lista non si carica.

⚡ Velocità: 1.0×
🎵 Tono: 1.0
🌐 URL Endpoint
📡 Metodo HTTP
🔐 Autenticazione
🔑 Bearer Token
📋 Nome header
📋 Valore header
📄 Content-Type
🗝️ Campo testo nel payload

Nome del campo JSON che conterrà il testo da leggere (es: `message`, `text`).

➕ Campi extra (JSON)

Campi aggiuntivi da includere nel payload, in formato JSON. Lascia vuoto se non necessario.

🏠 Se usi Home Assistant, usa il tab Home Assistant per configurare TTS, webhook e sensori.

#### 🏠 Home Assistant

Integra EverShelf con Home Assistant: TTS su speaker smart, webhook per automazioni, sensori per la dashboard.

✅ Abilita integrazione Home Assistant
🌐 Home Assistant URL

URL base della tua istanza HA (senza slash finale). Es: `http://homeassistant.local:8123`

🔑 Long-Lived Access Token

Genera un token in HA → Profilo → Token di accesso a lungo termine.

#### 🔊 TTS su Speaker Smart

Leggi i passi della ricetta su un altoparlante gestito da HA (Sonos, Echo, Google Home, ecc.).

🔈 Entity ID del media player

Copia l'entity ID del media player da HA → Strumenti sviluppatore → Stati.

🎙️ Piattaforma TTS

Configura automaticamente il tab TTS con i parametri HA corretti.

#### ⚡ Automazioni Webhook

EverShelf chiama il webhook HA quando si verificano eventi (prodotto in scadenza, aggiunto alla lista, ecc.).

🔗 Webhook ID

Crea un'automazione in HA con trigger "Webhook" e copia qui l'ID. Come farlo?

📋 Eventi da notificare
Prodotti in scadenza (cron giornaliero) Aggiunta alla lista della spesa Aggiornamento scorte (quantità modificata)
📅 Giorni anticipo per scadenze

Quanti giorni prima della scadenza inviare l'alert.

#### 📱 Notifiche Push

EverShelf invia notifiche push tramite il servizio `notify.*` di HA (Telegram, Pushover, app mobile, ecc.).

📣 Servizio notify

Formato: `notify.NOME_SERVIZIO`. Lascia vuoto per disabilitare. Richiede token HA configurato.

#### 📊 Sensori REST per HA

HA può leggere i dati dell'inventario via REST polling. Aggiungi questo snippet a `configuration.yaml`:

#### ⚖️ Bilancia Smart

Collega una bilancia Bluetooth tramite il gateway Android per leggere il peso automaticamente.

📡 Bilancia BLE integrata nel Kiosk

La bilancia è gestita direttamente dal Gateway BLE interno al kiosk. Per abbinare un nuovo dispositivo usa il wizard di configurazione.

⚠️ Il kiosk installato non supporta questa funzione. Aggiorna l'app kiosk per abilitarla. 📥 Scarica aggiornamento kiosk

📱 EverShelf Scale Gateway

App Android che fa da ponte tra la bilancia BLE e questo sito.

📥 Scarica Gateway Android (APK)

Sorgente: `evershelf-scale-gateway/` nella root del progetto

✅ Abilita bilancia smart
🌐 URL Gateway WebSocket

Copia l'URL mostrato dall'app Android (stessa rete Wi-Fi). Es: `ws://192.168.1.100:8765`

🔗 —
— g
peso in tempo reale
🔁 Riconnessione: automatica —

🔌 Protocolli BLE supportati:

- Bluetooth SIG Weight Scale (0x181D)
- Bluetooth SIG Body Composition (0x181B) — peso, grasso, BMI
- Xiaomi Mi Body Composition Scale 2
- Generico — heuristica automatica su 100+ modelli

#### 💾 Backup Locale

Snapshot giornaliero automatico del database. Massimo 3 giorni di storico (configurabile).

Caricamento…
Retention (giorni):

Caricamento…

#### ☁️ Google Drive

Carica automaticamente il backup su Google Drive usando un Service Account.

Abilita backup Google Drive
ID Cartella Drive

Copia l'ID dalla URL della cartella Drive: …/folders/ID

📋 Come configurare OAuth 2.0 (passo dopo passo)

Client ID
Client Secret
Redirect URI (aggiungi in Google Cloud Console): `http://localhost`

Registra questo URI in Google Cloud Console come "URI di reindirizzamento autorizzato". Per le installazioni senza dominio pubblico usa http://localhost.

Incolla l'URL o il codice di autorizzazione

Dopo aver autorizzato su Google, il browser proverà ad aprire `http://localhost` e mostrerà un errore. Copia l'intero URL dalla barra degli indirizzi e incollalo qui sotto.

Retention Drive (giorni, 0=tutto):

#### Gemini AI — Token Usage

Utilizzo AI, inventario e sistema

Caricamento…

#### Inventario

Caricamento…

#### Attività del mese

Caricamento…

#### Sistema

Caricamento…

🖥️

Configurazione Kiosk

URL server, bilancia BLE, salvaschermo e setup wizard.

📦

Aggiornamento Kiosk

—

## 🔧 Configuration

#### 📍 Emplacements de stockage

Gère les emplacements disponibles pour ranger tes produits (Frigo, Cave, Bar...).

Chargement…

➕ Nouvel emplacement

#### 📁 Catégories

Gère les catégories de produits : icône, libellé, et mots-clés de détection automatique à partir du nom du produit.

Chargement…

➕ Nouvelle catégorie

#### 📂 Sous-catégories

Gère les sous-catégories disponibles pour chaque catégorie de produit.

Catégorie
Sous-catégorie obligatoire pour cette catégorie

Chargement…

➕ Nouvelle sous-catégorie (pour la catégorie sélectionnée)

#### 🏷️ Tags recettes

Gère les tags utilisés pour trier/filtrer "Mes recettes" (cocktails, boissons...).

Chargement…

➕ Nouveau tag
Gemini Chef

### Ciao! Sono il tuo assistente cucina

Chiedimi di prepararti un succo, uno spuntino, un piatto veloce... Conosco la tua dispensa, i tuoi elettrodomestici e le tue preferenze!

### 🍳 Ricetta

Genero una ricetta sana con gli ingredienti in dispensa, dando priorità a quelli in scadenza.

🕐 Per quale pasto?
👥 Quante persone?
🎯 Tipo di pasto
⚡ Pasto Veloce 🥗 Poca Fame ⏰ Priorità Scadenze 💚 Extra Salutare 📦 Priorità Cose Aperte ♻️ Zero Sprechi

Sto preparando la ricetta...

Cosa vuoi fare con questa ricetta?

## EverShelf

Caricamento...

📡
Nessuna connessione
L'app non riesce a raggiungere il server. Verifica la connessione Wi-Fi.
1 / 1
♻️ Scarto