Seite 2 von 4
Re: VRRoom -Telnet und Weboberfläche
Verfasst: 27. Sep 2023 18:32
von filmgucker2
Keine Ideen mehr?
Mit
Code: Alles auswählen
The command to be executed will be '[sh, -c, /usr/bin/echo \""get status tx0"\" | /usr/bin/telnet 192.168.188.176 2222]'
,
also den Anführungsstrichen im Status komm ich rein, aber nur bis
Code: Alles auswählen
Connected to 192.168.188.176.
Escape character is '^]'.
Connection closed by foreign host.
...und die interessante Zeile behält er weiter für sich...
Re: VRRoom -Telnet und Weboberfläche
Verfasst: 27. Sep 2023 19:14
von udo1toni
Nein, das wird erst gar nicht ausgeführt. Die "interesaante Zeile" käme ja
zwischen den Zeilen mit dem "Escape character" und "Connection closed"
Ich habe schon versucht, das hier nachzustellen, es scheitert aber daran, dass ich keinen telnet Server habe, der ohne Authentisierung funktioniert.
Die korrekte Zeile müsste auch noch geschweifte Klamnmern beinhalten, habe ich oben vergessen...
Code: Alles auswählen
{ echo "remotecommand 1"; echo "remotecommand 2"; sleep 1; } | telnet 10.1.1.1
Das würde die Kommandos
remote auf der mit telnet verbundenen Maschine ausführen.
Das
sleep 1 ist vermutlich, um telnet genug Zeit zu geben, bevor die Verbindung wieder getrennt wird.
Re: VRRoom -Telnet und Weboberfläche
Verfasst: 27. Sep 2023 22:11
von filmgucker2
Danke, danke, danke...
Mit
Code: Alles auswählen
{ echo ""%2$s""; sleep 1; } | telnet 192.168.188.176 2222
kam dann endlich das raus:
Code: Alles auswählen
Trying 192.168.188.176... Connected to 192.168.188.176. Escape character is '^]'. TX0: DCI4K60 594MHz RGB 8b Connection closed by foreign host. Connection closed by foreign host.
Es reicht offenbar nur ein remote command, und nur den einen hab ich ja. Aber ohne sleep macht er es nicht.
Interessieren tut mich natürlich nur: TX0: DCI4K60 594MHz RGB 8b
Das werde ich mir dann wohl irgendwie mit REGEX rausschneiden müssen...
Re: VRRoom -Telnet und Weboberfläche
Verfasst: 27. Sep 2023 22:50
von udo1toni
Ja, genau, mit REGEX sollte das eigentlich kein großes Problem sein.sowas wie
Code: Alles auswählen
REGEX:.*character is ..\].\. (.*) Connection closed.*)
Eventuell gibt es auch elegantere (und vor allem kürzere) Varianten...
Re: VRRoom -Telnet und Weboberfläche
Verfasst: 28. Sep 2023 19:45
von filmgucker2
Oha, REGEX...Ich weiß zwar, wozu es gut ist, kriege aber den Ausdruck für das Feld der UI nicht hin. Mit copy and paste von Deinem
gab es folgendes:
Code: Alles auswählen
Couldn't transform response because transformationService of type 'REGEX:.*character is ..\].\. ' is unavailable
Re: VRRoom -Telnet und Weboberfläche
Verfasst: 28. Sep 2023 20:42
von udo1toni
Na ja, Du musst REGEX schon installieren, so wie jedes andere Addon auch (steht übrigens auch exakt so in der Meldung...)
Re: VRRoom -Telnet und Weboberfläche
Verfasst: 28. Sep 2023 20:51
von filmgucker2
laut openhab hab ich das schon...
Re: VRRoom -Telnet und Weboberfläche
Verfasst: 29. Sep 2023 11:45
von filmgucker2
Ich stochere weiter herum. Regex ist installiert und scheint auch was zu tun. Thing und Item sind in der UI angelegt,
beim Thing alles so gelassen wie es ist. Beim Item Regex Transformation mit Ausdruck wie im Beitrag. Das "REGEX:"
kommt da wohl nicht mehr hin, weil es darüber schon ausgewählt ist. regex101 im web sagt, eine Klammer ist zu viel.
Ohne die, also
zeigt regex101 den ersehnten Wert, danach aber Connection closed (2x) grün an...Openhab zeigt dann gar nichts. Ich dachte, ich sei durch, aber das ist ja eine richtig große Baustelle...
Re: VRRoom -Telnet und Weboberfläche
Verfasst: 29. Sep 2023 15:16
von filmgucker2
Ok, Zwischenstand: Mit regex101 im web hab ich den Ausdruck rausgekriegt:
Code: Alles auswählen
.*character is ..\].\. (.*?) Connection closed by foreign host.
Schönes Werkzeug, aber nur mit weiterem Googeln verständlich
Trotzdem zeigt er mir nichts an. REGEX removed und dann wieder installed. Nichts.
Re: VRRoom -Telnet und Weboberfläche
Verfasst: 29. Sep 2023 18:58
von udo1toni
Ach, ich hab schon wieder vergessen, dass wir mit dem Exec Binding unterwegs sind, das kennt keine Transformation im Channel.
Also in das Profile (die Verbindung zwischen Output Channel und String Item) und dort REGEX anhaken.
Außerdem war mir nicht aufgefallen, dass die Connection closed Meldung zweimal kommt...
Also in das Textfeld, in dem man die Regular Expression eingibt:
eintragen.