Skript wird nicht ausgeführt ... Finde keinen Fehler
Hallo Community...
ich nutze einen Raspi 3B mit 3 Druckern und 3 Kameras.
Funktioniert tadellos.
Jetzt würde ich gerne das Licht der einzelnen Drucker im Dash Board AN und AUS Schalten können bei Bedarf (nicht via G-Code).
Die extcommand.xml habe ich bereits angepasst.
Die Einträge werden auch im jeweiligen Drucker Menü angezeigt (mit slug).
Aber beim Klicken passiert gar nichts.
Wenn ich die Python Skripte per SSH ausführe, funktioniert es problemlos.
Details ... in der extcommands.xml
<command slug="Creality_CR6SE1">
<name>CR6-SE Licht AN</name>
<execute>sudo bash /home/pi/scripts/lightOnCR6.sh</execute>
</command>
<command slug="Creality_CR6SE1">
<name>CR6-SE Licht AUS</name>
<execute>sudo bash /home/pi/scripts/lightOffCR6.sh</execute>
</command>
<command slug="Creality_CR10v5">
<name>CR10v2 Licht AN</name>
<execute>sudo bash /home/pi/scripts/lightOnCR10.sh</execute>
</command>
<command slug="Creality_CR10v5">
<name>CR10v2 Licht AUS</name>
<execute>sudo bash /home/pi/scripts/lightOffCR10.sh</execute>
</command>
<command slug="Artiellery_Sidewinder_X1">
<name>Sidewinder Licht AN</name>
<execute>sudo /usr/bin/python /home/pi/on.py</execute>
</command>
<command slug="Artiellery_Sidewinder_X1">
<name>Sidewinder Licht AUS</name>
<execute>sudo /usr/bin/python /home/pi/off.py</execute>
</command>
<name>CR6-SE Licht AN</name>
<execute>sudo bash /home/pi/scripts/lightOnCR6.sh</execute>
</command>
<command slug="Creality_CR6SE1">
<name>CR6-SE Licht AUS</name>
<execute>sudo bash /home/pi/scripts/lightOffCR6.sh</execute>
</command>
<command slug="Creality_CR10v5">
<name>CR10v2 Licht AN</name>
<execute>sudo bash /home/pi/scripts/lightOnCR10.sh</execute>
</command>
<command slug="Creality_CR10v5">
<name>CR10v2 Licht AUS</name>
<execute>sudo bash /home/pi/scripts/lightOffCR10.sh</execute>
</command>
<command slug="Artiellery_Sidewinder_X1">
<name>Sidewinder Licht AN</name>
<execute>sudo /usr/bin/python /home/pi/on.py</execute>
</command>
<command slug="Artiellery_Sidewinder_X1">
<name>Sidewinder Licht AUS</name>
<execute>sudo /usr/bin/python /home/pi/off.py</execute>
</command>
######
Details ... Skript Bash
local GPIO = periphery.GPIO
local gpioBlink = nil
function setup()
gpioBlink = GPIO(22, "out")
end
function loop()
gpioBlink:write(true)
end
local gpioBlink = nil
function setup()
gpioBlink = GPIO(22, "out")
end
function loop()
gpioBlink:write(true)
end
######
Details ... Skript Python
import RPi.GPIO as GPIO
import time
led = 22
GPIO.setmode(GPIO.BOARD)
GPIO.setup(led, GPIO.OUT)
GPIO.output(led, GPIO.HIGH)
import time
led = 22
GPIO.setmode(GPIO.BOARD)
GPIO.setup(led, GPIO.OUT)
GPIO.output(led, GPIO.HIGH)
Wo liegt mein Fehler? Leider kann ich auch keine passenden Beispiele finden.
Repetier Version 0.94
Danke Euch
Comments
sudo -u repetierserver <rest des befehls>
voran. Dann werden sie als der User ausgeführt den auch der Server nutzt. Typische Fehler sind das geweisse Befehle nicht in der sudoer liste für repetierserver liegen. Hier währen das bash und python. Besser zumindest bei bash ist wenn die erste Zeile
#!/bin/bash
ist dann setz noch x flag: chmod a+x datei
Dann ist die Datei direkt ausführbar und aus
sudo bash /home/pi/scripts/lightOnCR10.sh
wird
sudo /home/pi/scripts/lightOnCR10.sh
Wobei das sudo sogar wegfallen kann wenn die Datei von repetierserver lesbar und ausführbar ist. Der user gehört auch der Gruppe gpio an und kann damit pins ändern. Gilt auch für die python skripte. Am besten Skripte unter /var/lib/Repetier-Server/scripts speichern. Da sind sie auch lesen. /home/pi ist normal nicht für repetierserver lesbar.
Habe es hinbekommen.
Eine andere Frage noch.
Im Dashboard werden unten die Netzwerk Schnittstellen angezeigt.
Kann man die irgendwie ausblenden?
Wüsste nicht für welchen Zweck ich diese ständig im Blick haben muss
Danke und Gruß
Michael
Meine Herangehensweise wäre es über eine Websocket Abfrage in Node Red.
Aber hier fehlen mir Beispiele.
Wie nutze ich zB die in der API Description erwähnten "Events"
Werde noch nicht ganz schlau aus der Sache.
Eine normale Abfrage habe ich schon hinbekommen mit
http://IP:3344/printer/api/?a=state&apikey=
Aber wo füge ich den Event ein?
Was will ich machen?
Wenn Status = Druck beendet .... dann warten bis Druckbett kalt .... dann Ausgang an Node Red
<execute name="shutdown" allowParams="false" sync="false">sudo /sbin/shutdown -h now</execute>
Hier wird der server Befehler
@execute shutdown
den pi runterfahren. Genau so kannst du aber auch kein Lichtskript aufrufen im Job ende skript.
You tube videos haben wir noch nicht viele, da bauen wir erst eine Bibliothek auf. Aber so was sind echte Bastellösungen und unikate daher eher nichts worüber wir ein Video machen. Erst mal was viele machen:-)
Natürlich kannst du gerne auch videos machen. Gibt ja auch von vielen anderen Anleitungen auf youtube. Muss ja nicht alles von uns kommen.