Funksteckdose An und Ausschalten Problem

Hallo Leute
Ich versuche seit Tagen den Repetier Server PI mittels Funksteckdose zum Laufen zu bekommen.
Jetzt komme ich absolut nicht mehr weiter.
Habe mich an diese Anleitung gehalten...

Bekomme die Funksteckdose aber nicht so richtig zum Schalten.
Das einzige was klappt. Ist das An und Ausschalten mittel manuellem Befehl über Putty ssh. Eingeloggt als pi User.
sudo raspberry-remote/send 10101 4 0
Aber aus der Server Web Oberfläche heraus funktioniert es nicht.
Im "server.log" steht zwar dass er ein Kommando ausführt. Aber es passiert nichts.

Eventuell kann mir dort jemand weiterhelfen. Irgendwo ist da noch ein Fehler den ich nicht sehe.

Comments

  • Dazu gibt es hier einige threads. Grundproblem ist meistens das der Server als user repetierserver läuft und er sudo nur für ganz bestimmte Befehle darf. Sieh die mal im Manual an wie das für shutdown gemacht wird. Ist das gleiche hier. Also Befehl in sudoer.d mit aufnehmen. Und alle Pfade absolut schreiben damit auch alles gefunden wird.
  • Also ... Ich habe mir jetzt mal die anderen Threads durchgelesen.
    Wurde irgendetwas an der Struktur geändert? Bei mir kommt der Fehler schon weit vorher. Soweit wie die anderen, komme ich erst gar nicht.
    Manuell geht der Befehl auf jeden Fall. Siehe oben.
    Versuche ich aber das Script per Putty ssh auszuführen. Kommt folgender Fehler.
    pi@Repetier-Server:~ $ bash autopoweroff.sh
    sudo: ./home/pi/raspberry-remote/send: command not found
    pi@Repetier-Server:~ $ autopoweroff.sh
    -bash: autopoweroff.sh: command not found
    Warum? Ich blicke es irgendwie nicht. :/
  • Sieht aus wie mehrere Fehler.

    ./ heist relativ zum aktuellen Verzeichnis - das ist aber nicht unbedingt das Verzeichnis wo das Skript steht. Also ./home schlecht /home ist absolut und daher gut.

    Erste Zeile in einem bash script sollte
    #!/bin/bash
    sein. Dann
    chmod 755 Dateiname
    um die Datei ausf+hrbar zu machen. Dann kann man sie auch ohne bash aufrufen einfach mit dem Namen.
  • Okay ich bin jetzt minimal weitergekommen. Der Befehl wird jetzt mit Angabe des absoluten Pfades ausgeführt.
    Dieser hier funktioniert:
    sudo /home/pi/raspberry-remote/send 10101 4 0
    Inhalt der Scriptdatei "autopoweroff.sh":
    #!/bin/bash
    sudo /home/pi/raspberry-remote/send 10101 4 0
    Scriptdatei steht auf Berechtigung 755

    Und dann beim ausführen der Datei dieser Fehler:
    pi@Repetier-Server:~ $ autopoweroff
    -bash: autopoweroff: command not found

    pi@Repetier-Server:~ $ ls
    autopoweroff.sh autopoweron.sh input_raspicam.so raspberry-remote wiringPi
    Datei ist vorhanden und ausführbar. Aber es geht nicht.
  • Hier mal noch der Inahlt des Ordners  "/etc/sudoers.d" der Datei "repetierserver-remote"
    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
  • Der Befehl auf der Festplatte lauetet autopoweroff.sh entsprechend wird er mit autopoweroff nicht gefunden. Das sudo in autopoweroff muss eigentlich weg. Du hast ja in der in der extcommands.xml als befehl stehen
    /usr/bin/sudo /home/pi/autopoweroff.sh

    damit wird das script schon als root ausgeführt. Die Erweiterung in sudoers ist auch korrekt so.

    Ich denke damit sollte es dann klappen.
  • Okay wir kommen der Sache naher. Aber so ganz funktioniert es immer noch nicht.
    Ich kann jetzt das Script mittels bash über Putty ssh ausführen. Das funktioniert schon mal.
    bash /home/pi/autopoweroff.sh
    Inhalt der "autopoweroff.sh" jetzt ohne sudo
    #!/bin/bash
    /home/pi/raspberry-remote/send 10101 4 0
    Jetzt möchte ich das ganze natürlich über den Server ausführen können. Das funktioniert nicht.
    Habe mir auch noch 3mal die anderen threads durchgelesen. Es läuft einfach nicht. Was fehlt da?

    Inhalt der "" 2 Varianten...funktionieren beide nicht.
    1.Variante:
    <command>
    <name>Drucker_Strom_aus</name>
    <execute>sudo /home/pi/autopoweroff.sh</execute>
    </command>
    Dann steht im Log:
    Starting external command sudo with 1 parameters.
    ----------------------------
    2.variante:
    <command>
    <name>Drucker_Strom_aus</name>
    <execute>/home/pi/autopoweroff.sh</execute>
    </command>
    Dann steht im Log:
    Starting external command /home/pi/autopoweroff.sh with 0 parameters.

  • Ich vermute weil du nicht absolute pfade wie ich gesagt habe geschrieben hast. In extcommands must du sagen WO sudo steht.
    /usr/bin/sudo /home/pi/autopoweroff.sh

    Der selbe befehl muss so auch in der bash funktionieren also nicht bash autopoweroff.sh sondern
    /usr/bin/sudo /home/pi/autopoweroff.sh
    Wenn das nicht klappt siehst du auch die Fehlermeldung.
  • Also ... ich habe den Fehler endlich gefunden. :) kleiner Fehler, große Wirkung.
    Wenn das nicht klappt siehst du auch die Fehlermeldung.

    Das war der Ausschlaggebende Hinweis. Dort wurde mir immer angezeigt das der Command bzw. die Datei nicht existiert. Obwohl Sie da war.

    Lösung:
    Die "autopoweroff.sh" habe ich über ein ftp Programm erstellt und somit wurde diese dem Benutzer "Pi" zugeordnet.
    Dadurch funktionierte nichts, was ich versucht hatte. Diese muss aber dem Benutzer "root" zugeordnet sein. Dann funktioniert auch alles. So wie man es sich vorgestellt hat. Habe die Datei dann per "sudo nano" erstellt.

    Vielleicht kann man das ja in der Anleitung (Advanced Setup) auf der Homepage mit aufnehmen. Damit so simple Fehler nicht anderen passieren.


    Gruß Danke
  • edited August 2018

    Ein Problem dann doch noch. Wie bekomme ich es hin, ein Delay einzufügen bevor er in meinem Fall das "@execute poweroff" Kommando sendet.

    Sprich es soll eine Verzögerung von 60sec geben, bevor er den Drucker ausschaltet. Schon einiges Versucht. Aber sobald er "@execute poweroff" sendet schaltet er sofort den Drucker aus. Ignoriert alle anderen Codes und Kommandos.

    Wenn ich M400 einfüge mit Dewell zuvor. Führt er die darauffolgenden Kommandos einfach nicht mehr aus.

  • Im script
    sleep 60
    for dem ausschalten. Das M400 for dem @execute würde ich aber lassen damit alle bewegungen fertig sind. Das Skript wird asynchron ausgeführt was heist das der server nicht auf das Ende wartet. Sollte also so klappen.
  • Funktioniert ... Passt ... Erledigt ... Danke ;)
Sign In or Register to comment.