Achso... wegen des Formats... schau mal:
Code: Alles auswählen
{
"modultyp": "weatherman",
"vars": [
{
"name": "0",
"homematic_name": "w_ip",
"desc": "weatherman_ip",
"type": "string",
"unit": "",
"value": "192.168.20.13"
},
{
"name": "1",
"homematic_name": "w_temperatur",
"desc": "aussentemperatur",
"type": "number",
"unit": "gradC",
"value": "13.7"
},
{
"name": "21",
"homematic_name": "w_windchill",
"desc": "gefuehlte_temperatur",
"type": "number",
"unit": "gradC",
"value": "13.7"
},
{
"name": "9",
"homematic_name": "w_taupunkt",
"desc": "taupunkt_temperatur",
"type": "number",
"unit": "gradC",
"value": "12.2"
},
{
"name": "14",
"homematic_name": "w_himmeltemperatur",
"desc": "himmel_temperatur",
"type": "number",
"unit": "gradC",
"value": "0.0"
},
{
"name": "2",
"homematic_name": "w_feuchte_rel",
"desc": "rel_feuchte",
"type": "number",
"unit": "%",
"value": "90.9"
},
{
"name": "17",
"homematic_name": "w_feuchte_abs",
"desc": "abs_feuchte",
"type": "number",
"unit": "g/m3",
"value": "10.7"
},
{
"name": "18",
"homematic_name": "w_regensensor_wert",
"desc": "regenmelderwert",
"type": "number",
"unit": "",
"value": "0"
},
{
"name": "7",
"homematic_name": "w_regenmelder",
"desc": "regenstatus",
"type": "boolean",
"unit": "",
"value": "false"
},
{
"name": "8",
"homematic_name": "w_regenstaerke",
"desc": "regenstaerke",
"type": "number",
"unit": "mm/h",
"value": "0.0"
},
{
"name": "19",
"homematic_name": "w_regen_letzte_h",
"desc": "regen_pro_h",
"type": "number",
"unit": "mm",
"value": "0.0"
},
{
"name": "20",
"homematic_name": "w_regen_mm_heute",
"desc": "regen_mm_heute",
"type": "number",
"unit": "mm",
"value": "0.0"
},
{
"name": "32",
"homematic_name": "w_regenstunden_heute",
"desc": "regenstunden_heute",
"type": "number",
"unit": "h",
"value": "0.0"
},
{
"name": "27",
"homematic_name": "w_regen_mm_gestern",
"desc": "regen_mm_gestern",
"type": "number",
"unit": "mm",
"value": "10.7"
},
{
"name": "3",
"homematic_name": "w_barometer",
"desc": "nn_luftdruck",
"type": "number",
"unit": "mb",
"value": "1022.69"
},
{
"name": "11",
"homematic_name": "w_barotrend",
"desc": "luftdrucktrend",
"type": "string",
"unit": "",
"value": "stabil"
},
{
"name": "4",
"homematic_name": "w_wind_mittel",
"desc": "avg_windgeschwindigkeit",
"type": "number",
"unit": "km/h",
"value": "0.0"
},
{
"name": "5",
"homematic_name": "w_wind_spitze",
"desc": "peak_windgeschwindigkeit",
"type": "number",
"unit": "km/h",
"value": "0.0"
},
{
"name": "24",
"homematic_name": "w_windstaerke",
"desc": "bft_windgeschwindigkeit",
"type": "number",
"unit": "bft",
"value": "0"
},
{
"name": "23",
"homematic_name": "w_windrichtung",
"desc": "windrichtung",
"type": "string",
"unit": "",
"value": "N"
},
{
"name": "6",
"homematic_name": "w_wind_dir",
"desc": "windwinkel",
"type": "number",
"unit": "grad",
"value": "0"
},
{
"name": "10",
"homematic_name": "w_lux",
"desc": "helligkeit",
"type": "number",
"unit": "lux",
"value": "0.0"
},
{
"name": "28",
"homematic_name": "w_uv_index",
"desc": "uv-index",
"type": "number",
"unit": "uv_index",
"value": "0.000"
},
{
"name": "22",
"homematic_name": "w_sonne_diff_temp",
"desc": "sonnen_difftemperatur",
"type": "number",
"unit": "gradC",
"value": "2.7"
},
{
"name": "15",
"homematic_name": "w_sonnentemperatur",
"desc": "sonnen_temperatur",
"type": "number",
"unit": "gradC",
"value": "16.4"
},
{
"name": "16",
"homematic_name": "w_sonne_scheint",
"desc": "sonne_scheint",
"type": "boolean",
"unit": "",
"value": "false"
},
{
"name": "26",
"homematic_name": "w_sonnenstunden_heute",
"desc": "Sonnenstunden_heute",
"type": "number",
"unit": "h",
"value": "0.0"
},
{
"name": "12",
"homematic_name": "w_elevation",
"desc": "sonne_elevation",
"type": "number",
"unit": "grad",
"value": "-12.5"
},
{
"name": "13",
"homematic_name": "w_azimut",
"desc": "sonne_azimut",
"type": "number",
"unit": "grad",
"value": "347.6"
},
{
"name": "30",
"homematic_name": "w_minuten_vor_sa",
"desc": "minuten_vor_sa",
"type": "number",
"unit": "min",
"value": "-1173"
},
{
"name": "31",
"homematic_name": "w_minuten_vor_su",
"desc": "minuten_vor_su",
"type": "number",
"unit": "min",
"value": "-162"
}
],
"Systeminfo": {
"MAC-Adresse": "d8:bf:c0:f7:90:ce",
"Homematic_CCU_ip": "my_ccuip",
"WLAN_ssid": "AlphaQuadrant",
"WLAN_Signal_dBm": "-49",
"sec_seit_reset": "101640",
"zeitpunkt": "2022.07.02 /00h27",
"firmware": "wm2_19_2"
}
}
Das waren ca. 10 Sekunden Arbeit, dafür gibt es Tools
in diesem Fall das JSON Plugin in Notepad++ (der einfach viel schneller startet als VSCode, wo es solche Plugins selbstverständlich auch gibt).
Die Konfiguration von http ist auch nicht korrekt. im alten http1-Binding wurde refresh in ms angegeben, in http3 geschieht das aber in s. Also, aus 15000 wird 15.
. Innerhalb des JSON Objekts kannst Du hinter vars einen Doppelpunkt sehen, anschließend eine [. Das bedeutet, hier folgt ein Tupel. Die einzelnen Elemente des Tupels sind nicht benannt, sondern lediglich mit {} markiert. Welchen Teil des Tupels Du nutzen willst, entscheidest Du über den Inhalt von []. Da es keine Namen für die Elemente gibt, kannst Du entweder über den Index zugreifen, oder Du machst es an einem Wert innerhalb des Tupel Elements fest (das wäre die "korrekte" Art, auf einen Wert zuzugreifen):
. Der Unterschied: Es ist nun egal, ob dieser Wert tatsächlich im zweiten Element der Liste steht, oder vielleicht im 27. Element. Wenn Du das JSON Objekt anschaust, wirst Du feststellen, dass die einzelnen Listenelemente keinesfalls nach dem Feld "name" sortiert sind, wie man eigentlich erwarten könnte.
Die Reihenfolge der Tupelelemente kann bei jeder Abfrage eine andere sein, das wird mit der "korrekten" Variante abgefangen.