Si vous avez une Anycubic Kobra S1, vous savez que c’est une super bécane, mais alors niveau ouverture logicielle, c’est pas trop ça… Pour l’intégrer proprement dans Home Assistant, c’est souvent la croix et la bannière.
Après avoir pas mal bidouillé, j’ai réussi à compiler une image Docker qui fait le pont (le fameux « bridge ») entre l’imprimante et HA. Du coup, je vous partage ça pour que vous puissiez vous aussi avoir un dashboard aux petits oignons.
1. C’est quoi l’idée ?
Le but, c’est d’avoir toutes les infos en temps réel sur Home Assistant : les températures, la progression, et même les états de vos slots de filaments (pratique pour pas lancer un print à vide !).
Pour la caméra, on la récupère en direct via le fichier configuration.yaml. Une fois fini, ça donne un truc bien propre comme sur ma capture d’écran.

2. On installe le bousin (Docker & Portainer)
Pour faire tourner ce bridge, j’ai compilé une image que j’ai sauvegardée proprement. Comme c’est un export direct (docker save), la procédure est un peu spéciale mais très simple.
Le fichier à récupérer : J’ai compressé l’image en .tar.gz. Pour soutenir le blog et les heures de tests, c’est derrière un petit lien sponso. Merci à ceux qui jouent le jeu !
📦 Téléchargement de l’image Docker
Format : anycubic-s1-bridge.tar.gz
Le lien inclut une courte pub pour soutenir le site. Merci !
Étape A : Charger l’image dans le système
Deux méthodes selon votre situation :
Méthode 1 — Via l’interface Portainer (recommandée)
- Connectez-vous à votre Portainer.
- Allez dans le menu Images sur la gauche.
- Cliquez sur le bouton Import.
- Sélectionnez le fichier
anycubic-s1-bridge.tar.gzque vous venez de télécharger. - Cliquez sur Upload. Patientez un instant… Une fois fini, vous devriez voir apparaître l’image
anycubic-s1-bridgeavec le taglatestdans votre liste.


Méthode 2 — Via SSH (si l’import Portainer échoue)
Si vous avez déjà Docker sur votre machine ou que l’import Portainer ne fonctionne pas, connectez-vous en SSH sur votre NAS et tapez :
docker load < /volume1/docker/anycubic-s1-bridge.tar.gz
Adaptez le chemin selon l’endroit où vous avez déposé le fichier. Une fois la commande terminée, retournez dans Portainer → Images et actualisez — l’image anycubic-s1-bridge:latest devrait apparaître dans la liste.
Dans les deux cas, une fois l’image visible, on passe à l’étape suivante !
Étape B : Créer le conteneur
Maintenant qu’on a l’image, on va créer le moteur :
- Allez dans le menu Containers, puis cliquez sur + Add container.
- Name : Donnez-lui un nom clair, par exemple
anycubic-s1-bridge. - Image : Tapez exactement le nom de l’image qu’on vient d’importer :
anycubic-s1-bridge:latest. - Network : Si votre broker MQTT tourne sur la même machine que Portainer, vous pouvez laisser en
bridge. Sinon, assurez-vous que le container peut bien joindre l’IP de votre Home Assistant sur le port1883.
Étape C : Configurer les variables (.env)
C’est ici qu’on fait la magie. Ne cherchez pas un fichier sur votre disque, on va entrer les infos directement dans l’onglet de configuration de Portainer :
- Descendez tout en bas de la page dans la section
Advanced container settings. - Cliquez sur l’onglet
Env(pour Environnement). - Cliquez sur +
Add environment variablepour chaque ligne ci-dessous :
| Nom de la variable | Valeur (à adapter) |
ANYCUBIC_S1_IP | 192.168.x.x (L’IP de votre imprimante) |
HA_BROKER | 192.168.x.x (L’IP de votre serveur MQTT) |
HA_PORT | 1883 |
HA_USER | votre_user |
HA_PASS | votre_password |
SNAPSHOT_INTERVAL_IDLE | 30 |
SNAPSHOT_INTERVAL_BUSY | 10 |
INFO_UPDATE_INTERVAL | 10 |
Étape D : Politique de redémarrage
Avant de déployer, une dernière chose importante : descendez jusqu’à la section Restart policy et sélectionnez Unless stopped. Cela garantit que le bridge redémarre automatiquement si votre NAS redémarre, sans intervention de votre part.
Étape E : Déployer !
Remontez en haut de la page et cliquez sur Deploy the container. Portainer va créer et lancer le container en quelques secondes.
Pour vérifier que tout tourne bien, cliquez sur votre container puis sur Logs. Vous devriez voir défiler des lignes du type :
Connected to Anycubic MQTT broker
Subscribed to Anycubic printer topics
Published printer state data to Home Assistant

