treban/pimatic-raspbee

if this.buttonAttr.value is empty mobile frontend wont work in scene_rasbee mobile frontend device

scobby opened this issue · 24 comments

When i have the scene_rasbee in one of my pages i have a critical exception in the browser frontend.

i think its due the value of "this.buttonAttr.value" is empty and the mobile frontend cant handle this.

if you need any further information, please contact me.

i will check it

Any news on this?
I have the same issue since I updated mobile-frontend to 0.9.16. As soon as I add a RaspBeeGroupScenes to one of my pages I get this:
error [pimatic-mobile-frontend]: Client error: Cannot read property 'value' of null

i've been very busy the last months. i'll see if i can find time for the plugin the next days.

damn it, runs last month smooth, now i have this problem again. Can you have a look at it?

Did i say that this bug break the complete frontend? this is a critical bug!

Additional Info:

tracekit.js:235 Uncaught TypeError: Cannot read property 'value' of null
at new ButtonsItem (index-items.js:656)
at Object.$create (scope.js:667)
at Object.fromJS (scope.js:10)
at Object.exports.fromJS (knockout.mapper.js:32)
at Object.fromJS (knockout.mapper.js:160)
at Object.fromJS (knockout.mapper.js:88)
at Object.exports.fromJS (knockout.mapper.js:32)
at Object.fromJS (knockout.mapper.js:212)
at Object.fromJS (knockout.mapper.js:88)
at Object.exports.fromJS (knockout.mapper.js:32)

  | $create | @ | scope.js:667
  | fromJS | @ | scope.js:10
  | exports.fromJS | @ | knockout.mapper.js:32
  | fromJS | @ | knockout.mapper.js:160
  | fromJS | @ | knockout.mapper.js:88
  | exports.fromJS | @ | knockout.mapper.js:32
  | fromJS | @ | knockout.mapper.js:212
  | fromJS | @ | knockout.mapper.js:88
  | exports.fromJS | @ | knockout.mapper.js:32
  | DevicePage | @ | scope.js:678
  | $create | @ | scope.js:880
  | fromJS | @ | scope.js:10
  | exports.fromJS | @ | knockout.mapper.js:32
  | fromJS | @ | knockout.mapper.js:160
  | fromJS | @ | knockout.mapper.js:88
  | exports.fromJS | @ | knockout.mapper.js:32
  | fromJS | @ | knockout.mapper.js:212
  | fromJS | @ | knockout.mapper.js:88
  | exports.fromJS | @ | knockout.mapper.js:32
  | Pimatic.updateFromJs | @ | scope.js:1036
  | (anonymous) | @ | connection.js:106
  | (anonymous) | @ | helper.js:164
  | n.emit | @ | socket.io.js:2
  | n.onevent | @ | socket.io.js:3
  | n.onpacket | @ | socket.io.js:3
  | (anonymous) | @ | socket.io.js:3
  | n.emit | @ | socket.io.js:2
  | n.ondecoded | @ | socket.io.js:1
  | (anonymous) | @ | socket.io.js:3
  | XMLHttpRequest.send (async) |   |  
  | i.create | @ | socket.io.js:2
  | i | @ | socket.io.js:2
  | o.request | @ | socket.io.js:2
  | o.doPoll | @ | socket.io.js:2
  | n.poll | @ | socket.io.js:2
  | n.onData | @ | socket.io.js:2
  | (anonymous) | @ | socket.io.js:2
  | n.emit | @ | socket.io.js:2
  | i.onData | @ | socket.io.js:2
  | i.onLoad | @ | socket.io.js:2
  | hasXDR.r.onreadystatechange | @ | socket.io.js:2

this always happen when i add a RaspBeeGroupScenes Device to a page.

I looked into the problem. There are missing a few lines of code and thats causing the problem.

Can you update a file in the pimatic yourself? (cut and paste in raspbee.coffee)
If so, I can provide the lines to add

i already have your git repo running.

this comes when pimatic is initilizing, maybe it helps.
Both devices are the Scene devices and are available:

