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?
-
Aus der Javascript Adapter Dokumentation:
logic
string
"and" or "or"
logic to combine the conditions (default: "and")
Hat jemand mal ein Beispiel für "or"?
-
Hi,
ich konnte keinen analogen Befehl für schedule finden.
Gibt es evt einen Weg um die Liste der geplanten scripte und Adapter zu erhalten?
vG Looxer