Like a MAC address, a valid username can only contain 6 pairs of
hexadecimal characters, and for homebridge purposes must be
colon-separated. This adds a simple regex test for a proper username,
since I just spent nearly 24h trying to debug an issue that all came
down to not realizing that a MAC address could only have letters A-F
(see https://github.com/nfarina/homebridge/issues/385).
If the found plugin / package does not fulfill some specs (i.e. does not contain the keyword `homebridge-plugin`), it will be rejected with an error. Without that change nobody will be notified WHY the plugin has been rejected/skipped.
- Homebridge calls single exported initializer function and passes an
API object
- No more require() for HAP classes (doesn't play well with plugin
structure)
- Homebridge is now designed to be `npm install`d globally and
executed via "homebridge" script
- Remove all specific accessories/platforms except for an example
- New internal structure and "cli"
It seemed to be easier all around to use NPM to manage the dependancy on HAP-NodeJS.
This PR removes the submodule, and adjusts the paths of all checked in shims to reference the NPM module instead.
I also updated the documentation to reflect the simpler install ;)