openhab 3 http binding
-
- Beiträge: 9
- Registriert: 30. Apr 2021 06:33
openhab 3 http binding
Hallo an Alle
bei mir läuft unter openhab 2.5 alles super, nur jetzt möchte ich umziehen auf openhab 3und ich steh schon an.
habe das so konfiguriert unter openhab 2.5
Schritt 1: Lege in der http.cfg einen http Cache an:
voltoPlus.url=http://192.168.178.45/api/v1/values
voltoPlus.updateInterval=60000
Nun steht das JSON Objekt als Cache zur Verfügung. Weiterhin brauchst Du drei Items für die drei Werte.
items:
Number VoltoPlus_U1 "U1 [%.1f V]" {http="<[voltoPlus:60000:JSONPATH($.[?(@.id=="U1")].value)]"}
Number VoltoPlus_U2 "U2 [%.1f V]" {http="<[voltoPlus:60000:JSONPATH($.[?(@.id=="U2")].value)]"}
Number VoltoPlus_U3 "U3 [%.1f V]" {http="<[voltoPlus:60000:JSONPATH($.[?(@.id=="U3")].value)]"}
jetzt habe ich die items auch unter openhab3 so definiert,(visual studio) und im http binding ein thing
http://192.168.178.45/api/v1/values hinterlegt.
die werte sind alle auf 0
ich werde mit openhab3 nicht so richtig warm
hat jemand einen TIP
Danke
bei mir läuft unter openhab 2.5 alles super, nur jetzt möchte ich umziehen auf openhab 3und ich steh schon an.
habe das so konfiguriert unter openhab 2.5
Schritt 1: Lege in der http.cfg einen http Cache an:
voltoPlus.url=http://192.168.178.45/api/v1/values
voltoPlus.updateInterval=60000
Nun steht das JSON Objekt als Cache zur Verfügung. Weiterhin brauchst Du drei Items für die drei Werte.
items:
Number VoltoPlus_U1 "U1 [%.1f V]" {http="<[voltoPlus:60000:JSONPATH($.[?(@.id=="U1")].value)]"}
Number VoltoPlus_U2 "U2 [%.1f V]" {http="<[voltoPlus:60000:JSONPATH($.[?(@.id=="U2")].value)]"}
Number VoltoPlus_U3 "U3 [%.1f V]" {http="<[voltoPlus:60000:JSONPATH($.[?(@.id=="U3")].value)]"}
jetzt habe ich die items auch unter openhab3 so definiert,(visual studio) und im http binding ein thing
http://192.168.178.45/api/v1/values hinterlegt.
die werte sind alle auf 0
ich werde mit openhab3 nicht so richtig warm
hat jemand einen TIP
Danke
- udo1toni
- Beiträge: 14057
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: openhab 3 http binding
Unter openHAB3 gibt es keine V1 Bindings mehr (http stand unter OH2.5 offiziell nur als V1 zur Verfügung).
Das heißt, Du musst die Konfiguration anders vornehmen.
Das http V3 Binding hat den gleichen Funktionsumfang (eigentlich sogar wesentlich erweitert).
Alle Bindings in openHAB3 werden ausschließlich über Things konfiguriert. Alles, was unter openHAB2 in der http.cfg stand, muss also über ein oder mehrere Things angelegt werden.
Für Dich sieht das dann so aus:
Thing:
Items:
Selbstverständlich kannst Du die Definition auch über die UI eingeben, die Schlüsselworte sind ja eindeutig.
Zu beachten ist auch die im Detail geänderte Schreibweise für die Transformation.
Das heißt, Du musst die Konfiguration anders vornehmen.
Das http V3 Binding hat den gleichen Funktionsumfang (eigentlich sogar wesentlich erweitert).
Alle Bindings in openHAB3 werden ausschließlich über Things konfiguriert. Alles, was unter openHAB2 in der http.cfg stand, muss also über ein oder mehrere Things angelegt werden.
Für Dich sieht das dann so aus:
Thing:
Code: Alles auswählen
Thing http:url:voltoPlus "VoltoPlus" [
baseURL="http://192.168.178.45/api/v1/values",
refresh=60
] {
Channels:
Type number : u1 "U1" [ stateTransformation="JSONPATH:$.[?(@.id=='U1')].value" ]
Type number : u2 "U2" [ stateTransformation="JSONPATH:$.[?(@.id=='U2')].value" ]
Type number : u3 "U3" [ stateTransformation="JSONPATH:$.[?(@.id=='U3')].value" ]
}
Code: Alles auswählen
Number VoltoPlus_U1 "U1 [%.1f V]" { channel="http:url:voltoPlus:u1"}
Number VoltoPlus_U2 "U2 [%.1f V]" { channel="http:url:voltoPlus:u2"}
Number VoltoPlus_U3 "U3 [%.1f V]" { channel="http:url:voltoPlus:u3"}
Zu beachten ist auch die im Detail geänderte Schreibweise für die Transformation.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet
-
- Beiträge: 9
- Registriert: 30. Apr 2021 06:33
Re: openhab 3 http binding
Danke Udo wie immer sehr schön zusammengefasst, und Danke für deinen Einsatz!!
wie soll man als Normalsterblicher, der das nicht gelernt hat, sich da wieder komplett anders umstellen von der Schreibweise.
Da ist ja wieder alles anders wie bei Openhab 2.5
Aber leider ich bekomme da noch keine Werte, ich vermute die schreibweise ist hier noch nicht richtig (StateTranformation)
ich habe das auch direkt über das thing gemacht (einen channel gemacht) es kommt UNDEF
wie soll man als Normalsterblicher, der das nicht gelernt hat, sich da wieder komplett anders umstellen von der Schreibweise.
Da ist ja wieder alles anders wie bei Openhab 2.5
Aber leider ich bekomme da noch keine Werte, ich vermute die schreibweise ist hier noch nicht richtig (StateTranformation)
ich habe das auch direkt über das thing gemacht (einen channel gemacht) es kommt UNDEF
Code: Alles auswählen
UID: http:url:Voltoplus
label: HTTP URL Voltoplus
thingTypeUID: http:url
configuration:
authMode: BASIC
ignoreSSLErrors: false
baseURL: http://10.0.0.224/api/v1/values
delay: 0
stateMethod: GET
refresh: 30
commandMethod: GET
contentType: application/json
timeout: 1000
bufferSize: 2048
channels:
- id: Voltoplus
channelTypeUID: http:number
label: P
description: ""
configuration:
stateTransformation: JSONPATH:$.[?(@.id=='U1')].value
- udo1toni
- Beiträge: 14057
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: openhab 3 http binding
Die IP ist eine völlig andere, ist das korrekt?
Hast Du JSONPATH installiert?
http war eines der letzten Bindings, die noch nach openHAB1 Art konfiguriert werden mussten. Eigentlich musst Du die ungewohnte Art der Konfiguration als Konsolidierung betrachten, die mittelfristig weniger Arbeit macht.
Hast Du JSONPATH installiert?
http war eines der letzten Bindings, die noch nach openHAB1 Art konfiguriert werden mussten. Eigentlich musst Du die ungewohnte Art der Konfiguration als Konsolidierung betrachten, die mittelfristig weniger Arbeit macht.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet
-
- Beiträge: 10
- Registriert: 1. Aug 2019 06:33
Re: openhab 3 http binding
Ja das ist aktive
Weil beim fronius fuktioniert es
Ich glaube das hier die ganzen Klammern nicht passen
Weil beim fronius fuktioniert es
Code: Alles auswählen
UID: http:url:Fronius
label: HTTP URL Thing Fronius
thingTypeUID: http:url
configuration:
authMode: BASIC
ignoreSSLErrors: false
baseURL: http://10.0.0.43/solar_api/v1/GetPowerFlowRealtimeData.fcgi
delay: 0
stateMethod: GET
refresh: 30
commandMethod: GET
timeout: 3000
bufferSize: 2048
channels:
- id: Fronius
channelTypeUID: http:number
label: P_Load
description: ""
configuration:
stateTransformation: JSONPATH:$.Body.Data.Site.P_Load
- udo1toni
- Beiträge: 14057
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: openhab 3 http binding
Bitte beim Posten von Code immer Code Tags setzen. Und Zeilennummern gehören auch nicht in die Konfiguration
Die Notation JSONPATH:$.[?(@.id=='U1')].value sollte eigentlich keine Probleme machen, ich verwende das selbst im http2 Binding - allerdings konfiguriere ich über *.things Dateien, was aber keine Rolle spielt.
Kannst Du mal das vollständige JSON Objekt zeigen? Am besten legst Du dazu einen weiteren Channel an (ohne alles, Typ String).
Die Notation JSONPATH:$.[?(@.id=='U1')].value sollte eigentlich keine Probleme machen, ich verwende das selbst im http2 Binding - allerdings konfiguriere ich über *.things Dateien, was aber keine Rolle spielt.
Kannst Du mal das vollständige JSON Objekt zeigen? Am besten legst Du dazu einen weiteren Channel an (ohne alles, Typ String).
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet
-
- Beiträge: 9
- Registriert: 30. Apr 2021 06:33
Re: openhab 3 http binding
Hallo
wenn ich einen String anlege ohne allem, dann greift er schon mal auf den Hauptlink http zu
das schau dann so aus, schon mal ein gutes Zeichen, ich glaube noch immer das der JOSNPATH:$ nicht ganz stimmt mit den vielen Klammern
{"json_values":[{"id":"U1","value":"22522"},{"id":"U2","value":"22563"},{"id":"U3","value":"22517"},{"id":"I1","value":"-3630"},{"id":"I2","value":"-2877"},{"id":"I3","value":"-3390"},{"id":"P1","value":"-749"},{"id":"P2","value":"-605"},{"id":"P3","value":"-750"},{"id":"P","value":"-2105"},{"id":"fwdEn","value":"179946"},{"id":"rvsEn","value":"61060"},{"id":"AO1","value":"27"},{"id":"AO2","value":"0"},{"id":"my-PV1","value":"0"},{"id":"abl1","value":"0"},{"id":"DO1","value":"0"},{"id":"DO2","value":"0"},{"id":"LEDS","value":"0"},{"id":"LEDP","value":"1"},{"id":"date_time","value":{"year":2022,"month":4,"day":5,"hour":7,"minute":27,"second":44}}]}
wenn ich einen String anlege ohne allem, dann greift er schon mal auf den Hauptlink http zu
das schau dann so aus, schon mal ein gutes Zeichen, ich glaube noch immer das der JOSNPATH:$ nicht ganz stimmt mit den vielen Klammern
{"json_values":[{"id":"U1","value":"22522"},{"id":"U2","value":"22563"},{"id":"U3","value":"22517"},{"id":"I1","value":"-3630"},{"id":"I2","value":"-2877"},{"id":"I3","value":"-3390"},{"id":"P1","value":"-749"},{"id":"P2","value":"-605"},{"id":"P3","value":"-750"},{"id":"P","value":"-2105"},{"id":"fwdEn","value":"179946"},{"id":"rvsEn","value":"61060"},{"id":"AO1","value":"27"},{"id":"AO2","value":"0"},{"id":"my-PV1","value":"0"},{"id":"abl1","value":"0"},{"id":"DO1","value":"0"},{"id":"DO2","value":"0"},{"id":"LEDS","value":"0"},{"id":"LEDP","value":"1"},{"id":"date_time","value":{"year":2022,"month":4,"day":5,"hour":7,"minute":27,"second":44}}]}
- udo1toni
- Beiträge: 14057
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: openhab 3 http binding
Das kann dann aber vorher auch nicht funktioniert haben. Der korrekte Pfad muss
lauten.
Das ist allerdings keine gute Idee, denn die Reihenfolge der Knoten ist nicht zwingend. Es mag in diesem speziellen Fall sogar so sein, dass die Knoten immer in derselben Reihenfolge gelistet werden, das kann sich aber z.B. nach einem Firmware Update ändern. Deshalb sollte man unbedingt den Filter verwenden.
EDIT: Nur zum besseren Verständnis hier mal eine Ansicht, die teilweise umgebrochen ist:
eigentlich wäre jeder Wert in einer eigenen Zeile (so wie bei der id date_time), dann wäre das ganze aber sehr länglich geworden, das JSON ist dennoch gültig
Code: Alles auswählen
JSONPATH:$.json_values.[?(@.id=='U1')].value
- $ -> Root des JSON
- .json_values -> der Zweig mit diesem Titel. Er enthält jede Menge Knoten ohne Namen.
- .[?(@.id=='U1')] -> suche den Knoten, dessen Unterelement mit dem Namen "id" den Wert "U1" hat und verwende diesen Knoten.
- .value -> Nimm den Wert des Unterelements value und liefere diesen Wert zurück.
Das ist allerdings keine gute Idee, denn die Reihenfolge der Knoten ist nicht zwingend. Es mag in diesem speziellen Fall sogar so sein, dass die Knoten immer in derselben Reihenfolge gelistet werden, das kann sich aber z.B. nach einem Firmware Update ändern. Deshalb sollte man unbedingt den Filter verwenden.
EDIT: Nur zum besseren Verständnis hier mal eine Ansicht, die teilweise umgebrochen ist:
Code: Alles auswählen
{
"json_values": [
{"id": "U1", "value": "22522"},
{"id": "U2", "value": "22563"},
{"id": "U3", "value": "22517"},
{"id": "I1", "value": "-3630"},
{"id": "I2", "value": "-2877"},
{"id": "I3", "value": "-3390"},
{"id": "P1", "value": "-749"},
{"id": "P2", "value": "-605"},
{"id": "P3", "value": "-750"},
{"id": "P", "value": "-2105"},
{"id": "fwdEn", "value": "179946"},
{"id": "rvsEn", "value": "61060"},
{"id": "AO1", "value": "27"},
{"id": "AO2", "value": "0"},
{"id": "my-PV1","value": "0"},
{"id": "abl1", "value": "0"},
{"id": "DO1", "value": "0"},
{"id": "DO2", "value": "0"},
{"id": "LEDS", "value": "0"},
{"id": "LEDP", "value": "1"},
{"id": "date_time",
"value": {
"year": 2022,
"month": 4,
"day": 5,
"hour": 7,
"minute": 27,
"second": 44
}
}
]
}
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet
-
- Beiträge: 10
- Registriert: 1. Aug 2019 06:33
Re: openhab 3 http binding
Danke Udo
Wie immer super erklärt, es funktioniert.
Danke
Wie immer super erklärt, es funktioniert.
Danke
-
- Beiträge: 2
- Registriert: 27. Feb 2024 12:55
Re: openhab 3 http binding
Code: Alles auswählen
{
"aussentemperatur": [
{
"Value": 8.5,
"Unit": "°C"
}
],
"bivalenztemperatur_hzg": [
{
"Value": -14,
"Unit": "°C"
}
],
"bivalenztemperatur_ww": [
{
"Value": -14,
"Unit": "°C"
}
],
"d_faktor": [
{
"Value": 1
}
],
"d_faktor_v_ze": [
{
"Value": 1
}
],
"druck_hochdruck": [
{
"Value": 21.56,
"Unit": "bar"
}
],
"druck_mitteldruck": [
{
"Value": 11.97,
"Unit": "bar"
}
],
"druck_niederdruck": [
{
"Value": 7.76,
"Unit": "bar"
}
],
"festwertbetrieb": [
{
"Value": 0
}
],
"fortlufttemperatur": [
{
"Value": 1.5,
"Unit": "°C"
}
],
"frostschutz": [
{
"Value": 4,
"Unit": "°C"
}
],
"frostschutztemperatur": [
{
"Value": 33.9,
"Unit": "°C"
}
],
"heissgastemperatur": [
{
"Value": 67.8,
"Unit": "°C"
}
],
"i_faktor": [
{
"Value": 0.79
}
],
"i_faktor_v_ze": [
{
"Value": 1
}
],
"inverter_aufnahmeleistung": [
{
"Value": 1.6,
"Unit": "kW"
}
],
"ist_ueberhitzung_sg_v_ze": [
{
"Value": 3.6,
"Unit": "°C"
}
],
"ist_ueberhitzung_v": [
{
"Value": 7.6,
"Unit": "°C"
}
],
"istdrehzahl_verdichter": [
{
"Value": 50,
"Unit": "Hz"
}
],
"isttemperatur": [
{
"Value": 48.5,
"Unit": "°C"
}
],
"isttemperatur_2": [
{
"Value": 23.4,
"Unit": "°C"
}
],
"isttemperatur_hk_1": [
{
"Value": 30.3,
"Unit": "°C"
}
],
"isttemperatur_hk_2": [
{
"Value": 29.3,
"Unit": "°C"
}
],
"luefterleistung_rel": [
{
"Value": 41,
"Unit": "%"
}
],
"nhz_1": [
{
"Value": 0,
"Unit": "h"
}
],
"nhz_1_2": [
{
"Value": 0,
"Unit": "h"
}
],
"nhz_2": [
{
"Value": 0,
"Unit": "h"
}
],
"nhz_heizen_summe": [
{
"Value": 0,
"Unit": "kWh"
}
],
"nhz_warmwasser_summe": [
{
"Value": 0,
"Unit": "kWh"
}
],
"oeffungsgrad_exv": [
{
"Value": 36.8,
"Unit": "%"
}
],
"oeffungsgrad_exv_ze": [
{
"Value": 0,
"Unit": "%"
}
],
"oelsumpftemperatur": [
{
"Value": 34.4,
"Unit": "°C"
}
],
"p_faktor": [
{
"Value": 1.01
}
],
"p_faktor_v_ze": [
{
"Value": 0.94
}
],
"pufferisttemperatur": [
{
"Value": 30.3,
"Unit": "°C"
}
],
"puffersolltemperatur": [
{
"Value": 31.7,
"Unit": "°C"
}
],
"raumfeuchte_2": [
{
"Value": 41.6,
"Unit": "%"
}
],
"regelabweichung": [
{
"Value": 1.1,
"Unit": "K"
}
],
"reststillstandszeit": [
{
"Value": 0,
"Unit": "min"
}
],
"ruecklauftemperatur": [
{
"Value": 29.6,
"Unit": "°C"
}
],
"sg_ready_1": [
{
"Value": 0
}
],
"sg_ready_2": [
{
"Value": 0
}
],
"soll_ueberhitzung": [
{
"Value": 6.4,
"Unit": "°C"
}
],
"soll_ueberhitzung_sg_v_ze": [
{
"Value": 8,
"Unit": "°C"
}
],
"solldrehzahl_verdichter": [
{
"Value": 50,
"Unit": "Hz"
}
],
"solltemperatur": [
{
"Value": 48,
"Unit": "°C"
}
],
"solltemperatur_2": [
{
"Value": 23,
"Unit": "°C"
}
],
"solltemperatur_hk_1": [
{
"Value": 31.7,
"Unit": "°C"
}
],
"solltemperatur_hk_2": [
{
"Value": 29.4,
"Unit": "°C"
}
],
"spannung_inverter": [
{
"Value": 403,
"Unit": "V"
}
],
"starts_abtauen": [
{
"Value": 414
}
],
"taupunkttemperatur_2": [
{
"Value": 9.6,
"Unit": "°C"
}
],
"untere_einsatzgrenze_hzg": [
{
"Value": 0
}
],
"untere_einsatzgrenze_ww": [
{
"Value": -20,
"Unit": "°C"
}
],
"unterk_cond": [
{
"Value": 3.3,
"Unit": "°C"
}
],
"v_oeffungsgrad_exv_ze": [
{
"Value": 14.1,
"Unit": "%"
}
],
"vd_abtauen": [
{
"Value": 22,
"Unit": "h"
}
],
"vd_heizen": [
{
"Value": 1992,
"Unit": "h"
}
],
"vd_heizen_summe": [
{
"Value": 3783,
"Unit": "kWh"
}
],
"vd_heizen_tag": [
{
"Value": 7.168,
"Unit": "KWh"
}
],
"vd_warmwasser": [
{
"Value": 246,
"Unit": "h"
}
],
"vd_warmwasser_summe": [
{
"Value": 701,
"Unit": "kWh"
}
],
"vd_warmwasser_tag": [
{
"Value": 0,
"Unit": "KWh"
}
],
"verdampfertemperatur": [
{
"Value": 7,
"Unit": "°C"
}
],
"verdichter": [
{
"Value": 2260
}
],
"verdichtereintrittstemperatur": [
{
"Value": 9.3,
"Unit": "°C"
}
],
"verfluessigertemperatur": [
{
"Value": 32.1,
"Unit": "°C"
}
],
"vorlauftemperatur": [
{
"Value": 34.4,
"Unit": "°C"
}
],
"vorsteuer_oeffungsgrad_exv": [
{
"Value": 45.8,
"Unit": "%"
}
],
"wp_wasservolumenstrom": [
{
"Value": 26.1,
"Unit": "l/min"
}
],
"zeit_abtauen": [
{
"Value": 2,
"Unit": "min"
}
],
"zwischeneinspritzungstemp": [
{
"Value": 18.2,
"Unit": "°C"
}
]
}
Code: Alles auswählen
UID: http:url:0b88660857
label: " ISG-WPL25AC HTTP "
thingTypeUID: http:url
configuration:
ignoreSSLErrors: false
baseURL: http://192.168.112.30:80/status
delay: 0
stateMethod: GET
refresh: 30
commandMethod: GET
contentType: application/json
timeout: 3000
bufferSize: 2048
location:
channels:
- id: istdrehzahl_verdichter
channelTypeUID: http:number
label: Drehzahl Verdichter
description: ""
configuration:
stateTransformation: JSONPATH:$.istdrehzahl_verdichter.[Value]