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

🗄️ … Dispensa
🧊 … Frigo
❄️ … Freezer
🛒 … Spesa
⚠️

### 🚫 Scaduti

### ⏰ Prossime Scadenze

### 📦 Prodotti Aperti

## Dispensa

#### 🕐 Ultimi usati

#### ⭐ Più usati

## Scansiona Prodotto

🛒 Modalità Spesa
oppure scrivi il nome

Scansiona il barcode, scrivi il nome del prodotto, oppure usa l'AI per identificarlo

## Cosa vuoi fare?

## Aggiungi alla Dispensa

📍 Dove lo metti?
📦 Quantità
📦 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
📏 Unità di misura
🔢 Quantità default
📦 Ogni confezione contiene:
📝 Note
🔖 Barcode

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

## 📦 Tutti i Prodotti

## 🍳 Ricette

## 🛒 Lista della Spesa

Connessione a Bring!...

### 🛍️ 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

#### 🤖 Google Gemini AI

Chiave API per identificazione prodotti, scadenze e ricette.

API Key Gemini

#### 🛒 Bring! Shopping List

Credenziali per l'integrazione con la lista della spesa Bring!

📧 Email Bring!
🔒 Password Bring!

#### 🍳 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.

#### 🔑 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 per salvare le impostazioni.

#### 🔒 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.

#### ⚖️ Bilancia Smart

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

📱 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`

🔌 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

#### 🌐 Lingua / Language

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

🌐 Lingua

La pagina verrà ricaricata per applicare la nuova lingua.

#### 🌙 Salvaschermo

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

Attiva salvaschermo
📺

EverShelf Kiosk

Trasforma un tablet Android in un pannello EverShelf sempre acceso, con bilancia BLE integrata.

📥 Scarica EverShelf Kiosk (APK)

Modalità kiosk full-screen + gateway bilancia integrato. Sorgente: `evershelf-kiosk/`

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...

## EverShelf

Caricamento...

1 / 1