OctoPrint in ioBroker integrieren
Heute freue ich mich, einen weiteren Gastartikel von Markus Henke veröffentlichen zu dürfen. Vor ein paar Tagen hat er Euch bereits gezeigt, wie IP Kameras wie z.B. die Doorbride, iRing oder andere IP-basierte Kameras auf der Amazon Echo Show angezeigt werden können. Heute habe ich einen Artikel aus der Kategorie „3D-Drucker“. Genauer geht es um die Erweiterung „OctoPrint“ und wie diese in ioBroker integriert werden kann. So können die Datenpunkte von OctoPrint z.B. auf in der Homematic Zentrale verarbeitet werden. Doch nun der ausführliche Artikel von Markus
Einigen von Euch wird die folgende Geschichte evtl. bekannt sein: Man fängt an seine Heizung smart zu machen, weil man Heizkosten sparen möchte. Irgendwie fasziniert einen das Thema und die ersten Lampen werden smart. Dann kommt irgendwann der Punkt an dem man Sensoren und Aktoren braucht, die es eigentlich nicht zu kaufen gibt und entdeckt die ganzen Selbstbauprojekte. Aber welche Gehäuse soll man dafür benutzen? Ein 3D-Drucker muss her.
Das ist die Kurzfassung meiner Smart Home Geschichte und wenn ich mich so in den Facebook Gruppen umsehe, dann scheine ich nicht der einzige zu sein. In jedem Fall ist Ende Dezember ein Anycubic i3 Mega bei mir eingezogen. Kaum waren die ersten Dinge gedruckt, kam auch direkt die Frage auf, wie ich den Drucker in mein Smart Home integrieren kann. Im Endeffekt war es dank OctoPrint und ioBroker deutlich einfacher als gedacht.
Was ist OctoPrint?
OctoPrint ist ein Webinterface für 3D-Drucker. Mit der kostenlosen Open Source Software ist es möglich einen 3D-Drucker zu steuern und Druckjobs zu überwachen. Zusätzlich lässt sich der Druckfortschritt mit einer angeschlossenen Webcam direkt im Browser sehen und sogar als Timelapse Video aufzeichnen. Insgesamt lässt sich sagen, dass OctoPrint die ideale Ergänzung für jeden 3D-Drucker ist.
Am einfachsten lässt sich OctoPrint mit einem Raspberry Pi nutzen. Auf der OctoPrint Seite gibt es eine gute Anleitung, die genau beschreibt, was zu tun ist um die Software zu installieren.
Wie bekommt man OctoPrint in den ioBroker integriert?
OctoPrint stellt eine API bereit, mit der man Information zum aktuellen Druckjob abfragen kann. So kann man z.B. die aktuelle Temperatur von Hotend und Heatbed, aber auch Informationen über den aktuellen Druckfortschritt abfragen.
In der folgenden Anleitung gehe ich davon aus, dass ihr sowohl eine funktionierende ioBroker Installation, als auch ein laufendes OctoPrint habt.
Die Integration in den ioBroker ist dank des OctoPrint Adapters wirklich einfach. Dafür klicken wir im ioBroker im Menü auf “Adapter” und anschließend auf das Icon mit der Katze.
Im sich nun öffnenden Dialog gehen wir auf den Reiter “Beliebig” und geben die URL des GitHub Repositories ein: https://github.com/klein0r/ioBroker.octoprint
Ist die Installation abgeschlossen, dann schließt sich der Dialog und wir können eine Instanz für den OctoPrint Adapter anlegen. Dafür suchen wir den Adapter in der Adapter Liste und klicken auf die drei Punkte rechts oben und anschließend auf das Plus links unten.
Nachdem die Instanz angelegt wurde, müssen wir sie jetzt konfigurieren. Dafür benötigen wir die IP und den Port des OctoPrint Servers und zusätzlich den OctoPrint API-Key. Den API-Key findet Ihr in den Einstellungen von OctoPrint unter “API”.
Jetzt, wo wir alle benötigten Informationen haben, geben wir diese im Konfigurationsdialog der OctoPrint Instanz ein und klicken anschließend auf “Speichern & Schließen”.
ioBroker startet jetzt die Instanz und versucht sich mit Eurem OctoPrint Server zu verbinden. Hat das geklappt, wird der Punkt neben der Instanz grün. Ist er orange, müsst Ihr die Einstellungen nochmals überprüfen und korrigieren.
Ab jetzt wird die API jede Minute abgefragt und die Objekte im ioBroker aktualisiert.
Zum jetzigen Zeitpunkt ist diese Frequenz hardcodiert im Quellcode des Adapters und lässt sich demnach nicht ohne weiteres ändern. Außerdem werdet Ihr im Log immer eine Fehlermeldung sehen, wenn der Drucker ausgeschaltet ist. Trotzdem ist der Adapter eine sehr gute Möglichkeit um OctoPrint in den ioBroker zu integrieren.
Wofür das Ganze?
Häufig ist die Antwort aus die Frage nach dem “Warum?” ganz einfach: Weil es möglich ist. :-) Hier gibt es aber ganz konkrete Anwendungsfälle:
- Wurde der 3D-Drucker in einem Schrank verbaut, dann kann man abhängig von der Temperatur die Lüfter steuern.
- Man kann sich über den aktuellen Druckfortschritt informieren lassen. Ich lasse mir z.B. alle 25% ein Bild von der Webcam per Telegram schicken.
- Ist der Druck fertig, dann könnte man eine Philips Hue Lampe grün leuchten lassen.
Ihr seht, der Fantasie sind mal wieder keine Grenzen gesetzt und dank ioBroker lassen sich viele unterschiedliche Smart Home Szenarien umsetzen.
Hallo Sebastain,
vielen Dank für deine Mühe diese „Hochzeit“ zwischen Octopi und ioBroker zu erklären.
Für mich sind beide Systeme schon lange eine vertraute Umgebung.
Mit dem ioBroker schalte und walte ich das ganze Haus und mit den Octopis (ich habe Vier 3D Drucker) steuere ich die Drucker im Keller.
Aber neu und sehr interessant, ist die Kombimation, da ich z.B. mehrere Galaxy Tablets im Haus verteilt haben und über VIS dann auch Infos über die Drucker abrufen kann.
Ich habe deine Anleitung erfolgreich umsetzen können und werden nun VIS um einige Seiten erweitern können.
LG
Lothar
Hallo Sebastian,
Octoprint ist für mich ein alter Hut, das Thema ioBroker allerdings neu :-)
Neues Bastelprojekt ist somit gesichert, check. Das Raspberry-Image ist bereits im Download.
–> “Warum?” ganz einfach: Weil es möglich ist. :-)
Viele Grüße und schöne Weihnachten
Hallo, super Beitrag zum Ideen bekommen. ;-)
mich würde interessieren wie bei dir das mit 25% und bild schicken abläuft.
Kannst du hierfür deine Scripte, Screenshot usw. posten?
wäre echt super!
lg wuliwux
Hallo,
wird der Adapter nicht gepflegt.
Gibt es einen weg den Status also wie viel Prozent und wie lange er noch braucht mit einzubinden.
Außerdem suche ich etwas um den Octoprint also Raspberry runter zu fahren.Damit er Problemlos vom Strom getrennt werden kann.
Danke
Hallo Mike,
hier ein teilweises Lösungsangebot:
Persönlich bin ich ziemlicher Anfänger was ioBroker angeht.
1. Zu Octoprint habe ich 2 Plugins hinzu gefügt Nr. 1 das Telegram-Plugin und Nr. 2 das Automatic Shutdown-Plugin ebenfalls habe ich in ioBroker den Octoprintadapter sowie den Shellyadapter installiert.
Das Telegram-Plugin des Octopi informiert mich über Zustände bzw. Status (diverse Einstellungen anpassbar). Das AutomaticShutdown-Plugin fährt den Octopi nach einer einstellbaren Verzögerung herunter. Dies kann während der Verzögerung jedes Mal auch abgebrochen werden.
2. Mein i3Mega ist an einem ShellyPM sowie „Lichtschalter“ angeschlossen. Mein Octopi an einen ShellyPlugS (geht auch an beiden Geräten jeweils ein PM oder S-Plug.
So kann der Octopi nach dem herunterfahren dann vom Strom getrennt werden (noch per Taster am ShellyPlugS) sowie der Any auch über „Lichtschalter“ ein- und ausgeschaltet werden.
In Zukunft werde ich noch ein Blocklyscript erstellen, mit welchem der Octopi nach dem Herunterfahren sowie der Any nach Druckabschluss (mit einer gewissen Verzögerung) beide Geräte automatisch vom Strom trennt.
Dies kann sich jedoch noch ein wenig hinziehen, da ich gerade den Broker neu aufsetze und auf einen Pi4 übertrage (bin mir hier mit ein paar Zusatzfunktionen für den Pi noch nicht ganz im Klaren).
Gruß
Hallo Sebastian,
vielen Dank für Deinen interessanten Beitrag.
Meinen i3Mega benutze ich ebenfalls mit Octoprint und habe dort seit kurzem das Telegram-Plugin installiert, welches auch ganz gut funktioniert.
Ebenfalls relativ frisch befinde ich mich im Einstieg bei iOBroker.
Hier meine Fragen:
1. Was wären die Vor-/Nachteile von iOBroker zu dem Telegram-Plugin zB. in Kombi mit einem Shelly- oder Tasmotaschalter
2. Vielleicht wäre auch noch mal ein Tutorial mit der Umsetzung der 25%-Telegrammgeschichte oder anderen Wenn/Dann-Lösungen möglich.
Viele Grüße und ein angenehmes WE
Hi,
ich hab den Adapter installiert, er liefert auch Werte. Wenn ich aber der Fortschritt des Drucks abfrage und zb sage bei 50% schicke eine pushover geht das nicht. Problem ist das jede Minute anscheinend die Werte abgefragt werden, und der Zufall das genau dann 50 als Wert da steht ist gering. Wie soll ich das denn realisieren???
Gibts eine Methode, Octoprint „einfach“ in openHAB zu integrieren?
Ansonsten finde ich die beschriebene Anleitung sehr gut … vielleicht installier ich ja mal IObroker.
Ich will ja wirklich nicht stänkern, aber jetzt muß ich wirklich mal fragen, in welcher Zeit Du lebst.
Diesen Adapter gibts schon seit einem halbes Jahr, wenn nicht noch länger.
Ich muß nur darauf hinweisen, daß bei der Download-Version von Octoprint der Port von 5000 auf 80 geändert werden muß.
Wenn man Octoprint manuell installiert, stimmt er.
Ich schalte schon länger den Drucker mit dem Sonoff S20 aus, wenn der Druck beendet ist, oder der Rauchmelder anspringt.
Was wirklich eine Neuigkeit wäre, ist der Adapter snips.
Das ist im Gegensatz zu Alexa und Co eine offline Sprachsteuerung, mit der man sein smartes Zuhause ohne Cloud steuern kann.
Hallo Mathias, das ist schon dass du bereits so tief im Thema drin bist – ich denke aber das viele die gerade einsteigen die Erweiterung noch nicht kennen. Wenn es für Dich nichts Neues ist, dann überspring den Artikel doch einfach.