Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TypeError bei get value node und Channel 0, initiale Werte von PRESS_* Datenpunkten fehlen #76

Closed
gerrieg opened this issue Apr 12, 2019 · 8 comments
Labels
🐛bug Something isn't working

Comments

@gerrieg
Copy link

gerrieg commented Apr 12, 2019

Werte aus Channel 0 können mit der getValue node nicht ausgelesen werden.

Beispiel:
get value node, irgendein BidCos-RF gerät Channel 0, Datapoint UNREACH

nodered      | 12 Apr 19:43:02 - [error] [ccu-get-value:96d32f5b.90d77] TypeError: Cannot read property 'payload' of undefined
nodered      |     at CcuGetValue.on.msg (/data/node_modules/node-red-contrib-ccu/nodes/ccu-get-value.js:23:79)
nodered      |     at CcuGetValue.emit (events.js:189:13)
nodered      |     at CcuGetValue.Node.receive (/usr/src/node-red/node_modules/@node-red/runtime/lib/nodes/Node.js:237:14)
nodered      |     at InjectNode.Node.send (/usr/src/node-red/node_modules/@node-red/runtime/lib/nodes/Node.js:159:22)
nodered      |     at InjectNode.<anonymous> (/usr/src/node-red/node_modules/@node-red/nodes/core/core/20-inject.js:78:26)
nodered      |     at InjectNode.emit (events.js:189:13)
nodered      |     at InjectNode.Node.receive (/usr/src/node-red/node_modules/@node-red/runtime/lib/nodes/Node.js:237:14)
nodered      |     at /usr/src/node-red/node_modules/@node-red/nodes/core/core/20-inject.js:117:22
nodered      |     at Layer.handle [as handle_request] (/usr/src/node-red/node_modules/express/lib/router/layer.js:95:5)
nodered      |     at next (/usr/src/node-red/node_modules/express/lib/router/route.js:137:13)

Generell sind im globalen Kontext nur bei den HmIP-RF Geräten die Channel 0 Daten vorhanden, bei BidCos-RF nur dann, wenn der jeweilige Datapoint true ist.

Nodered: 0.20.5
node-red-contrib-ccu: 2.0.8

@hobbyquaker hobbyquaker added the 🐛bug Something isn't working label Apr 12, 2019
@hobbyquaker
Copy link
Member

Reproducible, thanks for reporting. Will try to deliver a fix this weekend.

@hobbyquaker
Copy link
Member

hobbyquaker commented Apr 13, 2019

Das Problem sollte mit node-red-contrib-ccu 2.0.10 behoben sein. Wird im nächsten RedMatic Release drinstecken, wenn Du es schon vorab haben willst kannst Du aber auch über den Node-RED Palette Manager jetzt schon node-red-contrib-ccu aktualisieren (danach ist ein Node-RED Neustart notwendig). Bitte gib dann Bescheid ob es passt.

@gerrieg
Copy link
Author

gerrieg commented Apr 13, 2019

Vielen Dank für den raschen Fix!

Es ist zwar viel besser, aber noch nicht ganz gefixt. Channel 0 funktioniert jetzt, allerdings werden von meiner HM-RC-19 Fernbedienung nur Channel 0 & 18 geladen. Bei einem anderen Kanal kommt die gleiche Fehlermeldung

@hobbyquaker
Copy link
Member

hmm... das kann ich auf anhieb nicht reproduzieren. Bei mir werden die Werte aller Kanäle meiner RC19 geholt, allerdings sind die ja eh nur eventable (haben nur PRESS_* Datenpunkte) stehen also eigtl immer auf false. Auf was genau wolltest Du Zugreifen in den Kanälen 1-17?

@hobbyquaker
Copy link
Member

Falls hier echt noch ganze Kanäle "verloren" gehen - könntest Du mir bei der Analyse helfen? Diese Daten werden intial vom ReGaHSS Prozess der CCU abgefragt. Dazu verwende ich dieses Modul: https://github.com/hobbyquaker/homematic-rega
Hab eben eine test.js gepushed die die relevanten Daten in ne Datei schreibt, dann könnten wir dem auf den Grund gehen. Müsstest halt node/npm installiert haben, wenn Dir das aber zu viel umstand ist kein Problem - bin ich auch nicht beleidigt ;-)

@hobbyquaker
Copy link
Member

Ah, habs gefunden.

https://github.com/rdmtc/node-red-contrib-ccu/blob/master/nodes/ccu-connection.js#L676

Ich lege die Werte von PRESS_* Datenpunkten gar nicht an. Ich hab ehrlichgesagt grad kein blassen schimmer warum ich das so gemacht hab. Vermutung: weil es Eventable "One Shot" Dinger sind wollte ich verhindern dass initial ein Tastendruck ausgelöst wird oder irgendeine Wechselwirkung mit dem "Emit Changed only" Filter. Muss ich mich nochmal reindenken, brauch ich ein bisschen Zeit für.

@hobbyquaker hobbyquaker changed the title TypeError bei get value node und Channel 0 TypeError bei get value node und Channel 0, initiale Werte von PRESS_* Datenpunkten fehlen Apr 13, 2019
@hobbyquaker
Copy link
Member

So, bin optimistisch dass die 2.0.11 sich nun wie erwartet verhält ;)

@gerrieg
Copy link
Author

gerrieg commented Apr 13, 2019

👍 Super, jetzt funktioniert es. Danke!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐛bug Something isn't working
Development

No branches or pull requests

2 participants