NEWS
[gelöst] Adapter Instanzen auslesen
-
Hi,
gibt es eine Möglichkeit die vorhandenen Adapter Instanzen aus zu lesen?
Bsp. Telegram.0….
Telegram.1....
Differenziert auf eben einen speziellen Adapter?
-
Eh kannst du mehr Hintergrund geben für welches Ziel ?
-
welche installiert sind
-
welche ein Script getriggert hat
Oder ?
Sent from my iPhone using Tapatalk
-
-
Also ich möchte in der Konfigoberfläche des Adapters (auf Userwunsch /Inspiration) hin, die Möglichkeit schaffen die Telegram - Nachrichten über eine bestimmte Instanz zu verschicken, die man dann dort eben in einem Dropdown oder Ähnlichem wählen kann. Sollte dies nicht gehen würde ich hier einfach ein weiteres Feld einpflegen in welchem man dann halt die Wunschinstanz eintragen muss.
-
So als Inspiration, geht bestimmt auch eleganter/besser:
//Adapter-Name zur Suche var suche = "telegram"; function logger (v) { if (getObject(v).type == 'instance') log(v.replace("system.adapter.","")); } var xid = getIdByName(suche); try { xid.forEach(logger); } catch (err) { log('nix da'); }
-
Äähhhmm … "Konfigurationsoberfläche eines Adapters"? Dann solltes es ins Forum "Entwickler" und nicht Skripten weil du willst es ja nicht in JavaScript-Adapter haben sondern im Adapter!! Das geht da gaaanz anders.
Adapter-Style kannst Du mal in anderen Adaptern schauen die sowas haben: Beispiel: https://github.com/ioBroker/ioBroker.hm ... .html#L145
-
Ups, my fault.
-
kein Problem
Wie Du im Beispiel soehst hat das "Admin-JavaScript" schon methoden für die Abfrage von Instanzen von Adaptern die man nutzen kann.
-
Beispiel: https://github.com/ioBroker/ioBroker.hm … .html#L145 `
Erstmal danke für den Link, nur irgendwie will das bei mir nicht ganz so funktionieren.
Ich verwende:````
getAdapterInstances('telegram', function (arr) {
instances = arr;
fillInstances('Telegram_instanz', arr, settings['Telegram_instanz']);
});Um die Instanzen aus zu lesen (Das sollte passten da ich im erstellten Select zwei Auswahl Optionen bekomme) Dann mache ich so weiter: ``` `function fillInstances(id, arr, val) { var $sel = $('#' + id); $sel.html('<option value="">' + _('none') + '</option>'); var _id; for (var i = 0; i < arr.length; i++) { // if (!arr[i].native) continue; _id = arr[i] //.native; $sel.append('<option value="' + _id + '" '/+/((_id="==" val)/?/selected'/:/'')="">' + _id + '</option>'); } $sel.select(); }` Das Select wird erstellt mit (keins/[Object Object]/[Object Object]), mir fehlt es wahrscheinlich schlicht und ergreiffend an Wissen um zu verstehen warum er hier Objekte ausgiebt bzw. wie ich diese "auflösen" kann, um eben dann die Instanzennummer zu bekommen. Es wäre toll wenn mir hier jemand helfen kann und noch besser mir versucht zu erklären wo der Verständnisfehler liegt. Denn das Problem sitzt vor dem Gerät :lol:[/i][/i] ```
-
Habs gefunden, hatte folgende Zeile vergessen:
`var _id = arr[i]._id.replace('system.adapter.', '');` [/i]
-
;-))
Bitte auf gelöst setzen. Danke.
Gesendet vom Handy …