To explain a bit more, it has all the tools to make an Espruino (or Node.sj) based device like a light, which you then give an ID and a number of classes, like you would if you were adding an image to a Web page.
Then you can make a Web page or app that controls that light using the ub.js Web UI library, so all you have to do in your JavaScript is initialise ub.js and call ub('#light_id').css('power', 'on') and the light turns on. All the connectivity and messaging is taken care of by the Node.js app.
That kind of implementation is fairly simple for most people here to do (or at least figure out how to do), but ub scales well. So you could instead do ub('.light').css('power', 'on') and control thousands of lights if you wanted to. You can also do things like ub('.light:not(.ceiling)') to select all the lights not on the ceiling.
ub also uses formats, protocols and approaches which make it more compatible with the Web as it already is. Rather than connecting to a device, the device integrates with the Web as it is. It's a subtle difference, but I think it's an important one.
I hope that makes it a bit clearer. There are also a few working examples in the GitHub and I plan to add more when I can.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
To explain a bit more, it has all the tools to make an Espruino (or Node.sj) based device like a light, which you then give an ID and a number of classes, like you would if you were adding an image to a Web page.
Then you can make a Web page or app that controls that light using the ub.js Web UI library, so all you have to do in your JavaScript is initialise ub.js and call ub('#light_id').css('power', 'on') and the light turns on. All the connectivity and messaging is taken care of by the Node.js app.
That kind of implementation is fairly simple for most people here to do (or at least figure out how to do), but ub scales well. So you could instead do ub('.light').css('power', 'on') and control thousands of lights if you wanted to. You can also do things like ub('.light:not(.ceiling)') to select all the lights not on the ceiling.
ub also uses formats, protocols and approaches which make it more compatible with the Web as it already is. Rather than connecting to a device, the device integrates with the Web as it is. It's a subtle difference, but I think it's an important one.
I hope that makes it a bit clearer. There are also a few working examples in the GitHub and I plan to add more when I can.