Ankündigung

Einklappen
Keine Ankündigung bisher.

JSON Dateien in ein Item schreiben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • udo1toni
    antwortet
    Das ist ungünstig. Mal ins Blaue geraten (und weil ich da homematic lese), vielleicht gibt es eine korrigierte Firmware von ELV? Ansonsten würde ich da mal nachfragen, denn das Teil soll ja korrektes JSON liefern. Für Notepad++ gibt es ein Plugin, das mault und zeigt gar nichts an (es sei denn, man entfernt die eckige Klammer)

    Einen Kommentar schreiben:


  • Riffhai
    antwortet
    Ich glaube dass sas Gerät ein Falsches JSON liefert wenn ich auf dem Gerät mit die JSON Daten anzeigen lasse kommt das raus

    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":90}, {"name":"2","homematic_name":"wz_temp","desc":"Temperatur","type":"number","unit":"gradC","value":25.4}, {"name":"3","homematic_name":"wz_feuchte","desc":"Luftfeuchte","type":"number","unit":"%","value":37.9}, {"name":"19","homematic_name":"wz_taupunkt","desc":"Taupunkt","type":"number","unit":"gradC","value":10.0}, {"name":"18","homematic_name":"wz_feuchte_abs","desc":"Absolutfeuchte","type":"number","unit":"g/m3","value":8.9}, {"name":"9","homematic_name":"wz_baro","desc":"Luftdruck","type":"number","unit":"mB","value":1028.14}, {"name":"5","homematic_name":"wz_luftdrucktrend","desc":"Luftdrucktrend","type":"string","unit":"","value":"fallend"}, {"name":"8","homematic_name":"wz_lux","desc":"Helligkeit","type":"number","unit":"lux","value":7.13}, {"name":"10","homematic_name":"wz_elevation","desc":"Sonne-Elevation","type":"number","unit":"grad","value":-9.1}, {"name":"11","homematic_name":"wz_azimut","desc":"Sonne-Azimut","type":"number","unit":"grad","value":252.4}, {"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}], {"name":"10","homematic_name":"wz_elevation","desc":"Sonne-Elevation","type":"number","unit":"grad","value":-9.1}, {"name":"11","homematic_name":"wz_azimut","desc":"Sonne-Azimut","type":"number","unit":"grad","value":252.4}, {"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":-53,"millis_seit_reset":83876326,"wiffizeit":" 3 18:13","firmware":"wiffi_wz_91"}}
    da sind wieder 4 Werte Doppelt.

    Einen Kommentar schreiben:


  • udo1toni
    antwortet
    Schau mal hier: https://docs.openhab.org/addons/bind...-configuration

    Einen Kommentar schreiben:


  • Riffhai
    antwortet
    Ja ich möchte alle Werte auslesen aber was ist den ein http-Cache wie mache ich das. Ich versuch heute Abend das umzusetzen.

    Einen Kommentar schreiben:


  • udo1toni
    antwortet
    Ach so... Falls Du mehrere (alle?) Werte aus dem JSON auslesen möchtest, bietet es sich an, ein http Cache dafür einzurichten. Das heißt, der Cache wird in regelmäßigen Abständen aktualisiert, die Items werden jeweils aus dem Cache gefüllt. So gibt es dann weniger Anfragen an das Gerät, trotzdem stehen alle werte in separaten Items zur Verfügung.

    Einen Kommentar schreiben:


  • udo1toni
    antwortet
    Also, der String für die Abfrage sähe so aus:
    Code:
    String Wohnzimmersensor_Data "Wohnzimmersensor Data" {http="<[http://192.168.178.74/?json:60000:JSONPATH($.vars[2].value)]"}
    Aber das funktioniert nur, wenn ein gültiges JSON geliefert wird.
    Hier mal die von Dir geposteten Daten als JSON formatiert:
    Code:
    Alter Inhalt des Items:
    
    {
        "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": 76
        },
        {
            "name": "2",
            "homematic_name": "wz_temp",
            "desc": "Temperatur",
            "type": "number",
            "unit": "gradC",
            "value": 22.7
        },
        {
            "name": "3",
            "homematic_name": "wz_feuchte",
            "desc": "Luftfeuchte",
            "type": "number",
            "unit": "%",
            "value": 45.5
        },
        {
            "name": "19",
            "homematic_name": "wz_taupunkt",
            "desc": "Taupunkt",
            "type": "number",
            "unit": "gradC",
            "value": 10.3
        },
        {
            "name": "18",
            "homematic_name": "wz_feuchte_abs",
            "desc": "Absolutfeuchte",
            "type": "number",
            "unit": "g/m3",
            "value": 9.2
        },
        {
            "name": "9",
            "homematic_name": "wz_baro",
            "desc": "Luftdruck",
            "type": "number",
            "unit": "mB",
            "value": 1037.07
        },
        {
            "name": "5",
            "homematic_name": "wz_luftdrucktrend",
            "desc": "Luftdrucktrend",
            "type": "string",
            "unit": "",
            "value": "steigend"
        },
        {
            "name": "8",
            "homematic_name": "wz_lux",
            "desc": "Helligkeit",
            "type": "number",
            "unit": "lux",
            "value": 0.00
        },
        {
            "name": "10",
            "homematic_name": "wz_elevation",
            "desc": "Sonne-Elevation",
            "type": "number",
            "unit": "grad",
            "value": -22.4
        },
        {
            "name": "11",
            "homematic_name": "wz_azimut",
            "desc": "Sonne-Azimut",
            "type": "number",
            "unit": "grad",
            "value": 267.6
        },
        {
            "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
        }[COLOR=#FF0000]][/COLOR][COLOR=#FF8C00],
        {
            "name": "10",
            "homematic_name": "wz_elevation",
            "desc": "Sonne-Elevation",
            "type": "number",
            "unit": "grad",
            "value": -22.4
        },
        {
            "name": "11",
            "homematic_name": "wz_azimut",
            "desc": "Sonne-Azimut",
            "type": "number",
            "unit": "grad",
            "value": 267.6
        },
        {
            "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
        }[/COLOR]],
        "Systeminfo": {
            "MAC-Adresse": "81:7b:f8:34:fe:18",
            "ip_Homematic_CCU": "192.168.178.73",
            "WLAN_ssid": "T-Virus",
            "WLAN_Signal_dBm": -57,
            "millis_seit_reset": 26033346,
            "wiffizeit": " 1 19:36",
            "firmware": "wiffi_wz_91"
        }
    }
    
    Neuer Inhalt des Items:
    
    {
        "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": 76
        },
        {
            "name": "2",
            "homematic_name": "wz_temp",
            "desc": "Temperatur",
            "type": "number",
            "unit": "gradC",
            "value": 22.7
        },
        {
            "name": "3",
            "homematic_name": "wz_feuchte",
            "desc": "Luftfeuchte",
            "type": "number",
            "unit": "%",
            "value": 47.7
        },
        {
            "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.6
        },
        {
            "name": "9",
            "homematic_name": "wz_baro",
            "desc": "Luftdruck",
            "type": "number",
            "unit": "mB",
            "value": 1037.10
        },
        {
            "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.00
        },
        {
            "name": "10",
            "homematic_name": "wz_elevation",
            "desc": "Sonne-Elevation",
            "type": "number",
            "unit": "grad",
            "value": -22.6
        },
        {
            "name": "11",
            "homematic_name": "wz_azimut",
            "desc": "Sonne-Azimut",
            "type": "number",
            "unit": "grad",
            "value": 267.8
        },
        {
            "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
        }[COLOR=#FF0000]][/COLOR][COLOR=#FF8C00],
        {
            "name": "10",
            "homematic_name": "wz_elevation",
            "desc": "Sonne-Elevation",
            "type": "number",
            "unit": "grad",
            "value": -22.6
        },
        {
            "name": "11",
            "homematic_name": "wz_azimut",
            "desc": "Sonne-Azimut",
            "type": "number",
            "unit": "grad",
            "value": 267.8
        },
        {
            "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
        }[/COLOR]],
        "Systeminfo": {
            "MAC-Adresse": "81:7b:f8:34:fe:18",
            "ip_Homematic_CCU": "192.168.178.73",
            "WLAN_ssid": "T-Virus",
            "WLAN_Signal_dBm": -60,
            "millis_seit_reset": 26094792,
            "wiffizeit": " 1 19:37",
            "firmware": "wiffi_wz_91"
        }
    }
    Der rote Teil muss weg, damit ein gültiges JSON entsteht, der orange Teil ist doppelt (die letzten vier Werte), vielleicht ist im Code ein Bug, der für diese Wiederholung sorgt - und damit für ein ungültiges JSON.

    Einen Kommentar schreiben:


  • Riffhai
    antwortet
    Ich Blick damit ganz ehrlich überhaupt nicht durch obwohl ich versuche die Doku zu übersetzten und zu lesen.

    Einen Kommentar schreiben:


  • udo1toni
    antwortet
    Statt REGEX schreibst Du halt JSONPATH und in die Klammern kommt der JSON-Ausdruck. Hast Du mal wegen des Fehlers in der Datei geschaut? die kommt ja im Zweifel aus dem Sensor.

    Einen Kommentar schreiben:


  • Riffhai
    antwortet

    Ich bin gerade am Versuchen direkt in ein Item zu schreiben muss aber erst verstehen was ich da schreiben muss.

    Einen Kommentar schreiben:


  • udo1toni
    antwortet
    Gibt es einen Grund, warum Du die Daten über eine Rule lädst, statt sie direkt in ein Item zu schreiben?
    Nach dem Log ist der json String syntaktisch inkorrekt (eine schließende eckige Klammer ] mittendrin zu viel).

    Einen Kommentar schreiben:


  • Riffhai
    hat ein Thema erstellt JSON Dateien in ein Item schreiben.

    JSON Dateien in ein Item schreiben

    Hallo,

    ich habe ein Sensor zusammengelötet der Json Daten bereitstellt diese möchte ich in ein item Schreiben und es auf der Sitemap darstellen. Ich habe ein Item erstellt dieses holt von dem Gerät die Daten ab im Logfile sehe ich das...

    Code:
    2018-01-28 19:37:10.744 [vent.ItemStateChangedEvent] - Wohnzimmersensor_Data changed from {"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":76},{"name":"2","homematic_name":"wz_temp","desc":"Temperatur","type":"number","unit":"gradC","value":22.7},{"name":"3","homematic_name":"wz_feuchte","desc":"Luftfeuchte","type":"number","unit":"%","value":45.5},{"name":"19","homematic_name":"wz_taupunkt","desc":"Taupunkt","type":"number","unit":"gradC","value":10.3},{"name":"18","homematic_name":"wz_feuchte_abs","desc":"Absolutfeuchte","type":"number","unit":"g/m3","value":9.2},{"name":"9","homematic_name":"wz_baro","desc":"Luftdruck","type":"number","unit":"mB","value":1037.07},{"name":"5","homematic_name":"wz_luftdrucktrend","desc":"Luftdrucktrend","type":"string","unit":"","value":"steigend"},{"name":"8","homematic_name":"wz_lux","desc":"Helligkeit","type":"number","unit":"lux","value":0.00},{"name":"10","homematic_name":"wz_elevation","desc":"Sonne-Elevation","type":"number","unit":"grad","value":-22.4},{"name":"11","homematic_name":"wz_azimut","desc":"Sonne-Azimut","type":"number","unit":"grad","value":267.6},{"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}],{"name":"10","homematic_name":"wz_elevation","desc":"Sonne-Elevation","type":"number","unit":"grad","value":-22.4},{"name":"11","homematic_name":"wz_azimut","desc":"Sonne-Azimut","type":"number","unit":"grad","value":267.6},{"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":-57,"millis_seit_reset":26033346,"wiffizeit":" 1 19:36","firmware":"wiffi_wz_91"}} to {"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":76},{"name":"2","homematic_name":"wz_temp","desc":"Temperatur","type":"number","unit":"gradC","value":22.7},{"name":"3","homematic_name":"wz_feuchte","desc":"Luftfeuchte","type":"number","unit":"%","value":47.7},{"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.6},{"name":"9","homematic_name":"wz_baro","desc":"Luftdruck","type":"number","unit":"mB","value":1037.10},{"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.00},{"name":"10","homematic_name":"wz_elevation","desc":"Sonne-Elevation","type":"number","unit":"grad","value":-22.6},{"name":"11","homematic_name":"wz_azimut","desc":"Sonne-Azimut","type":"number","unit":"grad","value":267.8},{"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}],{"name":"10","homematic_name":"wz_elevation","desc":"Sonne-Elevation","type":"number","unit":"grad","value":-22.6},{"name":"11","homematic_name":"wz_azimut","desc":"Sonne-Azimut","type":"number","unit":"grad","value":267.8},{"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":-60,"millis_seit_reset":26094792,"wiffizeit":" 1 19:37","firmware":"wiffi_wz_91"}}
    das Item
    Code:
    String Wohnzimmersensor_Data "Wohnzimmersensor Data" {http="<[http://192.168.178.74/?json:60000:REGEX((.*))]"}
    aber alle Versuche es in ein Item zu bekommen scheitern ich habe es mit einer Rule versucht.

    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, value)
    
    end
    Diese Rule soll mit die Wohnzimmer Temperatur in ein Item schreiben. Funktioniert nicht kann mir jemand dieses Json erklären ich versteh es noch nicht was ein Jsonpath ist.

    Gruss Michael
Lädt...
X