Hallo imhofa und udo1toni,
Danke für die Hilfe jetzt funktioniert alles so wie es soll. Ich habe 4 Abende im Internet geschaut nach einer Lösung gesucht die Doku gelesen aber nichts gefunden. ich Frage mich so oft wie man das alles Lernen soll ohne Forum geht das nicht.
Gruss Michael
Ankündigung
Einklappen
Keine Ankündigung bisher.
JSON Dateien in ein Item schreiben
Einklappen
X
-
Hallo Riffhai,
also, wenn Deine JSON-Daten jetzt richtig sind (also auch die Werte so sind, wie Du sie erwartest), dann wäre der nächste Schritt die Aufteilung der Werte in die openHab-Items sich anzuschauen. Vielleicht postest Du einfach den aktuellen Stand der Items, die noch Probleme machen....
Der Luftdrucktrend steht in "($.vars[7].value)" und ist vom Typ String. Falls Du beim Luftdrucktrend auf "($.vars[5].value)" gehst, dann hast Du in diesem Item nicht "stabil" stehen, sondern die Absolutfeuchte, weil die der 6. Eintrag (von 0 an gezählt eben mit Index 5) in deinem Vars-Array ist....
Du darfst Dich nicht von den Nummern unter "Name" in deinen Variablen durcheinanderbringen lassen.
Zur Fehlersuche und um das Verständnis zu erleichtern, könnte es hilfreich sein, mehrere Hilfs-Items anzulegen, damit Du siehst was wohin kommt. Also z.B. so:
String Test_JSON_name "Name [%s]" {http="<[wohnzimmersensor:60000:JSONPATH($.vars[1].name)]"}
String Test_JSON_hmname "Homematic Name [%s]" {http="<[wohnzimmersensor:60000:JSONPATH($.vars[1].homematic_name)]"}
String Test_JSON_desc "Description [%s]" {http="<[wohnzimmersensor:60000:JSONPATH($.vars[1].desc)]"}
Number Test_JSON_value "Value [%.1f]" {http="<[wohnzimmersensor:60000:JSONPATH($.vars[1].value)]"}
Wenn Du Dir diese Items auf der Sitemap anzeigen lasst, siehst Du ja sofort, welcher Wert Du aus Deinem Array rausgreifst.
Bei den Werten, wo der value ein String ist, musst Du das letzte Item auch auf String umstellen und für die Anzeige [%s] wählen...
Jetzt kannst Du probehalber die Nummerierung im JSONPATH verändern (bei allen Items immer gleich), dann siehst Du welcher Wert welchem Index entspricht.
Wenn Du den Tip mit Notepad++ und der JSON-Erweiterung beachtet hast, dann kannst Du auch im Notepad++ den Zusammenhang sehen: wenn Du die "Objekte" in dem Array vars durchzählst, beginnend mit 0, dann siehst Du das Index 3 zufälligerweise dem Objekt mit dem Namen "3" entspricht. Alleridngs siehst Du dann auch, dass das Objekt mit dem Index 7 eben den Namen "5" hat (s.unten).
Andreas
JSON.jpgZuletzt geändert von imhofa; 07.02.2018, 07:26.
Einen Kommentar schreiben:
-
Das hat schon geklappt durch mein Versuch aber was ich jetzt nicht verstehe ist dass in dem JSON der richtige Status steht aber Openhab es falsch oder nicht richtig anzeigt.
Die JSON stimmt
aber die Bewegungsmelder und Geräuschsensor reagieren überhaupt nicht auf Änderung und der Luftdrucktrennd zeigt mir nur Zahlen an und nicht wie ich es im JSON angezeigt bekomme. Blick jetzt hier nicht mehr durch warum!Code:"modultyp": "wiffi-wz", "vars": [{ "name": "0", "homematic_name": "wz_ip", "desc": "ip des wiffi-wz", "type": "string", "unit": "", "value": "192.168.178.74" }, { "name": "1", "homematic_name": "wz_co2", "desc": "Luftqualitaet", "type": "number", "unit": "%", "value": 97 }, { "name": "2", "homematic_name": "wz_temp", "desc": "Temperatur", "type": "number", "unit": "gradC", "value": 23.4 }, { "name": "3", "homematic_name": "wz_feuchte", "desc": "Luftfeuchte", "type": "number", "unit": "%", "value": 38.0 }, { "name": "19", "homematic_name": "wz_taupunkt", "desc": "Taupunkt", "type": "number", "unit": "gradC", "value": 8.2 }, { "name": "18", "homematic_name": "wz_feuchte_abs", "desc": "Absolutfeuchte", "type": "number", "unit": "g/m3", "value": 8.0 }, { "name": "9", "homematic_name": "wz_baro", "desc": "Luftdruck", "type": "number", "unit": "mB", "value": 1012.05 }, { "name": "5", "homematic_name": "wz_luftdrucktrend", "desc": "Luftdrucktrend", "type": "string", "unit": "", "value": "stabil" }, { "name": "8", "homematic_name": "wz_lux", "desc": "Helligkeit", "type": "number", "unit": "lux", "value": 0.57 }, { "name": "6", "homematic_name": "wz_motion_left", "desc": "Bewegung links", "type": "boolean", "unit": "", "value": false }, { "name": "7", "homematic_name": "wz_motion_right", "desc": "Bewegung rechts", "type": "boolean", "unit": "", "value": false }, { "name": "20", "homematic_name": "wz_motion", "desc": "Bewegung", "type": "boolean", "unit": "", "value": false }, { "name": "4", "homematic_name": "wz_noise", "desc": "Geraeusch", "type": "boolean", "unit": "", "value": true }, { "name": "10", "homematic_name": "wz_elevation", "desc": "Sonne-Elevation", "type": "number", "unit": "grad", "value": -13.0 }, { "name": "11", "homematic_name": "wz_azimut", "desc": "Sonne-Azimut", "type": "number", "unit": "grad", "value": 260.2 }, { "name": "12", "homematic_name": "wz_buzzer", "desc": "Buzzer", "type": "boolean", "unit": "", "value": false }, { "name": "21", "homematic_name": "wz_relais", "desc": "Relais", "type": "boolean", "unit": "", "value": false }], "Systeminfo": { "MAC-Adresse": "81:7b:f8:34:fe:18", "ip_Homematic_CCU": "192.168.178.32", "WLAN_ssid": "T-Virus", "WLAN_Signal_dBm": -40, "millis_seit_reset": 258509851, "wiffizeit": " 3 18:49", "firmware": "wiffi_wz_86" } }
Einen Kommentar schreiben:
-
Argh! Ich hätte doch nochmal etwas genauer hinschauen sollen... Keine Ahnung, wie das beim Kopieren rein geraten ist... Exakt so muss der Eintrag der http.cfg aussehen:
Sorry...Code:wohnzimmersensor.url=http://192.168.178.74/?json wohnzimmersensor.updateInterval=60000
Einen Kommentar schreiben:
-
Das habe ich auch schon getestet es kommt aber immer wieder
Code:2018-02-05 17:39:22.070 [ERROR] [b.core.service.AbstractActiveService] - Error while executing background thread HTTP Refresh Service java.lang.IllegalArgumentException: Invalid uri 'http=http://192.168.178.74/?json': incorrect scheme at org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java:222) [220:org.apache.servicemix.bundles.commons-httpclient:3.1.0.7] at org.apache.commons.httpclient.methods.GetMethod.<init>(GetMethod.java:89) [220:org.apache.servicemix.bundles.commons-httpclient:3.1.0.7] at org.openhab.io.net.http.HttpUtil.createHttpMethod(HttpUtil.java:314) [222:org.openhab.core.compat1x:2.2.0] at org.openhab.io.net.http.HttpUtil.executeUrl(HttpUtil.java:167) [222:org.openhab.core.compat1x:2.2.0] at org.openhab.io.net.http.HttpUtil.executeUrl(HttpUtil.java:130) [222:org.openhab.core.compat1x:2.2.0] at org.openhab.binding.http.internal.HttpBinding.getCacheData(HttpBinding.java:423) [246:org.openhab.binding.http:1.11.0] at org.openhab.binding.http.internal.HttpBinding.execute(HttpBinding.java:169) [246:org.openhab.binding.http:1.11.0] at org.openhab.core.binding.AbstractActiveBinding$BindingActiveService.execute(AbstractActiveBinding.java:144) [222:org.openhab.core.compat1x:2.2.0] at org.openhab.core.service.AbstractActiveService$RefreshThread.run(AbstractActiveService.java:166) [222:org.openhab.core.compat1x:2.2.0]
Einen Kommentar schreiben:
-
Der Fehler Invalid uri 'http="<[http://192.168.178.74/?json"': incorrect scheme weißt ja darauf hin, was nicht stimmt - eventuell hast Du mein Posting gelesen, bevor ich es korrigiert hatte
Einen Kommentar schreiben:
-
Das habe ich schon Probiert dann kommt aber ein Fehler wenn ich das Item Einfüge
Number Wz_temp1 "Temperatur [%.1f °C]" {http="<[wohnzimmersensor:60000:JSONPATH($.vars[2].value)]"}
dann kommt dieser Fehler
Code:2018-02-05 17:20:45.847 [ERROR] [b.core.service.AbstractActiveService] - Error while executing background thread HTTP Refresh Service java.lang.IllegalArgumentException: Invalid uri 'http="<[http://192.168.178.74/?json"': incorrect scheme at org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java:222) [220:org.apache.servicemix.bundles.commons-httpclient:3.1.0.7] at org.apache.commons.httpclient.methods.GetMethod.<init>(GetMethod.java:89) [220:org.apache.servicemix.bundles.commons-httpclient:3.1.0.7] at org.openhab.io.net.http.HttpUtil.createHttpMethod(HttpUtil.java:314) [222:org.openhab.core.compat1x:2.2.0] at org.openhab.io.net.http.HttpUtil.executeUrl(HttpUtil.java:167) [222:org.openhab.core.compat1x:2.2.0] at org.openhab.io.net.http.HttpUtil.executeUrl(HttpUtil.java:130) [222:org.openhab.core.compat1x:2.2.0] at org.openhab.binding.http.internal.HttpBinding.getCacheData(HttpBinding.java:423) [246:org.openhab.binding.http:1.11.0] at org.openhab.binding.http.internal.HttpBinding.execute(HttpBinding.java:169) [246:org.openhab.binding.http:1.11.0] at org.openhab.core.binding.AbstractActiveBinding$BindingActiveService.execute(AbstractActiveBinding.java:144) [222:org.openhab.core.compat1x:2.2.0] at org.openhab.core.service.AbstractActiveService$RefreshThread.run(AbstractActiveService.java:166) [222:org.openhab.core.compat1x:2.2.0]
Einen Kommentar schreiben:
-
Ja, sorry. Am Anfang muss das "<[ weg.Zitat von Riffhai Beitrag anzeigenIch habe die Firmware geändert jetzt klappt es mit JSOn nur wenn ich es in die http.cfg Eintrage kommen fehler im Log kann es sein das noch was fehltCode:wohnzimmersensor.url= http="<[http://192.168.178.74/?json
Zuletzt geändert von udo1toni; 05.02.2018, 17:18.
Einen Kommentar schreiben:
-
Hallo Riffhai,
in der Angabe für die Adresse im http.cfg fehlen die " am Ende..
Und dein JSON-Path sagt, dass Du den 20. Eintrag deines vars-Arrays lesen willst, den gibt es allerdings nicht...
Die Variable mit "name" = "20" wäre also JSONPATH($.vars[11].value)
Ich habe allerdings nur rudimentäre Erfahrung mit JSONPATH. Vielleicht kann man ja in Abhängigkeit eines Eintrages (hier also "name") den Wert auslesen...
Andreas
Einen Kommentar schreiben:
-
Habe es soweit hinbekommen das er mir Werte Anzeigt nur im LOG finde ich immer wieder FehlerCode:[WARN ] [ab.binding.http.internal.HttpBinding] - Transformation 'JSONPATH($.vars[20].value)' threw an exception. [response= {"modultyp":"wiffi-wz","vars":[{"name":"0","homematic_name":"wz_ip","desc":"ip des wiffi-wz","type":"string","unit":"","value":"192.168.178.74"},{"name":"1","homematic_name":"wz_co2","desc":"Luftqualitaet","type":"number","unit":"%","value":91},{"name":"2","homematic_name":"wz_temp","desc":"Temperatur","type":"number","unit":"gradC","value":23.8},{"name":"3","homematic_name":"wz_feuchte","desc":"Luftfeuchte","type":"number","unit":"%","value":42.4},{"name":"19","homematic_name":"wz_taupunkt","desc":"Taupunkt","type":"number","unit":"gradC","value":10.2},{"name":"18","homematic_name":"wz_feuchte_abs","desc":"Absolutfeuchte","type":"number","unit":"g/m3","value":9.1},{"name":"9","homematic_name":"wz_baro","desc":"Luftdruck","type":"number","unit":"mB","value":1021.60},{"name":"5","homematic_name":"wz_luftdrucktrend","desc":"Luftdrucktrend","type":"string","unit":"","value":"stabil"},{"name":"8","homematic_name":"wz_lux","desc":"Helligkeit","type":"number","unit":"lux","value":0.57},{"name":"6","homematic_name":"wz_motion_left","desc":"Bewegung links","type":"boolean","unit":"","value":false},{"name":"7","homematic_name":"wz_motion_right","desc":"Bewegung rechts","type":"boolean","unit":"","value":false},{"name":"20","homematic_name":"wz_motion","desc":"Bewegung","type":"boolean","unit":"","value":false},{"name":"4","homematic_name":"wz_noise","desc":"Geraeusch","type":"boolean","unit":"","value":true}, {"name":"10","homematic_name":"wz_elevation","desc":"Sonne-Elevation","type":"number","unit":"grad","value":-28.6},{"name":"11","homematic_name":"wz_azimut","desc":"Sonne-Azimut","type":"number","unit":"grad","value":278.5},{"name":"12","homematic_name":"wz_buzzer","desc":"Buzzer","type":"boolean","unit":"","value":false},{"name":"21","homematic_name":"wz_relais","desc":"Relais","type":"boolean","unit":"","value":false}],"Systeminfo":{"MAC-Adresse":"81:7b:f8:34:fe:18","ip_Homematic_CCU":"192.168.178.32","WLAN_ssid":"T-Virus","WLAN_Signal_dBm":-56,"millis_seit_reset":91464474,"wiffizeit":" 1 20:25","firmware":"wiffi_wz_86"}} ] org.openhab.core.transform.TransformationException: Invalid path '$.vars[20].value' in ' {"modultyp":"wiffi-wz","vars":[{"name":"0","homematic_name":"wz_ip","desc":"ip des wiffi-wz","type":"string","unit":"","value":"192.168.178.74"},{"name":"1","homematic_name":"wz_co2","desc":"Luftqualitaet","type":"number","unit":"%","value":91},{"name":"2","homematic_name":"wz_temp","desc":"Temperatur","type":"number","unit":"gradC","value":23.8},{"name":"3","homematic_name":"wz_feuchte","desc":"Luftfeuchte","type":"number","unit":"%","value":42.4},{"name":"19","homematic_name":"wz_taupunkt","desc":"Taupunkt","type":"number","unit":"gradC","value":10.2},{"name":"18","homematic_name":"wz_feuchte_abs","desc":"Absolutfeuchte","type":"number","unit":"g/m3","value":9.1},{"name":"9","homematic_name":"wz_baro","desc":"Luftdruck","type":"number","unit":"mB","value":1021.60},{"name":"5","homematic_name":"wz_luftdrucktrend","desc":"Luftdrucktrend","type":"string","unit":"","value":"stabil"},{"name":"8","homematic_name":"wz_lux","desc":"Helligkeit","type":"number","unit":"lux","value":0.57},{"name":"6","homematic_name":"wz_motion_left","desc":"Bewegung links","type":"boolean","unit":"","value":false},{"name":"7","homematic_name":"wz_motion_right","desc":"Bewegung rechts","type":"boolean","unit":"","value":false},{"name":"20","homematic_name":"wz_motion","desc":"Bewegung","type":"boolean","unit":"","value":false},{"name":"4","homematic_name":"wz_noise","desc":"Geraeusch","type":"boolean","unit":"","value":true}, {"name":"10","homematic_name":"wz_elevation","desc":"Sonne-Elevation","type":"number","unit":"grad","value":-28.6},{"name":"11","homematic_name":"wz_azimut","desc":"Sonne-Azimut","type":"number","unit":"grad","value":278.5},{"name":"12","homematic_name":"wz_buzzer","desc":"Buzzer","type":"boolean","unit":"","value":false},{"name":"21","homematic_name":"wz_relais","desc":"Relais","type":"boolean","unit":"","value":false}],"Systeminfo":{"MAC-Adresse":"81:7b:f8:34:fe:18","ip_Homematic_CCU":"192.168.178.32","WLAN_ssid":"T-Virus","WLAN_Signal_dBm":-56,"millis_seit_reset":91464474,"wiffizeit":" 1 20:25","firmware":"wiffi_wz_86"}} '
Einen Kommentar schreiben:
-
Kann wieder nicht war sein dass ich schon wieder nicht verstehe was an der url fehlt das steht im LOG
Code:2018-02-04 16:13:43.974 [ERROR] [b.core.service.AbstractActiveService] - Error while executing background thread HTTP Refresh Service java.lang.IllegalArgumentException: Invalid uri 'http="<[http://192.168.178.74/?json': incorrect scheme at org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java:222) [220:org.apache.servicemix.bundles.commons-httpclient:3.1.0.7] at org.apache.commons.httpclient.methods.GetMethod.<init>(GetMethod.java:89) [220:org.apache.servicemix.bundles.commons-httpclient:3.1.0.7] at org.openhab.io.net.http.HttpUtil.createHttpMethod(HttpUtil.java:314) [222:org.openhab.core.compat1x:2.2.0] at org.openhab.io.net.http.HttpUtil.executeUrl(HttpUtil.java:167) [222:org.openhab.core.compat1x:2.2.0] at org.openhab.io.net.http.HttpUtil.executeUrl(HttpUtil.java:130) [222:org.openhab.core.compat1x:2.2.0] at org.openhab.binding.http.internal.HttpBinding.getCacheData(HttpBinding.java:423) [246:org.openhab.binding.http:1.11.0] at org.openhab.binding.http.internal.HttpBinding.execute(HttpBinding.java:169) [246:org.openhab.binding.http:1.11.0] at org.openhab.core.binding.AbstractActiveBinding$BindingActiveService.execute(AbstractActiveBinding.java:144) [222:org.openhab.core.compat1x:2.2.0] at org.openhab.core.service.AbstractActiveService$RefreshThread.run(AbstractActiveService.java:166) [222:org.openhab.core.compat1x:2.2.0]
Einen Kommentar schreiben:
-
Ich habe die Firmware geändert jetzt klappt es mit JSOn nur wenn ich es in die http.cfg Eintrage kommen fehler im Log kann es sein das noch was fehltCode:wohnzimmersensor.url= http="<[http://192.168.178.74/?json
Einen Kommentar schreiben:
-
Wie hast Du es hinbekommen, dass der Sender gültiges JSON ausgibt?
Wenn Du in der http.cfg folgendes einträgst:
kannst Du auf die Rule verzichten und stattdessen nur die Items anlegen:Code:wohnzimmersensor.url=http://192.168.178.74/?json wohnzimmersensor.updateInterval=60000
Code:Number Wz_temp_Test "Temperatur [%.1f °C]" {http="<[wohnzimmersensor:60000:JSONPATH($.vars[2].value)]"} Number Wz_co2_Test "CO2 [%.1f ppm]" {http="<[wohnzimmersensor:60000:JSONPATH($.vars[1].value)]"}Zuletzt geändert von udo1toni; 06.02.2018, 09:58.
Einen Kommentar schreiben:
-
Es hat geklappt mit dem Item
und dann mit den Rules die Items mit Daten füllen.Code:String Wohnzimmersensor_Data "Wohnzimmersensor Data" {http="<[http://192.168.178.74/?json:60000:JSONPATH((.*))]"}
Code:rule "Wohnzimmersensor Itemupdate" when Time cron "0 0/1 * * * ?" then var String data = Wohnzimmersensor_Data.state.toString var String value = transform ("JSONPATH", "$.vars[2].value", data) postUpdate (Wz_temp_Test, value) value = transform ("JSONPATH", "$.vars[1].value", data) postUpdate (Wz_co2_Test, value) usw. end
Einen Kommentar schreiben:
-
Jetzt sieht der JSON Ausdruck so aus
Der ist doch jetzt OK?Code:{ "modultyp": "wiffi-wz", "vars": [{ "name": "0", "homematic_name": "wz_ip", "desc": "ip des wiffi-wz", "type": "string", "unit": "", "value": "192.168.178.74" }, { "name": "1", "homematic_name": "wz_co2", "desc": "Luftqualitaet", "type": "number", "unit": "%", "value": 95 }, { "name": "2", "homematic_name": "wz_temp", "desc": "Temperatur", "type": "number", "unit": "gradC", "value": 25.6 }, { "name": "3", "homematic_name": "wz_feuchte", "desc": "Luftfeuchte", "type": "number", "unit": "%", "value": 39.9 }, { "name": "19", "homematic_name": "wz_taupunkt", "desc": "Taupunkt", "type": "number", "unit": "gradC", "value": 11.0 }, { "name": "18", "homematic_name": "wz_feuchte_abs", "desc": "Absolutfeuchte", "type": "number", "unit": "g/m3", "value": 9.5 }, { "name": "9", "homematic_name": "wz_baro", "desc": "Luftdruck", "type": "number", "unit": "mB", "value": 1007.69 }, { "name": "5", "homematic_name": "wz_luftdrucktrend", "desc": "Luftdrucktrend", "type": "string", "unit": "", "value": "not valid" }, { "name": "8", "homematic_name": "wz_lux", "desc": "Helligkeit", "type": "number", "unit": "lux", "value": 4.42 }, { "name": "6", "homematic_name": "wz_motion_left", "desc": "Bewegung links", "type": "boolean", "unit": "", "value": false }, { "name": "7", "homematic_name": "wz_motion_right", "desc": "Bewegung rechts", "type": "boolean", "unit": "", "value": false }, { "name": "20", "homematic_name": "wz_motion", "desc": "Bewegung", "type": "boolean", "unit": "", "value": false }, { "name": "4", "homematic_name": "wz_noise", "desc": "Geraeusch", "type": "boolean", "unit": "", "value": false }, { "name": "10", "homematic_name": "wz_elevation", "desc": "Sonne-Elevation", "type": "number", "unit": "grad", "value": -7.0 }, { "name": "11", "homematic_name": "wz_azimut", "desc": "Sonne-Azimut", "type": "number", "unit": "grad", "value": 250.3 }, { "name": "12", "homematic_name": "wz_buzzer", "desc": "Buzzer", "type": "boolean", "unit": "", "value": false }, { "name": "21", "homematic_name": "wz_relais", "desc": "Relais", "type": "boolean", "unit": "", "value": false }], "Systeminfo": { "MAC-Adresse": "81:7b:f8:34:fe:18", "ip_Homematic_CCU": "192.168.178.73", "WLAN_ssid": "T-Virus", "WLAN_Signal_dBm": -55, "millis_seit_reset": 410296, "wiffizeit": " 4 18:01", "firmware": "wiffi_wz_86" } }
Einen Kommentar schreiben:

Einen Kommentar schreiben: