Tutorial: Funksteckdosen mit Repetier-Server schalten

 

Vorwort

Zuerst möchte ich anmerken, dass ich mich an die Anleitung von Philipp Seidel gehalten habe.
Diese Anleitung ist für den OctoPrint Printserver gedacht und funktioniert auf dem Repetier-Server aber auch so, benötigt aber einige zusätzliche Einstellungen.
https://blog.seidel-philipp.de/anleitung-3d-drucker-mit-octoprint-einschalten-und-ausschalten

Herzlichen Dank an Philipp Seidel für die wichtige Vorarbeit!

Das wird benötigt

Als besonderen Bonus haben wir einen Gutscheincode über 15% Rabatt für den Kauf des Repetier-Servers Pro erhalten.
Der Gutscheincode lautet „selbstgedruckt“ und ist bis zum 31.08.2018 gültig.
https://www.repetier-server.com/

Codierung der Funksteckdose

  • Den SystemCode (hausinterner Code) der Funksteckdose* stellen wir auf 10101.
  • Den Unitcode, die eindeutige Adressierung der Steckdose, wird mit den DIP-Schaltern auf 10000 (A) eigestellt. Damit wird die Adresse Steckdose als „D“ oder „4“ definiert.
Codierschalter der Funksteckdose

Anschlussplan des Sendemoduls an den Raspberry Pi

Anschlussbelegung an den Raspberry PI – Quelle http://www.raspberrypi-spy.co.uk

Die Anschlüsse werden wie folgt verbunden:

GND vom Sendemodul an -> GND des Raspberry
DATA vom Sendemodul an -> GPIO-PIN 17 des Raspberry
5V (VCC) vom Sendemodul an -> 5V des Raspberry

Raspberry Pi mit angeschlossenem Sendemodul

Software

Die benötigten Komponenten auf dem Raspberry werden wie folgt installiert:
Software für die Installation ist Putty und WinSCP

Installation.

Als Benutzer ‚pi‘ auf dem Raspberry Pi per Putty anmelden. (Das Passwort ist meistens: ‚raspberry‘)

Git installieren und WiringPi, mit dem die GPIO-Pins des Raspberry Pi gesteuert werden

Da für die Installation noch einige elementare Module im Repetier-Server Image fehlen, müssen diese vorher mit den folgenden Befehlen installiert werden:

sudo apt-get update
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install make
sudo apt-get update
sudo apt-get install git
sudo git clone git://git.drogon.net/wiringPi
cd wiringPi
sudo ./build
Raspberry-Remote installieren
cd
sudo git clone git://github.com/xkonni/raspberry-remote.git
cd raspberry-remote
sudo make send

Anpassungen für Repetier-Server

Nun kommen wir hier zu den benötigten Anpassungen, damit der Benutzer „repetierserver“ auch die Funktionen benutzen kann.
Der User „repetierserver“ muss als sogenannter „sudoer“ deklariert werden und Rechte auf verschiedene Verzeichnisse und den „send“-Befehl bekommen.
Das ist einiges an manueller Tipperei. Hier die Befehle und bitte darauf achten, dass beim ersten „echo“ nur ein „>“-Zeichen verwendet wird und ab dem zweiten „echo“ dann bitte so „>>“ :

sudo -s
echo "repetierserver ALL=NOPASSWD: /home/pi/raspberry-remote" > /etc/sudoers.d/repetierserver-remote 
echo "repetierserver ALL=NOPASSWD: /home/pi/raspberry-remote/send" >> /etc/sudoers.d/repetierserver-remote 
echo "repetierserver ALL=NOPASSWD: /home/pi/autopoweroff.sh" >> /etc/sudoers.d/repetierserver-remote 
echo "repetierserver ALL=NOPASSWD: /home/pi/autopoweron.sh" >> /etc/sudoers.d/repetierserver-remote 
echo "repetierserver ALL=NOPASSWD: /home/pi" >> /etc/sudoers.d/repetierserver-remote

Im Nachhinein habe ich festgestellt, das mit sudo visudo -f /etc/sudoers.d/repetierserver-remote die Datei auch erstellt werden kann.
Üblicherweise öffnet sich dazu der „nano“ Editor. Innerhalb des Editors gibt es einige rudimentäre Befehle einer Textverarbeitung.
Die aktulle Zeile kann mit Ctrl-K ausgeschnitten und mit Ctrl-U wieder eingefügt werden. Damit sind dann nur noch einige Angaben zu ändern.
Mit Ctrl-O wird gespeichert und anschließend mit Ctrl-X der Editor verlassen.

repetierserver ALL=NOPASSWD: /home/pi/raspberry-remote/send
repetierserver ALL=NOPASSWD: /home/pi/raspberry-remote
repetierserver ALL=NOPASSWD: /home/pi/autopoweron
repetierserver ALL=NOPASSWD: /home/pi/autopoweron.sh
repetierserver ALL=NOPASSWD: /home/pi/autopoweroff
repetierserver ALL=NOPASSWD: /home/pi/autopoweroff.sh
repetierserver ALL=NOPASSWD: /home/pi
repetierserver ALL=NOPASSWD: /usr/bin/python

Befehle für Repetier-Server einrichten

Auch das Schalten aus dem Gcode funktioniert mit selbstdefinierten Befehlen.
Wichtige Grundlage ist die Anpassung der extcommands.xml, die wie folgt aussehen sollte:

