NEWS
Problem mit getEnums()
-
Tatsächlich, jetzt wird alles gefunden!
Danke!!
-
Könnte es sein das du diesen Raum erstellt hast nachdem der JavaScript adapter gestartet war?
Ich habe das Gefühl das enums nur einmalig beim Starten des Adapters eingeladen werden wodurch Änderungen fehlen
–-----------------------
Send from mobile device
-
Könnte es sein das du diesen Raum erstellt hast nachdem der JavaScript adapter gestartet war?
Ich habe das Gefühl das enums nur einmalig beim Starten des Adapters eingeladen werden wodurch Änderungen fehlen `
Ist auch für Objekte der Fall. Wenn ich in JS ZWave-Geräte überwache und ein neues einbinde, kriegt das Skript nix davon mit bis zum nächsten Neustart. -
Ist ziemlich logisch, eine Variable, welche man ja mit seinen enums beschreibt, wird erst dann neu geschrieben wenn man einen Auslöser dafür hat.
Also zum Beispiel zyklisch mit einem Cronjob.
Vielleicht kann man ja auch irgendwie auf Änderungen der enums reagieren, das sind schließlich auch nur Objekte.
Gesendet von Unterwegs
-
Adapter haben
subscribe[Foreign]Objects("*")
und werden damit über Änderungen und hinzugefügte Objekte und States informiert.
Wenn ich in einem Skript $(selector) ausführe, extern ein neues Objekt mit States hinzufüge und dann nochmals $(selector) ausführe, ändert sich die Liste der gefundenen States nicht - zumindest war das vor einer Weile noch so.
Finde ich aus Benutzersicht nicht logisch.
-
Ich hab jetzt mal ein bisschen mit den 'enums' gespielt. Es ist wie ich schon geschrieben hab, die enums sind Objekte.
Zugreifen kann man auf die enums mit:
getObject('enum.rooms.Bad')
Aber eine Subscription auf ein enum bringt nichts da es kein value hat. Das heisst die Subscription wird nie ausgelöst.
Was mir bei getEnums() aufgefallen ist das ich kein Aufzählung in der 2ten Ebene abrufen kann.
Weiss jemand ob das ohne Umwege geht?
-
@Jey Cee:getObject('enum.rooms.Bad')
Aber eine Subscription auf ein enum bringt nichts da es kein value hat. Das heisst die Subscription wird nie ausgelöst. `
Doch das geht! Gestern noch ein Script damit gebaut:
// Trigger on value change in origin values and syncronise to reverse values on({enumName: 'rolladen', change: "ne"}, function (obj) { //reverse value from KNX to Yahka logic var newvalue = 100 - obj.state.val; //verify is calculated value is different, if yes update KNX value to reversed object otherwise do nothing if (newvalue !== getState("rolladen_reversed_values." + obj.common.name).val){ setState("rolladen_reversed_values." + obj.common.name, newvalue, true); console.debug('value change based on KNX trigger, received value = ' + obj.state.val + ' ,calculated to = ' + newvalue); } });
–-----------------------
Send from mobile device
-
Doch das geht! Gestern noch ein Script damit gebaut: `
Da hast du mich missverstanden. Wenn du ein Member zur enum hinzufügst wird die Subscription nicht ausgelöst.
Dein Code hört auf Veränderungen der Member einer enum.
By the Way, ich erhalte folgende fehlermeldung wenn ich eine Subscription auf ein enum erstelle:
unsubscribe: empty name
-
@Jey Cee:By the Way, ich erhalte folgende fehlermeldung wenn ich eine Subscription auf ein enum erstelle:
unsubscribe: empty name ```` `
Controller und JavaScript adapter Version ?
Wie sieht dein Code aus?
–-----------------------
Send from mobile device
-
Hab das Problem gefunden die enum hatte einfach einen falschen Namen.