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

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.