Ich verwende OctoPrint um meinen Prusa MINI zu steuern und ich nutze Home Assistant für meine Smarthome. Was liegt da näher als beides miteinander zu verbinden und gewisse Funktionen von OctoPrint auch in Home Assistant zu nutzen.
Installation
Ich gehe davon aus, das ihr bereits OctoPrint und Home Assistant am laufen habt. Ich gehe hier also auf die Einrichtung der Integration in Home Assistant ein.
Geht zu Einstellungen > Geräte & Dienste
. Im Regelfall sollte Home Assistant bereits OctoPrint erkannt haben und euch unter Entdeckt
anzeigen. Startet die Installation der Integration mittels hinzufügen. Sollte OctoPrint nicht erkannt worden sein, drückt auf Integration hinzufügen
und sucht nach OctoPrint. Im folgenden Dialog gebt ihr den Benutzernamen für OctoPrint an wechselt danach zu OctoPrint.



In OctoPrint müsst ihr mit dem zuvor angegebenen User angemeldet sein und bestätigt dort die Zugriffsanfrage. Eventuell müsst ihr nochmals euer Passwort für OctoPrint eingeben und anschließend wird der Zugriff gewährt. In Home Assistant könnt ihr das neue Gerät nun einen Bereich zuordnen und schon habt ihr die Integration installiert.



OctoPrint Beispiel Dashboard
Ok, was können wir nun machen. Eine vollständige Beschreibung findet ihr bei Home Assistant direkt. Ich habe mich nur auf ein paar Dinge konzentriert, welche für mich interessant sind und mir daraus ein Dashboard erstellt. Mein Drucker steht im Keller und über eine Schaltsteckdose kann ich ihn aus der Ferne einschalten. Drucke starte ich dann über das Webinterface von OctoPrint direkt, überwachen meistens aber aus HA heraus.
Mein Dashboard ist dabei wie folgt aufgebaut. Auf der Linken Seite kann ich die Schaltsteckdose steuern und sehe die aktuelle aufgenommene Leistung. Zusätzliche sehe ich die Luftfeuchtigkeit in meinen Dryboxen. Die Überwachung der Luftfeuchtigkeit habe ich bereits vorgestellt.
Auf der rechten Seite sehe ich den Zustand von OctoPrint und den Stream der angeschlossenen Webcam. Bei den Zuständen interessiert mich hauptsächlich die Endzeit und wie viel Prozent bereits gedruckt worden sind. Für den Stream nutze ich die webrtc-camera Karte, welche im WebRTC Paket enthalten ist. Somit habe ich den direkten Stream in HA und sehe sofort was passiert. Daneben habe ich noch die Möglichkeit OctoPrint herunterzufahren oder neuzustarten.
Die Karte sind als konditionale Karten aufgebaut, somit werden sie nur angezeigt wenn OctoPrint läuft. Sobald es nicht erreichbar ist, wird nur die Info „Nicht verfügbar“ angezeigt.


square: false
type: grid
cards:
- type: markdown
content: "## <center><ha-icon icon=\"mdi:printer-3d\"></ha-icon> Octoprint</center>"
card_mod:
style: |
ha-card {
background: #03a9f4;
box-shadow: none;
}
- type: conditional
conditions:
- condition: state
entity: sensor.octoprint_current_state
state_not: unavailable
card:
type: entities
entities:
- entity: sensor.octoprint_current_state
name: Current State
- entity: sensor.octoprint_estimated_finish_time
name: Estimated Finish Time
- entity: sensor.octoprint_job_percentage
name: Job Percentage
- entity: binary_sensor.octoprint_printing
name: Printing
- entity: sensor.octoprint_start_time
name: Start Time
- type: conditional
conditions:
- condition: state
entity: sensor.octoprint_current_state
state_not: unavailable
card:
type: custom:webrtc-camera
url: http://IP-eurers-OctoPrint-Servers/webcam/?action=stream
- type: conditional
conditions:
- condition: state
entity: sensor.octoprint_current_state
state_not: unavailable
card:
type: entities
entities:
- entity: button.octoprint_reboot_system
name: Reboot System
- entity: button.octoprint_shutdown_system
name: Shutdown System
title: OctoPrint
- type: conditional
conditions:
- condition: state
entity: sensor.octoprint_current_state
state: unavailable
card:
type: entity
entity: sensor.octoprint_current_state
columns: 1
YAMLPushmitteilung sobald der Druck fertig ist
Damit ich auch weiß, wann der Druck abgeschlossen ist, lasse ich mur eine Push Mitteilung schicken. Dabei gibt es mehrere Möglichkeit. Ich lasse mich informieren sobald der Zustand sich von Printing
zu Operational
ändert, oder ihr schaut darauf ob Job Percentage
100% erreicht.
alias: Octoprint_Ready
description: ""
mode: single
triggers:
- entity_id:
- sensor.octoprint_current_state
from: Printing
to: Operational
trigger: state
conditions: []
actions:
- data:
message: 3D Druck ist abgeschlossen
action: notify.mobile_app_fuagunn
YAMLIch hoffe ich konnte euch bei der Einrichtung helfen und ein paar nützliche Anregungen geben. Wie immer ist eurer Kreativität hier fast keine Grenze gesetzt und jeder macht es anders.