Seite 2 von 9

Re: ETA Pelletkessel PC25 auslesen

Verfasst: 9. Jun 2022 10:14
von Jensemann_P
udo1toni hat geschrieben: 9. Jun 2022 01:46 Der XPATH zum Wert heißt in diesem Fall eta/value/text()
Da fehlt mir jetzt grad echt der Zusammenhang, wo diese Info dann rein muss.

Re: ETA Pelletkessel PC25 auslesen

Verfasst: 9. Jun 2022 20:25
von Jensemann_P
Bekomme vom Log folgende Meldung, schaut aus, als ob nur die Base-URL übermittelt wird:

Code: Alles auswählen

2022-06-09 20:19:28.447 [WARN ] [p.internal.http.HttpResponseListener] - Requesting 'http://192.168.178.148:8080/' (method='GET', content='null') failed: 404 Not Found
Aktueller Stand Thing:

Code: Alles auswählen

UID: http:url:a6c1151ee3
label: ETA PC 25
thingTypeUID: http:url
configuration:
  authMode: BASIC
  ignoreSSLErrors: false
  baseURL: http://192.168.178.148:8080
  delay: 0
  stateMethod: GET
  refresh: 1
  commandMethod: GET
  contentType: text/xml
  timeout: 1000
  bufferSize: 2048
location: Heizraum Keller
channels:
  - id: ETA_Temp_Aussen
    channelTypeUID: http:number
    label: ETA Temperatur Außen
    description: null
    configuration:
      commandExtension: user/var/120/10221/0/0/12197
      stateTransformation: XSLT:eta_numeric.xsl

Re: ETA Pelletkessel PC25 auslesen

Verfasst: 9. Jun 2022 23:53
von udo1toni
Du setzt stateTransformation auf XPATH:eta/value/text().

Aber wie gesagt ist der Wert um den Faktor 10 verkehrt.

Die Fehlermeldung rührt daher, dass Du nur die commandExtension verwendest, Du msust aber die stateExtension verwenden.

commandExtension ist zum Senden von Befehlen an die per http angebundene Hardware, stateExtension liefert Informationen von der Hardware.

Re: ETA Pelletkessel PC25 auslesen

Verfasst: 10. Jun 2022 00:30
von Jensemann_P
DANKE!

Da hab ich dann vor lauter Bäumen den Wald nicht mehr gesehen. Kaum in state request eingetragen ging es.
Es kamen Fehlermeldungen, dass der Transformation Service nicht gefunden werden kann. Nochmal nachgeschaut und dann gerafft, dass Xpath und xslt 2 Paar Schuhe sind.

XSLT installiert, und es läuft, mit dem Script von der letzten Seite.

Was wäre hier nun der Vorteil von Xpath? Bei xpath müsste ich die Umrechnung ja später durchführen, oder geht das da dann auch "on the fly"?

Re: ETA Pelletkessel PC25 auslesen

Verfasst: 10. Jun 2022 00:51
von Jensemann_P
Komme ich mit Xpath auch direkt an den Wert unter strval?

Code: Alles auswählen

<value uri="/user/var//120/10221/0/0/19391" strValue="Kollektortemperatur ist zu niedrig" unit="" decPlaces="0" scaleFactor="1" advTextOffset="4160">4163</value>

Re: ETA Pelletkessel PC25 auslesen

Verfasst: 10. Jun 2022 01:37
von udo1toni
Ja, strValue kann genauso abgefragt werden. Aber Achtung, Komma ist etwas anderes als Punkt. Ob xslt das abfängt, weiß ich nicht. XPATH ist wesentlich schlanker, was die Konfiguraiton betrifft, da es komplett ohne extra Dateien auskommt.

Wenn es ganz schlimm kommt, kann man natütlich mit dem JS Transformation Service arbeiten, dann aber wieder mit Datei, und es erscheint mir nicht sehr komfortabel, für jeden Wert eine eigene Datei anzulegen.

Hast Du mal die anderen URIs getestet?, also die drei Unterbereiche, in der Hoffnung, dass dort nicht nur ein einzelner Wert im xml landet, das hilft, um in openHAB das Einlesen der Werte per Rule komfortabel zu gestalten.

Re: ETA Pelletkessel PC25 auslesen

Verfasst: 10. Jun 2022 12:28
von Jensemann_P
Hi nochmal,

leider, leider wirft das Teil keine kompletten Kategorien zurück, ich muss mir jeden Wert einzeln holen (benötige aber zum Glück auch nur zwischen 10 und 20 davon).

Ich konnte mir jetzt schon einige Temperaturen und Füllstände bis in Items holen, numerisch funktioniert alles super.

Ein paar Eigenschaften sind auch direkt als Text hinterlegt, da würde mich der StrVal mehr interessieren als irgendein Wert, den ich dann selbst umsetzen müsste (Bspw Solarpumpe kann sein: Ein, Aus, zu kalt, Störung).

Eigentlich hätte ich es so verstanden, dass ich damit:

Code: Alles auswählen

  - id: ETA_Solarpumpe_Zustand
    channelTypeUID: http:string
    label: ETA Solarpumpe Zustand
    description: null
    configuration:
      stateExtension: user/var/120/10221/0/11139/2002
      stateTransformation: XPATH:eta/value/strValue()

das da

Code: Alles auswählen

<eta xmlns="http://www.eta.co.at/rest/v1" version="1.0">
<value uri="/user/var/120/10221/0/11139/2002" strValue="Ein" unit="" decPlaces="0" scaleFactor="1" advTextOffset="1000">1001</value>
</eta>
abfragen kann, bekomme aber NULL.

Re: ETA Pelletkessel PC25 auslesen

Verfasst: 10. Jun 2022 12:39
von Jensemann_P
Spiele gerade (zugegeben, blindes gestocher) mit einem online Xpath-Tester rum.

Code: Alles auswählen

eta/value/strValue/text()

mag auch nicht

Re: ETA Pelletkessel PC25 auslesen

Verfasst: 10. Jun 2022 15:25
von udo1toni
Lass mal die Klammern weg und ergänze ein @, also eta/value/@strValue

Re: ETA Pelletkessel PC25 auslesen

Verfasst: 10. Jun 2022 16:30
von Jensemann_P

Code: Alles auswählen

  - id: ETA_Solarpumpe_Zustand
    channelTypeUID: http:string
    label: ETA Solarpumpe Zustand
    description: null
    configuration:
      stateExtension: user/var/120/10221/0/11139/2002
      stateTransformation: XPATH:eta/value/@strValue
tut's leider auch nicht