Anleitung – 3D Drucker mit OctoPrint einschalten und ausschalten
In dieser Anleitung geht es darum, den 3D Drucker mit OctoPrint einschalten und ausschalten zu können, denn oft läuft mein Mendel90 3D-Drucker auch Nachts und morgens wartet dann das fertige Teile auf mich. Was mich daran immer gestört hat, ist dass der Drucker sehr lange angeschaltet ist unnütz Strom verbraucht.
Deswegen möchte ich meinen Drucker mit Octoprint automatisch ausstellen können, wenn der Druck fertig ist. Außerdem möchte ich auch mit zwei Buttons in Octoprint den Drucker an und ausschalten können.
Ich habe mich dafür entschieden eine Funksteckdose mit dem Raspberry Pi anzusteuern und somit den Drucker zu schalten. Natürlich kann man auch ein 230V Relais verwenden, dies sollte allerdings nur durch Fachkundiges Personal erfolgen da 230V durchaus gefährlich sein kann. 😉
Inhaltsverzeichnis
Das wird benötigt:
- Raspberry Pi mit Octoprint
- Octoprint Plugin: System Command Editor
- Funksteckdosen mit „Systemcode“ und „Unitcode“ wie CSL oder Arendo
- 433Mhz Sende Modul
- 3 Kabel (z.B Jumpwires)
Raspberry Pi konfigurieren
Die benötigte Software laden und installieren wir über die Konsole. Log dich per SSH (Putty) als root auf deinem Raspberry Pi ein und gib folgende Befehle ein:
apt-get update apt-get install git git clone git://git.drogon.net/wiringPi cd wiringPi ./build
Als nächstes installieren wir Raspberry-Remote
cd git clone git://github.com/xkonni/raspberry-remote.git cd raspberry-remote make send
Verkabelung: 433Mhz Sender an Raspberry Pi
Das Sendemodul schließt du wie folgt an.
Raspberry Pi GPIO 17 -> DATA 433Mhz Sendemodul
Raspberry Pi GND -> GND 433Mhz Sendemodul
Raspberry Pi 5v -> VCC 433Mhz Sendemodul
Als Antenne kannst du einen Draht mit der Länge 17,3 cm um einen Bleistift wickeln und anlöten. Alternativ kannst du diese Antennen (Versand auch China) verwenden.
Allerdings sollte es sogar ohne Antenne funktionieren, da die beiden Geräte ja sehr nahe beieinander stehen. Ein Draht würde also schon ausreichen.
Funksteckdose konfigurieren
SystemCode stellen wir auf 10100 stellen – Dies ist der Hausinterne Code, damit der Nachbar nicht den Drucker schalten kann
Unitcode stellen wir auf 10000 (A) – Der Unitcode ist die Eindeutige Nr der Steckdose. Hier ist es Steckdose A oder 1
Deckel wieder zu und in einer freien Steckdose einstecken. Wir testen nun über die Konsole ob die Steckdose wie gewünscht geschaltet wird:
Steckdose einschalten:
sudo ~/raspberry-remote/send 10100 1 1
Steckdose ausschalten:
sudo ~/raspberry-remote/send 10100 1 0
Wenn die Steckdose schaltet, kannst du sie in die Steckdose zu deinem 3D-Drucker stecken und mit den nächsten Schritten weitermachen.
Octoprint Konfigurieren
Als erstes solltet ihr das Plugin System Command Editor installieren
Danach musst du zwei Befehle anlegen. Das geht mit einem Rechtsklick in den grünen Kasten.
Hier kannst du nun deine Befehle eingeben. „Use Confirmation“ bedeutet, dass man vorher gefragt wird ob man den Befehl ausführen möchte. Dies macht beim Ausstellen durchaus Sinn, damit man nicht aus versehen den falschen Button anklickt.
Du findest die Befehle dann in der Menü Leiste.
Video
Und hier ein Video wie das ganze dann ausschaut.
ToDo für dieses Tutorial:
An der Verknüpfung, dass sich der Drucker automatisch ausschaltet wenn ein Druck fertig ist, werde ich demnächst arbeiten. Dazu werde ich wahrscheinlich folgendes Plugin abändern.
Edit: 24.05.2016
Ihr könnt einfach folgendes Plugin nutzten und eigene System Commands eintragen die nach dem Beenden des Druckes ausgeführt werden.
https://github.com/OctoPrint/OctoPrint-AutomaticShutdown
Hallo. Danke wirklich toller Artikel.
In dem PlugIn dass du verlinkt hast zum automatischen abschalten wenn der Druck fertig ist. Ich finde leider nicht, wo du da eigene Systemkommands eigeben konntest. Kann mit hier vielleicht jemand helfen?
Danke
Hey Phil,
wiringPi hat einen neuen github, da Gordon das Projekt nicht mehr macht. Kannst Du die Anleitung bitte aktualisieren?
https://github.com/WiringPi/WiringPi.git
Viele Grüße,
Thalia
Hallo,
hoffe hier kann mir jemand weiterhelfen. Ich kann die Steckdose über den Pi Ein-und Ausschlaten. Über Octoprint mit dem System command Editor funktioniert das aber nicht. Ich habe schon diverse Sachen ausprobiert. Kann mir hier jmd weiterhelfen ? Folgende Fehlermeldungen kommen:
Eingabe im System command editor:
sudo ~/raspberry-remote/send 10100 1 0
Fehler:
Command for custom:druckeraus failed with return code 1:
STDOUT:
STDERR: sudo: no tty present and no askpass program specified
Eingabe im System command editor:
~/raspberry-remote/send 10100 1 0
Fehlermeldung:
Command for custom:druckeraus failed with return code 127:
STDOUT:
STDERR: /bin/sh: 1: /home/pi/raspberry-remote/send: not found
Ich würde mich sehr über hilfe freuen, da ich nicht weiterkomme. Vielen Dank.
Hi Florian, hab mir das heute auch mal zusammen gebaut und im System command Editor die Daten so eingeschrieben wie in der Anleitung beschrieben. ich musste lediglich das sudo weg lassen. Kannst ja auch mal probieren ohne sudo.
1. mit rechts klick auf den grünen Kasten und auf create Command, dort alles so eintragen für den Befehl an schalten(sudo ~/raspberry-remote/send 10100 1 1 ) und dann abspeichern. Das selbe machst du dann mit dem Befehl ausschalten (sudo ~/raspberry-remote/send 10100 1 0 )
2. Octopi neu starten dann sollte es oben im System sichtbar sein.
Ich hab mir noch das plugin AutomaticShutdown installiert und damit (mit den richtigen Einstellungen ) schaltet der Drucker bei erreichen einer bestimmten Temperatur selber ab.
Im folgenden etwas Halbwissen, so habe ich es aber ans Laufen bekommen:
Du musst dem Pi ermöglichen sudo ohne Passwort ausführen zu können.
Dazu musst du eine kleine Datei erstellen. Befolge die Anleitung im Link, dann sollte es funktionieren
https://community.octoprint.org/t/system-command-center-stderr-error/8319
Die Datei sollte dann so heißen wie dein command (z.b. „send“)
Hallo
bekomme diese Fehlermeldung
könnte mir jemand einen tipp geben wo der Fehler liegt
root@octopi:~# git clone git://git.drogon.net/wiringPi
bash: /root/bin/git: No such file or directory
Gib mal das ein
sudo apt-get install wiringpi
Des weiteren habe ich im Event-Bereich der config.yaml konfiguriert, dass OctoPrint nach dem Beenden eines Druckjobs automatisch den Drucker abschaltet.
per ssh geht es mit system commant editor fehler lasse ich sudo weg gibt es keinen fehler aber die funksteckdosse wird auch nicht angesteuert
mit sudo geht es per ssh bei mir in octoprint system commant editor fehler lasse ich sudo weg gibt e keine fehlermeldung aber die funksteckdosse wird auch nicht angesteuert woran liegt das ?
Hallo Phil, wiringPi kann soweit ich das sehe nicht mehr heruntergeladen werden.
Es kommt folgende Fehlermeldung:
Cloning into ‚wiringPi’…
fatal: unable to connect to git.drogon.net:
git.drogon.net[0: 188.246.205.22]: errno=Connection refused
git.drogon.net[1: 2a03:9800:10:7b::2]: errno=Network is unreachable
Gibt es nutzbare Alternativen zu wiringPi?
Viele Grüße
Hi,
ich vermute du verwendest so wie ich einen Pi4.
Habe folgendes gefunden und konnte dann wiringPi installieren.
http://wiringpi.com/wiringpi-updated-to-2-52-for-the-raspberry-pi-4b/
LG
Christoph
Hallo Phil,
vielen Dank für diese nützliche Anleitung! Im ersten Versuch hat alles prima funktioniert.
Nun musste ich meinen Octoprint-Server neu aufsetzen und bin gescheitert. Ich kann über Putty die Funksteckdose schalten. Das Einrichten im Octoprint ist genau nach Anweisung geschehen. Wenn ich nun ein- oder ausschalten will, erhalte ich die folgende Fehlermeldung: Der Befehl „Drucker an“ konnte nicht ausgeführt werden. – Command for custom:drucker_an failed: ‚ascii‘ codec can’t encode character u’\xbb‘ in position 34: ordinal not in range(128) –
OctoPrint 1.3.9 auf OctoPi 0.15.1
Weiss jemand Rat?
Ich habe leider genau das gleiche Problem wie Stephan, gibt es dafür schon einen Lösungsansatz?
Das liegt an Jenkins vom Octopi. Lass das sudo weg, dann gehts.
Hallo! Ich habe mein Octoprint neu aufgesetzt mit der Version 0.15.0. Nun habe ich das Problem, das ich meine Funksteckdose nicht mehr schalten kann! Wenn ich es über PUTTY ansteuer funktioniert es wunderbar, aber wenn ich in Octoprint über dem System Command Editior den gleichen Befehl sende, bekomme ich folgende Fehlermeldung
Command for custom:drucker_ein failed with return code 1:
STDOUT:
STDERR: sudo: no tty present and no askpass program specified
Kann mir da jemand einen Tipp geben, woran es liegen kann?
Das liegt an Octopi. Lass das sudo vor dem Befehl weg und es geht.
Hallo! Ih muss das Thema noch einmal ansprechen! Ich bekomme bei Octoprint 0.15.0 folgende Fehlermeldung wenn ich es über den System Command Editior aufruen will!
Command for custom:drucker_an failed with return code 1:
STDOUT:
STDERR: sudo: no tty present and no askpass program specified
Kann mir da jemand sagen, wo das Problem liegt?
Vielen Dank
Gruß
Stephan
Hi ,
Ich komme leider nur bis zu dem punkt an dem octopi system Commander den befehl senden soll danach kommt dieser fehler Command failed with return code 1:
STDOUT:
STDERR: sudo: /home/pi/raspberry-remote/send: command not found
Wenn ich den befehl per ssh eingebe schaltet die Dose ohne probleme.
Kann mir jmd. Helfen komplett neu aufsetzen hat auch nichts gebracht…
Hallo, danke für die Anleitung hier, bin erst seit kurzem mit 3D Druck gestartet und habe vieles nun eingerichtet und installiert, aber ich schaffe es nicht, dass der Drucker bzw die Steckdose nach fertigem Druck ausschaltet. Fälschlicherweise habe ich erstmal nur das normale Autoshutdown installiert und nachdem Druck war der Drucker zwar noch an, aber Octoprint heruntergefahren. (lach!)
Dann habe ich den Settings unter Server den „sudo-Steckdosen-Aus“ Befehl in die Zeile des herunterfahrens ersetzt bzw geschrieben. Dann ging es aber nicht. Auch der Link vom 24.05.16 zu den ganzen Files bringt mir keine Klarheit, da ich mich zu wenig auskenne.
Wer könnte so freundlich sein und mir eine Malen nach Zahlen-Anleitung nennen, wo nach erfolgreichem Druck lediglich die Steckdose auf aus geschaltet wird, der Octoprint aber weiterhin an bleiben soll.Danke im Voraus und Frohe Weihnachten an alle.
Hallo,
hat schon jemand heraus gefunden, wie man das nach dem Druck automatisch sendet?
Ja Top Tutorial!
Eigentlich… habe mich an den Funksteckdosen gehalten die hier vorgeschlagen werden… kamen heute an… kann keinen Unicode einstellen -.-
Sorry, dann scheinen sie das Produkt geändert zu haben. Hast du Fotos davon?
Dito hier, ich hab mir dann welche von Brennenstuhl bestellt, die die Einstellmöglichkeit haben.
https://www.amazon.de/gp/product/B07CGBRS7T/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1
Hat auf Anhieb funktioniert. Danke! Jetzt fehlt mir nur noch der letzte Schritt zum automatischen ausschalten NACH Printende.
Hi,
bei mir funktioniert es nur in der Konsole. Über Octipi erhalte ich immer die Meldung „STDERR: sudo: /home/pi/raspberry-remote/send: command not found“.
Kann mir jemand helfen ?
Bei mir funktioniert der shutdown nach dem Druck nicht. Plugin Automatic Shutdown ist installiert und unten links auch angeschaltet in der octoprint Startseite. Befehl im Server Plugin hab ich gesetzt (der gleiche Befehl copy and paste vom System comand Plugin über das ich den Drucker bereits ausschalten kann).
Was mach ich falsch?
LG
Hi,
bei mir tritt das gleiche Problem auf. Manuelles Ein-/Ausschalten per Octoprint funktioniert ohne Probleme.Aber wenn ich das Häkchen unten auf der Octoprint Startseite aktiviere, schaltet sich der Drucker nach dem Beenden des Jobs nicht automatisch ab, auch ein neuinstallieren des Plugins brachte keine Änderung.
vG
Automatic shutdown funzt nur für den Raspi. Leider.
Ich habe es anders gelöst:
https://discourse.octoprint.org/t/psu-control-with-radio-switch-do-i-get-it-right/2728
sudo weglassen und man kann das timeout und die Temperatur einstellen.
Ich denke, das Projekt ist so nicht zu empfehlen, weil das 433Mhz-Signal nicht verschlüsselt ist.
Wie oft kann es passieren, dass der Drucker an geht, weil der Nachbar gerade seine Kaffeemaschine einschaltet?
Beim Ausschalten der Kaffeemaschine des Nachbarn ist dann Dein Druck ruiniert?
Ich plädiere dann doch entweder zur Schaltung mit dem Relais oder eine Schaltung über das 868Mhz Signal. Alle Aktoren z.B. der Homematic laufen verschlüsselt und müssen angelernt werden.
Somit ist ein unbeabsichtigtes Ein- bzw Ausschalten nicht mehr möglich.
Das Signal ist ja sowohl mit Systemcode und Unitcode adressiert. Der Nachbar müsste nicht nur den selben Unitcode verwenden sondern auch den selben Einheitencode (bei jeweils 32 unterschiedlichen Zuständen sind das 1.024 Möglichkeiten)…
Und sich auch noch in Reichweite des Empfängers befinden. Meiner Erfahrung nach braucht man schon etwas Glück, um überhaupt durch eine Wand zu kommen…
Insofern: ja, es gibt bessere Möglichkeiten, aber keine, die auch nur ansatzweise so günstig ist und das Risiko ist IMHO überschaubar.
Für die den letzten Schritt nach dem Edit nicht ganz klar finden.
Ihr geht nachdem ihr Automatic Shutdown installiert habt wieder auf die Einstelluingen und dort findet ihr unter dem Punkt Octoprint/Server eine Zeile bei System herunterfahren. Hier einfach den Code sudo ~/raspberry-remote/send 10100 1 0 einfügen. Dann macht Octoprint den Drucker (Steckdose) nach dem Print aus.
Klappt leider doch nicht so. Verstehe nicht wie ich bei automatic shutdown den consolen befehl senden kann
Siehe Kommentar oben, das funzt nicht.
Hallo
ich wie oben beschieben alles installiert. Soweit passt ja alles.
Man kann den Drucker ein bzw. ausschalten. Nur mit dem Plugin Automaticshutdown funzt es nicht. Hat jemand die Lösung oder kennt wer den Grund dafür?.
Hallo,
erstmal Danke für die Anleitung! Hab alles soweit eingerichtet. In der Konsole klappt auch alles und die Steckdose lässt sich schalten. Nur wenn ich den Befehl beim System Command eingebe kommt eine Fehlermeldung : „Command failed with return code 1“
was könnte das sein?
bzw folgender Fehler wird angezeigt:
Command failed with return code 1:
STDOUT:
STDERR: sudo: /home/pi/raspberry-remote/send: command not found
Fehler selbst gefunden 😉 Jetzt funzt es.
Und wo lag der Fehler?
Ich habe nämlich das selbe Problem.
Habe auch das Problem!
Hier dürfte die Installations-Reihenfolge das Problem gewesen sein. Ich habe Automatic Shutdown deinstalliert und dann wieder installiert und dann hat es funktioniert.
Hallo.
Wie bekomme ich es denn jetzt hin, dass Octoprint nach dem Druck den Befehl:
sudo ~/raspberry-remote/send 10100 1 0
ausführt?
Vielen Dank für eure Hilfe
Gruß Stefan
Schau hier: https://discourse.octoprint.org/t/psu-control-with-radio-switch-do-i-get-it-right/2728
Hi,
ich nutze das Plugin Automaticshutdown dazu, das hat den Vorteil, dass vor dem Ausschalten eine Möglichkeit gibt, dass Runterfahren zu stoppen.. Mein Raspi läuft am Mendel 90 über die Dauer 5Volt des Netzteils. Diesen will ich aber nicht ausschalten, da ich dann nicht wieder remote einschalten kann. Über einen Raspi-GPIO am PSON des Netzteils schalte ich den Drucker ein und aus. Du kannst das Kommando das das Plugin automatishutdown zum Runterfahren nimmt, über die Octoprinteinstellungen und octoprint-> Server konfigurieren. Es nuss also nichts am Code des Plugins angepasst werden. Das Kommando ist übrigens unabhängig von dem was im Systemmenü konfiguriert ist.
Hey Wolfang,
Das klingt nach der perfekten Lösung. Ich hatte mir das Plugin noch nicht angeschaut. Das heißt also, dass ich den Befehl zum Steuern des Netzteil (PSON via GPIO) direkt im Plugin eintragen kann?
Das wäre super, hätte ich das Plugin mal installiert.
Wie ist denn der Befehl zum ausschalten? Wäre schön, wenn du mir die Infos mal zukommen lassen könntest, dann schreibe ich das ganze mal zusammen (natürlich mit dir in den Credits) 😉
Schönen Abend dir und danke für den hilfreichen Kommentar.
Phil
Hallo Phil,
ich hatte eine ähnliches Projekt bis jetzt um meinen 3D-Drcuker ein- und ausschalten zu können. Nun bin ich selbst auf der Suche den Drucker nach einem Job ausschalten zu können.
Wie ist den dein aktueller Stand zum Plugin?
Grüße
Patrick
Hallo Patrick,
ich habe den Beitrag editiert und dir einen Link zu dem Plugin mit reingeschrieben. =)
Beste Grüße,
Phil
Ich schicke dann nach einem Druck ein „M81“ an den Drucker 😉
Sehr schöne Idee und tolle Anleitung! Habe es gerade installiert und mein OctoPi ist seit heute noch nützlicher!
Freut mich dass es gefällt. 🙂
Hallo,
zum automatischem Ausschalten reicht vermutlich ein eintrag in der config.yaml.
http://docs.octoprint.org/en/master/configuration/config_yaml.html#events
Hallo Salandora,
Danke für den Tipp, werde ich mir mal anschauen.
Phil