Seite 1 von 1

Repetier Server, extcommands.xml, python script?

Verfasst: Mo 28. Dez 2015, 23:57
von Zaldo
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:

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

Verfasst: Di 29. Dez 2015, 20:20
von Zaldo
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:

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

Verfasst: So 28. Feb 2016, 01:24
von Wessix
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

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

Verfasst: So 28. Feb 2016, 21:36
von Wessix
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!

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

Verfasst: Mo 29. Feb 2016, 11:49
von Wessix
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.

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

Verfasst: Mo 29. Feb 2016, 11:55
von JoBo
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