korstreinhold
Nieuwe gebruiker
- Lid geworden
- 11 mrt 2015
- Berichten
- 3
Ik ben al een tijdje bezig met en project en ik zit hopeloos vast, ik weet ook niet of ik met mijn vraag hier goed zit.
Ik heb thuis een Homewizard die ik kan uitlezen met http//ipadres : poort/wachtwoord/get-sensors hierbij krijg ik een overzicht van mijn sensoren en schakelaars die via de homewizard zijn aangesloten. het bestand ziet er dan als volgt uit.
{"status": "ok", "version": "2.841", "request": {"route": "/get-sensors" }, "response": {"switches" : [{"id":0,"name":"Lampen Raam V","type":"switch","status":"off","favorite":"no"},{"id":1,"name":"Rolluik voor","type":"asun","mode":0,"favorite":"no"},{"id":2,"name":"Rolluik achter","type":"asun","mode":0,"favorite":"no"},{"id":3,"name":"Terras scherm","type":"asun","mode":0,"favorite":"no"},{"id":4,"name":"Buiten lampen","type":"switch","status":"off","favorite":"no"},{"id":5,"name":"Lampen vijver","type":"switch","status":"off","favorite":"no"},{"id":6,"name":"Vijver filter","type":"switch","status":"on","favorite":"no"},{"id":7,"name":"Wii","type":"switch","status":"off","favorite":"no"},{"id":8,"name":"Vloerverwarming","type":"switch","status":"on","favorite":"no"},{"id":9,"name":"Keuken","type":"switch","status":"off","favorite":"no"},{"id":10,"name":"Keuken dim","type":"dimmer","status":"off","dimlevel":0,"favorite":"no"},{"id":11,"name":"Lampen TV","type":"switch","status":"on","favorite":"no"},{"id":12,"name":"Tafel","type":"switch","status":"off","favorite":"no"},{"id":13,"name":"Voor thuis","type":"switch","status":"off","favorite":"no"},{"id":14,"name":"Achter thuis","type":"switch","status":"off","favorite":"no"},{"id":15,"name":"Lamp muur V","type":"switch","status":"off","favorite":"no"},{"id":16,"name":"Lamp muur A","type":"switch","status":"off","favorite":"no"},{"id":17,"name":"Lamp bank","type":"switch","status":"off","favorite":"no"},{"id":18,"name":"Lampen Raam A","type":"switch","status":"off","favorite":"no"},{"id":19,"name":"Laptop Gea","type":"switch","status":"on","favorite":"no"},{"id":20,"name":"Laptop Rein","type":"switch","status":"off","favorite":"no"},{"id":21,"name":"WC","type":"radiator","tte":18.0,"favorite":"no"},{"id":22,"name":"Hal","type":"radiator","tte":18.0,"favorite":"no"},{"id":23,"name":"Douche","type":"radiator","tte":16.0,"favorite":"no"},{"id":24,"name":"Zolder","type":"radiator","tte":15.0,"favorite":"no"},{"id":25,"name":"Kerst boom","type":"switch","status":"off","favorite":"no"},{"id":26,"name":"Voordeur ","type":"loxx","lock":"closed","door":"closed","timestamp":"19:34","mode":"day","favorite":"no"}],"uvmeters":[],"windmeters":[{"id":5,"name":"Wind","model":0,"unit":0,"ws":0.0,"dir":"ESE 112","gu":0.0,"wc":2.3,"te":2.3,"ws+":5.1,"ws+t":"15:23","ws-":0.0,"ws-t":"00:00","favorite":"no"}],"rainmeters":[{"id":4,"name":"Regen","model":0,"mm":0.0,"3h":0.0,"favorite":"no"}],"thermometers":[{"id":0,"name":"Achter thuis","channel":1,"model":0,"te":3.0,"hu":74,"te+":10.8,"te+t":"14:06","te-":-1.1,"te-t":"06:23","hu+":89,"hu+t":"06:50","hu-":57,"hu-t":"15:00","outside":"yes","favorite":"no"},{"id":1,"name":"In huis","channel":5,"model":0,"te":20.8,"hu":50,"te+":21.3,"te+t":"16:54","te-":18.7,"te-t":"04:42","hu+":53,"hu+t":"00:00","hu-":48,"hu-t":"15:53","outside":"no","favorite":"no"},{"id":2,"name":"Vloerverwarming","channel":2,"model":0,"te":27.9,"hu":43,"te+":69.6,"te+t":"06:16","te-":17.8,"te-t":"14:44","hu+":52,"hu+t":"18:24","hu-":14,"hu-t":"08:33","outside":"no","favorite":"no"},{"id":3,"name":"Boiler","channel":3,"model":0,"te":28.2,"hu":39,"te+":53.1,"te+t":"10:25","te-":23.6,"te-t":"08:30","hu+":39,"hu+t":"19:15","hu-":25,"hu-t":"09:22","outside":"no","favorite":"no"}],"weatherdisplays":[], "energymeters": [], "energylinks": [{"id":0,"favorite":"no","name":"EnergyLink","code":"468720","t1":"solar","c1":2000,"t2":"water","c2":1,"tariff":2,"s1":{"po":0,"dayTotal":7.82,"po+":1792,"po+t":"12:11","po-":0,"po-t":"00:01"},"s2":{"po":0,"dayTotal":297.00,"po+":12,"po+t":"19:12","po-":0,"po-t":"00:01"},"aggregate":{"po":530,"dayTotal":-1.25,"po+":2256,"po+t":"06:16","po-":-1576,"po-t":"12:11"},"used":{"po":530,"dayTotal":6.57,"po+":2256,"po+t":"06:16","po-":0,"po-t":"11:49"},"gas":{"lastHour":0.17,"dayTotal":6.99},"kwhindex":3.07,"wp":2550}], "heatlinks": [], "hues": [], "scenes": [], "kakusensors": [{"id":0,"name":"Voordeur bel","status":null,"type":"doorbell","favorite":"no","timestamp":"17:10","cameraid":null},{"id":1,"name":"Voordeur","status":"yes","type":"contact","favorite":"no","timestamp":"06:53","cameraid":null},{"id":2,"name":"Schuurdeur","status":"no","type":"contact","favorite":"no","timestamp":"18:59","cameraid":null},{"id":3,"name":"Rookmelders","status":null,"type":"smoke","favorite":"no","timestamp":"00:00","cameraid":null},{"id":4,"name":"Achter thuis","status":"no","type":"motion","favorite":"no","timestamp":"19:02","cameraid":null},{"id":5,"name":"Achterdeur","status":"no","type":"contact","favorite":"no","timestamp":"19:05","cameraid":null}], "cameras": []}}
Nu heb ik in tasker een taak gemaakt die dit uitleest en het in een text bestand zet en deze noem ik HW_DATA.
Nu heb ik een script die dit bestand weer uitleest en een gedeelte uit leest en het in verschillende variables zet een voor beeld is.
var jsondata = eval('(' + jsondatastr + ')');
var status = jsondata.response. kakusensors[id=hwsensor].status;
var timestamp = jsondata.response. kakusensors[id=hwsensor].timestamp;
setGlobal('HW_SENSOR_STATUS', status);
setGlobal('HW_SENSOR_TIME', timestamp);
en het volgende:
var jsondatastr = global('HW_DATA');
var thermometer = global('HW_THERMOMETER');
var jsondata = eval('(' + jsondatastr + ')');
var temperature = jsondata.response.thermometers[id=thermometer].te;
setGlobal('HW_TEMPERATURE', temperature);
hierboven 2 voorbeelden zoals ik deze heb en dit werkt zeer goed ik krijg verschillende variables terug zoals
HW_TEMPERATURE
HW_SENSOR_TIME
HW_SENSOR_STATUS
Wat nu mijn vraag is is dat het grootste gedeelte me lukt maar er is 1 stuk uit het HW_DATA bestand wat mij niet wil lukken en dat is het volgende.
EnergyLink","code":"468720","t1":"solar","c1":2000,"t2":"water","c2":1,"tariff":2,"s1":{"po":0,"dayTotal":7.82,"po+":1792,"po+t":"12:11","po-":0,"po-t":"00:01"},"s2":{"po":0,"dayTotal":297.00,"po+":12,"po+t":"19:12","po-":0,"po-t":"00:01"},"aggregate":{"po":530,"dayTotal":-1.25,"po+":2256,"po+t":"06:16","po-":-1576,"po-t":"12:11"},"used":{"po":530,"dayTotal":6.57,"po+":2256,"po+t":"06:16","po-":0,"po-t":"11:49"},"gas":{"lastHour":0.17,"dayTotal":6.99},"kwhindex":3.07,"wp":2550}],
Ik wil hier uitlezen en omzetten naar een variable s1 daytotaal, s2 daytotaal, aggregate daytotaal, used Daytotaal, gas daytotaal.
het is een lang verhaal en ik hoop dat er iemand is die me in de goede richting kan wijzen.
Ik heb thuis een Homewizard die ik kan uitlezen met http//ipadres : poort/wachtwoord/get-sensors hierbij krijg ik een overzicht van mijn sensoren en schakelaars die via de homewizard zijn aangesloten. het bestand ziet er dan als volgt uit.
{"status": "ok", "version": "2.841", "request": {"route": "/get-sensors" }, "response": {"switches" : [{"id":0,"name":"Lampen Raam V","type":"switch","status":"off","favorite":"no"},{"id":1,"name":"Rolluik voor","type":"asun","mode":0,"favorite":"no"},{"id":2,"name":"Rolluik achter","type":"asun","mode":0,"favorite":"no"},{"id":3,"name":"Terras scherm","type":"asun","mode":0,"favorite":"no"},{"id":4,"name":"Buiten lampen","type":"switch","status":"off","favorite":"no"},{"id":5,"name":"Lampen vijver","type":"switch","status":"off","favorite":"no"},{"id":6,"name":"Vijver filter","type":"switch","status":"on","favorite":"no"},{"id":7,"name":"Wii","type":"switch","status":"off","favorite":"no"},{"id":8,"name":"Vloerverwarming","type":"switch","status":"on","favorite":"no"},{"id":9,"name":"Keuken","type":"switch","status":"off","favorite":"no"},{"id":10,"name":"Keuken dim","type":"dimmer","status":"off","dimlevel":0,"favorite":"no"},{"id":11,"name":"Lampen TV","type":"switch","status":"on","favorite":"no"},{"id":12,"name":"Tafel","type":"switch","status":"off","favorite":"no"},{"id":13,"name":"Voor thuis","type":"switch","status":"off","favorite":"no"},{"id":14,"name":"Achter thuis","type":"switch","status":"off","favorite":"no"},{"id":15,"name":"Lamp muur V","type":"switch","status":"off","favorite":"no"},{"id":16,"name":"Lamp muur A","type":"switch","status":"off","favorite":"no"},{"id":17,"name":"Lamp bank","type":"switch","status":"off","favorite":"no"},{"id":18,"name":"Lampen Raam A","type":"switch","status":"off","favorite":"no"},{"id":19,"name":"Laptop Gea","type":"switch","status":"on","favorite":"no"},{"id":20,"name":"Laptop Rein","type":"switch","status":"off","favorite":"no"},{"id":21,"name":"WC","type":"radiator","tte":18.0,"favorite":"no"},{"id":22,"name":"Hal","type":"radiator","tte":18.0,"favorite":"no"},{"id":23,"name":"Douche","type":"radiator","tte":16.0,"favorite":"no"},{"id":24,"name":"Zolder","type":"radiator","tte":15.0,"favorite":"no"},{"id":25,"name":"Kerst boom","type":"switch","status":"off","favorite":"no"},{"id":26,"name":"Voordeur ","type":"loxx","lock":"closed","door":"closed","timestamp":"19:34","mode":"day","favorite":"no"}],"uvmeters":[],"windmeters":[{"id":5,"name":"Wind","model":0,"unit":0,"ws":0.0,"dir":"ESE 112","gu":0.0,"wc":2.3,"te":2.3,"ws+":5.1,"ws+t":"15:23","ws-":0.0,"ws-t":"00:00","favorite":"no"}],"rainmeters":[{"id":4,"name":"Regen","model":0,"mm":0.0,"3h":0.0,"favorite":"no"}],"thermometers":[{"id":0,"name":"Achter thuis","channel":1,"model":0,"te":3.0,"hu":74,"te+":10.8,"te+t":"14:06","te-":-1.1,"te-t":"06:23","hu+":89,"hu+t":"06:50","hu-":57,"hu-t":"15:00","outside":"yes","favorite":"no"},{"id":1,"name":"In huis","channel":5,"model":0,"te":20.8,"hu":50,"te+":21.3,"te+t":"16:54","te-":18.7,"te-t":"04:42","hu+":53,"hu+t":"00:00","hu-":48,"hu-t":"15:53","outside":"no","favorite":"no"},{"id":2,"name":"Vloerverwarming","channel":2,"model":0,"te":27.9,"hu":43,"te+":69.6,"te+t":"06:16","te-":17.8,"te-t":"14:44","hu+":52,"hu+t":"18:24","hu-":14,"hu-t":"08:33","outside":"no","favorite":"no"},{"id":3,"name":"Boiler","channel":3,"model":0,"te":28.2,"hu":39,"te+":53.1,"te+t":"10:25","te-":23.6,"te-t":"08:30","hu+":39,"hu+t":"19:15","hu-":25,"hu-t":"09:22","outside":"no","favorite":"no"}],"weatherdisplays":[], "energymeters": [], "energylinks": [{"id":0,"favorite":"no","name":"EnergyLink","code":"468720","t1":"solar","c1":2000,"t2":"water","c2":1,"tariff":2,"s1":{"po":0,"dayTotal":7.82,"po+":1792,"po+t":"12:11","po-":0,"po-t":"00:01"},"s2":{"po":0,"dayTotal":297.00,"po+":12,"po+t":"19:12","po-":0,"po-t":"00:01"},"aggregate":{"po":530,"dayTotal":-1.25,"po+":2256,"po+t":"06:16","po-":-1576,"po-t":"12:11"},"used":{"po":530,"dayTotal":6.57,"po+":2256,"po+t":"06:16","po-":0,"po-t":"11:49"},"gas":{"lastHour":0.17,"dayTotal":6.99},"kwhindex":3.07,"wp":2550}], "heatlinks": [], "hues": [], "scenes": [], "kakusensors": [{"id":0,"name":"Voordeur bel","status":null,"type":"doorbell","favorite":"no","timestamp":"17:10","cameraid":null},{"id":1,"name":"Voordeur","status":"yes","type":"contact","favorite":"no","timestamp":"06:53","cameraid":null},{"id":2,"name":"Schuurdeur","status":"no","type":"contact","favorite":"no","timestamp":"18:59","cameraid":null},{"id":3,"name":"Rookmelders","status":null,"type":"smoke","favorite":"no","timestamp":"00:00","cameraid":null},{"id":4,"name":"Achter thuis","status":"no","type":"motion","favorite":"no","timestamp":"19:02","cameraid":null},{"id":5,"name":"Achterdeur","status":"no","type":"contact","favorite":"no","timestamp":"19:05","cameraid":null}], "cameras": []}}
Nu heb ik in tasker een taak gemaakt die dit uitleest en het in een text bestand zet en deze noem ik HW_DATA.
Nu heb ik een script die dit bestand weer uitleest en een gedeelte uit leest en het in verschillende variables zet een voor beeld is.
var jsondata = eval('(' + jsondatastr + ')');
var status = jsondata.response. kakusensors[id=hwsensor].status;
var timestamp = jsondata.response. kakusensors[id=hwsensor].timestamp;
setGlobal('HW_SENSOR_STATUS', status);
setGlobal('HW_SENSOR_TIME', timestamp);
en het volgende:
var jsondatastr = global('HW_DATA');
var thermometer = global('HW_THERMOMETER');
var jsondata = eval('(' + jsondatastr + ')');
var temperature = jsondata.response.thermometers[id=thermometer].te;
setGlobal('HW_TEMPERATURE', temperature);
hierboven 2 voorbeelden zoals ik deze heb en dit werkt zeer goed ik krijg verschillende variables terug zoals
HW_TEMPERATURE
HW_SENSOR_TIME
HW_SENSOR_STATUS
Wat nu mijn vraag is is dat het grootste gedeelte me lukt maar er is 1 stuk uit het HW_DATA bestand wat mij niet wil lukken en dat is het volgende.
EnergyLink","code":"468720","t1":"solar","c1":2000,"t2":"water","c2":1,"tariff":2,"s1":{"po":0,"dayTotal":7.82,"po+":1792,"po+t":"12:11","po-":0,"po-t":"00:01"},"s2":{"po":0,"dayTotal":297.00,"po+":12,"po+t":"19:12","po-":0,"po-t":"00:01"},"aggregate":{"po":530,"dayTotal":-1.25,"po+":2256,"po+t":"06:16","po-":-1576,"po-t":"12:11"},"used":{"po":530,"dayTotal":6.57,"po+":2256,"po+t":"06:16","po-":0,"po-t":"11:49"},"gas":{"lastHour":0.17,"dayTotal":6.99},"kwhindex":3.07,"wp":2550}],
Ik wil hier uitlezen en omzetten naar een variable s1 daytotaal, s2 daytotaal, aggregate daytotaal, used Daytotaal, gas daytotaal.
het is een lang verhaal en ik hoop dat er iemand is die me in de goede richting kan wijzen.
Laatst bewerkt: