HTTP Binding vs. Sungrow Wechselrichter

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
steini
Beiträge: 16
Registriert: 12. Feb 2019 11:36
Answers: 0

HTTP Binding vs. Sungrow Wechselrichter

Beitrag von steini »

Hallo Zusammen,

ich habe vermutlich ein verständniss Problem mit dem HTTP Binding und würde hilfe benötigen.

Basis:
Openhab 3.2
Sungrow Datenlogger 1000 https://en.sungrowpower.com/productDetail/1025

der Datenlooger bietet bei Login ohne Auth. eine Übersichtsseite mit div. Informationen, hier u.a. folgendes enthalten:
<div> <label src="" class="SG-font-34" id="today_energy">0.60</label> <small class="SG-font-16" id="today_energy_unit">kWh</small> </div>
Unter anderem diesen Wert würde ich gerne "auslesen" mittels dem HTTP Binding und hab das Thing wie folgt konfiguriert:

Base URL http://192.168.1.165/
Content Type - text/html

Alle anderen Werte habe ich belassen:
Authentication Mode - Basic Authentication
State Method - GET
Command Method - GET

Den Channel habe ich wie folgt konfguriert:
State Transformation - total_energy
Read/Write Mode - Read Only

Alle anderen Werte habe ich belassen


Hier nochmal der Code:
UID: http:url:e557231074
label: PV Werte
thingTypeUID: http:url
configuration:
authMode: BASIC
ignoreSSLErrors: false
baseURL: http://192.168.1.165/
delay: 0
stateMethod: GET
refresh: 30
commandMethod: GET
contentType: text/html
timeout: 3000
bufferSize: 2048
channels:
- id: total_energy
channelTypeUID: http:string
label: total_energy
description: ""
configuration:
mode: READONLY
stateTransformation: total_energy

Die Doku hilft mir auch nicht weiter, die ist noch von OH 2.5

Vielen Dank vorweg an alle die mithelfen...

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

Re: HTTP Binding vs. Sungrow Wechselrichter

Beitrag von udo1toni »

Die Doku kann man auswählen, wenn Du normal auf die Seite gehst, ist aktuell 3.3 aktiv, man kann aber auch schon 3.4 auswählen, oder auch die Version 2.5.
Screenshot 2022-07-06 081459.png
Unter 2.5 gab es "offiziell" nur das http1 Binding, ab 3.0 gab es nur noch das http3 (oder eigentlich http2) Binding, welches selbstverständlich seit langem gut dokumentiert ist ;)

Dein Parameter

Code: Alles auswählen

stateTransformation: total_energy
ist Schwachsinn. Eine Transformation beinhaltet immer eine Information, welche Transformation verwendet werden soll (diese muss natürlich installiert sein) und weiterhin eine Beschreibung, wie die Transformation funktioniert.

Konkret könntest Du dein Glück mit REGEX versuchen, z.B. so:

Code: Alles auswählen

REGEX:.*total_energy\">(\d*\.\d*)</label.*
Ob diese Expression korrekt matcht, kann ich aber nicht mit Bestimmtheit sagen, ich nutze REGEX auch nur sporadisch. Das \d steht für eine beliebige Ziffer, das \. für einen echten Punkt, der * für eine beliebige Anzahl des vorhergehenden Zeichens \d*\.\d* bedeutet also eine beliebige Zahl mit Punkt als Dezimaltrenner Alles innerhalb () wird als Ergebnis geliefert. .* steht für eine beliebige Zeichenkette beliebiger Länge (also alles vor dem Schlüsselwort vor dem Wert und nach dem Schlüsselwort nach dem Wert) das Anführungszeichen muss vermutlich escaped werden, deshalb der \ davor. Eventuell muss es sogar doppelt escaped werden, also \\"

es wäre auch interessant, zu sehen, welches Dateiformat der Webserver ausliefert, oder ob es vielleicht sogar die Möglichkeit gibt, gezielt ein bestimmtes Format vorzugeben. JSON wäre z.B. sehr viel praktischer als eine einfache html-Seite, weil man sich das Stricken von komplexen Regular Expressions sparen kann, welche auch nicht zwingend eindeutig formuliert werden können, im Gegensatz zu JSONPATH (ein weiterer Transformation Service, der aber JSON als Input voraussetzt)
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten