[gelöst] Adapter Instanzen auslesen

Wie man einen Adapter entwickelt, oder wie man debuggen kann.
Antworten
peoples
professional
Beiträge: 561
Registriert: 19.03.2017, 13:28

[gelöst] Adapter Instanzen auslesen

Beitrag von peoples » 08.07.2018, 20:26

Hi,

gibt es eine Möglichkeit die vorhandenen Adapter Instanzen aus zu lesen?

Bsp. Telegram.0....
Telegram.1....

Differenziert auf eben einen speziellen Adapter?
Zuletzt geändert von peoples am 11.07.2018, 17:52, insgesamt 1-mal geändert.
Gruß
Steffen

Bitte keine Fragen zu Beiträgen via PN.
http://www.gidf.de

Benutzeravatar
Dutchman
guru
Beiträge: 3742
Registriert: 07.01.2016, 23:42

Re: [Frage] Adapter Instanzen auslesen

Beitrag von Dutchman » 08.07.2018, 20:31

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

peoples
professional
Beiträge: 561
Registriert: 19.03.2017, 13:28

Re: [Frage] Adapter Instanzen auslesen

Beitrag von peoples » 08.07.2018, 20:37

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.
Gruß
Steffen

Bitte keine Fragen zu Beiträgen via PN.
http://www.gidf.de

Benutzeravatar
Stabilostick
professional
Beiträge: 748
Registriert: 23.05.2018, 14:52

Re: [Frage] Adapter Instanzen auslesen

Beitrag von Stabilostick » 09.07.2018, 07:57

So als Inspiration, geht bestimmt auch eleganter/besser:

Code: Alles auswählen

//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'); }

Benutzeravatar
apollon77
guru
Beiträge: 6214
Registriert: 10.04.2015, 12:27

Re: [Frage] Adapter Instanzen auslesen

Beitrag von apollon77 » 09.07.2018, 08:35

Ää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
How-to:
* Debug-Log für einen Adapter/Instanz einschalten? -> Instanzen -> Expertenomodus -> Spalte Loglevel

Benutzeravatar
Stabilostick
professional
Beiträge: 748
Registriert: 23.05.2018, 14:52

Re: [Frage] Adapter Instanzen auslesen

Beitrag von Stabilostick » 09.07.2018, 08:39

Ups, my fault.

Benutzeravatar
apollon77
guru
Beiträge: 6214
Registriert: 10.04.2015, 12:27

Re: [Frage] Adapter Instanzen auslesen

Beitrag von apollon77 » 09.07.2018, 09:35

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.
How-to:
* Debug-Log für einen Adapter/Instanz einschalten? -> Instanzen -> Expertenomodus -> Spalte Loglevel

peoples
professional
Beiträge: 561
Registriert: 19.03.2017, 13:28

Re: [Frage] Adapter Instanzen auslesen

Beitrag von peoples » 10.07.2018, 22:19

apollon77 hat geschrieben:
09.07.2018, 08:35
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:

Code: Alles auswählen

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:

Code: Alles auswählen

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:
Gruß
Steffen

Bitte keine Fragen zu Beiträgen via PN.
http://www.gidf.de

peoples
professional
Beiträge: 561
Registriert: 19.03.2017, 13:28

Re: [Frage] Adapter Instanzen auslesen

Beitrag von peoples » 11.07.2018, 17:36

Habs gefunden, hatte folgende Zeile vergessen:

Code: Alles auswählen

			var _id = arr[i]._id.replace('system.adapter.', '');
Gruß
Steffen

Bitte keine Fragen zu Beiträgen via PN.
http://www.gidf.de

Benutzeravatar
apollon77
guru
Beiträge: 6214
Registriert: 10.04.2015, 12:27

[Frage] Adapter Instanzen auslesen

Beitrag von apollon77 » 11.07.2018, 17:48

;-))
Bitte auf gelöst setzen. Danke.

Gesendet vom Handy ...
How-to:
* Debug-Log für einen Adapter/Instanz einschalten? -> Instanzen -> Expertenomodus -> Spalte Loglevel

Antworten