NEWS
Gelöst: Anzahl der Zigbee Geräte ermitteln
-
@paul53 Danke Paul das klappt
-
@michihorn sagte in Gelöst: Anzahl der Zigbee Geräte ermitteln:
@paul53 Danke Paul das klappt
Hätte allerdings noch eine Bitte:
Wie kann ich die Anzahl der Tuya Geräte ermitteln, die im Common.Name "CAS_xxxxx" oder NL_xxxxx" enthalten?
So einfach geht es nicht.const ids = $("tuya.1.*.common.name"); const idCnt = "0_userdata.0.System.Tuya.CAS_Count"; function cnttuya() { let cnt = 0; ids.each(function (id, i) { if (getState(id).val == 'CAS*') cnt++; //if (getState(id).val) cnt++; }); setState(idCnt, cnt, true); log(cnt); } cnttuya(); // Skriptstart ids.on(cnttuya);
-
@michihorn sagte: im Common.Name "CAS_xxxxx" oder NL_xxxxx" enthalten?
const nameDp = getObject(id).common.name; if (nameDp.includes('CAS') || nameDp.includes('NL')) cnt++;
Der Selektor stimmt nicht!!
-
@paul53 sagte in Gelöst: Anzahl der Zigbee Geräte ermitteln:
const nameDp = getObject(id).common.name; if (nameDp.includes('CAS') || nameDp.includes('NL')) cnt++;
Ich möchte separat die Anzahl der Geräte mit CAS_xxx und ebenfalls separat die NL_Geräte ermitteln
Ich habe dazu DP angelegt:
"0_userdata.0.System.Tuya.CAS_Count" und
"0_userdata.0.System.Tuya.NL_Count" -
@michihorn sagte: separat die Anzahl der Geräte mit CAS_xxx und ebenfalls separat die NL_Geräte
const nameDp = getObject(id).common.name; if (nameDp.includes('CAS')) cntCAS++; if (nameDp.includes('NL')) cntNL++;
-
@paul53 sagte in Gelöst: Anzahl der Zigbee Geräte ermitteln:
const nameDp = getObject(id).common.name
Wie komme ich denn ie id? Muss ich nicht zunächst den Selector einrichten?
const ids = $("tuya.1.*.Common.Name"); -
@michihorn sagte: const ids = $("tuya.1.*.Common.Name");
Dieser Selektor ist mit großer Wahrscheinlichkeit falsch!
Zeige bitte mind. einen zu selektierenden Datenpunkt.@michihorn sagte in Gelöst: Anzahl der Zigbee Geräte ermitteln:
Wie komme ich denn ie id?
Die
id
wird innerhalb der Schleife ids.each(id) übergeben. -
@paul53 sagte in Gelöst: Anzahl der Zigbee Geräte ermitteln:
Dieser Selektor ist mit großer Wahrscheinlichkeit falsch!
-
@michihorn
Ich sehe keinen Datenpunkt, sondern nur Geräte!
Gibt es einen Datenpunkt, der zu jedem Tuya-Gerät existiert? -
@paul53 OK mein Fehler, ich will die Geräte zählen, ist wohl am einfachsten, und das separiert nach CAS_* und NL_*
-
@michihorn sagte: ich will die Geräte zählen
Dazu ist es zweckmäßig, im Selektor einen Datenpunkt(ID) anzugeben, der pro Gerät genau einmal existiert.
-
@paul53 Bei jedem Gerät ist der DP "xxxxx.online" vorhanden.
-
@michihorn sagte: Bei jedem Gerät ist der DP "xxxxx.online" vorhanden.
Direkt in der Ebene unter dem Gerät?
-
-
@michihorn
Versuche es so:const ids = $("tuya.1.*.online"); const idCAS = "0_userdata.0.System.Tuya.CAS_Count"; const idNL = "0_userdata.0.System.Tuya.NL_Count"; let cntCAS = 0; let cntNL = 0; ids.each(function(id) { id = id.substring(0, id.lastIndexOf('.')); const devName = getObject(id).common.name; if(devName.includes('CAS')) cntCAS++; if(devName.includes('NL')) cntNL++; }); setState(idCAS, cntCAS, true); setState(idNL, cntNL, true); log('CAS: ' + cntCAS + ', NL: ' + cntNL);
-
Ja Paul das funktioniert. Dankeschön