Kommando für schaltbares Element

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Es ist natürlich so, dass nicht jedes Script zwingend mit root-Rechten ausgeführt werden muss. Wenn es selbst keine root-Rechte benötigt, muss man nur sicherstellen, dass es natürlich in einem Pfad liegt, wo www-data auch Leserechte hat. In dem Fall könnte man sich das eintragen in der sudoers sparen.
    Gruß Dieter
    --------------
    Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  • Ich krieg es nicht hin per Script an Kommando einen Script zu starten. Einen Ordner namens sudoers.d ist nur vorhanden, lege ich dort ein Script ab und füge die Adresse unter an Kommando schaltet es trotzdem nicht.
    Ich hab auch Versucht den Inhalt des Scripts direkt an Kommando zu schalten klappt auch nicht.

    #!/bin/sh


    gpio -g write 18 0
    gpio export 18 in


    gpio export 17 out
    sleep 1
    gpio -g write 17 1
    sleep 2
    gpio -g write 17 0
    sleep 1
    gpio export 17 in

    Ich brauche es als Taster.
  • Ich weiß nicht ob es dafür auch einge elegantere Lösung für dein Vorhaben gibt.

    Aber generell sollte das kein Problem darstellen. Im Prinzip habe ich das ja auch gemacht, mein Master stellt eine SSH Verbindung zu meinem NAS her und führt dann ein Shutdown aus.
    Das kannst du ja durch ein Script auf dem Slave ersetzen.

    Du must halt nur schauen, wie du die SSH Verbindung herstellst ohne dass ein Passwort eingegeben werden muss.
    Ich habe das mit sshpass realisiert, gibt aber auch andere Möglichkeiten.
  • Eventuell gibt es noch einen Haken. WiringPi Kommandos mussten zumindest früher als root, also sudo ausgeführt werden. Das wurde aber soweit ich weiß vor ein paar Monaten in wiringPi geändert.

    Also, als erstes würde ich mich auf dem Slave mal einloggen und schauen, ob und wie das Skript überhaupt funktioniert.

    Erst im zweiten Schritt dann schauen, wie das Skript auf dem Master aussehen muss. Bzw. der Aufruf.
    SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
  • Kommando für schaltbares Element

    @agent47 wann wird die Version 3 erscheinen?

    Auf dem Slave schalten ich die Scripts per Android App Tasker mit dem plugin Tasker ssh plugin. Das heißt, die app logt sich direkt auf dem Slave und führt die Befehle aus. Per putty auf dem Slave kann ich die Scripts auch ausführen.

    Bin nicht so vertraut mit dem ganzen da ich es mit viel probieren und lesen bis zu einem punkt zurecht komme.
  • Laut "news" hier im Forum, kommt die Version 3 wohl so im August.

    Mit Deinem Problem kann dir bestimmt Esion noch weiterhelfen.

    Ich denke, wenn Du die Posts hier von 1 bis 20 noch mal liest, solltest Du das hinbekommen.

    Notfalls schreibe noch ein Skript, welches auf dem Master liegt um dann das zweite auf dem Slave aufzurufen. Einfach mal zum Test um das SHC Skript als Fehlerquelle auszuschließen.

    Nur mal so ein Gedanke. Ich kenne mich da auch zu wenig aus und würde es auf diesen Weg mich mit probieren annähern.
    SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
  • ilkaskim wrote:

    Auf dem Slave schalten ich die Scripts per Android App Tasker mit dem plugin Tasker ssh plugin. Das heißt, die app logt sich direkt auf dem Slave und führt die Befehle aus. Per putty auf dem Slave kann ich die Scripts auch ausführen.
    Dann sollte das genau so funktionieren wie bei mir mit dem shutdown.

    Also du erstellst du ein Script auf deinem Master (habe es unter /usr/local/bin/... abgelegt)

    Source Code

    1. #! /bin/bash
    2. /usr/bin/sshpass -p "DeinPasswort" ssh root@SLAVE-IP 'Kommando um dein Script(Slave) auszuführen'
    ggf. sshpass installieren

    sudo apt-get install sshpass

    dann die sudoers anpassen, habe bei mir folgende Einträge drin:

    www-data ALL = NOPASSWD: /usr/local/bin/dein_script(master).sh
    www-data ALL = NOPASSWD: /usr/bin/sshpass


    Ich hoffe ich hab jetzt nichts vergessen :D
  • Eslon wrote:

    ilkaskim wrote:

    Auf dem Slave schalten ich die Scripts per Android App Tasker mit dem plugin Tasker ssh plugin. Das heißt, die app logt sich direkt auf dem Slave und führt die Befehle aus. Per putty auf dem Slave kann ich die Scripts auch ausführen.
    Dann sollte das genau so funktionieren wie bei mir mit dem shutdown.
    Also du erstellst du ein Script auf deinem Master (habe es unter /usr/local/bin/... abgelegt)

    Source Code

    1. #! /bin/bash
    2. /usr/bin/sshpass -p "DeinPasswort" ssh root@SLAVE-IP 'Kommando um dein Script(Slave) auszuführen'
    ggf. sshpass installieren

    sudo apt-get install sshpass

    dann die sudoers anpassen, habe bei mir folgende Einträge drin:

    www-data ALL = NOPASSWD: /usr/local/bin/dein_script(master).sh
    www-data ALL = NOPASSWD: /usr/bin/sshpass


    Ich hoffe ich hab jetzt nichts vergessen :D
    Bei meinem slave ist der Port nicht mehr standardmäßig auf 22 sondern.
    Trage ich den Port root@192.168.1.11:11022 erhalte ich beim ausführen folgenden Fehler.
    ssh: Could not resolve hostname 192.168.1.11:11022: Name or service not known
  • Gibt es dafür einen wichtigen Grund, den Standardport des ssh von 22 zu ändern?

    Meine Pi's habe ich alle auf 22 gelassen. Und um von außerhalb per ssh auf die einzelnen Pi's zu kommen habe ich im Router ein Port forwarding gesetzt. Z. B. Port 77022 > 192.168.1.44 Port 22 nur so als Beispiel. So komme ich von intern mit Port 22 drauf und von extern mit Port 77022.
    SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
  • Ist bei mir ähnlich. Ist aber auch egal, Du kannst 30 Computer mit gleichen Ports innerhalb Deines Heimnetzes haben, ohne das es da Konflikte gibt.

    Erst wenn Du aus dem www auf ein bestimmtes Gerät zugreifen willst, musst Du ein Port von ausserhalb definieren im Router, der dann weiterleitet auf das entsprechende Gerät und Port. Also 22. Das ist das gleiche, als wenn Du mehrere Webserver laufen hast. Die können auch alle Port 80 haben. Nur von ausserhalb musst Du externe Ports definieren.
    SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
  • Ich kann jetzt über die Konsole Master den Script starten und am Slave wird der Script ausgeführt. :)
    das Leerzeichen hab ich hier #! /bin/bash entfernt zu #!/bin/bash und es hat funktioniert.

    aktuell sieht es so aus


    #!/bin/bash


    /usr/bin/sshpass -p PASSWORT ssh pi@192.168.1.11 -p 11022 '/home/pi/Garage/1.sh'

    Welchen Befehl muss es nun im SHC unter Schaltbare Elemente lauten Kommando an ?

    Den Pfad zu dem Script am Master hab ich dort eingegeben und es tut nichts.
  • Ich habe alles eingegeben.:

    www-data ALL = NOPASSWD: /usr/local/bin/garageauf.sh
    www-data ALL = NOPASSWD: /usr/local/bin/garagezu.sh
    www-data ALL = NOPASSWD: /usr/bin/sshpass
    www-data ALL = NOPASSWD: /usr/local/bin/pilight-send
    www-data ALL = NOPASSWD: /sbin/reboot, /sbin/halt
    www-data ALL = NOPASSWD: /sbin/iwconfig
    www-data ALL = NOPASSWD: /var/www/shc/shc/lib/external/python/dht.py
    www-data ALL = NOPASSWD: /var/www/shc/shc/lib/external/python/bmp.py

    müssen sonst wo noch einträge gemacht werden ?