NEWS
Erstellen/Setzen Datenpunkt aus JSON in eigener Funktion
-
Hallo,
ich würde gerne meine Beregnung über ioBroker steuern, zumindest mal die Werte anzeigen lassen.
Per Request und API-Key komme ich an die JSON dran, müsste aber dann prüfen, ob der Datenpunkt existiert, ggf anlegen und dann befüllen.
Als absoluter Anfänger in Javascript komme ich leider nicht damit klar, wie ich z.B. die JSON-Daten aus einer Funktion übergebe. Mit return klappts wohl zeitlich nicht, mit callback hat es auch nicht hingehauen (Ausgabe: [object Object]).Am liebsten hätte ich eine Funktion, die mir die Daten abruft (request).
Und eine andere, die prüft, ob es den DP schon gibt, ggf anlegt und den Wert reinsetzt.
D.h. an letztere müsste ich mindestens dpname, dptype und dpvalue übergeben.Der Aufruf sollte dann ähnlich dem aussehen:
setBeregnungDP("watering_time", "string", obj.watering_time);
Leider hat es bisher nur zu dem gereicht:
var apiurl = "https://app.hydrawise.com/api/v1/statusschedule.php?api_key=" + apikey + "&tag=hydrawise_all"; function getHydraData() { var request = require('request'); request(apiurl, function (error, response, body) { if (!error && response.statusCode == 200) { var obj = JSON.parse(body); setState('javascript.0.hydrawise.watering_time', obj.watering_time); } else { log("Error = " + error); } }); } getHydraData();
Ich hätte sehr gerne das hier genommen:
https://forum.iobroker.net/topic/13018/json-werte-in-datenpunkte/5
aber auf meine Sache angepasst springt er immer nachelse{console.warn('Response in JSON nicht gefunden ! ')}
Kann mir jemand Hilfestellung geben, wie so etwas sauber und übersichtlich gelöst werden kann?
Optimal wäre natürlich eine Schleife um alle möglichen Datenpunkte abzuklappern...Viele Grüße,
Andreas