Si vous voyez ça, c’est gagné ! Votre imprimante est maintenant connectée à Home Assistant.
3. On s’occupe de la caméra
Pas besoin de passer par le bridge pour l’image ! La Kobra S1 diffuse déjà un flux que Home Assistant sait lire. Par contre, il faut l’aider un peu avec quelques arguments pour que ce soit fluide et sans lag.
Ouvrez votre configuration.yaml et balancez ce bloc :
camera:
- platform: ffmpeg
name: "Anycubic S1 Printer Camera"
input: "http://192.168.x.x:18088/flv" # Remplacez par l'IP de votre S1
extra_arguments: "-analyzeduration 1000000 -probesize 1000000 -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt"
Note : Les "extra_arguments", c'est ce qui permet d'avoir le flux direct sans avoir 30 secondes de retard.
Étape E : Récupérer les infos dans Home Assistant
Une fois l’intégration terminée, il est temps de créer une interface pour piloter votre Kobra S1. Voici le rendu visuel que nous allons obtenir (sobre, efficace et compatible avec tous les thèmes) :

Prérequis (via HACS)
Pour que ce dashboard fonctionne, vous devez avoir installé ces trois modules complémentaires via HACS :
- Button Card (
custom:button-card) : Pour les boutons intelligents et les couleurs dynamiques. - Mushroom Cards (
custom:mushroom-template-card) : Pour l’affichage élégant des filaments de l’ACE Pro. - Card Mod (
card-mod) : Pour ajuster la mise en page.
Liste des entités disponibles
Selon votre configuration, voici les principales entités que vous pourrez exploiter dans vos propres cartes :
| Fonction | Nom de l’entité (exemple) |
| État Imprimante | sensor.anycubic_kobra_s1_printer_state |
| Connectivité | sensor.anycubic_printer_printer_connectivity |
| Température Buse | sensor.anycubic_kobra_s1_nozzle_temperature |
| Température Plateau | sensor.anycubic_kobra_s1_hotbed_temperature |
| Progression | sensor.anycubic_kobra_s1_print_progress |
| Fichier en cours | sensor.anycubic_kobra_s1_print_filename |
| Caméra (Snapshot) | image.anycubic_kobra_s1_anycubic_snapshot |
| Slots ACE Pro (1 à 4) | sensor.anycubic_kobra_s1_filament_0_type (à 3) |
Le Code YAML (Version Standard)
Voici le code complet à copier dans une carte de type Manuel (ou via l’éditeur YAML de votre vue). Ce code utilise le mode « Sections » de Home Assistant pour un rendu propre sur mobile et tablette :
type: sections
max_columns: 3
title: Anycubic S1
sections:
- type: grid
title: Contrôles & État
cards:
- type: custom:button-card
entity: sensor.anycubic_printer_printer_connectivity
name: CONNECTIVITÉ
show_state: true
styles:
card:
- border-radius: 8px
state:
- color: "[[[ return entity.state === 'online' ? '#4caf50' : '#f44336'; ]]]"
icon:
- color: "[[[ return entity.state === 'online' ? '#4caf50' : '#f44336'; ]]]"
- type: custom:button-card
entity: light.anycubic_kobra_s1_printer_light
name: LUMIÈRE
icon: mdi:lightbulb
show_state: true
tap_action:
action: toggle
styles:
card:
- border-radius: 8px
icon:
- color: "[[[ return entity.state === 'on' ? '#FFD700' : '#808080'; ]]]"
- type: horizontal-stack
cards:
- type: custom:button-card
entity: button.anycubic_printer_pause_print
name: PAUSE
icon: mdi:pause
styles:
card: [border: "1px solid #FF9800", background: "rgba(255,152,0,0.1)"]
- type: custom:button-card
entity: button.anycubic_printer_resume_print
name: REPRENDRE
icon: mdi:play
styles:
card: [border: "1px solid #4caf50", background: "rgba(76,175,80,0.1)"]
- type: custom:button-card
entity: button.anycubic_printer_cancel_print
name: ANNULER
icon: mdi:stop
styles:
card: [border: "1px solid #f44336", background: "rgba(244,67,54,0.1)"]
- type: grid
title: Impression & Caméra
cards:
- type: picture
image_entity: image.anycubic_kobra_s1_anycubic_snapshot
- type: conditional
conditions:
- condition: state
entity: sensor.anycubic_kobra_s1_printer_state
state_not: free
card:
type: picture
image_entity: image.anycubic_kobra_s1_print_preview
aspect_ratio: "4:3"
- type: markdown
content: >-
<p style="text-align:center;">🖨️ **Fichier :** {{ states('sensor.anycubic_kobra_s1_print_filename') }}</p>
- type: grid
title: ACE Pro & Températures
cards:
- type: horizontal-stack
cards:
- type: custom:button-card
entity: sensor.anycubic_kobra_s1_nozzle_temperature
name: BUSE
show_state: true
- type: custom:button-card
entity: sensor.anycubic_kobra_s1_hotbed_temperature
name: PLATEAU
show_state: true
- type: horizontal-stack
cards:
- type: custom:mushroom-template-card
primary: S1
secondary: "{{states('sensor.anycubic_kobra_s1_filament_0_type')}}"
icon: mdi:circle
icon_color: "{{states('sensor.anycubic_kobra_s1_filament_0_color')}}"
layout: vertical
- type: custom:mushroom-template-card
primary: S2
secondary: "{{states('sensor.anycubic_kobra_s1_filament_1_type')}}"
icon: mdi:circle
icon_color: "{{states('sensor.anycubic_kobra_s1_filament_1_color')}}"
layout: vertical
- type: custom:mushroom-template-card
primary: S3
secondary: "{{states('sensor.anycubic_kobra_s1_filament_2_type')}}"
icon: mdi:circle
icon_color: "{{states('sensor.anycubic_kobra_s1_filament_2_color')}}"
layout: vertical
- type: custom:mushroom-template-card
primary: S4
secondary: "{{states('sensor.anycubic_kobra_s1_filament_3_type')}}"
icon: mdi:circle
icon_color: "{{states('sensor.anycubic_kobra_s1_filament_3_color')}}"
layout: vertical
Personnalisation : De l’utilitaire au « Cyber-Cockpit »
Une fois que vous maîtrisez les entités de base, la force de Home Assistant est de vous permettre de transformer une interface classique en un véritable tableau de bord immersif.
Voici un comparatif entre la configuration standard (vue précédemment) et ma version personnalisée pour la Kobra S1.
| Fonctionnalité | Version Standard | Ma Version Personnalisée |
| Design visuel | Minimaliste / Flat Design | Style Cyberpunk / Orbitron avec néons bleus |
| Effets dynamiques | Couleurs d’icônes simples | Glow-shadows et dégradés (gradients) dynamiques |
| Monitoring ACE Pro | Type & Couleur | Badge de statut indiquant quel slot est actif |
| Alertes thermiques | Texte simple | Bordures changeant de couleur selon la température |
| Arrière-plan | Couleur unie | Image immersive avec opacité contrôlée |