23:07:31.131 [pimatic-raspbee] Error: Light with ID: 57120 not found
23:07:31.131 [pimatic-raspbee]> at /home/pi/pimatic-app/node_modules/pimatic-raspbee/raspbee-connector.coffee:120:33
23:07:31.131 [pimatic-raspbee]> at tryCatcher (/home/pi/pimatic-app/node_modules/pimatic-raspbee/node_modules/bluebird/js/release/util.js:16:23)
23:07:31.131 [pimatic-raspbee]> at Promise._settlePromiseFromHandler (/home/pi/pimatic-app/node_modules/pimatic-raspbee/node_modules/bluebird/js/release/promise.js:547:31)
23:07:31.131 [pimatic-raspbee]> at Promise._settlePromise (/home/pi/pimatic-app/node_modules/pimatic-raspbee/node_modules/bluebird/js/release/promise.js:604:18)
23:07:31.131 [pimatic-raspbee]> at Promise._settlePromise0 (/home/pi/pimatic-app/node_modules/pimatic-raspbee/node_modules/bluebird/js/release/promise.js:649:10)
23:07:31.131 [pimatic-raspbee]> at Promise._settlePromises (/home/pi/pimatic-app/node_modules/pimatic-raspbee/node_modules/bluebird/js/release/promise.js:725:18)
23:07:31.131 [pimatic-raspbee]> at _drainQueueStep (/home/pi/pimatic-app/node_modules/pimatic-raspbee/node_modules/bluebird/js/release/async.js:93:12)
23:07:31.131 [pimatic-raspbee]> at _drainQueue (/home/pi/pimatic-app/node_modules/pimatic-raspbee/node_modules/bluebird/js/release/async.js:86:9)
23:07:31.131 [pimatic-raspbee]> at Async._drainQueues (/home/pi/pimatic-app/node_modules/pimatic-raspbee/node_modules/bluebird/js/release/async.js:102:5)
23:07:31.131 [pimatic-raspbee]> at Immediate.Async.drainQueues [as _onImmediate] (/home/pi/pimatic-app/node_modules/pimatic-raspbee/node_modules/bluebird/js/release/async.js:15:14)
23:07:31.131 [pimatic-raspbee]> at runCallback (timers.js:705:18)
23:07:31.131 [pimatic-raspbee]> at tryOnImmediate (timers.js:676:5)
23:07:31.131 [pimatic-raspbee]> at processImmediate (timers.js:658:5)
23:07:31.133 [pimatic-raspbee] Error: Light with ID: 63287 not found
23:07:31.133 [pimatic-raspbee]> at /home/pi/pimatic-app/node_modules/pimatic-raspbee/raspbee-connector.coffee:120:33
23:07:31.133 [pimatic-raspbee]> at tryCatcher (/home/pi/pimatic-app/node_modules/pimatic-raspbee/node_modules/bluebird/js/release/util.js:16:23)
23:07:31.133 [pimatic-raspbee]> at Promise._settlePromiseFromHandler (/home/pi/pimatic-app/node_modules/pimatic-raspbee/node_modules/bluebird/js/release/promise.js:547:31)
23:07:31.133 [pimatic-raspbee]> at Promise._settlePromise (/home/pi/pimatic-app/node_modules/pimatic-raspbee/node_modules/bluebird/js/release/promise.js:604:18)
23:07:31.133 [pimatic-raspbee]> at Promise._settlePromise0 (/home/pi/pimatic-app/node_modules/pimatic-raspbee/node_modules/bluebird/js/release/promise.js:649:10)
23:07:31.133 [pimatic-raspbee]> at Promise._settlePromises (/home/pi/pimatic-app/node_modules/pimatic-raspbee/node_modules/bluebird/js/release/promise.js:725:18)
23:07:31.133 [pimatic-raspbee]> at _drainQueueStep (/home/pi/pimatic-app/node_modules/pimatic-raspbee/node_modules/bluebird/js/release/async.js:93:12)
23:07:31.133 [pimatic-raspbee]> at _drainQueue (/home/pi/pimatic-app/node_modules/pimatic-raspbee/node_modules/bluebird/js/release/async.js:86:9)
23:07:31.133 [pimatic-raspbee]> at Async._drainQueues (/home/pi/pimatic-app/node_modules/pimatic-raspbee/node_modules/bluebird/js/release/async.js:102:5)
23:07:31.133 [pimatic-raspbee]> at Immediate.Async.drainQueues [as _onImmediate] (/home/pi/pimatic-app/node_modules/pimatic-raspbee/node_modules/bluebird/js/release/async.js:15:14)
23:07:31.133 [pimatic-raspbee]> at runCallback (timers.js:705:18)
23:07:31.133 [pimatic-raspbee]> at tryOnImmediate (timers.js:676:5)
23:07:31.133 [pimatic-raspbee]> at processImmediate (timers.js:658:5)

I updated the file raspbee.coffee in my fork. Replace the current raspbee.coffee with that file and restart pimatic.
Let me know if this helps

Great! that worked! thx a lot!

the second error is still there (Error: Light with ID: 57120 not found) but i think it doesnt have any impact.

Can we get all of your changes to the official repo from treban? that would be great for the addon. i think treban have only a little time currently.

I will check light tomorrow. I will make pull requests for the changes in the official repo.

Thx!

On the 'Light with ID: 57120/63287 not found' error. A few questions:

  • you talk about 'Scene devices'. But for scenes these shouldn't be lights, they should be scenes made in Deconz
  • are the scenes added via discovery without changing the id?
  • are you using raspbee-cover devices?

Ok, and what is the device type, RaspBee????

It's that same device with the other problem: RaspBeeGroupScenes

What other RaspBee devices do you have?
The RaspBeeGroupScenes does not call the light status in line 120 in raspbee-connector (whats giving the error), so there must be other devices causing this issue.
And can you check in your config.json if these id's are leftovers from testing, etc

I have this devices with that id:

{
"class": "RaspBeeGroupScenes",
"name": "Scenes for Wohnzimmer",
"id": "scene_raspbee_gb95cf038eeabe29e248fa0f8b6f6c35263287_63287",
"deviceID": 63287,
"buttons": [
{
"id": 1,
"name": "Gemütlich",
"text": "Gemütlich"
},
{
"id": 2,
"name": "Fokus",
"text": "Fokus"
},
{
"id": 3,
"name": "Essen",
"text": "Essen"
},
{
"id": 4,
"name": "TV",
"text": "TV"
},
{
"id": 5,
"name": "Chillen",
"text": "Chillen"
},
{
"id": 6,
"name": "Alltag",
"text": "Alltag"
}
]
},

and found another (just searched not more, because thought only one deviceid is possible)

{
"class": "RaspBeeRGBCTGroup",
"name": "Wohnzimmer",
"id": "wohnzimmer",
"deviceID": 63287
},

I would remove the second one. I think you also have a second device with ID 57120. If so, remove that one also

Have this Problem again,
can we find a way to fix this? its really annoying.
Maybe a better logging here would help a little bit to fix this problem.
But that would only a be a workaround.
Do you need any more information?
lg scobby

Note: switched to official repo,
maybe we should merge @bertreb changes to the official repo.