OctoPrint Smart-Home-Integration, kostenlos und Open Source

Verfolge und steuere deine 3D-Drucke in OctoPrint: Fortschritt, Temperaturen, Alarme.
Verfolge und steuere deinen 3D-Drucker aus Gladys über OctoPrint, die freie Weboberfläche für 3D-Drucker (oft auf einem Raspberry Pi mit OctoPi installiert). Alles bleibt in deinem lokalen Netzwerk: Gladys spricht direkt mit OctoPrint, ohne Cloud-Konto.
Die Integration wurde mit einem echten OctoPrint (1.11.8) und seinem eingebauten virtuellen Drucker getestet: echte Drucke, Pause, Fortsetzen, Abbruch, Druckende. Mit einem physischen Drucker wurde sie noch nicht ausprobiert: Rückmeldungen im Gladys-Forum sind willkommen.
Voraussetzungen
- Gladys Assistant 5.1 oder neuer.
- OctoPrint 1.5 oder neuer, vom Gladys-Rechner aus erreichbar. Die Bestätigungsseite der Schaltfläche Verbinden braucht OctoPrint 1.10 oder neuer; bei einer älteren Version erscheint die Anfrage in der Oberfläche von OctoPrint.
- Ein OctoPrint-Benutzer, der den Drucker steuern darf (wer die Anfrage bestätigt: Der Schlüssel hat seine Rechte).
- Für das Webcam-Bild: OctoPrint 1.9 oder neuer, mit einer Webcam, die Schnappschüsse kann (Standard bei OctoPi).
Konfiguration
- Öffne den Reiter Konfiguration der Integration.
- Gib unter OctoPrint-Adresse die Adresse ein, mit der du OctoPrint im
Browser öffnest, zum Beispiel
http://192.168.1.50. Ein Port oder ein Pfad ist möglich (http://192.168.1.50:5000,https://example.org/octoprint). Nimm lieber eine IP-Adresse:octopi.local-Namen werden im Container der Integration nicht aufgelöst. Speichere. - Klicke auf Mit OctoPrint verbinden. Die Bestätigungsseite von OctoPrint öffnet sich: Melde dich bei Bedarf an und erlaube Gladys Assistant. Die Integration erhält ihren Schlüssel selbst und speichert ihn unter API-Schlüssel (das Feld bleibt maskiert). Der Status des Konfigurationsbildschirms wechselt auf verbunden.
- Ohne die Schaltfläche Verbinden: Erstelle einen Schlüssel in OctoPrint (Einstellungen → Application Keys oder den API-Schlüssel deines Benutzers), füge ihn unter API-Schlüssel ein und speichere.
- Ein zweiter oder dritter Drucker: Fülle Drucker 2 und Drucker 3 genauso aus (je eine OctoPrint-Instanz).
- Sprache legt die Sprache der Funktionsnamen und Texte fest, die die Integration erzeugt (Standard: Französisch). Funktionsnamen werden beim Hinzufügen des Geräts in Gladys festgelegt.
Füge den Drucker danach im Reiter Entdecken hinzu.
Das Druckergerät
Ein Gerät pro OctoPrint-Instanz, benannt nach dem Instanznamen von OctoPrint (Einstellungen → Erscheinungsbild) oder „OctoPrint“. Die Werte kommen in Echtzeit über die Push-Verbindung von OctoPrint (alle 5 Sekunden, Ereignisse sofort).
| Funktion | Was sie anzeigt |
|---|---|
| Status | Betriebsbereit, Druckt, Wird pausiert, Pausiert, Wird fortgesetzt, Wird abgebrochen, Wird abgeschlossen, Fehler, Drucker getrennt, OctoPrint nicht erreichbar, API-Schlüssel abgelehnt |
| Datei | Die gedruckte Datei oder die letzte |
| Fortschritt | Prozent des Drucks (nach einem fertigen Druck bleiben 100 %, nach einem Abbruch 0) |
| Verstrichene Zeit | In Minuten |
| Restzeit | Von OctoPrint geschätzt, in Minuten (0 im Leerlauf) |
| Düse, Druckbett, Bauraum | Temperaturen in ganzen Grad; eine Düse pro Extruder, der Bauraum nur, wenn das Druckerprofil einen beheizten Bauraum angibt |
| … (Soll) | Solltemperaturen, nur lesbar: Heizen über das Widget oder die Szenenaktionen |
| Pausieren, Fortsetzen | Druckknöpfe |
| Webcam | Das Webcam-Bild über OctoPrint (wenn eine Webcam mit Schnappschuss eingerichtet ist) |
Es gibt absichtlich keine Abbrechen-Taste am Gerät: Ein Tippen ohne Bestätigung würde einen Druck ruinieren. Abbrechen bieten das Widget (mit Bestätigung) und die Szenen. Auch Temperaturen und Solltemperaturen sind nur lesbar: Eine Druckerheizung lässt sich weder versehentlich im Dashboard noch über HomeKit, Alexa oder Google einschalten. Geheizt wird über das Widget (Vorheizen, Abkühlen) und die Szenenaktionen. Für Gladys sind das „Gerätetemperaturen“, die nie zur Raumtemperatur zählen.
Was der Drucker hat (Düsen, beheiztes Druckbett und Bauraum, Webcam), kommt aus dem aktiven Druckerprofil von OctoPrint. Ändert es sich, bietet Gladys im Reiter Entdecken an, das Gerät zu aktualisieren.
Dashboard-Widget
Füge das Widget 3D-Druck zu einem Dashboard hinzu und wähle den Drucker in seinen Einstellungen. Es zeigt:
- die Fortschrittsanzeige, die Restzeit, die Temperaturen von Düse und Druckbett (live);
- den Status, die Datei, die verstrichene Zeit, die voraussichtliche Endzeit, die aktiven Solltemperaturen;
- die passenden Tasten: Pausieren oder Fortsetzen und Abbrechen (mit Bestätigung) während eines Drucks; Vorheizen und, wenn etwas heizt, Abkühlen im Leerlauf.
Die Vorheiztemperaturen sind Einstellungen des Widgets (standardmäßig 200 °C und 60 °C, PLA).
Szenenauslöser
In der Kategorie Integrationen des Szeneneditors. Jeder lässt sich auf einen Drucker beschränken.
- Druck gestartet – Variablen: Druckername, Datei.
- Druck fertig – Variablen: Druckername, Datei, Druckdauer (als Text wie
1 Std. 05 Min.und in Minuten). - Druck fehlgeschlagen oder abgebrochen – lässt sich auf einen Grund beschränken (abgebrochen, Fehler). Variablen: Druckername, Datei, Druckdauer, Grund.
- Druck pausiert – von jemandem oder vom Drucker selbst (Filamentende). Variablen: Druckername, Datei, verstrichene Zeit.
Die Variablen liest du in den folgenden Aktionen zum Beispiel mit
{{triggerEvent.data.file}} und {{triggerEvent.data.duration}}.
Szenenaktionen
- Druck pausieren, fortsetzen oder abbrechen – gibt Ausgeführt: falsch zurück, wenn es nichts zu pausieren, fortzusetzen oder abzubrechen gab (die Szene läuft weiter).
- Drucker vorheizen – Solltemperaturen der Düse (aller Düsen) und des Druckbetts, standardmäßig 200 °C und 60 °C. Während eines Drucks abgelehnt (Ausgeführt: falsch): Eine Szene, die zu einer festen Uhrzeit vorheizt, rührt einen laufenden Druck nie an.
- Heizungen ausschalten – alle Solltemperaturen auf 0, auch während eines Drucks (der dann misslingt).
Szenenbeispiele
- Druck fertig → Benachrichtigung: Auslöser Druck fertig, Aktion
„Nachricht senden“:
{{triggerEvent.data.file}} fertig in {{triggerEvent.data.duration}}. - Rauch erkannt → alles stoppen: Auslöser am Rauchmelder, Aktionen Druck pausieren, fortsetzen oder abbrechen (abbrechen), dann Heizungen ausschalten, dann die smarte Steckdose des Druckers ausschalten.
- Bereit zum Aufstehen: werktags um 7:00 Drucker vorheizen (ohne Wirkung, wenn ein Druck läuft).
- Licht für die Webcam: Druck gestartet → Werkstattlicht an; Druck fertig oder Druck fehlgeschlagen → aus.
Fehlerbehebung
- OctoPrint antwortet nicht: Prüfe die Adresse vom Gladys-Rechner aus
(
curl http://192.168.1.50/api/versionantwortet ohne Schlüssel mit 403: OctoPrint ist erreichbar). Nimm eine IP-Adresse stattoctopi.local. - API-Schlüssel fehlt oder abgelehnt: Klicke erneut auf Verbinden oder füge einen neuen Schlüssel ein. Ein in OctoPrint widerrufener Schlüssel (Einstellungen → Application Keys) funktioniert sofort nicht mehr.
- Verbinden tut nichts / „abgelehnt oder abgelaufen“: Die Anfrage muss innerhalb von 10 Minuten von einem Benutzer bestätigt werden, der Zugriff gewähren darf. OctoPrint nimmt höchstens 3 Anfragen pro Minute an: Warte eine Minute, bevor du es erneut versuchst. Ist das Plugin Application Keys deaktiviert, füge einen Schlüssel ein.
- Die Adresse leitet um (http zu https): Gib die endgültige Adresse ein.
- Kein Webcam-Bild: Das Bild muss ein JPEG von höchstens 150 KB sein (eine Grenze von Gladys): Verringere die Auflösung der Webcam in OctoPrint.
- Die Werte kommen 10 s verspätet: Die Push-Verbindung ist nicht verfügbar (ein Reverse-Proxy ohne WebSocket): Die Integration liest dann die API alle 10 Sekunden und leitet die Druckereignisse aus den Statuswechseln ab.
- Protokolle: auf der Integrationsseite von Gladys oder mit
docker logsauf dem Host.LOG_LEVEL=debugzeigt Details. Der API-Schlüssel erscheint nie in den Protokollen.
Grenzen
- Höchstens drei OctoPrint-Instanzen.
- Kein Hochladen von Dateien, kein Druckstart aus Gladys, keine G-Code-Befehle, kein Zeitraffer.
- Das Webcam-Bild ist ein Schnappschuss, der jede Minute (und auf Abruf) erneuert wird, kein Videostream.
- Ohne Push-Verbindung kann ein Ereignis von weniger als 10 Sekunden verloren gehen, und ein durch einen Fehler beendeter Druck wird nur dann als fehlgeschlagen (Grund „Fehler“) gemeldet, wenn OctoPrint den Fehlerstatus anzeigt.
- Ohne physischen Drucker entwickelt (der virtuelle Drucker von OctoPrint kam zum Einsatz): Rückmeldungen willkommen.
- Keine Verbindung zu OctoPrint. OctoPrint ist ein Projekt von Gina Häußge.
Konfigurationseinstellungen
Diese Einstellungen fragt OctoPrint in seinem Konfigurationsbildschirm in Gladys ab.
| Einstellung | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
| Verbinde dein OctoPrint | section | Nein | Gib die Adresse von OctoPrint ein, wie du sie im Browser öffnest (am besten eine IP-Adresse), speichere, klicke dann auf Verbinden und bestätige die Anfrage in OctoPrint. Oder füge einen API-Schlüssel aus OctoPrint ein (Einstellungen, Application Keys). Bis zu drei Drucker. |
| OctoPrint-Adresse | string | Ja | Ein Port oder ein Pfad ist möglich (http://192.168.1.50:5000, https://example.org/octoprint). |
| Mit OctoPrint verbinden | account_link | Nein | Öffnet die Bestätigungsseite von OctoPrint: Melde dich dort an und erlaube Gladys Assistant. Der Schlüssel wird dann unten gespeichert. |
| API-Schlüssel | secret | Nein | Wird durch Verbinden ausgefüllt oder aus OctoPrint eingefügt. |
| Drucker 2 (optional) | section | Nein | Eine weitere OctoPrint-Instanz, genauso verbunden. |
| OctoPrint-Adresse 2 | string | Nein | |
| Mit OctoPrint verbinden 2 | account_link | Nein | Öffnet die Bestätigungsseite von OctoPrint: Melde dich dort an und erlaube Gladys Assistant. Der Schlüssel wird dann unten gespeichert. |
| API-Schlüssel 2 | secret | Nein | Wird durch Verbinden ausgefüllt oder aus OctoPrint eingefügt. |
| Drucker 3 (optional) | section | Nein | Eine weitere OctoPrint-Instanz, genauso verbunden. |
| OctoPrint-Adresse 3 | string | Nein | |
| Mit OctoPrint verbinden 3 | account_link | Nein | Öffnet die Bestätigungsseite von OctoPrint: Melde dich dort an und erlaube Gladys Assistant. Der Schlüssel wird dann unten gespeichert. |
| API-Schlüssel 3 | secret | Nein | Wird durch Verbinden ausgefüllt oder aus OctoPrint eingefügt. |
| Optionen | section | Nein | Sprache der Namen und Texte, die die Integration erzeugt (Funktionsnamen werden beim Hinzufügen des Geräts festgelegt). |
| Sprache | select | Nein |
So installierst du OctoPrint in Gladys
- Öffne in Gladys Integrationen: OctoPrint erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
- Klicke auf Installieren. Gladys lädt das Docker-Image (
ghcr.io/guim31/gladys-octoprint:1.0.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration). - Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
- Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-octoprint.
OctoPrint benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.
Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.
Über externe Integrationen
OctoPrint ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.
- Alle externen Integrationen durchsuchen
- Die nativen Integrationen entdecken, die in Gladys eingebaut sind
- Deine eigene externe Integration bauen und veröffentlichen
- Quellcode auf GitHub — Quelle dieser Dokumentation