VRRoom -Telnet und Weboberfläche
-
- Beiträge: 237
- Registriert: 8. Apr 2020 20:59
Re: VRRoom -Telnet und Weboberfläche
Nein, es kommt im string item immer noch nichts. Ich habe das Gefühl, REGEX funktioniert nicht. Kann man
das irgendwie prüfen? Ich mache alles über die UI. Da gibt es einmal das Thing mit dem Feld REGEX. Das habe ich
so wie es ist gelassen. Und dann das String Item mit dem Rückgabewert. Da habe ich Deinen Ausdruck eingegeben,
der wohl fast dem entspricht, was ich selbst rausgekriegt habe.
das irgendwie prüfen? Ich mache alles über die UI. Da gibt es einmal das Thing mit dem Feld REGEX. Das habe ich
so wie es ist gelassen. Und dann das String Item mit dem Rückgabewert. Da habe ich Deinen Ausdruck eingegeben,
der wohl fast dem entspricht, was ich selbst rausgekriegt habe.
Raspberry Pi 4, OH 4.0.3
-
- Beiträge: 237
- Registriert: 8. Apr 2020 20:59
Re: VRRoom -Telnet und Weboberfläche
Für mich als Noob ist es schwer, wenn die Code Tipps als Text (so wie früher) genannt sind So ist das auch oft oder
eigentlich immer in der openhab Doku. Wie das in der UI in den Feldern auszusehen hat, steht da praktisch nie.
So braucht man etwa das "REGEX:"... nicht in dem Feld mit dem regulären Ausdruck in der UI. Beim Thing Feld mit
REGEX fehlt der Doppelpunkt dahinter, und dabei ist es doch, wie die Erfahrung zeigt, so wichtig, jedes einzelne
Zeichen richtig zu machen...
eigentlich immer in der openhab Doku. Wie das in der UI in den Feldern auszusehen hat, steht da praktisch nie.
So braucht man etwa das "REGEX:"... nicht in dem Feld mit dem regulären Ausdruck in der UI. Beim Thing Feld mit
REGEX fehlt der Doppelpunkt dahinter, und dabei ist es doch, wie die Erfahrung zeigt, so wichtig, jedes einzelne
Zeichen richtig zu machen...
Raspberry Pi 4, OH 4.0.3
-
- Beiträge: 237
- Registriert: 8. Apr 2020 20:59
Re: VRRoom -Telnet und Weboberfläche
...in der UI gibt es bei auszuführender Befehl unter Thing das Feld Transformation, vorbelegt mit REGEX((.*)) .
Wenn ich es da reinschreibe? Dann kriege ich die Meldung transformed response is 'null'...
Wenn ich es da reinschreibe? Dann kriege ich die Meldung transformed response is 'null'...
Raspberry Pi 4, OH 4.0.3
-
- Beiträge: 237
- Registriert: 8. Apr 2020 20:59
Re: VRRoom -Telnet und Weboberfläche
Es gibt drei Karten: Thing Channel Code
Unter Thing: Feld Transformation hier: REGEX
Unter Channels: Ruckgabewert usw
Unter dem Channel Ruckgabewert, mein string item. Beim string item Profile mit REGEX zum Anklicken...Schon wieder REGEX...
Unter Thing: Feld Transformation hier: REGEX
Unter Channels: Ruckgabewert usw
Unter dem Channel Ruckgabewert, mein string item. Beim string item Profile mit REGEX zum Anklicken...Schon wieder REGEX...
Raspberry Pi 4, OH 4.0.3
- udo1toni
- Beiträge: 15247
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: VRRoom -Telnet und Weboberfläche
Ich fürchte, wir befinden uns an unterschiedlichen Stellen im System
Teile in diesem Fall gerne mal Screenshots.
Es gibt exakt drei mögliche Stellen, an der Du REGEX verwenden kannst. Von hinten nach vorne (aus Gründen):
Allerdings widerspricht das der üblichen Konvention, aber sei's drum...
Wenn du also in der UI das passende Feld für die Transformation gefunden hast, muss laut Doku der Eintrag an dieser Stelle so aussehen:
Wie gesagt, das widerspricht der üblichen Konfiguration in allen anderen Bindings, dort sind die äußeren Klammen nicht vorhanden und stattdessen steht nach dem REGEX ein Doppelpunkt.
Falls es an dieser Stelle mit Klammern und ohne Doppelpunkt funktioniert, wäre das super, aber ein Grund, einen Issue zu öffnen, weil das eine üble Inkonsistenz darstellt...

