Java en Tasker

Status
Niet open voor verdere reacties.

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.
 
Laatst bewerkt:
je kan het ook zien als
Code:
EnergyLink",
"code":"468720",
"t1":"solar",
"c1":2000,
"t2":"water",
"c2":1,
"tariff":2,
"s1":{"po":0,"dayT otal":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}],
denk ook aan jquery en html kan je opties bieden
 
Dit is bij kakusensoren net zo

"kakusensors":
[{"id":0,"name":"Voordeur bel","status":null,"type":"doorbell","favorite":"no","timestamp":"17:10","cameraid":null},
{"id":1,"n ame":"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","cam eraid":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,"n ame":"Achterdeur","status":"no","type":"contact","favorite":"no","timestamp":"19:05","cameraid":null }], "cameras": []}}

En daar heb ik dit voor

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);

Hierbij kijkt hij naar de kakusensors en ik kan in tasker aangeven welke id nummer hij naar moet kijken en wat de status daarvan is.
Maar bij de energylink wil het me niet lukken omdat daar meerdere zijn met hetzelde id nummer.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan