Repetier Server, extcommands.xml, python script?

Forum extra für Repetier-Server. Hier können viele wertvolle Tipps gegeben werden und Projekte vorgestellt werden.
Benutzeravatar
Zaldo
Globaler Moderator
Globaler Moderator
Beiträge: 629
Registriert: Do 24. Sep 2015, 10:38
Wohnort: Raum Frankfurt
Hat sich bedankt: 38 Mal
Danksagung erhalten: 50 Mal

Repetier Server, extcommands.xml, python script?

Beitrag #1 von Zaldo » Mo 28. Dez 2015, 23:57

Hi zusammen,

hat schonmal jemand von euch versucht, im Repetier Server mittels der extcommands.xml ein python script aufzurufen? Ich beiße mir da irgendwie die Zähne dran aus.

Ich habe schon die Sektion

Code: Alles auswählen

<command>
     <name>Switch Relay</name>
     <execute>sudo /var/lib/Repetier-Server/database/relay.py</execute>
</command>


hinzugefügt, und auch /etc/sudoers.d um

Code: Alles auswählen

repetierserver ALL=NOPASSWD: /usr/bin/python


ergänzt. Es passiert aber rein garnichts, wenn man einen solchen Befehl aufruft (die andern, wie "Server neustarten" funktionieren).

Rufe ich das Script aus der bash auf, funktioniert es, muß also irgendwie an der Integration hängen.
Bin ahnungslos... :wundern:
· Besserer Z-Referenzschalter · Druckbett Feinjustage · Platinenkühlung · Weiße Bauraumbeleuchtung · Not-Aus
· Dauerdruckplatte · Temperaturgeregelte Einhausung · Repetier Server auf Raspberry · MK8 Vorschubritzel

Benutzeravatar
Zaldo
Globaler Moderator
Globaler Moderator
Beiträge: 629
Registriert: Do 24. Sep 2015, 10:38
Wohnort: Raum Frankfurt
Hat sich bedankt: 38 Mal
Danksagung erhalten: 50 Mal

Re: Repetier Server, extcommands.xml, python script?

Beitrag #2 von Zaldo » Di 29. Dez 2015, 20:20

Okay, im Repetier Forum wurde mir geholfen. Ein Fehler in meiner Überlegung.

Repetier Server interpretiert die hash-bang line im Script nicht. Die Bash tut das und weiß das sie Python starten muß.
Es muß in der extcommands.xml also Python mit dem Script als Parameter aufgerufen werden. Und bitte mit Pfaden.

Code: Alles auswählen

       <command>
                <name>Switch Relay</name>
                <execute>sudo /usr/bin/python /var/lib/Repetier-Server/database/relay.py</execute>
        </command>


sudo kann hier erforderlich sein, je nachdem was in dem Script passiert. Ohne ging es bei mir nicht, weil sich die GPIOs nicht setzen ließen.

Code: Alles auswählen

    GPIO.setup(RELAIS_1, GPIO.OUT)
RuntimeError: No access to /dev/mem.  Try running as root!


Dafür ist natürlich wie oben erwähnt, repetierserver sudo-Rechte für Python einzuräumen.

EDIT: Dabei übrigens die Warnung (weil ich auch reingetappt bin) *NIEMALS* in /etc/sudoers.d mit vi oder nano rumfurwerken. Die machen keine Syntaxkontrolle und ruckzuck hat man sich sudo lahmgelegt. Und wenn man dann außerdem noch kein root-passwort gesetzt hat, kommt man auch nicht mehr dran. Speicherkarte raus, in den PC, und ein live linux konnten nurmehr helfen. In /etc/sudoers.d *IMMER* nur visudo verwenden, weil das eine Syntaxprüfung vornimmt!

Fein, jetzt kann ich bequem über das Repetier Server Menu meine GPIOs und damit den Drucker Ein- und Ausschalten, und muß nicht immerzu nen Terminal aufmachen :tanzen:
· Besserer Z-Referenzschalter · Druckbett Feinjustage · Platinenkühlung · Weiße Bauraumbeleuchtung · Not-Aus
· Dauerdruckplatte · Temperaturgeregelte Einhausung · Repetier Server auf Raspberry · MK8 Vorschubritzel

