NEWS
Selector $ finden zu weniger und zu viele Geräte
-
Hallo zusammen,
ich hab mal wieder ein Problem mit dem Selector in JavaScript und komme nicht weiter...
ich habe folgendes "Test Script"
$('state[id=*](functions=occupancy)').each(function (id, i) { if (debug) { log("motion : "+id, "info"); } }); $('state[id=*](rooms=esszimmer)(functions=hauptlicht)').each(function (id, i) { log("licht: "+id) });
Das erste soll alle Bewegungssensoren states liefern das zweite alle "Hauptlichter vom Esszimmer".
Nun hier kommen noch ein paar Bilder wie meine Objekte definiert sind:
2 Objekte/States mit Funktion Occupancy
Nur 1 State mit Esszimmer und Hauptlicht(Licht)
Jetzt kommt die Ausgabe im log von den zwei each's oben...
18:56:29.187 info javascript.0 (3705) script.js.common.Haussteuerung.Licht: motion : zigbee.0.00158d00044cfc47.occupancy 18:56:29.219 info javascript.0 (3705) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.AES_KEY 18:56:29.219 info javascript.0 (3705) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.CONFIG_PENDING 18:56:29.219 info javascript.0 (3705) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.DEVICE_IN_BOOTLOADER 18:56:29.219 info javascript.0 (3705) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.DUTYCYCLE 18:56:29.219 info javascript.0 (3705) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.LOWBAT 18:56:29.219 info javascript.0 (3705) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.RSSI_DEVICE 18:56:29.219 info javascript.0 (3705) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.RSSI_PEER 18:56:29.220 info javascript.0 (3705) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.STICKY_UNREACH 18:56:29.220 info javascript.0 (3705) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.UNREACH 18:56:29.220 info javascript.0 (3705) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.UPDATE_PENDING 18:56:29.220 info javascript.0 (3705) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.1.INHIBIT 18:56:29.220 info javascript.0 (3705) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.1.INSTALL_TEST 18:56:29.220 info javascript.0 (3705) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.1.ON_TIME 18:56:29.220 info javascript.0 (3705) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.1.STATE 18:56:29.220 info javascript.0 (3705) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.1.WORKING
Wieso erkennt er die ganzen anderen States beim Esszimmer Licht? und wieso nur einen Motionsensor?
Ich habe schon den Server neugestartet zwischenzeitlich, Java Script Adapter auch öfters neugestartet.
Hier noch die enums:
Viele Grüße, David
-
@echoDave
Welche Versionen von js-controller (Host) und Javascript-Adapter ? -
@paul53
Javascript Adapter v4.1.12
js-controller v2.1.1 -
@echoDave sagte:
Javascript Adapter v4.1.12
js-controller v2.1.1In dieser Kombination funktioniert der $Selector nicht. Update Javascript auf 4.3.4 (aus Latest).
-
@paul53 said in Selector $ finden zu weniger und zu viele Geräte:
dieser Kombination
Ok Danke, jetzt ist die Problematik mit dem fehlendem motion Sensor gelöst.
Aber beim zweiten each werden weiterhin States geliefert die keine Raum/Funktion zugewiesen haben. Es werden im Prinzip alle States des Devices rausgespuckt.
-
@echoDave sagte:
alle States des Devices rausgespuckt.
Du wendest rooms und functions gleichzeitig an. Ich glaube, dass ich es so noch nicht getestet habe. Wie ist das Ergebnis, wenn nur ein enum angewendet wird ?
-
lol jetzt wird es witzig:
$('state[id=*](functions=hauptlicht)').each(function (id, i) { log("licht: "+id) });
liefert
19:36:04.738 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.AES_KEY 19:36:04.738 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.CONFIG_PENDING 19:36:04.738 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.DEVICE_IN_BOOTLOADER 19:36:04.738 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.DUTYCYCLE 19:36:04.738 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.LOWBAT 19:36:04.738 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.RSSI_DEVICE 19:36:04.738 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.RSSI_PEER 19:36:04.739 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.STICKY_UNREACH 19:36:04.739 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.UNREACH 19:36:04.739 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.UPDATE_PENDING 19:36:04.739 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.1.INHIBIT 19:36:04.739 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.1.INSTALL_TEST 19:36:04.739 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.1.ON_TIME 19:36:04.739 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.1.STATE 19:36:04.739 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.1.WORKING 19:36:04.739 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279566.0.AES_KEY 19:36:04.739 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279566.0.CONFIG_PENDING 19:36:04.739 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279566.0.DEVICE_IN_BOOTLOADER 19:36:04.739 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279566.0.DUTYCYCLE 19:36:04.739 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279566.0.LOWBAT 19:36:04.740 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279566.0.RSSI_DEVICE 19:36:04.740 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279566.0.RSSI_PEER 19:36:04.740 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279566.0.STICKY_UNREACH 19:36:04.740 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279566.0.UNREACH 19:36:04.740 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279566.0.UPDATE_PENDING 19:36:04.740 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279566.1.INHIBIT 19:36:04.740 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279566.1.INSTALL_TEST 19:36:04.740 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279566.1.ON_TIME 19:36:04.740 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279566.1.STATE 19:36:04.740 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279566.1.WORKING 19:36:04.740 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.QEQ0035528.1.LEVEL
QEQ0035528 ist ein Dimmer, da scheints gut zu laufen.
LEQ0279566 und LEQ0279503 sind normale Schalter.bei
$('state[id=*](rooms=esszimmer)').each(function (id, i) { log("licht: "+id) });
kommen nun auch beim Theromstat (war früher definitiv nicht so) alle States raus
19:38:39.103 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.AES_KEY 19:38:39.103 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.CONFIG_PENDING 19:38:39.103 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.DEVICE_IN_BOOTLOADER 19:38:39.103 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.DUTYCYCLE 19:38:39.103 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.LOWBAT 19:38:39.103 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.RSSI_DEVICE 19:38:39.103 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.RSSI_PEER 19:38:39.103 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.STICKY_UNREACH 19:38:39.104 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.UNREACH 19:38:39.104 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.0.UPDATE_PENDING 19:38:39.104 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.1.INHIBIT 19:38:39.104 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.1.INSTALL_TEST 19:38:39.104 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.1.ON_TIME 19:38:39.104 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.1.STATE 19:38:39.104 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.LEQ0279503.1.WORKING 19:38:39.104 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.0.BOOT 19:38:39.104 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.0.CONFIG_PENDING 19:38:39.104 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.0.LOWBAT 19:38:39.104 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.0.RSSI_DEVICE 19:38:39.104 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.0.RSSI_PEER 19:38:39.104 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.0.STICKY_UNREACH 19:38:39.104 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.0.UNREACH 19:38:39.104 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.ACTUAL_TEMPERATURE 19:38:39.105 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.AUTO_MODE 19:38:39.105 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.BOOST_MODE 19:38:39.105 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.BOOST_POSITION 19:38:39.105 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.BOOST_TIME_PERIOD 19:38:39.105 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.COMFORT_TEMPERATURE 19:38:39.105 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.CONTROL_MODE 19:38:39.105 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.DECALCIFICATION_TIME 19:38:39.105 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.DECALCIFICATION_WEEKDAY 19:38:39.105 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.ECO_TEMPERATURE 19:38:39.105 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.LOCKED 19:38:39.105 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.MANU_MODE 19:38:39.105 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.MAX_TEMPERATURE 19:38:39.105 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.PARTY_STOP_DAY 19:38:39.106 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.PARTY_STOP_MONTH 19:38:39.106 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.PARTY_STOP_TIME 19:38:39.106 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.PARTY_STOP_YEAR 19:38:39.106 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.PARTY_TEMPERATURE 19:38:39.106 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.SET_TEMPERATURE 19:38:39.106 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.TEMPERATURE_OFFSET 19:38:39.106 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.VALVE_STATE 19:38:39.106 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: licht: hm-rpc.0.MEQ1773490.1.WINDOW_OPEN_TEMPERATURE
MEQ1773490 ist das Thermostat.
-
@echoDave
Ja, sehr eigenartig. Was ergibt ?$('channel[state.id=*](functions=hauptlicht)').each(function (id, i) { log("licht: "+id) });
-
@paul53 said in Selector $ finden zu weniger und zu viele Geräte:
$('channelstate.id=*').each(function (id, i) {
log("licht: "+id)
});$('channel[state.id=*](functions=hauptlicht)').each(function (id, i) { log("channel: "+id) }); 19:51:09.327 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279503.0.AES_KEY 19:51:09.328 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279503.0.CONFIG_PENDING 19:51:09.328 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279503.0.DEVICE_IN_BOOTLOADER 19:51:09.328 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279503.0.DUTYCYCLE 19:51:09.328 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279503.0.LOWBAT 19:51:09.328 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279503.0.RSSI_DEVICE 19:51:09.328 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279503.0.RSSI_PEER 19:51:09.328 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279503.0.STICKY_UNREACH 19:51:09.328 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279503.0.UNREACH 19:51:09.328 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279503.0.UPDATE_PENDING 19:51:09.328 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279503.1.INHIBIT 19:51:09.328 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279503.1.INSTALL_TEST 19:51:09.329 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279503.1.ON_TIME 19:51:09.329 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279503.1.STATE 19:51:09.329 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279503.1.WORKING 19:51:09.329 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279566.0.AES_KEY 19:51:09.329 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279566.0.CONFIG_PENDING 19:51:09.329 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279566.0.DEVICE_IN_BOOTLOADER 19:51:09.329 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279566.0.DUTYCYCLE 19:51:09.329 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279566.0.LOWBAT 19:51:09.329 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279566.0.RSSI_DEVICE 19:51:09.329 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279566.0.RSSI_PEER 19:51:09.329 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279566.0.STICKY_UNREACH 19:51:09.329 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279566.0.UNREACH 19:51:09.329 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279566.0.UPDATE_PENDING 19:51:09.330 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279566.1.INHIBIT 19:51:09.330 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279566.1.INSTALL_TEST 19:51:09.330 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279566.1.ON_TIME 19:51:09.330 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279566.1.STATE 19:51:09.330 info javascript.0 (9583) script.js.common.Haussteuerung.Licht: channel: hm-rpc.0.LEQ0279566.1.WORKING
Ich habe mir jetzt mit folgendem Workaround geholfen um nur die States rauszufiltern die ich haben will:
$('state[id=*.LEVEL|*.STATE](rooms=esszimmer)(functions=hauptlicht)').each(function (id, i) { log("licht: "+id) });
trotzdem ist der Zustand an sich nicht schön..