
NEEO - Driver Manager (ALPHA)
Hi All,
I ordered my NEEO yesterday and rather than clock watching I thought I'd try and be productive, so I started working on a NEEO Driver Manager.
After reading the forums it seems to me that there are some users who don't have any programming experience or are unfamiliar with JavaScript and Node. In addition, I personally didn't want to micro manage drivers and wanted a more "automated" system of finding/installing/maintaining them. So I started work on NEEO Driver Manager. I've added a link to an incredible lo-res (sorry!) video on YouTube of my progress after a few hours.
As I mentioned above I don't have my NEEO yet so I haven't test with real hardware and I also don't have any of the devices the drivers are trying to work with so some of them just error out when installed and started.
At a very high-level all this is doing is:
- Searching npm for driver packages
- npm installing the package you select
- Using pm2 to manage the driver processes
In the short term I see this as a useful tool to manage drivers but I have a mini longer term roadmap in-mind:
- Containerise/self-contain into a more user friendly installation (docker/exe/dmg etc)
- Sandbox area for developing and publishing you own drivers (think stackblitz but nowhere near as good)
- Install drivers via the NEEO remote (not sure if this will be possible, but I'd like to try)
- Pie in the sky - build a Google Assistant app using Dialog flow and let this be the bridge between the NEEO locally and Google Home services.
The codes not up on GitHub yet as the GUI is awful but once I have that cleaned up and I have my NEEO devices to test on I will happily push the code up for everyone to contribute and report issues.
Hopefully this tool can make finding drivers easier and have better "advertising" around them as it makes it simpler for end users to use them. It might also help standardise naming conventions for drivers, e.g. neeo-driver-<x>.
Interested to know if people think this is any use?
-
I've made some good progress today:
- A proper client side implementation
- Websocket integration for UI updates
- Major code tidy on the backend
I've decided to use React and Mobx as a learning exercise as I'm more familiar with Vue and Angular. The outstanding tasks before I'll post the repo:
- Tidy client code a bit more
- Driver overview in application bar (e.g. 5 online, 1 stopped, 2 errored)
- Start All & Stop All buttons in application bar
- Helpful README
- PR template
- git commit validation using husky & commitizen
- Code styling rules (eslint, editorconfing etc.)
- Test on my NEEO when it arrives
When all of those are done then I think I'm ready to open it up, right now it's not quite there. I'll hopefully have it done in a couple of days.
Cheers
-
If other developers are interested in taking part in the discussion, the thread is available here: https://github.com/NEEOInc/neeo-sdk/issues/74
-
I'm having some issues with the search bar. tested on windows with chrome and edge.
neeo_driver doesn't result in any find's.
also the search bar does not return a just published package. I've just published neeo_driver-dreamscreen to NPM but the i do not get it returned through the manager UI.
C:\Users\niels.dklerk\Documents\Code\NEEO\APPS\neeo_driver-DreamScreen>npm search dreamscreen NAME | DESCRIPTION | AUTHOR | DATE | VERSION | KEYWORDS dreamscreen | A high level… | =smirea | 2016-11-27 | 0.4.1 | DreamScreen BLE dreamscreen-node | Node.js… | =ksecord | 2018-03-28 | 0.0.4 | neeo_driver-dreamscreen | NEEO driver,… | =nielsdeklerk.… | 2018-05-10 | 0.0.6 |
when entering a "%" character the code crashes.
-
Niels de Klerk So I spent an hour looking into the best way to distribute this as a production piece of software and after some playing around I think I am settled on an electron app (native wrapper around web based technologies). I put together a real simple example of it in the attached video. It will have the ability to auto start on boot which is a big win, but also some other nice features are opened up using the approach. I will have some time at the weekend to hopefully get this done and some more features complete too. Watch this space!