NEWS
[Gelöst] Diverse Werte aus einem Objekt auslesen
-
@paul53 Ok Danke schön aber ich denke das ich auf denn richtigen weg bin dank deiner Grossen Hielfe,
-
@kratzsch Kleiner Tip: Den MQTT Adapter kurz anhalten und neu starten. Dann sollte der Datenpunkt neu geschrieben werden.
-
@Chaot Leider immer noch nicht geklappt.Muss für die Zeile 1 auch ein datenpunkt erstellt werden.
-
-
@paul53 sagte in [Gelöst] Diverse Werte aus einem Objekt auslesen:
var json = "mqtt.0.boiler_data";
Verstehe ich jetzt auch nicht warum das ohne Ordnerstruktur da liegt, aber du hast Recht!
-
@Chaot Hallo
Einmal hat es geklappt und der Wert wurde geladen aber leider nur einmal.Hier der Log Eintrag.``
code_2020-11-23 20:05:23.744 - [32minfo[39m: history.0 (799) enabled logging of 0_userdata.0.Heizung.outdoorTemp, Alias=false
text -
@kratzsch Möchte mich nochmal für die Hilfe bedanken.
Hatte noch einen Schrieb Fehler jetzt geht es.``` -
@kratzsch ```
Hallo habe wieder einmal ein Problem die Boiler Daten und Solar Daten vom Mqtt Adapter werden einzeln ausgegeben.
Nur bei den Thermostat Daten klppt das nicht.
Hier mein Skriptvar json = "mqtt.0.thermostat_data"/*thermostatData*/; var currtemp = "0_userdata.0.Heizung.currtemp"/*currtemp*/; on(json, function(dp) { var obj = JSON.parse(dp.state.val); setState(currtemp, parseFloat(obj.currtemp)); });
16:02:34.539 info javascript.0 (29772) Stop script script.js.thermostat_data
16:02:34.740 info javascript.0 (29772) Start javascript script.js.thermostat_data
16:02:34.746 info javascript.0 (29772) script.js.thermostat_data: subscribe: {"pattern":{"id":"mqtt.0.thermostat_data","change":"ne","q":0},"name":"script.js.thermostat_data"}
16:02:34.746 info javascript.0 (29772) script.js.thermostat_data: registered 1 subscription and 0 schedulesVielicht kannst du meinen Fehler finden.
Vielen Dank im voraus. -
@kratzsch
Welche Version vom EMS-ESP verwendest du?
Ich verwende die Version 2.2.0 und bei der liegt die "currtemp" untermqtt.0.thermostat_data_hc1
Schau mal in deine Objekte. Vielleicht betrifft das dich ja auch.
-
@paul53
Hallo habe wieder einmal ein Problem die Boiler Daten und Solar Daten vom Mqtt Adapter werden einzeln ausgegeben.
Nur bei den Thermostat Daten klppt das nicht.
Hier mein Skript```
var json = "mqtt.0.thermostat_data"/thermostatData/;
var currtemp = "0_userdata.0.Heizung.currtemp"/currtemp/;on(json, function(dp) {
var obj = JSON.parse(dp.state.val);
setState(currtemp, parseFloat(obj.currtemp));});
1.1.2021, 19:36:30.167 [info ]: javascript.0 (29772) script.js.thermostat_data: setForeignState(id=0_userdata.0.Heizung.currtemp, state={"val":null,"ack":false,"c":"script.js.thermostat_data"}) 1.1.2021, 19:36:47.383 [info ]: javascript.0 (29772) Stop script script.js.thermostat_data 1.1.2021, 19:36:47.443 [info ]: javascript.0 (29772) Start javascript script.js.thermostat_data 1.1.2021, 19:36:47.467 [info ]: javascript.0 (29772) script.js.thermostat_data: subscribe: {"pattern":{"id":"mqtt.0.thermostat_data","change":"ne","q":0},"name":"script.js.thermostat_data"} 1.1.2021, 19:36:47.469 [info ]: javascript.0 (29772) script.js.thermostat_data: registered 1 subscription and 0 schedules Vielleicht kannst du einen Fehler finden. Vielen Dank im voraus.
so sieht das bei mir aus ``` mqtt.0#13 info#1 channel Information channel boiler_data state ems-esp/boiler_data state variable {"heatingActive":"off","tapwaterActive":"off","wWComfort":"Hot","wWSelTemp":60,"wWSetTemp":60,"wWDisinfectionTemp":70,"selFlowTemp":35,"selBurnPow":100,"curBurnPow":0,"pumpMod":100,"wWType":"buffer","wWChargeType":"charge pump","wWCircPump":"on","wWCircPumpMode":"continuous","wWCirc":"on","outdoorTemp":3.6,"wWCurTemp":58.4,"wWCurFlow":0,"curFlowTemp":32.9,"boilTemp":32.7,"wwStorageTemp1":58.4,"wWActivated":"on","wWOneTime":"off","wWDisinfecting":"off","wWCharging":"off","wWRecharging":"off","wWTempOK":"on","wWActive":"off","burnGas":"off","flameCurr":0,"heatPump":"on","fanWork":"off","ignWork":"off","wWHeat":"off","heatingActivated":"on","heatingTemp":49,"pumpModMax":100,"pumpModMin":100,"pumpDelay":7,"burnMinPeriod":10,"burnMinPower":0,"burnMaxPower":100,"boilHystOn":-6,"boilHystOff":6,"wWStarts":13321,"wWWorkM":66400,"UBAuptime":6606220,"burnStarts":114015,"burnWorkMin":397815,"heatWorkMin":331618,"serviceCode":"0Y","serviceCodeNumber":0} heating_active state ems-esp/heating_active state variable off hp_data state ems-esp/hp_data state variable mixing_data state ems-esp/mixing_data state variable sensor_data state ems-esp/sensor_data state variable solar_data state ems-esp/solar_data state variable {"collectorTemp":2.4,"tankBottomTemp":18.1,"solarPumpModulation":0,"solarPump":"off","pumpWorkMin":251591936} status state ems-esp/status state variable online tapwater_active state ems-esp/tapwater_active state variable off thermostat state ems-esp/thermostat state variable {"cmd":"temp" ,"data":22.5, "hc":1} thermostat_data state ems-esp/thermostat_data state variable {"time":"19:54:09 01/01/2021","errorcode":"(0)","display":"internal temperature","language":"German","offsetclock":0,"dampedtemp":3,"intoffset":0,"minexttemp":-10,"building":"medium","wwmode":"auto","wwcircmode":"auto","hc1":{"seltemp":23,"currtemp":24.2,"daytemp":23,"nighttemp":14.5,"holidaytemp":17,"nofrosttemp":248,"heatingtype":1,"targetflowtemp":35,"offsettemp":0,"designtemp":40,"roominfluence":1,"summertemp":18,"mode":"auto","modetype":"day"}} ``` {"time":"19:57:10 01/01/2021","errorcode":"(0)","display":"internal temperature","language":"German","offsetclock":0,"dampedtemp":3,"intoffset":0,"minexttemp":-10,"building":"medium","wwmode":"auto","wwcircmode":"auto","hc1":{"seltemp":23,"currtemp":24.2,"daytemp":23,"nighttemp":14.5,"holidaytemp":17,"nofrosttemp":248,"heatingtype":1,"targetflowtemp":35,"offsettemp":0,"designtemp":40,"roominfluence":1,"summertemp":18,"mode":"auto","modetype":"day"}} ``` ``` ``` ``` ``` ```
-
@kratzsch sagte:
setState(currtemp, parseFloat(obj.currtemp));
Versuche es mal mit
setState(currtemp, obj.hc1.currtemp, true);
-
@paul53 Vielen Dank hat sofort geklappt.
-
@kratzsch Ah, das ist der Datenpunkt der in der neuen Firmware separat herausgeführt wurde.
Ich habe die Themostatdaten nie verwendet und auch nicht darauf geachtet wie deren json aussieht.Kannst du dir gleich vormerken das beim Update des ESP die Daten dann unter einem neuen Datenpunkt ( thermostat_data_hc1) liegen.