<config>
<!-- If you want to run external commands, enter them in this configuration with
full path. You will see them in the main menu. Copy this file into the
<storage>/database directory.
Security consideration: The reason there is no online editor for this is simply
security. The commands you enter here are executed with the privileges of the
daemon running the server. If you would allow online configuration, a hacker could
simply add any command he needs to hack your system. -->
<command>
<name>Shutdown Server</name>
<execute>sudo /sbin/shutdown -h now</execute>
<confirm>Really shut down the server?</confirm>
<!-- Define if command should show up in local printer interface, default true.-->
<local>true</local>
<!-- Define if command should show up in remote printer interface, default true.-->
<remote>true</remote>
<!-- Define if command should show up only for users with print permission, default true.-->
<print-permission>true</print-permission>
<!-- Define if command should show up only for users with add files permission, default false.-->
<add-permission>true</add-permission>
<!-- Define if command should show up only for users with del files permission, default false.-->
<del-permission>true</del-permission>
<!-- Define if command should show up only for users with configuration permission, default false.-->
<config-permission>true</config-permission>
</command>
<command>
<name>Reboot Server</name>
<execute>sudo /sbin/shutdown -r now</execute>
<confirm>Really reboot the server?</confirm>
<!-- Define if command should show up in local printer interface, default true.-->
<local>true</local>
<!-- Define if command should show up in remote printer interface, default true.-->
<remote>true</remote>
<!-- Define if command should show up only for users with print permission, default true.-->
<print-permission>true</print-permission>
<!-- Define if command should show up only for users with add files permission, default false.-->
<add-permission>true</add-permission>
<!-- Define if command should show up only for users with del files permission, default false.-->
<del-permission>true</del-permission>
<!-- Define if command should show up only for users with configuration permission, default false.-->
<config-permission>true</config-permission>
</command>
<command>
<name>Drucker_Strom_an</name>
<execute>./home/pi/autopoweron.sh</execute>
</command>
<command>
<name>Drucker_Strom_aus</name>
<execute>./home/pi/autopoweroff.sh</execute>
</command>
<command>
<name>Testmail</name>
<execute>python /home/pi/Druckerfertig.py</execute>
</command>
<execute name="poweron" allowParams="true">./home/pi/autopoweron.sh</execute>
<execute name="poweroff" allowParams="true">./home/pi/autopoweroff.sh</execute>
</config>

Weitere Dateien

Im Verzeichnis /home/pi müssen die Skriptdateien autopoweron.sh und autopoweroff.sh stehen. Diese müssen mit dem Befehl ‚chmod +X autopoweron.sh‚ bzw. ‚chmod +X autopoweroff.sh‚ ausführbar gemacht werden.

Die Datei autopoweron.sh hat folgenden Inhalt:

#!/bin/bash
sudo ./home/pi/raspberry-remote/send 10101 4 1

Die Datei autopoweroff.sh hat folgenden Inhalt:

#!/bin/bash
 sudo ./home/pi/raspberry-remote/send 10101 4 0

Nutzung der zusätzlichen Funktionen im Gcode

Nutzung der zusätzlichen Funktionen im Gcode

@execute poweron
@execute poweroff

Diese Befehle veranlassen den Repetierserver dann entsprechend die Funksteckdose an oder auszuschalten.
Um die Befehle automatisch direkt von einem Slicer im Gcode einzubauen, werden diese Befehle im Scriptteil vom Slicer z. B. Simplify3D eingetragen.

Das Anschalten „poweron“ muss am Anfang des Scripts eingefügt werden
{PREPEND „@execute poweron \n“} und wird durch den Postprozessor Befehle {PREPEND „xxxx“} gesteuert.

{APPEND „@execute poweroff\n“} für das Ausschalten muss dann am Ende stehen und wird über den Befehle {APPEND „xxx \n“}. Mit der Zeichenkombination „\n“ wird eine Zeilenschaltung gemacht.

Einbinden der Befehle in Simplify3D
Hinweis

Damit das Abschalten des Druckers nicht zu schnell stattfindet und das Druckbett vom Extruder weggefahren ist, muss auf die vollständige Abarbeitung des Gcodes geachtet werden.
Damit dies gewährleistet werden kann, ist z.B. nach dem Fahrbefehl ein M400 notwendig.
Damit wird der Controller angewiesen mit der Abarbeitung des Gcodes zu warten, bis der vorige Befehl abgearbeitet ist.
Die Stelle im Endscript ist gelb markiert.

Tutorial als PDF

Anleitung als PDF: Tutorial-Funksteckdosen-für-den-Repetierserver

Funksteckdose Repetier

Klaus Korte

Klaus Korte

3D-Druck Enthusiast bei Elchschmiede
Hallo,
ich bin Klaus und leidenschaftlicher Maker mit einem umgebauten Shapercube.
Neben dem 3D-Druck besitze ich noch eine CNC-Fräse und einen 60W CO2 -Laser.
Ich freue mich, Euch mit Rat und Tat zur Seite zu stehen.
Klaus Korte

Letzte Artikel von Klaus Korte (Alle anzeigen)

Klaus Korte

Hallo, ich bin Klaus und leidenschaftlicher Maker mit einem umgebauten Shapercube. Neben dem 3D-Druck besitze ich noch eine CNC-Fräse und einen 60W CO2 -Laser. Ich freue mich, Euch mit Rat und Tat zur Seite zu stehen.

Klaus Korte has 1 posts and counting. See all posts by Klaus Korte

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.