NEWS
(gelöst) Javascript Adapter getSubscriptions()
-
Ich wollte mir mit der Funktion getSubscription() die Subscriptions einer Instanz ausgeben lassen.
Kann es sein, dass in der Rückmeldung im JSON nur die Bezeichnung der Subscription ausgegeben werden und die weiteren Werte, wie "Name des Scripts", "pattern", usw. nicht?
Script zur Ausgabe aller Subscriptions in einer Javascript Instanz:
`// schreibt alle Subscriptions in ein Objekt var subscriptions = getSubscriptions(); var subscriptionCount = 0; for (var subscriptionDP in subscriptions) { for (var i = 0; i < subscriptions[subscriptionDP].length; i++) { subscriptionCount++; //log (subscriptions[subscriptionDP].length); log("Subscription: " + subscriptionDP + " # im Script: " + subscriptionDP[i].name + " # pattern: " + subscriptionDP[i].pattern,"info"); } } log("Anzahl Subscription: " + subscriptionCount); /* Ergebnis in der Form: { "megad.0.dataPointName" : [ { "name" : "script.js.NameOfScript", "pattern" : { "id" : "megad.0.dataPointName", "change" : "ne" } } ] } */` Und der letzte Teil des Ergebnisses: `~~[code]~~javascript-0 2016-03-08 22:56:46 info script.js.getSubscriptions: Anzahl Subscription: 132 javascript-0 2016-03-08 22:56:46 info script.js.getSubscriptions: Subscription: javascript.0.Anwesenheit.Micha.Anwesenheitspunkte # im Script: undefined # pattern: undefined javascript-0 2016-03-08 22:56:46 info script.js.getSubscriptions: Subscription: geofency.0.0.Auto.entry # im Script: undefined # pattern: undefined javascript-0 2016-03-08 22:56:46 info script.js.getSubscriptions: Subscription: yr.0.forecast.day0.wind_speed # im Script: undefined # pattern: undefined javascript-0 2016-03-08 22:56:46 info script.js.getSubscriptions: Subscription: sonos.0.root.172_16_130_146.volume # im Script: undefined # pattern: undefined [/code]`[/i][/i] -
Du hast ein paar Fehler drin:
`function printSubs() { var subscriptions = getSubscriptions(); var subscriptionCount = 0; for (var dp in subscriptions) { for (var i = 0; i < subscriptions[dp].length; i++) { subscriptionCount++; log("Subscription: " + dp + " # im Script: " + subscriptions[dp][i].name + " # pattern: " + JSON.stringify(subscriptions[dp][i].pattern),"info"); } } log("Anzahl Subscription: " + subscriptionCount); }`[/i][/i] -
Du hast ein paar Fehler drin: `
Danke!
Tomaten auf den Augen. Der Bereich mit .pattern war mir klar. Davor war ich wirklich blind.
Funktioniert jetzt :-)
Ergebnis (Auszug):
javascript-0 2016-03-10 04:24:27 info script.js.getSubscriptions: Anzahl Subscription: 133 javascript-0 2016-03-10 04:24:27 info script.js.getSubscriptions: Subscription: javascript.0.Synology.MemUsedPercent # im Script: script.js.Schwellwerte # pattern: {"id":"javascript.0.Synology.MemUsedPercent","logic":"and"} javascript-0 2016-03-10 04:24:27 info script.js.getSubscriptions: Subscription: yr.0.forecast.day0.wind_speed # im Script: script.js.Schwellwerte # pattern: {"id":"yr.0.forecast.day0.wind_speed","logic":"and"} javascript-0 2016-03-10 04:24:27 info script.js.getSubscriptions: Subscription: sonos.0.root.172_16_130_146.volume # im Script: script.js.Schwellwerte # pattern: {"id":"sonos.0.root.172_16_130_146.volume","logic":"and"} javascript-0 2016-03-10 04:24:27 info script.js.getSubscriptions: Subscription: sonos.0.root.172_16_130_149.volume # im Script: script.js.Schwellwerte # pattern: {"id":"sonos.0.root.172_16_130_149.volume","logic":"and"} javascript-0 2016-03-10 04:24:27 info script.js.getSubscriptions: Subscription: sonos.0.root.172_16_130_169.volume # im Script: script.js.Schwellwerte # pattern: {"id":"sonos.0.root.172_16_130_169.volume","logic":"and"}In pattern taucht gegenüber der Dokumentation
https://github.com/iobroker/ioBroker.ja … scriptions
nun noch logik auf, immer mit dem Wert "and". Welche Bedeutung hat denn logic?