TCR IP4 in OH3. Wie vorgehen?

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Grandlhuber
Beiträge: 26
Registriert: 22. Sep 2021 07:38
Answers: 0
Wohnort: Bamberg

TCR IP4 in OH3. Wie vorgehen?

Beitrag von Grandlhuber »

Hallo,

habe mal wieder eine Frage, die die Profis hier bestimmt beantworten können. Und zwar habe ich einen TCR IP4 von Rutenbeck und möchte diesen per OH3 steuern können. Darauf bin ich auf diesen Link hier gestoßen: viewtopic.php?t=3226

Jedoch funktioniert das so nicht mehr, da in OH3 ja irgendwas geändert wurde.

Ich habe darauf hin das Modul XPATH transformation installiert, das HTTP-Binding hatte ich bereits. Habe einen Kanal erstellt und dazu einen Switch. Schalten kann ich die Kanäle. Geht wunderbar. Was aber fehlt, ist der Status der Kanäle ob sie wirklich an oder aus sind (Am Gerät kann man für jeden Kanal einen Knopf drücken zum Ein und Ausschalten). Am besten soll sich der Status des switches in OH verändern, wenn man am Gerät manuell den jeweiligen Kanal aktiviert. Überprüfung von OH alle (von mir aus 10 Sekunden reicht).

Da ich hier absolut nichts von xpath und dem Rest drumherum verstehe: Kann mir hier einer sagen, was ich wo eintragen muss, damit der Status des jeweiligen Gerätekanals im Item angezeigt wird? Habe jetzt tage lang probiert aber ich bin da anscheinend zu dumm dafür und kenne mit mit diesem ganzen Command transform, State Transformation, Statte URL Extension, State Content und XPATH expression null aus. :? . Wäre es VBA / Access, dann könnte ich mehr mit anfangen. Aber so: Null Chance. Habe auch schon die Online-Dokus angesehen und probiert zu verstehen. Bin leider ausgestiegen.

Datei, die Ausgelesen werden soll:

http://192.168.0.50/status.xml.

Inhalt (In diesem Inhalt hier sind alle Kanäle aus, außer der erste. Also On=1, Off=0):

Code: Alles auswählen

<response>
<led1>1</led1>
<led2>0</led2>
<led3>0</led3>
<led4>0</led4>
<pot0>nicht angeschlossen</pot0>
</response>

Schalten kann man jeden Kanal mit (Geht, habe ich probiert):

http://192.168.0.50/leds.cgi?led=1 (led=1, erster Kanal. led=2, zweiter Kanal usw)

Anbei ein paar Bildchen die zeigen, wie es im Moment bei mir aussieht. PS: Im dritten Bild ist statt dem Kanal 2 der Kanal 3 drin. Fehler meinerseits im Screenshot. Mit dem umändern auf 2 gehts aber trotzdem nicht :lol:
von udo1toni » 9. Mai 2022 13:01
Das ist so vollkommen korrekt. Der Punkt ist, der Code stammt vom gesamten Thing und beinhaltet auch die Channel.

Du musst im Channel selbst das XPATH hinzufügen. Notfalls geht das auch über den Code-Block, Du kannst das aber auch einfach über das entsprechende Feld eingeben. Der Code sollte anschließend so aussehen:

Code: Alles auswählen

UID: http:url:TCPIP4
label: HTTP URL TCPIP4
thingTypeUID: http:url
configuration:
  authMode: BASIC
  ignoreSSLErrors: false
  baseURL: http://192.168.0.50/
  delay: 0
  stateMethod: GET
  refresh: 5
  commandMethod: GET
  contentType: text/xml
  timeout: 3000
  bufferSize: 2048
location: Garage
channels:
  - id: Strom
    channelTypeUID: http:switch
    label: Strom
    description: null
    configuration:
      onValue: "1"
      offValue: "0"
      stateExtension: Status.xml
      commandExtension: leds.cgi?led=3
      stateTransformation: "XPATH:/response/led3/text()"
