[gelöst] http Abfrage Volkszähler mit OH3

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

radioactiveman
Beiträge: 8
Registriert: 27. Dez 2020 16:18
Answers: 0

Re: [gelöst] http Abfrage Volkszähler mit OH3

Beitrag von radioactiveman »

Darf ich das Thema nochmals öffnen:?
Ich habe das http-Thing so wie im Beispiel angelegt, zwei Channels und zwei Items. Im Semantic Model kommt indes nichts an (NULL). ich habe es noch nicht komplett durchdrungen...

Code: Alles auswählen

UID: http:url:vz
label: Volkszähler
thingTypeUID: http:url
configuration:
  authMode: BASIC
  ignoreSSLErrors: false
  baseURL: http://192.168.178.62/middleware.php/data.json?from=-10Minute&to=now&uuid[meineUUID_1]=aaaa&uuid[meineUUID_2]=bbbb
  refresh: 10
  commandMethod: GET
  timeout: 3000
  bufferSize: 2048
channels:
  - id: ch1avg
    channelTypeUID: http:number
    label: Leistung PV [%.3f W]
    description: ""
    configuration:
      stateTransformation: JSONPATH:$.data[?(@.uuid=='aaaa')].average
  - id: ch2avg
    channelTypeUID: http:number
    label: Verbrauch [%.3f W]
    description: ""
    configuration:
      stateTransformation: JSONPATH:$.data[?(@.uuid=='bbbb')].average

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

Re: [gelöst] http Abfrage Volkszähler mit OH3

Beitrag von udo1toni »

Vielleicht besteht da ein Missverständnis. In die eckigen Klammern kommt nichts, stattdessen sind aaaa und bbbb die Platzhalter für die uuids, das heißt es sieht dann so aus:

Code: Alles auswählen

UID: http:url:vz
label: Volkszähler
thingTypeUID: http:url
configuration:
  authMode: BASIC
  ignoreSSLErrors: false
  baseURL: http://192.168.178.62/middleware.php/data.json?from=-10Minute&to=now&uuid[]=12345678-9abc-def0-1234-56789abcdef0&uuid[]=12345678-9abc-def0-1234-56789abcdef1
  refresh: 10
  commandMethod: GET
  timeout: 3000
  bufferSize: 2048
channels:
  - id: ch1avg
    channelTypeUID: http:number
    label: Leistung PV [%.3f W]
    description: ""
    configuration:
      stateTransformation: JSONPATH:$.data[?(@.uuid=='12345678-9abc-def0-1234-56789abcdef0')].average
  - id: ch2avg
    channelTypeUID: http:number
    label: Verbrauch [%.3f W]
    description: ""
    configuration:
      stateTransformation: JSONPATH:$.data[?(@.uuid=='12345678-9abc-def0-1234-56789abcdef1')].average
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

radioactiveman
Beiträge: 8
Registriert: 27. Dez 2020 16:18
Answers: 0

Re: [gelöst] http Abfrage Volkszähler mit OH3

Beitrag von radioactiveman »

Ja, ein Missverständnis. Habe es nun richtig eingetragen, zunächst trotzdem erfolglos. Aber den Rest habe ich selbst heraus gefunden:
Bei mir ist der JSON-Aufruf anders. Abhängig von verwendetem Webserver, nehme ich an.

Funktioniert bei mir:

Code: Alles auswählen

http://192.168.178.62:8080/data.json?from=-10Minute&to=now&uuid[]=12345678-9abc-def0-1234-56789abcdef0&uuid[]=12345678-9abc-def0-1234-56789abcdef1
Danke für die Aufklärung!

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

Re: [gelöst] http Abfrage Volkszähler mit OH3

Beitrag von udo1toni »

Gerne :)


Gesendet von iPad mit Tapatalk
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

rbeudel
Beiträge: 258
Registriert: 6. Jun 2019 11:25
Answers: 1

Re: [gelöst] http Abfrage Volkszähler mit OH3

Beitrag von rbeudel »

Hallo,
ich benutze folgenden code:

Code: Alles auswählen

UID: http:url:a98cd708a8
label: Volkszaehler
thingTypeUID: http:url
configuration:
  authMode: BASIC
  ignoreSSLErrors: false
  baseURL: http://192.168.1.99/middleware.php/data.json?from=-1Minute&uuid[]=12345678-5920-11e9-881d-031ca74e42e6&uuid[]=12345678-5920-11e9-ad65-85fad433e8c1&uuid[]=12345678-58a4-11e9-ac23-d33643e95667
  refresh: 60
  commandMethod: GET
  timeout: 3000
  bufferSize: 2048
channels:
  - id: vzgripout
    channelTypeUID: http:number
    label: Netzbezug
    description: ""
    configuration:
      stateTransformation: JSONPATH:$.data[?(@.uuid=='12345678-5920-11e9-881d-031ca74e42e6')].average
  - id: vzgripin
    channelTypeUID: http:number
    label: Netzeinspeisung
    description: null
    configuration:
      stateTransformation: JSONPATH:$.data[?(@.uuid=='12345678-5920-11e9-ad65-85fad433e8c1')].average
  - id: vzsolar
    channelTypeUID: http:number
    label: Erzeugung
    description: null
    configuration:
      stateTransformation: JSONPATH:$.data[?(@.uuid=='12345678-58a4-11e9-ac23-d33643e95667')].average
Das funktioniert eigentlich tadellos. Leider stürzt OH3 meistens nachts ab. Der letzte Eintrag ist folgender:

Code: Alles auswählen

