myGEKKO - Das Forum
JSON Abfrage - Druckversion

+- myGEKKO - Das Forum (https://forum.my-gekko.com)
+-- Forum: Software (https://forum.my-gekko.com/forumdisplay.php?fid=26)
+--- Forum: Query API (https://forum.my-gekko.com/forumdisplay.php?fid=46)
+--- Thema: JSON Abfrage (/showthread.php?tid=2232)



JSON Abfrage - MarcDerSeemann - 05.03.2023

Hallo,
nachdem ich die Heizung umgebaut habe würde ich gerne die Daten der Heizung im myGekko einbinden.
 
Leider komme ich bei der JSON Struktur nicht weiter, gefühlt habe ich alle Kombinationen ausprobiert um Werte aus dem String zu lesen komme aber einfach nicht weiter. In der Logik bleibt der Wert bei 0.
 
Problem hier ist, dass der Wert nicht einem spez. Namen zugeordnet ist, sondern immer in der „Unterkategorie“ VALUE.
 

Schönen Gruß
Marc


RE: JSON Abfrage - rjud - 05.03.2023

Hallo Marc,

kannst Du mal die Kopfzeile kopieren und hier einfügen? evtl auch die "Rohdaten" wo der vollständige JSON angezeigt wird
Um welche Wärmepumpe handelt es sich? gibt es eine Anleitung/Infos zur API/json?


RE: JSON Abfrage - MarcDerSeemann - 05.03.2023

Hallo Rupert,

ich versuche mal die Rohdaten hier anzufügen, ich hoffe das klappt.

Die Wärmepumpe ist von Panasonic, das Modul welches die Heizung ausliest ist ein Community Eigenbau und nennt sich Heishamon. Die gesamelten Daten werden dann via MQTT und/oder JSON bereitgestellt.

Gruß
Marc

Hier die Rohdaten:
Code:
{"heatpump":[{"Topic":"TOP0","Name":"Heatpump_State","Value":"1","Description":"On"},{"Topic":"TOP1","Name":"Pump_Flow","Value":"8.72","Description":"l/min"},{"Topic":"TOP2","Name":"Force_DHW_State","Value":"0","Description":"Disabled"},{"Topic":"TOP3","Name":"Quiet_Mode_Schedule","Value":"0","Description":"Disabled"},{"Topic":"TOP4","Name":"Operating_Mode_State","Value":"4","Description":"Heat+DHW"},{"Topic":"TOP5","Name":"Main_Inlet_Temp","Value":"22.25","Description":"°C"},{"Topic":"TOP6","Name":"Main_Outlet_Temp","Value":"25.50","Description":"°C"},{"Topic":"TOP7","Name":"Main_Target_Temp","Value":"29","Description":"°C"},{"Topic":"TOP8","Name":"Compressor_Freq","Value":"20","Description":"Hz"},{"Topic":"TOP9","Name":"DHW_Target_Temp","Value":"43","Description":"°C"},{"Topic":"TOP10","Name":"DHW_Temp","Value":"45","Description":"°C"},{"Topic":"TOP11","Name":"Operations_Hours","Value":"47","Description":"hours"},{"Topic":"TOP12","Name":"Operations_Counter","Value":"42","Description":"count"},{"Topic":"TOP13","Name":"Main_Schedule_State","Value":"0","Description":"Disabled"},{"Topic":"TOP14","Name":"Outside_Temp","Value":"11","Description":"°C"},{"Topic":"TOP15","Name":"Heat_Energy_Production","Value":"1800","Description":"Watt"},{"Topic":"TOP16","Name":"Heat_Energy_Consumption","Value":"400","Description":"Watt"},{"Topic":"TOP17","Name":"Powerful_Mode_Time","Value":"0","Description":"Off"},{"Topic":"TOP18","Name":"Quiet_Mode_Level","Value":"3","Description":"Level 3"},{"Topic":"TOP19","Name":"Holiday_Mode_State","Value":"0","Description":"Off"},{"Topic":"TOP20","Name":"ThreeWay_Valve_State","Value":"0","Description":"Room"},{"Topic":"TOP21","Name":"Outside_Pipe_Temp","Value":"0","Description":"°C"},{"Topic":"TOP22","Name":"DHW_Heat_Delta","Value":"-10","Description":"K"},{"Topic":"TOP23","Name":"Heat_Delta","Value":"5","Description":"K"},{"Topic":"TOP24","Name":"Cool_Delta","Value":"5","Description":"K"},{"Topic":"TOP25","Name":"DHW_Holiday_Shift_Temp","Value":"-15","Description":"K"},{"Topic":"TOP26","Name":"Defrosting_State","Value":"0","Description":"Disabled"},{"Topic":"TOP27","Name":"Z1_Heat_Request_Temp","Value":"29","Description":"°C"},{"Topic":"TOP28","Name":"Z1_Cool_Request_Temp","Value":"0","Description":"°C"},{"Topic":"TOP29","Name":"Z1_Heat_Curve_Target_High_Temp","Value":"29","Description":"°C"},{"Topic":"TOP30","Name":"Z1_Heat_Curve_Target_Low_Temp","Value":"35","Description":"°C"},{"Topic":"TOP31","Name":"Z1_Heat_Curve_Outside_High_Temp","Value":"15","Description":"°C"},{"Topic":"TOP32","Name":"Z1_Heat_Curve_Outside_Low_Temp","Value":"-5","Description":"°C"},{"Topic":"TOP33","Name":"Room_Thermostat_Temp","Value":"23","Description":"°C"},{"Topic":"TOP34","Name":"Z2_Heat_Request_Temp","Value":"35","Description":"°C"},{"Topic":"TOP35","Name":"Z2_Cool_Request_Temp","Value":"0","Description":"°C"},{"Topic":"TOP36","Name":"Z1_Water_Temp","Value":"-78","Description":"°C"},{"Topic":"TOP37","Name":"Z2_Water_Temp","Value":"-78","Description":"°C"},{"Topic":"TOP38","Name":"Cool_Energy_Production","Value":"0","Description":"Watt"},{"Topic":"TOP39","Name":"Cool_Energy_Consumption","Value":"0","Description":"Watt"},{"Topic":"TOP40","Name":"DHW_Energy_Production","Value":"0","Description":"Watt"},{"Topic":"TOP41","Name":"DHW_Energy_Consumption","Value":"0","Description":"Watt"},{"Topic":"TOP42","Name":"Z1_Water_Target_Temp","Value":"29","Description":"°C"},{"Topic":"TOP43","Name":"Z2_Water_Target_Temp","Value":"35","Description":"°C"},{"Topic":"TOP44","Name":"Error","Value":"No error","Description":"Error"},{"Topic":"TOP45","Name":"Room_Holiday_Shift_Temp","Value":"-15","Description":"K"},{"Topic":"TOP46","Name":"Buffer_Temp","Value":"-78","Description":"°C"},{"Topic":"TOP47","Name":"Solar_Temp","Value":"-78","Description":"°C"},{"Topic":"TOP48","Name":"Pool_Temp","Value":"-78","Description":"°C"},{"Topic":"TOP49","Name":"Main_Hex_Outlet_Temp","Value":"25","Description":"°C"},{"Topic":"TOP50","Name":"Discharge_Temp","Value":"24","Description":"°C"},{"Topic":"TOP51","Name":"Inside_Pipe_Temp","Value":"22","Description":"°C"},{"Topic":"TOP52","Name":"Defrost_Temp","Value":"-31","Description":"°C"},{"Topic":"TOP53","Name":"Eva_Outlet_Temp","Value":"-1","Description":"°C"},{"Topic":"TOP54","Name":"Bypass_Outlet_Temp","Value":"-31","Description":"°C"},{"Topic":"TOP55","Name":"Ipm_Temp","Value":"23","Description":"°C"},{"Topic":"TOP56","Name":"Z1_Temp","Value":"25","Description":"°C"},{"Topic":"TOP57","Name":"Z2_Temp","Value":"-128","Description":"°C"},{"Topic":"TOP58","Name":"DHW_Heater_State","Value":"0","Description":"Blocked"},{"Topic":"TOP59","Name":"Room_Heater_State","Value":"0","Description":"Blocked"},{"Topic":"TOP60","Name":"Internal_Heater_State","Value":"0","Description":"Inactive"},{"Topic":"TOP61","Name":"External_Heater_State","Value":"0","Description":"Inactive"},{"Topic":"TOP62","Name":"Fan1_Motor_Speed","Value":"200","Description":"r/min"},{"Topic":"TOP63","Name":"Fan2_Motor_Speed","Value":"0","Description":"r/min"},{"Topic":"TOP64","Name":"High_Pressure","Value":"16.4","Description":"Kgf/cm2"},{"Topic":"TOP65","Name":"Pump_Speed","Value":"2050","Description":"r/min"},{"Topic":"TOP66","Name":"Low_Pressure","Value":"0","Description":"Kgf/cm2"},{"Topic":"TOP67","Name":"Compressor_Current","Value":"2.2","Description":"Ampere"},{"Topic":"TOP68","Name":"Force_Heater_State","Value":"0","Description":"Inactive"},{"Topic":"TOP69","Name":"Sterilization_State","Value":"0","Description":"Inactive"},{"Topic":"TOP70","Name":"Sterilization_Temp","Value":"60","Description":"°C"},{"Topic":"TOP71","Name":"Sterilization_Max_Time","Value":"10","Description":"Minutes"},{"Topic":"TOP72","Name":"Z1_Cool_Curve_Target_High_Temp","Value":"15","Description":"°C"},{"Topic":"TOP73","Name":"Z1_Cool_Curve_Target_Low_Temp","Value":"10","Description":"°C"},{"Topic":"TOP74","Name":"Z1_Cool_Curve_Outside_High_Temp","Value":"30","Description":"°C"},{"Topic":"TOP75","Name":"Z1_Cool_Curve_Outside_Low_Temp","Value":"20","Description":"°C"},{"Topic":"TOP76","Name":"Heating_Mode","Value":"1","Description":"Direct"},{"Topic":"TOP77","Name":"Heating_Off_Outdoor_Temp","Value":"10","Description":"°C"},{"Topic":"TOP78","Name":"Heater_On_Outdoor_Temp","Value":"0","Description":"°C"},{"Topic":"TOP79","Name":"Heat_To_Cool_Temp","Value":"15","Description":"°C"},{"Topic":"TOP80","Name":"Cool_To_Heat_Temp","Value":"10","Description":"°C"},{"Topic":"TOP81","Name":"Cooling_Mode","Value":"0","Description":"Comp. Curve"},{"Topic":"TOP82","Name":"Z2_Heat_Curve_Target_High_Temp","Value":"35","Description":"°C"},{"Topic":"TOP83","Name":"Z2_Heat_Curve_Target_Low_Temp","Value":"35","Description":"°C"},{"Topic":"TOP84","Name":"Z2_Heat_Curve_Outside_High_Temp","Value":"15","Description":"°C"},{"Topic":"TOP85","Name":"Z2_Heat_Curve_Outside_Low_Temp","Value":"-5","Description":"°C"},{"Topic":"TOP86","Name":"Z2_Cool_Curve_Target_High_Temp","Value":"15","Description":"°C"},{"Topic":"TOP87","Name":"Z2_Cool_Curve_Target_Low_Temp","Value":"10","Description":"°C"},{"Topic":"TOP88","Name":"Z2_Cool_Curve_Outside_High_Temp","Value":"30","Description":"°C"},{"Topic":"TOP89","Name":"Z2_Cool_Curve_Outside_Low_Temp","Value":"20","Description":"°C"},{"Topic":"TOP90","Name":"Room_Heater_Operations_Hours","Value":"0","Description":"hours"},{"Topic":"TOP91","Name":"DHW_Heater_Operations_Hours","Value":"0","Description":"hours"},{"Topic":"TOP92","Name":"Heat_Pump_Model","Value":"28","Description":"WH-MDC05J3E5"},{"Topic":"TOP93","Name":"Pump_Duty","Value":"95","Description":"Duty"},{"Topic":"TOP94","Name":"Zones_State","Value":"0","Description":"Zone1 active"},{"Topic":"TOP95","Name":"Max_Pump_Duty","Value":"254","Description":"Duty"},{"Topic":"TOP96","Name":"Heater_Delay_Time","Value":"60","Description":"Minutes"},{"Topic":"TOP97","Name":"Heater_Start_Delta","Value":"-4","Description":"K"},{"Topic":"TOP98","Name":"Heater_Stop_Delta","Value":"-2","Description":"K"},{"Topic":"TOP99","Name":"Buffer_Installed","Value":"0","Description":"Disabled"},{"Topic":"TOP100","Name":"DHW_Installed","Value":"1","Description":"Enabled"},{"Topic":"TOP101","Name":"Solar_Mode","Value":"0","Description":"Disabled"},{"Topic":"TOP102","Name":"Solar_On_Delta","Value":"10","Description":"K"},{"Topic":"TOP103","Name":"Solar_Off_Delta","Value":"5","Description":"K"},{"Topic":"TOP104","Name":"Solar_Frost_Protection","Value":"5","Description":"°C"},{"Topic":"TOP105","Name":"Solar_High_Limit","Value":"80","Description":"°C"},{"Topic":"TOP106","Name":"Pump_Flowrate_Mode","Value":"0","Description":"DeltaT"},{"Topic":"TOP107","Name":"Liquid_Type","Value":"0","Description":"Water"},{"Topic":"TOP108","Name":"Alt_External_Sensor","Value":"0","Description":"Disabled"},{"Topic":"TOP109","Name":"Anti_Freeze_Mode","Value":"1","Description":"Enabled"},{"Topic":"TOP110","Name":"Optional_PCB","Value":"0","Description":"Disabled"},{"Topic":"TOP111","Name":"Z1_Sensor_Settings","Value":"0","Description":"Water Temperature"},{"Topic":"TOP112","Name":"Z2_Sensor_Settings","Value":"0","Description":"Water Temperature"},{"Topic":"TOP113","Name":"Buffer_Tank_Delta","Value":"5","Description":"K"},{"Topic":"TOP114","Name":"External_Pad_Heater","Value":"0","Description":"Disabled"}],"1wire":[],"s0":[{"S0 port":"1","Watt":"0","Watthour":"0","WatthourTotal":"334","PulseQuality":"14","AvgPulseWidth":"0"},{"S0 port":"2","Watt":"485","Watthour":"1328","WatthourTotal":"38945","PulseQuality":"97","AvgPulseWidth":"91"}]}



RE: JSON Abfrage - rjud - 05.03.2023

alles klar, setze mal als "Request On" folgende Abfrage:
http://192.168.178.113/json?topic=TOP0&name=Heatpump_State
(Vorher auch evtl. am PC, hier müsstest Du dann als Antwort den Value Wert erhalten).
Wenn Du nur http://192.168.178.113/json verwendest wird das gesamte Array abgefragt.


Als "Request off" sprich Paramter muss dann noch bestimmt werden, was Du abfragen möchtest.
In diesen Fall die Value, also versuche es mal mit JSON@Value


RE: JSON Abfrage - MarcDerSeemann - 06.03.2023

Hab ich gerade mal probiert.
Leider verkürzt sich die Antwort vom Server nicht, bei dem Link kommt trotzdem das gesamte Array bei raus.
Meine versuche auf MQTT auszuweichen sind bisher auch nicht von Erfolg gekrönt.


RE: JSON Abfrage - MarcDerSeemann - 07.03.2023

Guten Morgen,

nach Tagen/Stunden des probierens gebe ich bei der API auf, ich schaffe es nicht den String vorzusortieren.

Leider sind meine Erfolge via MQTT auch bei NULL.

HTTP Statuscode ist 56 (anstatt der 200) 
In Node Red bekomme ich die Werte unter dieser Adresse ausgelesen, alles hinter 1883 ist das Topic. Als request off habe ich JSON@value und alles andere mögliche probiert.

192.168.178.115:1883/panasonic_heat_pump/main/DHW_Temp


Was mache ich den hier falsch?
Gruß


RE: JSON Abfrage - MarcDerSeemann - 08.03.2023

Tag 3 des rumprobierens, so langsam macht es kein Spaß mehr wenn es gar keine Erfolgserlebnisse gibt.

Ich habe das Tutorial "Tutorial - Shelly via MQTT und NodeRed anbinden" durchgearbeitet und habe es geschafft aus MQTT ein HTTP request zu generieren.

Im Browser kann ich die Daten ablesen, der Status ist 200. Ich habe den Input dann entweder in einer Logik oder direkt als Warmwassertemperatur unter unter H/K Speicher eingelesen.
Leider bleibt in beiden Fällen der Wert bei NULL.
Das die Warmwassertemepratur jetzt nicht z.B. Power_40a heißt ist erstmal unerheblich, nichtsdestotrotz werden die Daten nicht verarbeitet oder werden nicht bie JSON gefiltert.

So langsam gehen mir die Ideen aus.

Um die Verwirrung jetzt noch ein bischen zu erhöhen funktioniert jetzt 1 von 3 JSON abfragen, alles copy & paste aber nur einmal einen Wert.