NEWS
Gelöst: Bluetooth Geräte zählen
-
@michihorn sagte: so sieht tr-064 aus:
Dann passt der Selektor nicht. Welche Datenpunkte sind die richtigen unter den Kanälen?
-
@paul53 Tatsächlich stimmte der Selector nicht ganz
const ids = $('tr-064.0.devices');
hatte die Instance vergessen, trotzdem läuft es nicht
Überprüfen möchte ich:
tr-064.0.devices.IPhone-Noel tr-064.0.devices.S20-FE-von-Heike tr-064.0.devices.S20-FE-von-Michael
-
@michihorn sagte: hatte die Instance vergessen
Das genügt nicht, denn so werden keine Datenpunkte gefunden.
@paul53 sagte in Bluetooth Geräte zählen:
Welche Datenpunkte sind die richtigen unter den Kanälen?
-
@paul53 Überprüfen möchte ich:
tr-064.0.devices.IPhone-Noel tr-064.0.devices.S20-FE-von-Heike tr-064.0.devices.S20-FE-von-Michael
-
@michihorn sagte: Überprüfen möchte ich:
const ids = $('tr-064.0.devices.*');
Da die Datenpunkte Ordner sind, werden noch weitere Datenpunkt (unterhalb der Ordner) selektiert. Das kann ein Problem sein.
-
@paul53 sagte in Bluetooth Geräte zählen:
const ids = $('tr-064.0.devices.*');
-
@paul53 ja stimmt, ich will nur die 3 Geräte ermitteln, nun wird mir die 6 ermittelt
Also würde ich nun, da der Vorgang ja statisch ist und immer nur diese 3 Ordner umfasst, dass Script soweit abwandeln:
const ids = $('tr-064.0.devices.*'); const idCnt='0_userdata.0.Haus.AW.EnteredBt' //*****FUNKTION ENTERED******************************************/ function cntBt() { let cnt = 0; ids.each(function (id, i) { if (getState(id).val == true) cnt++; }); setState(idCnt, cnt-3, true); log(cnt-3); } cntBt(); // Skriptstart ids.on(cntBt);
Zumindest das Ergebnis passt
Bei jeder Veränderung der DP löst das Script aus, tut was es soll. Erstmal Danke an Paul53 und Bahnuhr -
@michihorn sagte: Zumindest das Ergebnis passt
Ist der Wert der Datenpunkte unterhalb der Ordner immer true? Was sind das für Datenpunkte?
-
@paul53
JA sobald ACTIVE true ist, ist auch das Verzeichnis true
-
@michihorn sagte: sobald ACTIVE true ist, ist auch das Verzeichnis true
Dann beschränke den Selektor auf "active".
const ids = $('tr-064.0.devices.*.active');
-
@paul53 sagte in Gelöst: Bluetooth Geräte zählen:
const ids = $('tr-064.0.devices.*.active');
Paul...Du bist der Beste. Danke für Deine Unterstützung