Wessix
Profi 3D-Drucker
Profi 3D-Drucker
Beiträge: 415
Registriert: Sa 18. Okt 2014, 22:20
Hat sich bedankt: 84 Mal
Danksagung erhalten: 69 Mal

Re: Repetier Server, extcommands.xml, python script?

Beitrag #3 von Wessix » So 28. Feb 2016, 01:24

Hi, hat es einer von euch zufällig hinbekommen ein so erstelltes Script vom Gcode aus zu starten laut der Manual page von Repetier server sollte das mit "@execute cmd parameter" gehen. Bei mir haut das nicht hin. Die kommandos lassen sich aber vom Hauptmenü korrekt ausführen.

Das wäre der letzte Schritt für meine Auto Abschaltung mittels relais nach fertigem Druck.....

Grüße Wessix
E3DV6+Titan Total Conversion
Aluheizbett + MTPlus + zweite Y-Schiene mit Wagen
Z-Kette
X-kette
Platinenlüfter
X19 Schaltung LED
pi-Octopi+ Cam
Ritzel-Kühler
Firmware Mod 1.45.00

Wessix
Profi 3D-Drucker
Profi 3D-Drucker
Beiträge: 415
Registriert: Sa 18. Okt 2014, 22:20
Hat sich bedankt: 84 Mal
Danksagung erhalten: 69 Mal

Re: Repetier Server, extcommands.xml, python script?

Beitrag #4 von Wessix » So 28. Feb 2016, 21:36

Habs hinbekommen, hab gesehen dass es in der extcommands.xml nen extra abschnitt dafür gibt, dachte zuerst das bezieht sich nur auf Macs. Wenn man das kommando da definiert geht es aus dem Gcode heraus. Klasse nun steht der Autoabschaltung nix mehr im weg!
E3DV6+Titan Total Conversion
Aluheizbett + MTPlus + zweite Y-Schiene mit Wagen
Z-Kette
X-kette
Platinenlüfter
X19 Schaltung LED
pi-Octopi+ Cam
Ritzel-Kühler
Firmware Mod 1.45.00

Wessix
Profi 3D-Drucker
Profi 3D-Drucker
Beiträge: 415
Registriert: Sa 18. Okt 2014, 22:20
Hat sich bedankt: 84 Mal
Danksagung erhalten: 69 Mal

Re: Repetier Server, extcommands.xml, python script?

Beitrag #5 von Wessix » Mo 29. Feb 2016, 11:49

Die GCODE Befehle werden sofort umgesetzt, beim ersten Testen hat mir daher mein Relais dem Drucker direkt, quasi noch am Druckobjekt den Saft abgedreht ohne den Objektauswurf abzuwarten. Ich habe es so gelöst, das ich in meinem Python Script zum schalten der GPIO Pins mittels time sleep eine Pause von 30sek eingebaut habe, das langt bei meiner Auswurf Routine ziemlich genau bis der Tisch ganz nach unten vorne gefahren ist.
E3DV6+Titan Total Conversion
Aluheizbett + MTPlus + zweite Y-Schiene mit Wagen
Z-Kette
X-kette
Platinenlüfter
X19 Schaltung LED
pi-Octopi+ Cam
Ritzel-Kühler
Firmware Mod 1.45.00

Benutzeravatar
JoBo
Profi 3D-Drucker
Profi 3D-Drucker
Beiträge: 448
Registriert: Fr 31. Okt 2014, 13:30
Hat sich bedankt: 15 Mal
Danksagung erhalten: 59 Mal

Re: Repetier Server, extcommands.xml, python script?

Beitrag #6 von JoBo » Mo 29. Feb 2016, 11:55

Hi Wessix,

wenn du vor deinen Abschaltbefehl einen M400 absetzt, müsste der Drucker eingendlich an der Stelle abwarten bis alle gepufferten Befehle abgearbeitet sind.

JoBo


Zurück zu „Repetier-Server“