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
Jens schrieb:> oder sieht jemand vielleicht schon einen Fehler?
Du lässt STX und ETX weg. Oder ist das von Dir zitierte Textfragment aus
der Epson- und nicht der Panasonic-Beschreibung?
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
Stefan W. schrieb:> echo kann mit \0nnn beliebige Werte ausgeben. ACHTUNG: "\0nnn" ist> OKTALE Notation.
Man kann auch eine hexadezimale Notation verwenden, wie es das alte
Epson-Beispiel zeigt:
Jens schrieb:> Dank eurer Hilfe kann ich den Beamer mit diesem Befehl in Putty direkt> einschalten:> "echo -ne '\x02PON\x03' | nc 192.168.188.52 1002"
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.
Jens schrieb:> Bei epson finde ich außer den Befehlen:> "Projektor An = PWR On" leider keine explizite Beschreibung.
Du benutzt aber STX und ETX, wie man Deinem von mir zitierten Beispiel
entnehmen kann.
"echo -ne '\x02PWR ON\x03' | nc 192.168.188.52 1002"
Sind denn Portnummer und IP-Adresse unverändert?
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.
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...
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.
Stefan W. schrieb:> Die darin enthaltene Angabe "Return" ist etwas uneindeutig.
Ja. Aber im allerletzen Abschnitt des PDF ist die passende Konfiguration
des Windows-Hyperterminal beschrieben. Damit wird's dann eindeutig, das
Teil möchte CRLF, liefert selber aber bloß CR.
Jens schrieb:> Ich habe leider zu wenig Ahnung davon, aber sollte das ganze dann so> z.B. aussehen?
Wenn die von Stefan W. verlinkte Protokollbeschreibung die passende ist,
müßte das Kommando so aussehen:
echo -ne "PWR ON\r\n" | nc 192.168.188.52 1002
c-hater schrieb:> im allerletzen Abschnitt des PDF ist die passende Konfiguration> des Windows-Hyperterminal beschrieben. Damit wird's dann eindeutig, das> Teil möchte CRLF, liefert selber aber bloß CR.
Gut versteckt!
Dann warten wir mal auf die Rückmeldung des TE.
Grüße
Stefan
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?
Auf die Schnelle gefunden:
https://forum.logicmachine.net/showthread.php?tid=129
Dort wird auch nur
"PWR ON\r\n"
gesendet
Vermutlich liegt Dein Problem wo anders?
Würde es erst mal direkt über einen USB / RS232-Adapter versuchen?
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.
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.
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
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.
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.
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!
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.
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???
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".
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
Jens schrieb:> Unter Notepad++ Format Zeilenende steht aber auch schon Konvertiere zu> UNIX (LF).
Ist das schwarz oder grau?
Was steht unten rechts im Fensterrahmen?
Jens schrieb:> Will ich diesen Befehl jetzt in Putty eingeben sagt er mir: "Permission> Denied".
Die Datei ist vermutlich nicht ausführbar, d.h. es fehlt das x-Flag.
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
Jens schrieb:> Wenn ich in Putty "chmod +x beameron.sh" ausführen möchte, bekomme ich> die Meldung: "chmod: beameron.sh: Operation not permitted
Keine Berechtigung? Was zeigt "ls -l beameron.sh"?
Alternativ kann man Shell-Scripts aber auch ohne x-Flag starten, wenn
man "sh" voranstellt, also:
"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?
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
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...
Hallo,
ich würde sagen das D bei Download ist mit Großbuchstaben geschrieben.
Denn die Meldung no file or directory besagt er kann die Datei nicht
finden.
Gruß Sven