kleine Frage zu einem einfachen Script

  • Hallo liebe Gemeinde.
    Ich bin neu hier im Forums und auch nicht sehr erfahren mit Scripten.

    Ich habe eine Relaisplatine, die ich mit einem einfachem Befehl (sudo gpio -r write 1/0) schalten kann. Das habe ich dann in eine Datei gepackt und es "an.sh" bzw "aus.sh" benannt. Das ganze dann noch ausführbar gemacht und schon lässt sich es per eigen erstelltes Widget (Automagic) sehr komfortabel mit dem Smartphone schalten. Das Widget beinhaltet zwei schaltflächen (an und aus) mit denen ich "an.sh" & "aus.sh" ausführen kann. Alles klappt wunderbar. Jetzt möchte ich das Relais aber in eine kleine Wechselschaltung einbinden. Mit dem Öffner und Schließer ist das ja kein Problem. Jetzt ist es aber unschön das man praktisch nicht wissen kann welchen Befehl man schreiben muss um das Relais in den anderen Zustand zu bekommen. Man kann also das Relais mit dem gpio mit einem kleinen Script dazu bringen das erst der Zustand ausgelesen wird und dann je nachdem den anderen Zustand befiehlt.

    Kurz und knapp: es funktioniert nicht. Ich habe warscheinlich einen Ultimativen Denkfehler oder zu wenig Ahnung um diese Hürde zu nehmen.

    Her mein script:

    Code
    sudo gpio -g export 23 out
    Zustand="$( sudo gpio -g read 23 )"
    if ["$Zustand" = "0" ]; then 
    sudo gpio -g write 23 1 
    else
    sudo gpio -g write 23 0 
    fi


    Vielleicht könnt ihr mir einen kleinen Lösungsvorschlag geben damit ich nicht Länge im Dunkeln tippe.

    Vielen Dank dafür....

    Güße

  • Hallo,

    es fehlt ein Leerzeichen in der if-Bedingung:

    Code
    if [ "$Zustand" = "0" ]; then


    Ansonsten könnte man das ganze auch wie folgt verkürzen:

    Code
    gpio -g write 23 $((! $(gpio -g read 23)))

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!