Gerdi

Erstellte Forenantworten

4 Beiträge anzeigen - 1 bis 4 (von insgesamt 4)
  • Autor
    Beiträge
  • als Antwort auf: Netzwerk Relais / LogoControl / TCP-Befehle / sh.Scripte #3594
    Gerdi
    Teilnehmer

    So….habe es einmal in einem Script umgesetzt. Das schreiben der Attribute funktioniert wunderbar. Jedoch habe ich noch ein Problem mit meinen TCP-Befehlen. Ich sende folgende Zeilen über die Batch-Datei (NetCat Befehl)an mein Relay um den aktullen Zustand abzufragen:
    echo -ne 'read1' | nc -v -w1 192.XX.XX.XXX 5000
    ….Dann warte ich auf eine Antwort, diese lautet z.B. „Relaison1“. Relais ist der Name der Hardware und on1 der aktuelle Zustand. Das ganze Werte ich dann über if/else aus und sende entweder den off oder den on Befehl. Hier taucht dann mein Problem auf. Die Anwort lautet dann nur „Relais“ ohne off1 oder on1. Wenn ich diese Befehle aber manuell im Terminal raus sende bekomme ich die korrekte Antwort mit on oder off hinten an „Relais“. Kann es sein das die Batch Datei die Antwort beim abarbeiten nicht ganz abwartet?

    Hier mal ein Auszug meiner Batch-Datei:

    #Status des Relais 1 auslesen
    Zustand_Relais_1=$( echo -ne  'read1' | nc -v -w1 192.XX.XX.XX 5000)
    
    #Ausgabe des aktuellen Zustandes
    echo "Aktueller Zustand des Relais 1: "
    echo $Zustand_Relais_1
    #Abfrage welcher Zustand das Relais hat
    if [[ $Zustand_Relais_1 = "Relaisoff1" ]]
    #Wenn Relais aus ist das Relais einschalten
    then
            echo "Relais 1  einschalten..."
    
            Zustand_Relais_2=$( echo -ne  'on1' | nc -i5 192.XX.XX.XX 5000)
            #Ausgabe des aktuellen Zustandes
            echo "Aktueller Zustand des Relais 1: "
            echo $Zustand_Relais_2
    
            #Abfrage ob Relais auf Zustand ON1 geschaltet hat
            if [[ $Zustand_Relais_2 = "Relaison1" ]]
            #Wenn Relais ON geschaltet hat dann wieder ausschalten
            then
            echo "Relais 1  ausschalten..."
    
            Zustand_Relais1=$( echo -ne  'off1' | nc -w1  192.XX.XX.XX 5000)
                    echo $Zustand_Relais1
                    #Abfrage ob Relais auf Zustand OFF1 geschaltet hat
                    if [[ $Zustand_Relais1 = "Relaisff1" ]]
                    #Wenn Relais OFF geschaltet hat dann   Webservice aktualisieren
                    then
                    #LogoControl Attribute auf eins setzten
                    echo "Webservice aktualsiert"
                    wget -qO- localhost:8088/rest/devices/14/attributes/1/value?set=1
                    fi
            else
            #Relais 1 Rückgabewert nicht gekommen
            echo "Relais 1 wurde nicht eingeschaltet"
            #Ausgabe des aktuellen Zustandes
            echo "Aktueller Zustand des Relais 1: "
            echo $Zustand_Relais_2
    
              fi
    
    else
    echo "Relais ist bereits eingeschaltet..."
    echo "Relais wird ausgeschaltet..."
    Zustand_Relais_1=$( echo -ne  'off2' | nc -vv -w5 192.XX.XX.XX 5000)
    #Ausgabe des aktuellen Zustandes
    echo $Zustand_Relais_1
    wget -qO- localhost:8088/rest/devices/14/attributes/1/value?set=0
    fi

    Kennt sich hier jemand aus? Ich komme hier einfach nicht weiter…..

    • Diese Antwort wurde vor vor 7 Jahren von Gerdi bearbeitet.
    • Diese Antwort wurde vor vor 7 Jahren von Gerdi bearbeitet.
    als Antwort auf: Netzwerk Relais / LogoControl / TCP-Befehle / sh.Scripte #3591
    Gerdi
    Teilnehmer

    Das hört sich gut an. Hat jemand schon mal ein bash-script geschrieben das den Web Service aufruft und ein Attribut beschreibt?

    Danke

    als Antwort auf: 1-Wire #3175
    Gerdi
    Teilnehmer

    Hallo,

    das PY Script zum abrufen funtioniert bei mir jetzt problemlos, leider aber nur manuell.
    Ich bekomme es leider nicht hin dieses Script zyklisch zu starten? Kann mir da jemand weiterhelfen?

    Danke

    als Antwort auf: 1-Wire #3160
    Gerdi
    Teilnehmer

    Hallo Andycode,

    cool, das ging ja schnell. Werde ich sofort bei mir umsetzten.

    Danke

4 Beiträge anzeigen - 1 bis 4 (von insgesamt 4)