/ tech

Déclarer 2 Octoprint sous HA

Home Assistant est compatible avec Octoprint, comme je l'avais detaillé sur un précédent post.

Il est néanmoins impossible de monitorer 2 instances Octoprint en même temps via le composant "octoprint" de Home Assistant.

Solution de contournement MQTT

On utilise le composant octoprint pour l'une des deux imprimantes, on a donc les sensors suivants sous HA :

  • OctoPrint actual bed temp
  • OctoPrint actual tool0 temp
  • OctoPrint target bed temp
  • OctoPrint target tool0 temp
  • OctoPrint Current State
  • OctoPrint Job Percentage

Pour permettre de monitorer la seconde instance voici la démarche mise en oeuvre.

On va d'abord installer le plugin Octoprint MQTT (suffit d'aller dans les paramètres Octoprint de l'instance).
Une fois installé on renseigne les informations nécessaires à la connexion Octoprint / Serveur MQTT.

  • host
  • port
  • username
  • password

de mon coté j'ai laissé les options de base pour monitorer tous les etats.

Ne pas oublier de redemarrer Octoprint une fois le plugin installé (et une nouvelle fois lorsque le plugin est configuré).

La configuration Home Assistant

Il faudra rajouter les sensors que l'on souhaite à HA pour ma part :

- platform: mqtt
  state_topic: 'octoprint/event/PrinterStateChanged'
  name: 'Anet A8 Status'
  value_template: '{{ value_json.state_string }}'

- platform: mqtt
  state_topic: "octoprint/temperature/bed"
  unit_of_measurement: "°C"
  name: "Anet A8 Bed Temp"
  value_template: '{{ value_json.actual }}'

- platform: mqtt
  state_topic: "octoprint/temperature/bed"
  unit_of_measurement: "°C"
  name: "Anet A8 Bed Temp Target"
  value_template: '{{ value_json.target }}'

- platform: mqtt
  state_topic: "octoprint/temperature/tool0"
  unit_of_measurement: "°C"
  name: "Anet A8 Nozzle Temp"
  value_template: '{{ value_json.actual }}'

- platform: mqtt
  state_topic: "octoprint/temperature/tool0"
  unit_of_measurement: "°C"
  name: "Anet A8 Nozzle Temp Target"
  value_template: '{{ value_json.target }}'

- platform: mqtt
  state_topic: "octoprint/progress/printing"
  unit_of_measurement: "%"
  name: "Anet A8 Percentage Done"
  value_template: '{{ value_json.progress }}'

On peut désormais declencher les actions de fin d'impression sur les deux machines automatiquement.

Déclarer 2 Octoprint sous HA
Share this