Es ist also lediglich eine Zeile hinzugekommen. Ich habe sie hier der Einfachheit halber unten angehängt. openHAB sortiert sie eventuell an anderer Stelle ein, das spielt aber keine Rolle, solange sie im gleichen Block steht (also eingerückt unter configuration).

Die Stelle, an der Du versucht hast, XPATH zu verwenden, funktioniert hier nicht, denn dazu müsste das gesamte xml Objekt im Channel vorliegen. Dazu müsste der Channel vom Typ String sein. XPATH im Profile des Item Links ist sinnvoll, wenn aus einem Channel mehrere verschiedene Werte gelesen (!) werden sollen. Schreiben geht bei einem solchen Channel aber nicht. das ist also vor allem interessant, um z.B. Sensoren abzufragen.
Gehe zur vollständigen Antwort
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Konfig: OpenHab 3.3.0 auf Raspi 4B+ (Raspian).
SomfyTahoma-Bridge im LAN-Modus, Brunnen-, Zisternensteuerung, Außenlampen, Heizung (WebKM200), PV-Anlage per MQQT, Miele-Trockner, Softliq SC18, Dreambox two sowie div. Shellys zur Steckdosensteuerung per Openhab vernetzt.
Visualisierung über Grafana. Daten in Influx gesichert.

Benutzeravatar
udo1toni
Beiträge: 15312
Registriert: 11. Apr 2018 18:05
Answers: 246
Wohnort: Darmstadt

Re: TCR IP4 in OH3. Wie vorgehen?

Beitrag von udo1toni »

Es wäre besser gewesen, statt der Bilder den Code zu posten (ins Thing wewechseln, oben rechts auf Code-Ansicht umschalten, Code in die Zwischenablage kopieren, ins Forum, dort die Code Tags einfügen und den Code dazwischen packen).

Die Screenshots enthalten nicht alle notwendigen Informationen.
openHAB5.0.0 stable in einem Debian-Container (bookworm) (Proxmox 9.0.3, LXC)

Grandlhuber
Beiträge: 26
Registriert: 22. Sep 2021 07:38
Answers: 0
Wohnort: Bamberg

Re: TCR IP4 in OH3. Wie vorgehen?

Beitrag von Grandlhuber »

Hallo, ich probier's mal:

Code: Alles auswählen

UID: http:url:TCPIP4
label: HTTP URL TCPIP4
thingTypeUID: http:url
configuration:
  authMode: BASIC
  ignoreSSLErrors: false
  baseURL: http://192.168.0.50/
  delay: 0
  stateMethod: GET
  refresh: 5
  commandMethod: GET
  contentType: text/xml
  timeout: 3000
  bufferSize: 2048
location: Garage
channels:
  - id: Strom
    channelTypeUID: http:switch
    label: Strom
    description: null
    configuration:
      onValue: "1"
      offValue: "0"
      stateExtension: Status.xml
      commandExtension: leds.cgi?led=3
Passt das so? Da wird aber nur der Code vom Thing angezeigt, nicht von meinem Item das ich im Kanal angelegt habe?

Item ist ein switch , Profil xpath mit diesem Inhalt: "/response/led3/text()*

Gruß,Oli
Konfig: OpenHab 3.3.0 auf Raspi 4B+ (Raspian).
SomfyTahoma-Bridge im LAN-Modus, Brunnen-, Zisternensteuerung, Außenlampen, Heizung (WebKM200), PV-Anlage per MQQT, Miele-Trockner, Softliq SC18, Dreambox two sowie div. Shellys zur Steckdosensteuerung per Openhab vernetzt.
Visualisierung über Grafana. Daten in Influx gesichert.

Benutzeravatar
udo1toni
Beiträge: 15312
Registriert: 11. Apr 2018 18:05
Answers: 246
Wohnort: Darmstadt

Re: TCR IP4 in OH3. Wie vorgehen?

