RS232 Befehl für Beamer unter Linux die zweite

Gast #5881587
Lesenswert?

Hallo,
ich hatte hier: Beitrag "RS232 Befehl unter Linux"
schon mal ein Problem den Beamer unter Linux per rs232 anzusteuern.

A)Ich habe einen PC mit Win 10 per ConLine-V24-XXL-S Serial LAN Device
Server Netzwerkadapter an meinen Beamer angeschlossen (Virtual COM1).

B) Ich habe ein Odroid C2 mit Linux per ConLine-V24-XXL-S Serial LAN
Device Server Netzwerkadapter an meinen Beamer angeschlossen (Virtual
COM1)

Dank eurer Hilfe kann ich den Beamer mit diesem Befehl in Putty direkt 
einschalten:
"echo -ne '\x02PON\x03' | nc 192.168.188.52 1002"

So jetzt habe ich aber einen neuen Beamer bekommen und den Panasonic 
gegen Epson eingetauscht.
Bei Epson ist der Befehl zum einschalten: "PWR ON" anstatt bei Panasonic 
PON und "Das Datenstreaming vom Computer beginnt mit STX, dann folgen 
Befehl und Parameter, am Abschluss steht ETX.Parameter können nach 
Bedarf hinzugefügt werden."

Ich dachte mir also einfach mal den Panasonic gegen den Epson Befehl 
austauschen, kann ja nicht so schwer sein.
Leider musste ich feststellen, das es das doch ist.

Folgende Möglichkeiten habe ich schon ausprobiert:

echo -ne 'PWR ON' | nc 192.168.188.52 1002
echo -ne "PWR ON\r" >| nc 192.168.188.52 1002
echo -ne "PWR ON" >| nc 192.168.188.52 1002
echo "PWR ON" >| nc 192.168.188.52 1002

Gibt es da eine Möglichkeit, oder sieht jemand vielleicht schon einen 
Fehler?

Ich wäre über jeden Vorschlag dankbar.
Viele Grüße
Jens
#5881638
Lesenswert?

Jens schrieb:
> Bei Epson ist der Befehl zum einschalten: "PWR ON" anstatt bei Panasonic
> PON und "Das Datenstreaming vom Computer beginnt mit STX, dann folgen
> Befehl und Parameter, am Abschluss steht ETX.Parameter können nach
> Bedarf hinzugefügt werden."

STX = 02h
ETX = 03h

echo kann mit \0nnn beliebige Werte ausgeben. ACHTUNG: "\0nnn" ist 
OKTALE Notation.

echo -ne "\0002PWR ON\0003" | nc 192.168.188.52 1002

Grüße

Stefan
Gast #5881657
Lesenswert?

STX und ETX sind für den Panasonic. Bei epson finde ich außer den 
Befehlen:
"Projektor An = PWR On" leider keine explizite Beschreibung.

Leider hat
"echo -ne "\0002PWR ON\0003" | nc 192.168.188.52 1002" keinen erfolg 
gebracht.
Gast #5881666
Lesenswert?

Ja Portnummer und IP sind unverändert.

Dies:
""echo -ne '\x02PWR ON\x03' | nc 192.168.188.52 1002" ist der Befehl für 
Panasonic, welcher tadellos funktioniert, aber eben nur bei Panasonic.

Diese:
echo -ne 'PWR ON' | nc 192.168.188.52 1002
echo -ne "PWR ON\r" >| nc 192.168.188.52 1002
echo -ne "PWR ON" >| nc 192.168.188.52 1002
echo "PWR ON" >| nc 192.168.188.52 1002
und den
"echo -ne "\0002PWR ON\0003" | nc 192.168.188.52 1002"

habe ich bei dem Epson versucht.
Leider Ohne Erfolg. Bei Epson hatte ich auch schon mit STX ETX wie bei 
Panasonic versucht aber das geht auch nicht.
#5881673
Lesenswert?

Ist das hier das richtige Protokoll:

https://files.support.epson.com/pdf/pl600p/pl600ptst.pdf

Die darin enthaltene Angabe "Return" ist etwas uneindeutig.

ASCII CR "\r" hattest du anscheinen schon getestet.

Ich würde auch mal einen einzelnen line feed "\n" und das von 
DOS/Windows bekannte "\r\n" ausprobieren.

