JSON in Openhab

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Deekay
Beiträge: 2
Registriert: 25. Mär 2023 13:49
Answers: 0

JSON in Openhab

Beitrag von Deekay »

Hallo zusammen,
ich bin noch ganz frisch bei OH3 und habe natürlich auch direkt ein Thema.
Für
Meine Wallbox habe ich ein Gerät gekauft, mit welchen ich Daten aus der Wb lesen kann.
Dieses passiert über JSON .
Nun möchte ich diese Daten in OH3 einfügen und auswerten.
JSONpath und Http binding sind installiert.
Ich habe jetzt echt viel rumexperimentiert , bekomme aber keine Daten.
Das Gerät heißt Wbec und ist unter https://github.com/steff393/wbec zu finden.
Ich wäre euch sehr dankbar, wenn mir geholfen werden kann.

Gruß
Dennis

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

Re: JSON in Openhab

Beitrag von udo1toni »

Herzlich willkommen im openHAB Forum!

Also, openHAB kann auch Modbus nativ sprechen :) aber natürlich ist eine komfortablere Variante dem vorzuziehen.

Zunächst musst Du ein http Thing anlegen. Hier die Code-Ansicht:

Code: Alles auswählen

UID: http:url:wallbox
label: wbec
thingTypeUID: http:url
configuration:
  authMode: BASIC
  ignoreSSLErrors: false
  baseURL: http://wbec.local/
  delay: 0
  stateMethod: GET
  refresh: 30
  commandMethod: GET
  timeout: 3000
  bufferSize: 2048
channels:
  - id: json
    channelTypeUID: http:string
    label: JSON
    description: ""
    configuration:
      mode: READONLY
      stateExtension: json
  - id: setMaxCurr
    channelTypeUID: http:number
    label: Ladestrombegrenzung
    description: ""
    configuration:
      mode: WRITEONLY
      commandExtension: json?currLim=%2$s
Damit hast Du ein http URL Thing mit einem string Channel und einem Number Channel. Die baseURL muss natürlich die Deines wbec sein (dieselbe, über die Du auch die Weboberfläche erreichst)
Da Du mindestens das Thing selbst über die Main UI erstellen musst... einige der Felder sind nur im advanced Mode sichtbar. das heißt, Du musst jeweils das Kästchen rechts oben anklicken (Show Advanced)

Nun kannst Du den String Channel mit diversen Items verlinken, wobei Du im Link als Profile jeweils JSONPATH aktivierst und den passenden Path angibst, z.B. $.box[0].currLim um den maximalen Ladestrom zu sehen. Der Itemtyp ist abhängig vom Inhalt des Feldes im JSON Objekt, kann also durchaus Number sein, auch wenn der ursprüngliche Channel ein string Channel ist.
Achtung! Falls Du mehrere Wallboxen nutzt, gibt es für jede Wallbox einen eigenen Knoten im JSON Objekt, dann musst Du, um sicher zu sein, die Daten korrekt zuzuordnen, eine etwas genauere Form wählen,
das wäre dann z.B. $.box[?(@.busId=='1')].currLim für die Wallbox mit der ID 1.

Um den Ladestrom zu setzen, musst Du den number Channel mit einem Number Item verbinden, über welches Du dann die Ladestrombegrenzung in zehntel Ampere Schritten vorgeben kannst (innerhalb der Grenzen, die durch currMax und currMin vorgegeben sind) Auch hier gilt: hast Du mehrere Wallboxen, so brauchst Du pro Wallbox einen eigenen Channel zum setzen, dann muss die commandExtension um die Angabe der ID ergänzt werden.

Schöner wäre es, wenn der Entwickler direkt Zugriff über mqtt böte - schließlich nutzt wbec das selbst. Vielleicht geht das auch und ich habe es nur in der Doku nicht gefunden...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Deekay
Beiträge: 2
Registriert: 25. Mär 2023 13:49
Answers: 0

Re: JSON in Openhab

Beitrag von Deekay »

Vielen Dank für die schnelle Hilfe.
Hast es sehr gut beschrieben .
Auf GitHub habe ich etwas mit MQTT gefunden, weiß es aber nicht anzuwenden.

https://github.com/steff393/wbec/tree/master/src

Kann ich damit was anfangen?

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

Re: JSON in Openhab

Beitrag von udo1toni »

Ja, nein, das ist der Source Code von wbec, wie gesagt, es ist ja mqtt mit drin, aber auf das falschen Seite :)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten