G
Gerdi_666
Grünschnabel
Hallo zusammen,
Ich habe ein Relais das ich über einen UDP Befehl steuern möchte. Ich nutze dafür den Paketsender. Ich sende einen Ascii Befehl raus der dann in Hex Daten zurück gibt. Ein Befehl ist z.B. das lesen des aktuellen Zustands des Relais. Hier sende ich in Ascii einfach “read2“. Als Antwort erhalte ich dann “6F 66 66 32“, also immer mit Leerzeichen dazwischen. Dies heisst dann Zustand OFF2. Die Zahl ist die Nummer des Relais. Jetzt wollte ich das in einem Script automatisieren. Ich will den Zustand abfragen und dann irgendwas tun. Mein Problem ist das ich mit meiner IF Anweisung die Rüchgabe irgendwie nicht auswerten kann. Mein Script sieht so aus aktuell:
#!/bin/bash
Test=$(/home/pi/PacketSender-5.5.1/src/PacketSender -uaqw 500192.168.178.210)
Response='6F 66 66 32'
if [[ $Test = $Response ]]; then
#Wenn Relais aus ist das Relais einschalten
/home/pi/PacketSender-5.5.1/src/PacketSender -uaqw 500 192.168.178.210
else
echo Das Relais ist bereits angeschaltet
fi
Ich habe auch schon folgendes probiert:
if [[ $Test -eq '6F 66 66 32' ]]; then
oder
if [[ $Test == $Response ]]; then
oder
if [[ $Test == '6F 66 66 32' ]]; then
Aber irgendwie läuft er immer in den else Zweig. Wenn ich mir $Test über echo ausgeben lasse habe ich aber genau die Rückmeldung für mein IF-Zweig 6F 66 66 32.
Was mache ich hier falsch? Kann mir jemand helfen?
Danke
Ich habe ein Relais das ich über einen UDP Befehl steuern möchte. Ich nutze dafür den Paketsender. Ich sende einen Ascii Befehl raus der dann in Hex Daten zurück gibt. Ein Befehl ist z.B. das lesen des aktuellen Zustands des Relais. Hier sende ich in Ascii einfach “read2“. Als Antwort erhalte ich dann “6F 66 66 32“, also immer mit Leerzeichen dazwischen. Dies heisst dann Zustand OFF2. Die Zahl ist die Nummer des Relais. Jetzt wollte ich das in einem Script automatisieren. Ich will den Zustand abfragen und dann irgendwas tun. Mein Problem ist das ich mit meiner IF Anweisung die Rüchgabe irgendwie nicht auswerten kann. Mein Script sieht so aus aktuell:
#!/bin/bash
Test=$(/home/pi/PacketSender-5.5.1/src/PacketSender -uaqw 500192.168.178.210)
Response='6F 66 66 32'
if [[ $Test = $Response ]]; then
#Wenn Relais aus ist das Relais einschalten
/home/pi/PacketSender-5.5.1/src/PacketSender -uaqw 500 192.168.178.210
else
echo Das Relais ist bereits angeschaltet
fi
Ich habe auch schon folgendes probiert:
if [[ $Test -eq '6F 66 66 32' ]]; then
oder
if [[ $Test == $Response ]]; then
oder
if [[ $Test == '6F 66 66 32' ]]; then
Aber irgendwie läuft er immer in den else Zweig. Wenn ich mir $Test über echo ausgeben lasse habe ich aber genau die Rückmeldung für mein IF-Zweig 6F 66 66 32.
Was mache ich hier falsch? Kann mir jemand helfen?
Danke