Viel Erfolg!

Grüße

Stefan

Edit: Sehe gerade, dass etwas tiefer explizit Carriage Return (0x0D, 
"\r") genannt wird. Ich würde es aber trotzdem ausprobieren...
Gast #5881862
Lesenswert?

Ich habe leider zu wenig Ahnung davon, aber sollte das ganze dann so 
z.B. aussehen?

echo -ne "'\x02PWR ON\x03'r" >| nc 192.168.188.52 1002

oder als variante:

echo -ne "'\x02PWR ON\x03'n" >| nc 192.168.188.52 1002

Irgendwie gibt es ja tausend variationen. Kann sie später mal testen 
wenn das so richtig ist.
Gast #5882170
Lesenswert?

Hallo,
konnte es gerade nochmal testen.
Leider kein mucks vom Beamer :-(
Der Beamer ist der Epson EH-TW7400,
Das ist der Command User Guide:

ftp://download.epson-europe.com/pub/download/6319/epson631956eu.xlsx

Keine Ahnung ob das weiterhilft?
Angehängte Dateien:
Gast #5882298
Lesenswert?

Jens schrieb:

> ftp://download.epson-europe.com/pub/download/6319/epson631956eu.xlsx

Da steht genau das gleiche drin wie in dem von Stefan verlinkten 
Dokument.

Sprich: du hast da ein anderes Problem, das Kommando passt so.

Ein sinnvolle Startegie zur Fehlersuche wäre:

Computer und Beamer direkt verbinden
Teminalprogramm und Schnittstelle passend konfigurieren
Beamer manuell einschalten
Irgendwann (spätestens nach 100s) sollte vom Beamer ein ":" kommen

Kommt der nicht, ist der Beamer kaputt oder das Kabel. Kommt er, wäre 
der nächste Schritt, ein "ERR?\r\n" an den Beamer zu senden (im korrekt 
konfigurierten Terminalprogramm also ERR?<enter> eintippen). Darauf 
sollte der Beamer mit der Ausgabe seines Status reagieren. Passiert das 
nicht: Beamer oder (wahrscheinlicher) Kabel defekt.

Funktioniert das alles soweit und zeigt die Ausgabe des ERR?-Kommandos 
keine Fehler an, ist der Beamer und das Kabel OK. Dann bleibt als 
Problem nur die Netzwerkgeschichte über.
Gast #5882305
Lesenswert?

c-hater schrieb:

> Sprich: du hast da ein anderes Problem, das Kommando passt so.

Da fällt mir noch was ein: Hast du eigentlich die Konfiguration der 
Schnittstelle überprüft? Der Epson will 9600,8N1 ohne jegliche 
Handshakes.

Keine Ahnung, was der alte Beamer wollte, aber es könnte halt sein, dass 
es was anderes war.
Gast #5882773
Lesenswert?

So ich bin etwas weiter:
Das senden mit Hercules über den Lan Anschluss des Beamers funktioniert 
mit denselben Befehlen wie RS232.

Hier die Beschreibung:
https://www.epson.eu/viewcon/corporatesite/products/mainunits/faq/7914/18317

Ich gebe die IP des Beamers und den Port 3629 an.
Dann gebe ich diesen HEX Code ein:
45 53 43 2F 56 50 2E 6E 65 74 10 03 00 00 00 00
Damit verbindet er sich anscheinend und ich kann meinen Hex code mit 0d 
am ende eingeben und es funzt.
Once the ESC/VP.net command is sent the projector responds with 
ESC/VP.net

Der Code ist:
Hex: 50 57 52 20 4f 46 46 0d

Ascii: PWR OFF

gibt es denn jetzt wohl auch eine Möglichkeit das in diesen Befehl zu 
packen?
echo -ne "PWR ON\r\n" | nc 192.168.188.52 1002
Hatte schon folgendes ohne erfolg versucht:
echo -ne "PWR ON\r\n" | nc (die IP des Beamers 3629

Hat einer von euch vielleicht eine idee?
Viele Grüße
Gast #5882906
Lesenswert?

Sofern man nocht auf die Antwort warten muss, vermutlich so:
1
printf "\x45\x53\x43\x2F\x56\x50\x2E\x6E\x65\x74\x10\x03\x00\x00\x00\x00PWR ON\r\n" | nc 192.168.188.52 1002

Mit nem delay dazwichen:
1
{
2
  printf "\x45\x53\x43\x2F\x56\x50\x2E\x6E\x65\x74\x10\x03\x00\x00\x00\x00"
3
  sleep 1
4
  printf "PWR ON\r\n"
5
} | nc 192.168.188.52 1002

Eigentlich wäre es besser, zu warten, bis die Antwort empfangen wurde, 
statt dem sleep, aber stdin und stdout zwischen 2 subshells zu 
verknüpfen wäre etwas komplizierter.

natürlich würde echo statt printf auch gehen, aber printf ist posix 
shell compliant, während optionen bei echo eine bash extension ist.
#5883574
Lesenswert?

DPA schrieb:
> printf "ESC/VP.net\x10\x03\x00\x00\x00\x00PWR ON\r\n" | nc
> 192.168.188.52 1002

Habe gerade gemerkt, es sollte 3629 und nicht 1002 sein, und die IP auch 
anpassen. Immerhin sollte das ja das selbe sein. Und das \n am schluss 
ist vielleicht nicht nötig. Vielleicht muss man auch das delay 
vergrössern, oder vielleicht muss nach dem 
"ESC/VP.net\x10\x03\x00\x00\x00\x00" noch ein newline \n dran. Ich weiss 
es nicht.

Du schreibst, dass es mit dem anderen Programm funktioniert? Notfalls 
musst du mit Wireshark nachsehen, was damit bei beiden genau gesendet 
wird. Wenn eine Veriante geht und die andere nicht, muss es einen 
Unterschied geben.
Gast #5885496
Lesenswert?

Hallo,
erst mal vielen Dank für eure Hilfe und eure Bemühungen. Ich weiß das 
wirklich sehr zu schätzen, das ihr dafür eure Zeit opfert.

Wichtige Info für euch ist vielleicht das ich nicht wirklich Ahnung von 
dem ganzen habe und es somit natürlich für mich schwierig ist den Fehler 
zu finden oder eine Sache auszuschließen. Ich hoffe aber natürlich das 
trotzdem eine Chance besteht das ganze ans Laufen zu bekommen. Hat beim 
letzten mal doch auch funktioniert. Ich versuche wirklich auch mich in 
die Materie einzulesen und habe schon die letzten Tage alle möglichen 
RS232 Befehle in den verschiedensten Kombinationen ausprobiert.

Zusamenfassend kann ich sagen:

1.
Serieller Anschluss von Lan an RS232
An dem alten Panasonic Projektor war der serielle Anschluss weiblich und 
ich habe es mit diesem Teil: "ConLine-V24-SXL-S (Stecker) Serial LAN 
Device Server" Also Lan > RS232 dank eurer Hilfe ans laufen gebracht.

Ich weis nicht ob es wichtig ist aber der neue Epson Projektor hat einen 
männlichen Anschluss, so das ich ihn mit diesem:"Seriell Adapter [1x 
D-SUB-Buchse 9pol. - 1x D-SUB-Buchse 9pol.]" angeschlossen habe. Den 
ConLine kann ich ansprechen, aber ich habe das Gefühl das der Beamer 
(nagelneu übrigens deshalb schließe ich einen defekten Beamer zu 99% 
aus)sich nicht ansprechen lässt, bzw. keine Rückmeldung über die 
Serielle konfiguration gibt. Ein USB>RS232 Kabel zum Prüfen besitze ich 
nicht.

2.
Lan Verbindung direkt am Beamer (PJ Link?)
Wie gesagt kann ich mit dem "Hercules SETUP utility" wie oben 
beschrieben die Befehle als Hex senden und alle Befehle funktionieren.

Die Idee mit Wireshark ist super nur das ich nicht wirklich weis wie man 
es bedient oder ausließt. Habe es gestartet und wollte sehen was 
gesendet wird aber ???????? Das Programm ist zu komplex... Ich habe 
schon etliche Stunden investiert aber ich konnte irgendwie keine genaue 
Anleitung zu diesem Problem finden oder weis nicht was genau ich machen 
muss.

Im Prinzip benötige ich eine einfache bash datei welche ich aufrufe und 
die dann den Beamer anschaltet, oder aus, oder den Eingang umschaltet...
Theoretisch ganz einfach aber...

Nun meine Fragen:
Kann das Problem der seriellen Übertragung an dem Adapter 
(Buchse>Buchse) liegen? Ich habe schon mal etwas von gekreuzten 
Leitungen gelesen.

Gibt es vielleicht eine einfachere Lösung, welche ich mit meinem 
geringen (eigentlich nicht vorhandenem ;-)) IT Wissen ans Laufen bringen 
könnte?