Es gibt exakt drei mögliche Stellen, an der Du REGEX verwenden kannst. Von hinten nach vorne (aus Gründen):
- Im Label des String Items. Wirkt ausschließlich auf die Anzeige und ist hier unbrauchbar
(könnte über eine Sitemap konfiguriert werden oder alternativ über die Metadaten des Items - State Description Pattern) - Das Profile - Im Link zwischen Channel und Item, erreichbar z.B. über die Konfiguration des Things, wo man die einzelnen Channel mit passenden Items verknüpfen kann. An dieser Stelle (und nur dort) gibt es "Radiobuttons" für jede Profile Art mit dem Namen des Profiles, hier also REGEXX. Wenn man das entsprechende Profile gewählt hat, erscheint je nach Profile Art ein weiteres Feld, in dem man dann die passende Konfiguration hinterlegen kann - logischerweise ohne weiteres Schlüsselwort, das ist ja schon gesetzt worden.
- Im Channel als Parameter. Für das exec Binding heißt der Parameter transform. Evtl. ist der Parameter nur über show advanced erreichbar, ich habe das Binding gerade nicht vor Augen...
Code: Alles auswählen
transform="REGEX((.*?))"
Wenn du also in der UI das passende Feld für die Transformation gefunden hast, muss laut Doku der Eintrag an dieser Stelle so aussehen:
Code: Alles auswählen
REGEX(.*character is ..\].\. (.*) Connection.*Connection.*)
Falls es an dieser Stelle mit Klammern und ohne Doppelpunkt funktioniert, wäre das super, aber ein Grund, einen Issue zu öffnen, weil das eine üble Inkonsistenz darstellt...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 237
- Registriert: 8. Apr 2020 20:59
Re: VRRoom -Telnet und Weboberfläche
Ich hab mal zwei Screenshots gemacht. Hab noch nie solche hier hochgeladen.
Die Datei Thing zeigt das, was ich unter der Karte "Thing" eingetragen habe.
Profile, den link channel/string item. Wenn ich den Radiobutton "Standard" markiert habe,
bringt er mir den kompletten string aus der Telnet Abfrage.
Wenn ich Radio REGEX markiere und den von Dir angegebenen Ausdruck als regulären Ausdruck
wie abgebildet eintrage, gibt das item gar nichts mehr aus. Ein REGEX mit oder ohne Doppelpunkt
dazu bringt auch nichts.
EXEC scheint Schiet zu sein... Ginge es nicht vielleicht auch mit einer ExecuteCommandline?
Die Datei Thing zeigt das, was ich unter der Karte "Thing" eingetragen habe.
Profile, den link channel/string item. Wenn ich den Radiobutton "Standard" markiert habe,
bringt er mir den kompletten string aus der Telnet Abfrage.
Wenn ich Radio REGEX markiere und den von Dir angegebenen Ausdruck als regulären Ausdruck
wie abgebildet eintrage, gibt das item gar nichts mehr aus. Ein REGEX mit oder ohne Doppelpunkt
dazu bringt auch nichts.
EXEC scheint Schiet zu sein... Ginge es nicht vielleicht auch mit einer ExecuteCommandline?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Raspberry Pi 4, OH 4.0.3
- udo1toni
- Beiträge: 15247
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: VRRoom -Telnet und Weboberfläche
Du kannst ein zweites String Item dazu konfigurieren, in dem Du parallel den ungefilterten Output sehen kannst. Das wäre fürs Debugging nett.
Ansonsten probiere gerne noch mal die andere Variante, indem Du statt
in das transform Feld
einträgst.
Falls es dann ein "Connection Closed" im resultierenden String gibt, müssten wir ein zweites " Connection.*" hinzufügen, wie weiter oben vorgeschlagen.
Noch mal zur Erklärung von REGEX:
openHAB hat eine Sonderform von REGEX, es gibt leider nicht alle Möglichkeiten, die ein vollständiges REGEX zur Verfügung hätte.
Man muss immer zwingend ein REGEX angeben, welches auf den vollständigen gelieferten String matcht, das heißt fast immer, dass vorne und hinten ein .* stehen muss.
. bedeutet: ein beliebiges Zeichen
* bedeutet, 0 bis beliebig oft das vorherige Zeichen wiederholen
+ bedeutet, das vorherige Zeichen muss mindestens einmal vorkommen
? bedeutet, das vorherige Zeichen darf maximal einmal vorkommen
\ bedeutet, dass das nachfolgende Zeichen exakt als dieses Zeichen verwendet werden soll, also z.B. \. bedeutet Punkt, nicht mehr "beliebiges Zeichen.
[] ist eine Gruppe von Zeichen, also z.B. [abc] bedeutet entweder a oder b oder c, weshalb auch das \] notwendig ist
^ hat ebenfalls eine spezielle Bedeutung.
Der in () stehende Ausdruck ist der Teil, den REGEX durchlässt, hier also eine beliebige Zeichenkette (.*) die von einer ganz bestimmten Zeichenkette umrahmt ist.
Ansonsten probiere gerne noch mal die andere Variante, indem Du statt
Code: Alles auswählen
REGEX((.*))
Code: Alles auswählen
REGEX(.*character is ..\].\. (.*) Connection.*)
Falls es dann ein "Connection Closed" im resultierenden String gibt, müssten wir ein zweites " Connection.*" hinzufügen, wie weiter oben vorgeschlagen.
Noch mal zur Erklärung von REGEX:
openHAB hat eine Sonderform von REGEX, es gibt leider nicht alle Möglichkeiten, die ein vollständiges REGEX zur Verfügung hätte.
Man muss immer zwingend ein REGEX angeben, welches auf den vollständigen gelieferten String matcht, das heißt fast immer, dass vorne und hinten ein .* stehen muss.
. bedeutet: ein beliebiges Zeichen
* bedeutet, 0 bis beliebig oft das vorherige Zeichen wiederholen
+ bedeutet, das vorherige Zeichen muss mindestens einmal vorkommen
? bedeutet, das vorherige Zeichen darf maximal einmal vorkommen
\ bedeutet, dass das nachfolgende Zeichen exakt als dieses Zeichen verwendet werden soll, also z.B. \. bedeutet Punkt, nicht mehr "beliebiges Zeichen.
[] ist eine Gruppe von Zeichen, also z.B. [abc] bedeutet entweder a oder b oder c, weshalb auch das \] notwendig ist
^ hat ebenfalls eine spezielle Bedeutung.
Der in () stehende Ausdruck ist der Teil, den REGEX durchlässt, hier also eine beliebige Zeichenkette (.*) die von einer ganz bestimmten Zeichenkette umrahmt ist.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 237
- Registriert: 8. Apr 2020 20:59
Re: VRRoom -Telnet und Weboberfläche
Es bleibt leider dabei: Transformed response is null, sagt das log...und im item kommt nichts an. Vielleicht
hat es mit dieser komischen Escape charakter Meldung, die nicht richtig transformed ist, zu tun wg. der Sonderzeichen? Die Meldungen mit allen string Rückmeldungen zeigt das log an. Nur eben die transformed response null.
In der Kommandozeile und im Log kommt vor dem Wert, der eingefangen werden soll, folgender Text:
'Escape character is '^]'.
hat es mit dieser komischen Escape charakter Meldung, die nicht richtig transformed ist, zu tun wg. der Sonderzeichen? Die Meldungen mit allen string Rückmeldungen zeigt das log an. Nur eben die transformed response null.
In der Kommandozeile und im Log kommt vor dem Wert, der eingefangen werden soll, folgender Text:
'Escape character is '^]'.
Raspberry Pi 4, OH 4.0.3
- udo1toni
- Beiträge: 15247
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: VRRoom -Telnet und Weboberfläche
Ja, aber das ist ja berücksichtigt mit dem ..\].\., der erste Punkt steht für das ', der zweite Punkt für ^, der \] für die schließende eckige Klammer, der . wieder für ', der \. für den echten Punkt. Und das REGEX matcht ja auchim Simulatornur offensichtlich nicht im Item
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 237
- Registriert: 8. Apr 2020 20:59