Beitrag von udo1toni »

Das ist so vollkommen korrekt. Der Punkt ist, der Code stammt vom gesamten Thing und beinhaltet auch die Channel.

Du musst im Channel selbst das XPATH hinzufügen. Notfalls geht das auch über den Code-Block, Du kannst das aber auch einfach über das entsprechende Feld eingeben. Der Code sollte anschließend so aussehen:

Code: Alles auswählen

UID: http:url:TCPIP4
label: HTTP URL TCPIP4
thingTypeUID: http:url
configuration:
  authMode: BASIC
  ignoreSSLErrors: false
  baseURL: http://192.168.0.50/
  delay: 0
  stateMethod: GET
  refresh: 5
  commandMethod: GET
  contentType: text/xml
  timeout: 3000
  bufferSize: 2048
location: Garage
channels:
  - id: Strom
    channelTypeUID: http:switch
    label: Strom
    description: null
    configuration:
      onValue: "1"
      offValue: "0"
      stateExtension: Status.xml
      commandExtension: leds.cgi?led=3
      stateTransformation: "XPATH:/response/led3/text()"
Es ist also lediglich eine Zeile hinzugekommen. Ich habe sie hier der Einfachheit halber unten angehängt. openHAB sortiert sie eventuell an anderer Stelle ein, das spielt aber keine Rolle, solange sie im gleichen Block steht (also eingerückt unter configuration).

Die Stelle, an der Du versucht hast, XPATH zu verwenden, funktioniert hier nicht, denn dazu müsste das gesamte xml Objekt im Channel vorliegen. Dazu müsste der Channel vom Typ String sein. XPATH im Profile des Item Links ist sinnvoll, wenn aus einem Channel mehrere verschiedene Werte gelesen (!) werden sollen. Schreiben geht bei einem solchen Channel aber nicht. das ist also vor allem interessant, um z.B. Sensoren abzufragen.
openHAB5.0.0 stable in einem Debian-Container (bookworm) (Proxmox 9.0.3, LXC)

Grandlhuber
Beiträge: 26
Registriert: 22. Sep 2021 07:38
Answers: 0
Wohnort: Bamberg

Re: TCR IP4 in OH3. Wie vorgehen?

Beitrag von Grandlhuber »

Hallo udo1toni,

danke für die Erklärung :) ! Ich habe, so wie du geschrieben hast, den XPATH im Code-Block hinzugefügt. Und siehe da: Es geht jetzt! Fast wäre ich da wohl selbst durch probieren drauf gekommen. Ich hatte da mal anstatt

Code: Alles auswählen

 stateTransformation: "XPATH:/response/led3/text()"

Code: Alles auswählen

 stateTransformation: "/response/led3/text()"
geschrieben. Fast hätte ich da einen "Glückstreffer" gehabt :lol: :lol:

Nochmals Danke für deine Hilfe und vor allem Danke für deinen letzten Absatz mit der Erklärung warum das hier nicht funktioniert wie ich es probiert hatte.

Grüße., Oli :ugeek: :D
Konfig: OpenHab 3.3.0 auf Raspi 4B+ (Raspian).
SomfyTahoma-Bridge im LAN-Modus, Brunnen-, Zisternensteuerung, Außenlampen, Heizung (WebKM200), PV-Anlage per MQQT, Miele-Trockner, Softliq SC18, Dreambox two sowie div. Shellys zur Steckdosensteuerung per Openhab vernetzt.
Visualisierung über Grafana. Daten in Influx gesichert.

Benutzeravatar
udo1toni
Beiträge: 15312
Registriert: 11. Apr 2018 18:05
Answers: 246
Wohnort: Darmstadt

Re: TCR IP4 in OH3. Wie vorgehen?

Beitrag von udo1toni »

Gerne :)
openHAB5.0.0 stable in einem Debian-Container (bookworm) (Proxmox 9.0.3, LXC)

Antworten