Oder gibt es in Wireshark eine Möglichkeit zu sehen, was "Hercules" 
sendet, so das man dann eine einfache bash datei daraus machen kann?

Oder muss ich mich geschlagen geben?

Danke schon mal auch wenn es keine Chance geben sollte!
Moderator Persönliche Seite #5885534
Lesenswert?

Jens schrieb:
> Ich weis nicht ob es wichtig ist aber der neue Epson Projektor hat einen
> männlichen Anschluss, so das ich ihn mit diesem:"Seriell Adapter [1x
> D-SUB-Buchse 9pol. - 1x D-SUB-Buchse 9pol.]" angeschlossen habe.

Vielleicht sind einfach RX und TX vertauscht. Miss einfach an *beiden 
Enden* jeweils die Spannung zwischen:

Pin 2 und 5 (GND)
Pin 3 und 5 (GND)

und berichte.

Wenn an beiden Enden (einmal Sicht auf PC, einmal auf Beamer) an 
derselben Pinnummer ca. -10V (minus!) rauskommen, dann müssen Pin 2 und 
3 vertauscht werden, sprich Dein Adapterkabel ist unbrauchbar.
Gast #5888971
Lesenswert?

Hallo,
ich melde mich noch einmal.
Also das Kabel mit gekreuzten RX und TX war das Problem. Ich habe mir 
diese gekreuzte Kabel besorgt und siehe da.
Jetzt kann ich Befehle über die serielle Schnitstelle senden und es 
funktioniert. War also ein Hardware Problem.
Sorry. Danke euch allen für die Hilfe.

