Erstellte Forenantworten
-
AutorBeiträge
-
16. November 2017 um 14:20 als Antwort auf: Netzwerk Relais / LogoControl / TCP-Befehle / sh.Scripte #3594GerdiTeilnehmer
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…..
14. November 2017 um 22:07 als Antwort auf: Netzwerk Relais / LogoControl / TCP-Befehle / sh.Scripte #3591GerdiTeilnehmerDas hört sich gut an. Hat jemand schon mal ein bash-script geschrieben das den Web Service aufruft und ein Attribut beschreibt?
Danke
GerdiTeilnehmerHallo,
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
GerdiTeilnehmerHallo Andycode,
cool, das ging ja schnell. Werde ich sofort bei mir umsetzten.
Danke
-
AutorBeiträge