NEWS
On(pattern, callbackOrId, value) -> Rückgabe: obj
-
Hat denn niemand eine Idee? `
Es gibt keinen "channel" mehr, sondern "channelName" oder "channelId".Heißen deine Kanäle wirklich so? "Alle Lichter Wohnzimmer aus:10"
-
Hallo Bluefox,
danke für Deine Antwort. Ja die Kanäle heissen wirklich so (HM-RCV-50). Hatte ich unter ccu.io als virtuelle Taster genutzt und hat auch super funktioniert. Ich hab schon kapiert, dass aus channel channelName geworden ist (hatte ich ja auch geschrieben). Mein Problem ist, dass das obj für die callback-Funktion bei der Eigenschaft channelName mir immer null zurückgibt und deswegen die Trigger nicht zünden. Schau mal in den obigen code-block, da ist die Ausgabe von JSON.stringify(obj) zu sehen. Ich kapier einfach nicht warum das obj.channelName = null ist, ich habe z.B. eigentlich obj.channelName = "Alle Lichter Wohnzimmer aus:10" erwartet. Ich hoffe ich habe mich einigermassen verständlich ausgedrückt.
Beste Grüße
Carsten
-
Wäre mal jemand so nett und könnte das folgende Miniscript:
function allLightsToggle(obj) { log(JSON.stringify(obj),'info'); } on({id:'hm-rpc.0.BidCoS-RF.8.PRESS_SHORT',valNe:2}, function (obj) { allLightsToggle(obj); });
mal bei sich mit einer gültigen id ausprobieren und dann hier sagen, ob er ebenfalls bei der Ausgabe immer nur channelId":null,"channelName":null,"deviceId":null,"deviceName":null zurückbekommt, anstatt der erwarteten Werte.
Danke
Carsten
-
javascript-0 2015-07-10 19:45:55 info "newState": { javascript-0 2015-07-10 19:45:55 info "enumNames": [], javascript-0 2015-07-10 19:45:55 info "enumIds": [], javascript-0 2015-07-10 19:45:55 info "deviceName": null, javascript-0 2015-07-10 19:45:55 info "deviceId": null, javascript-0 2015-07-10 19:45:55 info "channelName": null, javascript-0 2015-07-10 19:45:55 info },
-
Danke für die Mühe. Ich glaube hier liegt noch ein Fehler vor. Habe gerade erst folgenden Beitrag http://forum.iobroker.org/viewtopic.php?f=22&t=854 von Headroom68 unter "ioBroker Fehler gefunden". Er hat das selbe Problem.
-
Muss jetzt funktionieren.
Danke fürs Fehlermelden.
-
javascript-0 2015-07-11 07:29:39 info } javascript-0 2015-07-11 07:29:39 info "enumNames": [] javascript-0 2015-07-11 07:29:39 info "enumIds": [], javascript-0 2015-07-11 07:29:39 info "deviceName": "Küche Taster Säule", javascript-0 2015-07-11 07:29:39 info "deviceId": "hm-rpc.0.FEQ0060867", javascript-0 2015-07-11 07:29:39 info "channelName": "Küche Wandlampe rot", javascript-0 2015-07-11 07:29:39 info "channelId": "hm-rpc.0.FEQ0060867.1", javascript-0 2015-07-11 07:29:39 info "name": "Küche Wandlampe rot Taster links.STATE", javascript-0 2015-07-11 07:29:39 info },
-
Der Taster ist bei mir dem Raum "Küche" zugeordnet.
Müsste das nicht in enumNames auftauchen?
-
Hallo ruhr70,
das müsste eigentlich auch nach meinem Verständnis so sein. Da enumNames ja ein Array ist glaube ich, dass hier nicht nur der Raum (von enum.rooms), sondern auch Favoriten (enum.favotires) und Funktionsnamen (enum.functions) in der jeweilgen JSON-Struktur erscheinen müssten, falls diese bei dem zugehörigen STATE gesetzt wurden (gleiches müsste nach meinem Verständnis auch für die enumIds gelten).
@Bluefox: danke für die superschnelle Reaktion. Jetzt kann ich schon mal weiter scripten und meine ccu.io Portierung zu Ende bringen.
Beste Grüße
Carsten
-
Der Taster ist bei mir dem Raum "Küche" zugeordnet.
Müsste das nicht in enumNames auftauchen? `
Wenn du folgendes eingibst:iobroker l e | grep FEQ0060867
Sieht du was?
P.S. l - list, e - enum. Es geht auch "iobroker list enum"
-
Hallo ruhr70,
das müsste eigentlich auch nach meinem Verständnis so sein. Da enumNames ja ein Array ist glaube ich, dass hier nicht nur der Raum (von enum.rooms), sondern auch Favoriten (enum.favotires) und Funktionsnamen (enum.functions) in der jeweilgen JSON-Struktur erscheinen müssten, falls diese bei dem zugehörigen STATE gesetzt wurden (gleiches müsste nach meinem Verständnis auch für die enumIds gelten).
@Bluefox: danke für die superschnelle Reaktion. Jetzt kann ich schon mal weiter scripten und meine ccu.io Portierung zu Ende bringen.
Beste Grüße
Carsten `
Bei mir ist z.B. enumIds = ["enum.favorites.Admin.Heizung","enum.functions.Heizung","enum.rooms.Kinderzimmer"] -
ich probier das nachher.
d.h. was Du davor angegeben hattest b
bin gerade auf einen "russischen" Geburtstag;-)
Gesendet von iPhone mit Tapatalk
-
Hallo ruhr70,
das müsste eigentlich auch nach meinem Verständnis so sein. Da enumNames ja ein Array ist glaube ich, dass hier nicht nur der Raum (von enum.rooms), sondern auch Favoriten (enum.favotires) und Funktionsnamen (enum.functions) in der jeweilgen JSON-Struktur erscheinen müssten, falls diese bei dem zugehörigen STATE gesetzt wurden (gleiches müsste nach meinem Verständnis auch für die enumIds gelten).
@Bluefox: danke für die superschnelle Reaktion. Jetzt kann ich schon mal weiter scripten und meine ccu.io Portierung zu Ende bringen.
Beste Grüße
Carsten
Bei mir ist z.B. enumIds = ["enum.favorites.Admin.Heizung","enum.functions.Heizung","enum.rooms.Kinderzimmer"]
Hallo Bluefox,
bei mir bleiben enumNames und enumIds weiterhin leer. Ich habe folgendes einfache Szenario getestet:
function allLightsToggle(obj) { log(JSON.stringify(obj),'info'); } on('hm-rpc.0.LEQ1226350.1.STATE',function(obj){ allLightsToggle(obj); });
Dabei ist LEQ1226350 ein 1fach Schaltaktor (HM-LC-Sw1-FM) der das Terrassenlicht schaltet und dem Raum Garten (enum.rooms) und dem Gewerk Licht (enum.functions) zugeordnet wurde.
JSON.stringify(obj) liefert:
2015-07-12 08:55:37.651 - info: javascript.0 script.js.Test: {"id":"hm-rpc.0.LEQ1226350.1.STATE","newState":{"val":true,"ts":1436684138,"ack":true,"lc":1436684138,"from":"system.adapter.hm-rpc.0"},"oldState":{"val":false,"ts":1436683871,"ack":true,"lc":1436683158,"from":"system.adapter.hm-rpc.0"},"common":{},"native":{},"channelId":"hm-rpc.0.LEQ1226350.1","channelName":"Schalter Terrassenlicht:1","deviceId":"hm-rpc.0.LEQ1226350","deviceName":"Schalter Terrassenlicht","enumIds":[],"enumNames":[]}
und die Ausgabe von iobroker l e liefert an den relevanten Stellen:
===================================================================================== rooms.Garten (Garten) ------------------------------------------------------------------------------------- hm-rpc.0.LEQ1226350.1 ===================================================================================== functions.Licht (Licht) ------------------------------------------------------------------------------------- hm-rpc.0.LEQ1226350.1
Das sieht also alles soweit ganz gut aus, ausser das eben enumNames und enumIds leer bleiben.
Beste Grüße
Carsten
721_sma-em.jpg -
Hallo,
ich wollte das Thema noch einmal nach oben holen, da bei mir immer noch enumIds und enumNames leer bleiben, ich die Informationen in meinem Skript aber gut gebrauchen könnte. Ist das jetzt noch ein bekannter Fehler, oder mache ich noch irgendetwas falsch. Für Hinweise jedweder Art wäre ich very happy.
Beste Grüße
Carsten
-
Was passiert wenn du folgendes machst?
var obj1 = getObject('hm-rpc.0.LEQ1226350.1.STATE', true); var obj2 = getObject('hm-rpc.0.LEQ1226350.1', true); log(JSON.stringify(obj1.enumIds)); log(JSON.stringify(obj2.enumIds));
-
Dann wird folgendes geloggt:
javascript-0 2015-07-30 14:56:02 info script.js.test1: ["enum.functions.Licht","enum.rooms.Garten"] javascript-0 2015-07-30 14:56:02 info script.js.test1: ["enum.functions.Licht","enum.rooms.Garten"]
Sieht also eigentlich ganz gut aus.
und jetzt kommts: nachdem ich Dein Skript habe laufen lassen, habe ich noch einmal folgendes probiert:
function allLightsToggle(obj) { log(JSON.stringify(obj),'info'); } on({id:'hm-rpc.0.LEQ1226350.1.STATE',valNe:2}, function (obj) { allLightsToggle(obj); });
mit folgender Ausgabe:
{"id":"hm-rpc.0.LEQ1226350.1.STATE","newState":{"val":true,"ts":1438261226,"ack":true,"lc":1438261226,"from":"system.adapter.hm-rpc.0"},"oldState":{"val":false,"ts":1438259876,"ack":true,"lc":1438257205,"from":"system.adapter.hm-rega.0"},"common":{"def":false,"type":"boolean","read":true,"write":true,"role":"state","name":"Schalter Terrassenlicht:1.STATE"},"native":{"CONTROL":"SWITCH.STATE","DEFAULT":false,"FLAGS":1,"ID":"STATE","MAX":true,"MIN":false,"OPERATIONS":7,"TAB_ORDER":0,"TYPE":"BOOL","UNIT":""},"name":"Schalter Terrassenlicht:1.STATE","channelId":"hm-rpc.0.LEQ1226350.1","channelName":"Schalter Terrassenlicht:1","deviceId":"hm-rpc.0.LEQ1226350","deviceName":"Schalter Terrassenlicht","enumIds":["enum.functions.Licht","enum.rooms.Garten"],"enumNames":["Licht","Garten"]}
Jetzt klappt es also, warum auch immer Falls Du eine Idee hast warum, würde mich das sehr interessieren. Ansonsten noch einmal Danke für dieses geniale System.
Beste Grüße
Carsten
-
Toll, dass es bei dir geht. Falls JS-Adapter nachdem gestartet wurde als die Enums verteilt sind, dann kennt JS-Adapter die neue Enums.
Konnte das sein?
Was passiert jetzt bei dir bei?
function allLightsToggle(obj) { log(JSON.stringify(obj),'info'); } on({id:'hm-rpc.0.LEQ1226350.1.STATE'}, function (obj) { allLightsToggle(obj); });
-
Sieht jetzt alles super aus, auch ohne valNe:2.
2015-07-30 17:31:14.221 - info: javascript.0 script.js.test: {"id":"hm-rpc.0.LEQ1226350.1.STATE","newState":{"val":false,"ts":1438270274,"ack":true,"lc":1438270274,"from":"system.adapter.hm-rpc.0"},"oldState":{"val":true,"ts":1438268324,"ack":true,"lc":1438262778,"from":"system.adapter.hm-rpc.0"},"common":{"def":false,"type":"boolean","read":true,"write":true,"role":"state","name":"Schalter Terrassenlicht:1.STATE"},"native":{"CONTROL":"SWITCH.STATE","DEFAULT":false,"FLAGS":1,"ID":"STATE","MAX":true,"MIN":false,"OPERATIONS":7,"TAB_ORDER":0,"TYPE":"BOOL","UNIT":""},"name":"Schalter Terrassenlicht:1.STATE","channelId":"hm-rpc.0.LEQ1226350.1","channelName":"Schalter Terrassenlicht:1","deviceId":"hm-rpc.0.LEQ1226350","deviceName":"Schalter Terrassenlicht","enumIds":["enum.functions.Licht","enum.rooms.Garten"],"enumNames":["Licht","Garten"]}
Die Idee mit dem JS-Adapterstart könnte passen, da ich den Adapter heute mehrmals neu gestartet habe, allerdings hatte ich die functions und rooms auch nicht geändert. So richtig nachvollziehen kann ich es daher noch nicht. Aber egal, bin froh das jetzt alles läuft. Manchmal ist eben alles fuzzy
Beste Grüße
Carsten