Le petit plus : L’automatisation « Auto-Coupure »
Dans ma version personnalisée, vous aurez remarqué un interrupteur nommé « Auto Coupure ». C’est une fonctionnalité que j’ai ajoutée via un input_boolean (un interrupteur virtuel) dans Home Assistant.
Le concept : Plutôt que de laisser l’imprimante allumée toute la nuit après une impression, Home Assistant gère l’extinction totale de la prise connectée, mais uniquement quand toutes les conditions de sécurité sont réunies.
Comment ça fonctionne ?
Pour que l’imprimante se coupe toute seule, j’ai créé une automatisation qui surveille trois conditions critiques :
- L’interrupteur « Auto Coupure » doit être activé sur le dashboard (pour garder le contrôle si on veut enchaîner les prints).
- Le statut de l’impression doit être sur
finish(terminé). - La température de la buse doit être descendue en dessous de 40°C. C’est l’étape cruciale pour protéger votre tête d’impression et éviter que la chaleur ne remonte et ne bouche le « heatbreak » faute de ventilation.
C’est là que la domotique prend tout son sens : coupler les données précises de la machine (température, état) avec une prise connectée externe pour une gestion intelligente que le fabricant ne propose pas nativement.
Ce qu’il vous faut pour cette fonction :
- Une prise connectée (Zigbee, Matter ou WiFi) supportée par Home Assistant.
- Un Interrupteur virtuel (Entrée / Input Boolean) créé dans vos paramètres Home Assistant.
- Une petite automatisation calquée sur ces trois conditions.
