Cette intégration Home Assistant permet de gérer l'inventaire de vos stocks alimentaires :
- 🧊 3 emplacements : Congélateur, Réfrigérateur et Réserve (garde-manger)
- 📷 Scan de code-barres via la caméra du smartphone (Android/iOS)
- 🔍 Recherche automatique des produits via Open Food Facts
- 📅 Gestion des dates de péremption avec tri par date, nom, catégorie ou zone
- ✅ Date optionnelle (Réserve) : Case à cocher "Périssable" pour stocker aussi des produits sans date (ménager, hygiène…)
- 🗂️ Catégories personnalisables par emplacement
- 📍 Zones de stockage personnalisables par emplacement
- 🔔 Notifications intelligentes pour les produits qui périment
- 💾 Sauvegarde/Restauration de vos données en JSON
- ➖ Retrait par scan : Retirez des produits en scannant leur code-barres ou par recherche
- 🔄 Détection de doublons : Vérification automatique à l'ajout d'un produit
- 📱 Interface responsive optimisée pour mobile
- Scan code-barres : Utilisez la caméra de votre téléphone pour scanner les produits
- Open Food Facts : Récupération automatique du nom, marque et catégorie du produit
- Autocomplétion intelligente : Suggestions basées sur les 100 derniers produits ajoutés
- Catégories automatiques : 10 catégories (Viande, Poisson, Légumes, Fruits, Produits laitiers, Plats préparés, Pain/Pâtisserie, Glaces/Desserts, Condiments/Sauces, Autre)
- Zones de stockage : Organisez votre congélateur en zones (Zone 1, 2, 3)
- Tri des produits : Par date de péremption, nom, catégorie ou zone (cliquez sur les en-têtes)
- Indicateurs visuels : Couleurs selon l'urgence (🟢 OK, 🟡 Bientôt, 🟠 Urgent, 🔴 Périmé)
- Notifications : Alertes automatiques toutes les 6h pour les produits à consommer
- Gestion des données : Boutons pour vider un emplacement ou tout réinitialiser
- Retrait par scan : Bouton "➖ Retirer un produit" avec scan code-barres ou recherche par nom
- Sélection multiple : Possibilité de retirer plusieurs produits à la fois
- Détection de doublons : Vérification automatique lors de l'ajout (propose d'incrémenter la quantité ou de créer un nouveau produit)
- Date optionnelle : Dans la Réserve, décochez "Périssable" pour ajouter un produit sans date d'expiration (produits ménagers, hygiène, papeterie…). Les produits sans date affichent "➖ N/A" au lieu d'un indicateur de péremption.
- Ouvrez HACS → Intégrations → ⋮ → Dépôts personnalisés
- Ajoutez
https://github.com/mmaunier/ha-inventory-manager(catégorie: Integration) - Cherchez "Inventory Manager" et cliquez Télécharger
- Redémarrez Home Assistant
- Allez dans Paramètres → Appareils et services → + Ajouter une intégration
- Recherchez "Inventory Manager"
- Copiez le dossier
custom_components/inventory_managerdansconfig/custom_components/ - Redémarrez Home Assistant
- Ajoutez l'intégration via Paramètres → Appareils et services
Accédez au panel via le menu latéral : Inventaire Congélateur
- ➕ Ajouter un produit : Scannez un code-barres ou saisissez manuellement
- Tri : Cliquez sur "Produit" ou "Péremption" pour trier
- Modifier : Cliquez sur ✏️ pour éditer un produit
- Supprimer : Cliquez sur 🗑️ pour supprimer
# Scanner un produit (avec code-barres et détection auto de catégorie)
service: inventory_manager.scan_product
data:
barcode: "3017620422003"
expiry_date: "2026-06-15"
location: "freezer"
quantity: 1
# Ajouter manuellement avec catégorie et zone
service: inventory_manager.add_product
data:
name: "Pizza 4 fromages"
expiry_date: "2026-06-15" # Optionnel (surtout utile pour la réserve)
location: "freezer"
quantity: 2
category: "Plats préparés"
zone: "Zone 2"
# Ajouter un produit sans date (réserve)
service: inventory_manager.add_product
data:
name: "Liquide vaisselle"
location: "pantry"
quantity: 1
category: "Produits ménagers"
# Supprimer un produit
service: inventory_manager.remove_product
data:
product_id: "a1b2c3d4"
# Modifier un produit (y compris catégorie et zone)
service: inventory_manager.update_product
data:
product_id: "a1b2c3d4"
name: "Pizza 4 fromages"
expiry_date: "2026-06-15"
quantity: 3
category: "Plats préparés"
zone: "Zone 1"
# Vider un emplacement
service: inventory_manager.clear_freezer # ou clear_fridge, clear_pantry
# Tout réinitialiser (produits + historique)
service: inventory_manager.reset_all
# Exporter toutes les données (produits, historique, catégories, zones)
service: inventory_manager.export_data
# Retourne un JSON avec toutes les données
# Importer des données depuis une sauvegarde
service: inventory_manager.import_data
data:
data: '{"version": "1.15.0", "products": {...}, ...}'| Capteur | Description |
|---|---|
sensor.gestionnaire_d_inventaire_congelateur |
Produits dans le congélateur |
sensor.gestionnaire_d_inventaire_refrigerateur |
Produits dans le réfrigérateur |
sensor.gestionnaire_d_inventaire_reserves |
Produits dans la réserve |
sensor.gestionnaire_d_inventaire_produits_perimant_bientot |
Produits expirant sous 7 jours (tous emplacements) |
sensor.gestionnaire_d_inventaire_produits_perimes |
Produits déjà périmés (tous emplacements) |
sensor.gestionnaire_d_inventaire_expired_freezer |
Produits périmés dans le congélateur |
sensor.gestionnaire_d_inventaire_expired_fridge |
Produits périmés dans le réfrigérateur |
sensor.gestionnaire_d_inventaire_expired_pantry |
Produits périmés dans la réserve |
L'intégration vérifie les péremptions toutes les 6 heures et envoie l'événement inventory_manager_product_expiring.
Créez cette automatisation pour recevoir des notifications :
alias: "Alerte péremption congélateur"
description: "Notification quand un produit va périmer"
trigger:
- platform: event
event_type: inventory_manager_product_expiring
action:
- service: persistent_notification.create
data:
title: >
{% if trigger.event.data.notification_type == 'expired' %}
⛔ Produit périmé !
{% else %}
⚠️ Péremption proche
{% endif %}
message: >
**{{ trigger.event.data.name }}**
{% if trigger.event.data.notification_type == 'expired' %}
Ce produit est périmé !
{% elif trigger.event.data.days_until_expiry == 0 %}
Périme aujourd'hui !
{% elif trigger.event.data.days_until_expiry == 1 %}
Périme demain !
{% else %}
Périme dans {{ trigger.event.data.days_until_expiry }} jours
{% endif %}
notification_id: "inventory_{{ trigger.event.data.product_id }}"
mode: parallel| Type | Condition |
|---|---|
expired |
Produit déjà périmé |
expires_today |
Périme aujourd'hui |
expires_soon |
Périme dans 1 à 3 jours |
Les données sont stockées dans config/inventory_data.json :
{
"products": {
"a1b2c3d4": {
"name": "Nutella",
"expiry_date": "2026-06-15",
"location": "freezer",
"quantity": 1,
"category": "Produits d'épicerie",
"zone": "Zone 1",
"barcode": "3017620422003",
"brand": "Ferrero",
"added_date": "2026-01-01T10:30:00"
},
"e5f6g7h8": {
"name": "Liquide vaisselle",
"expiry_date": null,
"location": "pantry",
"quantity": 1,
"category": "Produits ménagers",
"zone": "Zone 1",
"added_date": "2026-03-22T09:00:00"
}
},
"product_history": [
{
"name": "Nutella",
"category": "Produits d'épicerie",
"zone": "Zone 1",
"location": "pantry",
"added_date": "2026-01-01T10:30:00"
}
],
"last_updated": "2026-01-02T14:30:00"
}Congélateur / Réfrigérateur :
| Catégorie | Exemples |
|---|---|
| Viande | Poulet, bœuf, porc... |
| Poisson | Saumon, cabillaud, crevettes... |
| Légumes | Haricots verts, épinards, carottes... |
| Fruits | Framboises, mangue, bananes... |
| Produits laitiers | Yaourts, fromage, beurre... |
| Plats préparés | Pizza, lasagnes, raviolis... |
| Pain/Pâtisserie | Pain, croissants, brioches... |
| Glaces/Desserts | Glaces, sorbets, gâteaux... |
| Condiments/Sauces | Pesto, sauce tomate, herbes... |
| Autre | Produits non classés |
Réserve (v2.2.0+) :
| Catégorie | Exemples |
|---|---|
| Conserves | Boîtes de conserve, bocaux... |
| Pâtes/Riz/Céréales | Spaghetti, riz basmati, flocons... |
| Farines/Sucres | Farine de blé, sucre en poudre... |
| Huiles/Vinaigres | Huile d'olive, vinaigre balsamique... |
| Épices/Aromates | Poivre, cumin, thym... |
| Biscuits/Gâteaux secs | Petits beurre, spéculoos... |
| Boissons | Jus, café, thé... |
| Condiments/Sauces | Ketchup, moutarde, sauce soja... |
| Produits d'épicerie | Chocolat, miel, confiture... |
| Produits ménagers | Liquide vaisselle, lessive... |
| Hygiène & Cosmétiques | Savon, shampoing, dentifrice... |
| Papeterie & Fournitures | Mouchoirs, essuie-tout... |
| Médicaments & Santé | Pharmacie courante... |
| Autre | Produits non classés |
La catégorie est détectée automatiquement depuis Open Food Facts lors du scan.
Après une mise à jour de l'intégration, il peut être nécessaire de vider le cache de l'application Android pour voir les changements :
- Ouvrez Paramètres sur votre téléphone
- Allez dans Applications → Application Companion (Home Assistant)
- Allez dans Dépannage
- Appuyez sur Réinitialiser le cache de l'interface utilisateur
- Relancez l'application
Le champ nom restera vide. Saisissez le nom manuellement.
- Vérifiez que vous utilisez HTTPS
- Autorisez l'accès à la caméra dans les paramètres du navigateur
- Sur Android, utilisez Chrome ou l'app Home Assistant
- Créez l'automatisation décrite ci-dessus
- Testez en déclenchant manuellement l'événement dans Outils de développement → Événements
MIT License - Voir LICENSE
Les contributions sont les bienvenues ! N'hésitez pas à ouvrir des issues ou des pull requests.