Zum Hauptinhalt springen

OctoPrint Smart-Home-Integration, kostenlos und Open Source

OctoPrint-Integration für Gladys Assistant

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​

  1. Öffne den Reiter Konfiguration der Integration.
  2. 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.
  3. 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.
  4. 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.
  5. Ein zweiter oder dritter Drucker: Fülle Drucker 2 und Drucker 3 genauso aus (je eine OctoPrint-Instanz).
  6. 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).

FunktionWas sie anzeigt
StatusBetriebsbereit, Druckt, Wird pausiert, Pausiert, Wird fortgesetzt, Wird abgebrochen, Wird abgeschlossen, Fehler, Drucker getrennt, OctoPrint nicht erreichbar, API-Schlüssel abgelehnt
DateiDie gedruckte Datei oder die letzte
FortschrittProzent des Drucks (nach einem fertigen Druck bleiben 100 %, nach einem Abbruch 0)
Verstrichene ZeitIn Minuten
RestzeitVon OctoPrint geschätzt, in Minuten (0 im Leerlauf)
Düse, Druckbett, BauraumTemperaturen 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, FortsetzenDruckknöpfe
WebcamDas 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/version antwortet ohne Schlüssel mit 403: OctoPrint ist erreichbar). Nimm eine IP-Adresse statt octopi.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 logs auf dem Host. LOG_LEVEL=debug zeigt 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.

EinstellungTypPflichtfeldBeschreibung
Verbinde dein OctoPrintsectionNeinGib 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-AdressestringJaEin Port oder ein Pfad ist möglich (http://192.168.1.50:5000, https://example.org/octoprint).
Mit OctoPrint verbindenaccount_linkNeinÖffnet die Bestätigungsseite von OctoPrint: Melde dich dort an und erlaube Gladys Assistant. Der Schlüssel wird dann unten gespeichert.
API-SchlüsselsecretNeinWird durch Verbinden ausgefüllt oder aus OctoPrint eingefügt.
Drucker 2 (optional)sectionNeinEine weitere OctoPrint-Instanz, genauso verbunden.
OctoPrint-Adresse 2stringNein
Mit OctoPrint verbinden 2account_linkNeinÖffnet die Bestätigungsseite von OctoPrint: Melde dich dort an und erlaube Gladys Assistant. Der Schlüssel wird dann unten gespeichert.
API-Schlüssel 2secretNeinWird durch Verbinden ausgefüllt oder aus OctoPrint eingefügt.
Drucker 3 (optional)sectionNeinEine weitere OctoPrint-Instanz, genauso verbunden.
OctoPrint-Adresse 3stringNein
Mit OctoPrint verbinden 3account_linkNeinÖffnet die Bestätigungsseite von OctoPrint: Melde dich dort an und erlaube Gladys Assistant. Der Schlüssel wird dann unten gespeichert.
API-Schlüssel 3secretNeinWird durch Verbinden ausgefüllt oder aus OctoPrint eingefügt.
OptionensectionNeinSprache der Namen und Texte, die die Integration erzeugt (Funktionsnamen werden beim Hinzufügen des Geräts festgelegt).
SpracheselectNein

So installierst du OctoPrint in Gladys​

  1. Öffne in Gladys Integrationen: OctoPrint erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. 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).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. 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.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