NEWS
JS Variable einlesen
-
@AlexAtHome ich persönlich stehe mit JSON auf "kriegsfuss" - ich persönlich mache das immer mit einem html formatierten string - den kann man auch gut mit concat erstellen - diesen schreibe ich in einen string-datenpunkt (samt css-formatierung, die im vis definiert ist) - dannach zeige ich den Datenpunkt als htmlwidget in der vis an)
so entstand z.b diese view: das sind alles datenpunkte, die in den scripts (teilweise blockly oder linux-bash-scripts) erzeugt werden

WOW!
Ich taste mich derzeit sukzessive zu komplexeren Problemstellungen vor, und bin schon sehr stolz, dass mein JSON als Tabelle jetzt in der VIS angezeigt wird :-D
Kann gut sein, dass ich das später dann nochmal umbaue. Klar, als HTML/CSS kann ich sicher besser formatieren.Wenn ich fertig bin, poste ich mein Script hier, wie Du vorgeschlagen hast. Denn stimmt absolut, davon profitieren vielleicht ja andere :-) (wie ich selbst auch schon oft...)
-
WOW!
Ich taste mich derzeit sukzessive zu komplexeren Problemstellungen vor, und bin schon sehr stolz, dass mein JSON als Tabelle jetzt in der VIS angezeigt wird :-D
Kann gut sein, dass ich das später dann nochmal umbaue. Klar, als HTML/CSS kann ich sicher besser formatieren.Wenn ich fertig bin, poste ich mein Script hier, wie Du vorgeschlagen hast. Denn stimmt absolut, davon profitieren vielleicht ja andere :-) (wie ich selbst auch schon oft...)
ja die ersten erfolge sind die besten - es gibt also grund zum feiern :-)
-
ja die ersten erfolge sind die besten - es gibt also grund zum feiern :-)
@liv-in-sky
Danke Dir :-)Hier nun mein fertiges Script: (der Urpsprungscredit geht an @liv-in-sky , im Thread oben steht das Blockly mit dem Trigger)
var cacheSelector = $('[id=alexa2.0.Echo-Devices.*.*Alarm.*.enabled]'); //log("Ausgelesene Alarme: "); //log(cacheSelector); var count = 0; var len = 0; var weckerArray = []; var str2 = ""; var weckerOnOff = ""; cacheSelector.each(function(id, i) { count++; //log("Alarm de_aktiviert: " + id); //var weckerOnOff = getState(id).val; var str = id.substring(0,id.indexOf('enabled')-1); //log("Alarm: " + str + " ist aktiviert? " + weckerOnOff); if (id.indexOf('Music') > 0) { str2 = id.substring(0,id.indexOf('MusicAlarm')-1); } else { str2 = id.substring(0,id.indexOf('Alarm')-1); } var echoName = getObject(str2).common.name; var weckerName = getObject(str).common.name; // aktiver Alarm? if (getState(id).val) { log("Auf Gerät " + echoName + " ist Wecker " + weckerName + " aktiviert."); weckerOnOff="On"; } else { // deaktiver Alarm log("Auf Gerät " + echoName + " ist Wecker " + weckerName + " inaktiv."); weckerOnOff="Off"; } var weckerEntry = {Echo:echoName, Wecker:weckerName, OnOff:weckerOnOff}; // in len wird die neue Anzahl Elemente im Array geschrieben len = weckerArray.push(weckerEntry); log("Element " + len + " angefügt."); }); log("Insgesamt sind " + count + " Wecker definiert."); // JSON erstellen und in Datenpunkt schreiben var weckerJSON = JSON.stringify(weckerArray); setState("javascript.0.aw_sonstiges.ListeWecker", weckerJSON); log("JSON in Datenpunkt geschrieben.")In der VIS wird das derzeit ganz simpel mittels einer JSON-Tabelle angezeigt.