Der neue mit ner Frage zu String selektieren und umwandeln

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

BrightLight
Beiträge: 6
Registriert: Gestern 11:36
Answers: 0

Der neue mit ner Frage zu String selektieren und umwandeln

Beitrag von BrightLight »

Hallo,
da ich neu im Forum bin, möchte ich mich mal kurz vorstellen. Mein Name ist Andi, bin Mitte 50 und komme aus der Gegend von Stuttgart.
Ich komme aus dem Maschinenbau, bin aber in allen möglichen Technischen Bereichen aktiv.
Openhab betreibe ich jetzt schon seit einer Weile. Allerdings bisher nur recht oberflächlich nur als Vermittler für unterschiedliche Hersteller. Bei mir läuft OH 4.2 in einem Container auf meinem NAS.

Da ich mir jetzt ne Solaranlage aufs Dach gesetzt habe, will ich hier ein paar dinge im Haus optimieren und muss mich jetzt mal ein wenig tiefer in die Materie einarbeiten.

Das bringt mich dann auch zu meiner ersten Frage:

Um hier ein paar werte zu bekommen greife ich mit dem HTTP-Binding auf die REST-Api des Kiwigrid Energiemanagers zu. die Daten bekomme ich auch raus. Allerdings u.a. Werte wie "1752651935000|2415.3333333333335 W", die dann natürlich ein String sind. Wie kann ich hieraus die "2415.3333333333335" extrahieren und in Number umwandeln um damit auch Steuerungsaufgaben realisieren zu können?

Gruß Andi
Gruß Andi

Harka
Beiträge: 500
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Der neue mit ner Frage zu String selektieren und umwandeln

Beitrag von Harka »

Moin,
wenn Du JavaScript_Sripting installiert hast versuch mal

Code: Alles auswählen

JS:|parseFloat(input.split('|')[1])
oder
JS:|input.split('|')[1]
im Feld "Status-Transformation" des Channels aus. Beim der 2. Lösungsvorschlag das Welt für die Einheit frei lassen. Sollte auch in ähnlicher Weise mit anderen Sprachen wie Rule-DSL gehen.

BrightLight
Beiträge: 6
Registriert: Gestern 11:36
Answers: 0

Re: Der neue mit ner Frage zu String selektieren und umwandeln

Beitrag von BrightLight »

Hallo Harka,
Danke für die rasche Antwort.
Ich hab beides ausprobiert und es hat leider nicht funktioniert (kommt dann NULL).
Gruß Andi

Harka
Beiträge: 500
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Der neue mit ner Frage zu String selektieren und umwandeln

Beitrag von Harka »

wenn Du schreibst "u.a. Werte wie ..." heißt das, dass da im gleichem String noch mehr steht? Dann kann es auch nicht funktionieren.

BrightLight
Beiträge: 6
Registriert: Gestern 11:36
Answers: 0

Re: Der neue mit ner Frage zu String selektieren und umwandeln

Beitrag von BrightLight »

Nein, der String ist aus dem JSON so vollständig extrahiert. Mit "u.a. Werte wie ..." meinte ich, dass ich aus der REST-API auch noch andere Werte bekomme.
Kann Aber auch an meiner Unwissenheit liegen. Bisher habe ich mich recht wenig mit den Möglichkeiten bei OH beschäftigt.
Gruß Andi

Harka
Beiträge: 500
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Der neue mit ner Frage zu String selektieren und umwandeln

Beitrag von Harka »

wenn da JSON schon im Spiel ist müssen wir das berücksichtigen. Da gibt es verschiedene Lösungsansätze auch abhängig von deiner bisherigen Lösung. Was steht denn in der Codeansicht des Things?

BrightLight
Beiträge: 6
Registriert: Gestern 11:36
Answers: 0

Re: Der neue mit ner Frage zu String selektieren und umwandeln

Beitrag von BrightLight »

OK,

Code: Alles auswählen

UID: http:url:50e45c7a96
label: Energiemanagment
thingTypeUID: http:url
configuration:
  authMode: BASIC
  ignoreSSLErrors: false
  baseURL: http://192.168.175.123/rest/items
  delay: 0
  stateMethod: GET
  refresh: 60
  commandMethod: GET
  contentType: application/json
  timeout: 3000
  bufferSize: 2048
channels:
  - id: IstLeistung
    channelTypeUID: http:string
    label: Istleistung Solar
    description: ""
    configuration:
      mode: READONLY
      stateExtension: /kiwigrid_location_standard_4357e0d53246_harmonized_power_produced
  - id: LadeBatterie
    channelTypeUID: http:number
    label: Ladeleistung Batterie
    description: ""
    configuration:
      mode: READONLY
      stateExtension: /foxesshybrid_battery_AS12AE102ABH075_battery_bms_1_soc
      
Gruß Andi

Harka
Beiträge: 500
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Der neue mit ner Frage zu String selektieren und umwandeln

Beitrag von Harka »

was kommt den bei http://192.168.175.123/rest/items/kiwig ... r_produced zurück? Bitte alles - auch Klammern

Lt. Simon42 sollte da mindestens noch ein state: bei stehen.

BrightLight
Beiträge: 6
Registriert: Gestern 11:36
Answers: 0

Re: Der neue mit ner Frage zu String selektieren und umwandeln

Beitrag von BrightLight »

Code: Alles auswählen

{"link":"http://192.168.175.123/rest/items/kiwigrid_location_standard_4357e0d53246_harmonized_power_produced" ,"state":"1752590085000|2136.0 W","stateDescription":{"pattern":"%s","readOnly":true,"options":[]},"editable":false,"type":"String","name":"kiwigrid_location_standard_4357e0d53246_harmonized_power_produced","label":"PowerProduced","tags":[],"groupNames":[]}
Ist ja eigentlich das state, das ich dann im Item abgreifen möchte. Hier liegt vielleicht (mein) Gedankenfehler. Dann wird das Java wohl auch nicht im Channel funktionieren?
Gruß Andi

Harka
Beiträge: 500
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Der neue mit ner Frage zu String selektieren und umwandeln

Beitrag von Harka »

doch, sollte gehen. Weils "schöner" aussieht:

Code: Alles auswählen

{
	"link": "http://192.168.175.123/rest/items/kiwig ... r_produced",
	"state": "1752590085000|2136.0 W",
	"stateDescription": {
		"pattern": "%s",
		"readOnly": true,
		"options": []
	},
	"editable": false,
	"type": "String",
	"name": "kiwigrid_location_standard_4357e0d53246_harmonized_power_produced",
	"label": "PowerProduced",
	"tags": [],
	"groupNames": []
}
Erster Ansatz benötigt zusätzlich die JsonPath-Transformation und das umgedrehte U nicht unterschlagen!

Code: Alles auswählen

JSONPATH:$.state∩JS:|input.split('|')[1]
oder
JS:|var txt = JSON.parse(input).state; txt.split('|')[1];
E: gerade noch '-' durch '|' ersetzt

Antworten