2021-01-31 22:11:47.767 [WARN ] [p.internal.http.HttpResponseListener] - Requesting 'http://192.168.1.99/middleware.php/data.json?from=-1Minute&uuid[]=12345678-5920-11e9-881d-031ca74e42e6&uuid[]=12345678-5920-11e9-ad65-85fad433e8c1&uuid[]=12345678-58a4-11e9-ac23-d33643e95667' (method='GET', content='null') failed: Total timeout 3000 ms elapsed
2021-01-31 22:30:05.518 [ERROR] [org.apache.felix.fileinstall        ] - In main loop, we have serious trouble
java.lang.OutOfMemoryError: Java heap space
2021-01-31 22:30:43.524 [ERROR] [fornium.elements.util.SerialExecutor] - unexpected error occurred:
java.lang.OutOfMemoryError: Java heap space
Danach werden keine Werte mehr in die Datenbank übertragen. Beim Aufruf der main.ui geht die CPU Last der VM auf 100%. Das system kann nur durch openhab restart wieder belebt werden. Heute Nacht hatte ich das volkszähler thing disabled, da gab es keinen Absturz. Unter OH2 hatte ich für jeden Kanal ein eigenen Aufruf. Kann man den buffersize erhöhen und wieviel?
Viele Grüße,
Ralf
Viele Grüße,
Ralf


Debmatic und Openhab in Proxmox VM debian x86_64

Twister23
Beiträge: 2
Registriert: 26. Apr 2021 20:46
Answers: 0

Re: [gelöst] http Abfrage Volkszähler mit OH3

Beitrag von Twister23 »

Hallo,

ich versuche gerade anhand der beschriebenen Konfig Daten vom Volkszähler abzufragen. Leider bekomme ich immer folgende Fehlermeldung im Logfile.

Code: Alles auswählen

2021-04-26 21:52:17.990 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.3.112:8081/data.json?from=-10Minute&to=now&uuid[]=a355e540-5233-11e8-90d3-8fdd66eef4f2': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}
2021-04-26 21:52:18.003 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.3.112:8081/data.json?from=-10Minute&to=now&uuid[]=a355e540-5233-11e8-90d3-8fdd66eef4f2': Code = {200}, Headers = {Cache-Control: no-cache, private, Date: Mon, 26 Apr 2021 19:52:17 GMT, Content-Type: application/json, Access-Control-Allow-Origin: *, X-Powered-By: React/alpha, Content-Length: 458, Connection: close}, Content = {{"version":"0.3","data":[{"tuples":[[1619466180843,0,1],[1619466239422,0,1],[1619466300704,587.448,1],[1619466360793,0,1],[1619466421101,596.936,1],[1619466479486,0,1],[1619466540797,0,1],[1619466601367,594.354,1],[1619466659900,0,1],[1619466719816,600.841,1]],"uuid":"a355e540-5233-11e8-90d3-8fdd66eef4f2","from":1619466119554,"to":1619466719816,"min":[1619466180843,0],"max":[1619466719816,600.8411776487081],"average":239.895,"consumption":40,"rows":11}]}}

Code: Alles auswählen

2021-04-26 21:52:18.004 [WARN ] [.transform.SingleValueTransformation] - Transformation service JSONPATH for pattern $.version not found!
Mein Konfig sieht folgendermaßen aus.

Code: Alles auswählen

UID: http:url:0dcb10d390
label: HTTP URL Thing
thingTypeUID: http:url
configuration:
  authMode: BASIC
  ignoreSSLErrors: true
  baseURL: http://192.168.3.112:8081/data.json?from=-10Minute&to=now&
  refresh: 10
  commandMethod: GET
  contentType: application/json
  timeout: 3000
  bufferSize: 2048
channels:
  - id: VZTest
    channelTypeUID: http:number
    label: VZTest
    description: ""
    configuration:
      stateExtension: uuid[]=a355e540-5233-11e8-90d3-8fdd66eef4f2
      stateTransformation: JSONPATH:$.version
Danke schon mal für einen Tipp, warum das nicht geht.

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

Re: [gelöst] http Abfrage Volkszähler mit OH3

Beitrag von udo1toni »

Du hast den JSONPATH Transformation Service nicht installiert.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Twister23
Beiträge: 2
Registriert: 26. Apr 2021 20:46
Answers: 0

Re: [gelöst] http Abfrage Volkszähler mit OH3

Beitrag von Twister23 »

Super danke, nach der Installation hat das gleich funktioniert.

Ich hätte noch eine andere Fragen, wie muss ich denn den Channel parametrieren, wenn ich einen Wert/Zustand setzen will.

Die URL ist mir bekannt, aber wie kann ich den Wert von der Eingabe in die URL bringen und welche Klasse von Items kann ich benutzen.

Danke schon mal im voraus

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

Re: [gelöst] http Abfrage Volkszähler mit OH3

Beitrag von udo1toni »

Im thing kannst Du über show advanced viele zusätzliche (optionale) Einstellungen sichtbar machen, insbesondere kannst Du auswählen, wie das command gesendet wird (get, put oder post).
Es kommt darauf an, welche der Methoden korrekt ist, wie die weitere Konfiguration läuft (das musst Du also zuerst klären).
Wenn Du mit put oder post senden musst, ist weiterhin noch festzulegen, welchen Typ der Content hat (MIME Type).
Im Channel selbst kannst Du über show advanced ebenfalls zusätzliche Optionen einblenden. Wenn Du die Dokumentation aufmerksam liest, wird es eigentlich ganz gut klar, wie das Ding tickt ;)
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Antworten