Eine Frage hätte ich aber noch.
Ich habe den Odroid C2 (Linux) gegn eine Nvidia Shield TV (Android) 
getauscht. Hierüber wird der Befehl über LAN an die RS232 Buchse 
gesendet.

Ist es möglich diesen Befehl:
"echo -ne "PWR ON\r\n" | nc 192.168.188.52 1002"

genauso mit Putty über die Shield abzusetzen wie über den Odroid?

Benötige ich evtl. noch etwas wie z.B. ein Programm? Oder muss der 
Befehl zum ausführen der bash datei geändert werden? Muss evtl. eine 
andere Datei ausgeführt werden? Es gibt doch bestimmt ne Möglichkeit???
Gast #5889046
Lesenswert?

Jens schrieb:

> Also das Kabel mit gekreuzten RX und TX war das Problem.

Tja, hättest du gleich im ersten Posting erwähnt, dass der 
RS232-Anschluss des Beamers abweichend ist, wäre die Lösung sicherlich 
viel schneller möglich gewesen.

> Ist es möglich diesen Befehl:
> "echo -ne "PWR ON\r\n" | nc 192.168.188.52 1002"
>
> genauso mit Putty über die Shield abzusetzen wie über den Odroid?

Wahrscheinlich nicht. Auch bei Ordroid funktionierts ja nur deshalb, 
weil da mal irgendwie, irgendwann ein "COM-Server" installiert, 
konfiguriert und aktiviert wurde.

> Benötige ich evtl. noch etwas wie z.B. ein Programm?

Naja, eben auch einen "COM-Server".
Gast #5897100
Lesenswert?

Tut mir leid ich muss das Thema nochmal aufgreife, aber ich bin etwas 
weiter und hoffe jetzt ans Ziel zu kommen:

