NEWS
Verständnis parser Adapter und Script
-
Hi
Ich habe hier glaube ich ein Verständnis Problem in Bezug auf den Parser Adapter und ein dazu passenden Script.
Ich kann hier eine Pumpensteuerung per json auslesen. Ergebnis:
{"modultyp":"wiffi-pump","vars":[{"name":"0","homematic_name":"wiffi_pump_ip","desc":"ip des wiffi-pump","type":"string","unit":"","value":"192.168.119.28"},{"name":"4","homematic_name":"wiffi_ntc","desc":"Temperatur_NTC","type":"number","unit":"%","value":22.54},{"name":"2","homematic_name":"wiffi_ww_temp","desc":"Temperatur_A","type":"number","unit":"gradC","value":21.3},{"name":"3","homematic_name":"wiffi_vorlauftemp","desc":"Temperatur_B","type":"number","unit":"gradC","value":21.6},{"name":"1","homematic_name":"wiffi_pump","desc":"Zirkulationspumpe","type":"boolean","unit":"","value":false}],"Systeminfo":{"MAC-Adresse":"91:b:47:e3:50:cc","Homematic_CCU_ip":"192.168.119.27","WLAN_ssid":"LAN-Solo","WLAN_Signal_dBm":-37,"sec_seit_reset":1610,"zeitpunkt":"2019-01-23 15:22:55","firmware":"wiffi_pump2_90"}}Dazu habe ich viewtopic.php?f=21&t=13812&hilit=wiffipump auch ein passendes Script gefunden, welches bei mir nun so aussieht:
var idJson = "parser.0.WiffiPump"; var state1 = "javascript.0.WiffiPump.T1"; var state2 = "javascript.0.WiffiPump.T2"; var state3 = "javascript.0.WiffiPump.T3"; var state4 = "javascript.0.WiffiPump.On"; createState(state1, {name: "T1", unit: "°C"}); createState(state2, {name: "T2", unit: "°C"}); createState(state3, {name: "T3", unit: "°C"}); createState(state4, {name: "On",}); function werteAuslesen(jsonStr) { var myJson = JSON.parse(jsonStr); var T1 = myJson.vars[1].value; var T2 = myJson.vars[2].value; var T3 = myJson.vars[3].value; var On = myJson.vars[4].value; log("wiffiPumpT1: " + T1 + "°C"); log("wiffiPumpT2: " + T2 + "°C"); log("wiffiPumpT3: " + T3 + "°C"); log("wiffiPumpOn: " + On); setState(state1, T1); setState(state2, T2); setState(state3, T3); setState(state4, On); } on({id:idJson,change:'ne'}, function (obj) { werteAuslesen(obj.state.val); });Soweit, so gut. Jedoch bin ich mir ziemlich sicher, dass ich dazu im Parser auch noch etwas konfigurieren muss ;) , einfach nur den Adapter installieren reicht ja nicht …..
Kann mir da jemand von Euch auf die Sprünge helfen? Ich habe die Frage auch im o.g. Thread schon gepostet, aber man weiss ja, wie das ist mit den alten Threads .....
PS: Die Variablen werden in den Objekten unter javascript.0.WiffiPump auch angelegt (macht ja das script), aber nicht mit "Leben" gefüllt.
-
{"modultyp":"wiffi-pump","vars":[{"name":"0","homematic_name":"wiffi_pump_ip","desc":"ip des wiffi-pump","type":"string","unit":"","value":"192.168.119.28"},{"name":"4","homematic_name":"wiffi_ntc","desc":"Temperatur_NTC","type":"number","unit":"%","value":22.54},{"name":"2","homematic_name":"wiffi_ww_temp","desc":"Temperatur_A","type":"number","unit":"gradC","value":21.3},{"name":"3","homematic_name":"wiffi_vorlauftemp","desc":"Temperatur_B","type":"number","unit":"gradC","value":21.6},{"name":"1","homematic_name":"wiffi_pump","desc":"Zirkulationspumpe","type":"boolean","unit":"","value":false}],"Systeminfo":{"MAC-Adresse":"91:b:47:e3:50:cc","Homematic_CCU_ip":"192.168.119.27","WLAN_ssid":"LAN-Solo","WLAN_Signal_dBm":-37,"sec_seit_reset":1610,"zeitpunkt":"2019-01-23 15:22:55","firmware":"wiffi_pump2_90"}} ```` `wo liegt dein JSON?
sollte hier sein:
"parser.0.WiffiPump"probier mal:
`var idJson = getState("parser.0.WiffiPump").val; function werteAuslesen() { var myJson = JSON.parse(idJson); for (i=0; i<(myJson.vars.length); i++){ log(myJson.vars[i].homematic_name + ": " + myJson.vars[i].value); } } on({id: 'javascript.0.WiffiPump.json', change: "ne"}, function (obj) { werteAuslesen(); });`[/i][/i] -
Hi Lenny
ja, liegt da, aber was genau konfiguriere ich im Parser.0.WiffiPump?
~~https://cdn.pbrd.co/images/HXNgDYW.png" />bin mir ziemlich sicher, dass meine Konfiguration falsch ist und dort einiges fehlt …...~~
-
Ich arbeite nicht mit dem parse-Adapter. Aber müsste da nicht nen Intervall angegeben werden? Der Typ müsste auch "string" sein, denke ich.
-
Ich arbeite nicht mit dem parse-Adapter. Aber müsste da nicht nen Intervall angegeben werden? Der Typ müsste auch "string" sein, denke ich. `
Das war es … Typ String ..... mal wieder zu kompliziert gedacht, ich dachte ich müsste für jeden Wert eine RegEx anlegen ....
Danke
-
Ich arbeite nicht mit dem parse-Adapter. Aber müsste da nicht nen Intervall angegeben werden? Der Typ müsste auch "string" sein, denke ich. `
Das war es … Typ String ..... mal wieder zu kompliziert gedacht, ich dachte ich müsste für jeden Wert eine RegEx anlegen ....
Danke `
super, du kannst die Daten auch im Script holen. Den Parser brauchst dann nicht. Sind 2 Zeilen mehr im Script.Im Grunde fragt der Parser-Adapter im eingestellten Intervall die eingestellte IP ab und speichert das json. Mit dem Script triggertst du auf Änderung des Datenpunkt.
Das hier sollte das Gleiche tun, ohne Parse-Adapter (kanns leider nicht testen):```
`var request = require('request');
var url = 'http://192.168.119.28/json';function abfrage() {
request(url, function (error, response, body) {
myJson = JSON.parse(body);
});
for (i=0; i<(myJson.vars.length); i++){
log(myJson.vars[i].homematic_name + ": " + myJson.vars[i].value);
// hier noch die setState Sachen rein...
// setState('javascript.0.WiffiPump.' + myJson.vars[i].homematic_name, myJson.vars[i].value, true);
}
}
schedule("*/1 * * * *", abfrage);
abfrage();` Im Grunde fragt der Parser-Adapter im eingestellten Intervall die eingestellte IP ab und speichert das json. Mit dem Script triggertst du auf Änderung des Datenpunkt.Das kannst auch in dem Script zusammen machen.[/i][/i][/i][/i]
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden