NEWS
Geräteliste des Adapters
-
wie bekomme ich eine Objekt-Geräteliste eines Adapters raus ??
ich brauche die id und den namen…. :roll: :roll:
$('device[id=zigbee.0]');
geht nicht
1518_unbenannt.jpg -
Wie oben nur mit „zigbee.0.*“ ?!
Gesendet vom Handy …
-
Der $Selector liefert nur Datenpunkt-IDs. Die Eingrenzung mit "device" ist nur sinnvoll, wenn enums zum Selektieren vorgegeben werden und die Zuweisung der enums zu Geräten erfolgt ist (in HomeMatic erfolgt die Zuweisung zu Kanälen). Versuche es mal so:
const dps = $('zigbee.0.*'); dps.each(function(id, i) { var val = getState(id).val; setState(id, val, true); // provoziert einen Trigger ohne Wertänderung und ohne Senden }); var lastId = ''; on({id: /^zigbee\.0\.*/}, function(dp) { if(dp.deviceId != lastId) { lastId = dp.deviceId; log(lastId); log(dp.deviceName); } });
-
Wie oben nur mit „zigbee.0.*“ ?!
Gesendet vom Handy … `
ne eben nicht… :roll:
@paul53:dps = $('zigbee.0.*'); `
liefert mir die states .. ich brauch aber die id und den namen
am besten im array
zigbee.0.00158d0001052cc5 küche.schalter
zigbee.0.00158d00010e534f dachboden.temp
zigbee.0.00158d0001573a56 wohnzimmer.temp
-
liefert mir die states .. `
So, wie ich geschrieben habe: $Selector liefert <u>immer</u> Datenpunkt-IDs !
@arteck:ich brauch aber die id und den namen
am besten im array `
Wenn Du die beiden log() im Skript gegen Einsortierung in ein Array austauschst, sollte es funktionieren. Zum Test lass erst einmal die log() drin. -
liefert mir die states .. `
So, wie ich geschrieben habe: $Selector liefert <u>immer</u> Datenpunkt-IDs !
@arteck:ich brauch aber die id und den namen
am besten im array
Wenn Du die beiden __log()__ im Skript gegen Einsortierung in ein Array austauschst, sollte es funktionieren. Zum Test lass erst einmal die __log()__ drin.
ne bekomme ein null zurück..
und
ich will die Liste auf einen rutsch haben .. nicht bei state Änderung…
so
var allZigbeeDevices = $('zigbee.0.*');
was nicht geht
-
ich will die Liste auf einen rutsch haben .. nicht bei state Änderung… `
Deshalb wir in der each-Schleife für jeden Datenpunkt ein Trigger provoziert. Mein Test (habe kein Zigbee):filename="Geräte-IDs_Namen.JPG" index="0">~~
-
Damit nur ein Datenpunkt pro Gerät einen provozierten Trigger erhält, habe ich das Skript geändert.
const dps = $('zigbee.0.*'); var lastId = ''; dps.each(function(id, i) { var idarr = id.split('.'); if(idarr[2] != lastId) { var val = getState(id).val; setState(id, val, true); // provoziert einen Trigger ohne Wertänderung und ohne Senden lastId = idarr[2]; } }); on({id: /^zigbee\.0\.*/}, function(dp) { log(dp.deviceId); log(dp.deviceName); });
-
ich will die Liste auf einen rutsch haben .. nicht bei state Änderung… `
Deshalb wir in der each-Schleife für jeden Datenpunkt ein Trigger provoziert. Mein Test (habe kein Zigbee):Geräte-IDs_Namen.JPG `
nöhö….. :roll:
ich bekomme alle states geliefert aber nicht den namen
zigbee.0.00158d0001052cc5 küche.schalter
-
ich bekomme alle states geliefert aber nicht den namen `
states oder Device IDs ? -
jetzige ausgabe
const dps = $('zigbee.0.*'); var lastId = ''; dps.each(function(id, i) { var idarr = id.split('.'); if(idarr[2] != lastId) { var val = getState(id).val; setState(id, val, true); // provoziert einen Trigger ohne Wertänderung und ohne Senden lastId = idarr[2]; } }); on({id: /^zigbee\.0\.*/}, function(dp) { log('deviceId --------------' +dp.deviceId); log('deviceName --------------' + dp.deviceName); });
13:39:40.196 [info] javascript.0 script.js.rest.batterieStand: deviceId --------------null 13:39:40.196 [info] javascript.0 script.js.rest.batterieStand: deviceName --------------null 13:39:40.196 [info] javascript.0 script.js.rest.batterieStand: deviceId --------------null 13:39:40.196 [info] javascript.0 script.js.rest.batterieStand: deviceName --------------null 13:39:40.196 [info] javascript.0 script.js.rest.batterieStand: deviceId --------------null 13:39:40.196 [info] javascript.0 script.js.rest.batterieStand: deviceName --------------null 13:39:40.196 [info] javascript.0 script.js.rest.batterieStand: deviceId --------------null 13:39:40.196 [info] javascript.0 script.js.rest.batterieStand: deviceName --------------null 13:39:40.196 [info] javascript.0 script.js.rest.batterieStand: deviceId --------------null
-
In meinen Tests hatte ich den Geräten Kanäle und den Kanälen Datenpunkte zugeordnet. Damit hat es funktioniert. Jetzt habe ich dem Gerät 2 direkt einen Datenpunkt (ohne Kanal) zugeordnet. Jetzt wir mir das Gerät 2 nicht mehr geliefert, sondern nur noch die Instanz.
Haben Zigbee-Geräte keine Kanäle ?
-
so siehts aus
1518_unbenannt.jpg -
Ohne Kanäle funktionieren
dp.deviceId dp.deviceName
offenbar nicht. Werde Issue auf github erstellen.
-
Und einfach on ({id: „zigbee.0.*“ ….
Geht nicht? Du willst doch einfach alle Änderungen oder?!
Gesendet vom Handy ...
-
Und einfach on ({id: „zigbee.0.*“ ….
Geht nicht? Du willst doch einfach alle Änderungen oder?!
Nein, er möchte eine Geräteliste mit Geräte-ID und Geräte-Namen.
-
Ja aber er hatte doch geschrieben er will die Liste um einzeln zu subscriben … oder ich hab mich verlesen
Gesendet vom Handy ...
-
-
Ist das das selbe Thema? Bekomme nicht eine selektor Funktion mit zigbee Geräten hin… Alle anderen gehen.. Sonoff, homematic, angelegte states kein Thema nur zigbee nicht..
Will nen Zaehlen Script fuer Batterie und Steckdosen fuer meine zigbee Geraete schreiben.. Wie ich es fuer hm und sonoff auch habe... Alle möglichen Varianten schon ausprobiert.
Wie oben geschrieben geht nur alle states einzusammeln...
als Gegenüberstellung..
geht
var cacheSelector = $('statestate.id=*.STATE'); // (HomeMatic 'STATE' groß weil so angelegt )
geht nicht
var cacheSelector = $('statestate.id=*.state'); // (zigbee 'state' klein weil so angelegt )
Gesendet von meinem CLT-L09 mit Tapatalk
-
@paul53 sagte:
Ohne Kanäle funktionieren
dp.deviceId dp.deviceName
offenbar nicht. Werde Issue auf github erstellen.
Habe festgestellt, dass man bei Zigbee anstelle von dp.deviceId und dp.deviceName den Kanal abfragen muss, um das Gerät zu erhalten.
Der Objekt-Typ wird offenbar nicht geprüft, sondern es wird das Eltern- bzw. Großeltern-Objekt verwendet.