@ c-hater: Sorry aber wenn ich gewusst hätte das der Fehler mit dem 
Kabel zusammenhängen konnte hätte ich es bestimmt gesagt. Ich war der 
festen Überzeugung das das so passt. Ich habe leider zu wenig Ahnung von 
der Materie :-(


Meine Hardware wie oben schon beschrieben: Nvidia Shield mit dem 
Programm Kodi, KK Nord ConLine-V24-XXL-S Serial LAN Device Server 
Netzwerkadapter und Epson Beamer.
Mein Ziel ist mit einem Programm in  Kodi (das Programm heist 
Cinemavision) den Beamer per RS232 z.B. anzuschalten, das Format zu 
wechseln...

ich habe in dem Ordner Befehle ein .sh Script, welches funktioniert.
Das Script sieht so aus:
#!/bin/bash
echo -ne "PWR On\r\n" | tee | nc 192.168.188.52 1002

Wenn ich nun von meinem Laptop auf die Shield mit Putty zugreife (auf 
der Shield ist das Programm SSHelper zum einloggen) und:
"bash -x /storage/emulated/0/download/Befehle/beameron.sh" eingebe, geht 
der Beamer an. Alle anderen .sh Befehle habe ich auch getestet und sie 
gehen alle.

Wenn ich nun aber mit Kodi und dem Programm Cinemavision mein Script 
ausführen möchte, erscheint die Fehlermeldung:
"OSError:(Erno2) No such file or directory"

Das Programm Cinemavision hat ein sogenanntes Action File (.cvaction) 
und sieht so aus:
"command:///storage//emulated/0/Download/Befehle/beameron.sh"

Interessanterweise hatte ich damals mit meinem Odroid C2 schon mal das 
gleiche Problem.

Damals war die Lösung:
"dos2unix /storage/emulated/0/download/Befehle/beameron.sh" in den 
Terminal einzugeben und danach konnte ich 
"command:///storage//emulated/0/Download/Befehle/beameron.sh" ausführen.

Will ich diesen Befehl jetzt in Putty eingeben sagt er mir: "Permission 
Denied".

Unter Notepad++ Format Zeilenende steht aber auch schon Konvertiere zu 
UNIX (LF). Kann es trotzdem noch der Dos2unix fehler sein und wenn ja 
wie kann er behoben werden? Oder handelt es sich um ein anderes Problem.

Leider kann ich keine Fehlersuche starten da ich mich überhaupt nicht 
mit der Materie auskenne und nicht weiß was da passiert
Gast #5897217
Lesenswert?

Hallo, vielen Dank ertmal für die schnelle Rückmeldung.

> UNIX (LF) ist grau und unten rechts steht: Unix (LF) | UTF-8 | INS

Wenn ich in Putty "chmod +x beameron.sh" ausführen möchte, bekomme ich 
die Meldung: "chmod: beameron.sh: Operation not permitted
Gast #5897292
Lesenswert?

"ls -l beameron.sh" zeigt an:
-rw-rw----  1 root      everybody

Das dies "bash -x /storage/emulated/0/download/Befehle/beameron.sh" 
funktioniert hat anscheinend mit dem Programm was den Befehl 
"command:/// ausführen soll nichts zu tun oder? Irgendwo ist da noch ein 
Fehler oder?
Gast #5897314
Lesenswert?

Also wie kann man die Gruppenkennung denn Herausfinden?
Ich habe da gar nix geändert.
Kodi ist auf der Nvidia Shield installiert als App und Cinemavision ist 
ein Kodi Adon und in der Kodi App installiert.
SSHelper ist auf der Nvidia Shield installiert und ich logge mich mit 
Putty da ein. Komisch das mit bash -x über Putty das ganze in dem Ordner 
Befehle funktioniert und das .sh script ausgeführt werden kann.

Also denkt ihr das das ganze mit den Berechtigungen zu tun haben könnte?

Habe momentan keine Ahnung wie und wo ich noch Berechtigungen vergeben 
könnte
Gast #5897336
Lesenswert?

Jens schrieb:
> Also denkt ihr das das ganze mit den Berechtigungen zu tun haben könnte?

Ja: -rw-rw---- = Benutzer root und Mitglieder der Gruppe everybody 
dürfen die Datei Lesen und Schreiben, ausfüren darf aber niemand. Du was 
in die Richtung: -rwxrwx--- oder -rwxrwxr-x. Das sollte mit "chmod +x" 
eigentlich zu machen sein Offenbar hattest du aber nicht die nötigen 
Berechtigungen dafür.

Dafür gibt es mindestens 2 Möglichkeiten:
 * Du warst weder root noch in der Gruppe everybody -> mit Kommando "id" 
prüfen. Falls du "sudo" hast, setze das mal vor das chmod.
 * Eine LSM oder ein seccomp filter hat das blockiert -> Blöd 
gelaufen...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren