forked from hardillb/node-red-alexa-home-skill-web
-
-
Notifications
You must be signed in to change notification settings - Fork 8
Features Roadmap
coldfire84 edited this page Jan 25, 2020
·
99 revisions
Feature development list / progress as below.
Google Home Integration now complete, testing underway - if you want access contact me via node-red@cb-net.co.uk
Initial beta test release, no state monitoring
[State] Show state in Alexa App[User] Show Device Count on My Device page[Device Admin] Add total device count[User Admin] Add Total User Count[User Admin] Add User Device Count-
[Analytics] Re-enable Google Analytics/ Integrate into new APIs, look to coverPage view/ web site visits/ user journey flow-
Event logging forCommand APIDiscovery APIGet State API
Total API callsPer-User Total API callsPer-Device API calls
[Capability] Add support for Alexa.PercentageController[Capability] Break-out state data for colorBrightness and brightness[Capability] Add support for Alexa.Speaker[PlaybackController] Add support for FastForward, Next, Previous, Rewind, StartOver[Capability] Add support for Alexa.TemperatureSensor[Device] Create "dummy" state data on device creation, will make usability much easier[Alexa Skill] Availability in en-US, en-CA, en-IN, en-AU markets-
[Alexa Skill Marketplace] translations for:Spanish es-ESGerman de-DEJapanese jp-JPItalian it-IT
[Lambda] Define function in East US 1 region[Lambda] Define function in Asia Pacific Tokyo region-
[API] Addition of API Rate Limitergetstate Web API limiterLambda RATE_LIMIT_EXCEEDED event handler
-
[Capability] Add support for Alexa.ChannelControllerLambda updatesNode-RED Contrib updatesWeb Service updates
[Branding] Rebrand website to "Node-RED Alexa Smart Home" in-line with node-red-contrib branding[Login] Display alert/ banner if account not linked with Amazon Account[User "My Account" Page] Create new user page to edit/ update details, change password and delete user account[Superuser] Change post-login behaviour to go to management interface, disable My Devices/ My Account[Capability]"<Device Name> doesn't support that" feedback now provided on unsupported command/ directive
[Web API] Deprecate rotating-file-system logs in favour of Winston logging to console / Docker logs (container-based architecture favours this)[Terms of Service] TOS updated/ links configured on login and register pages, modal code added for ease of consumption. Alexa Skill updated in each market with TOS link[Privacy Policy] Links configured on login and register pages, modal code added for ease of consumption-
[API] Define throttling on a per-router basisgetstate (in-place as of release 0.5)loginnewuserdevicescatch-all
[Web UI] Add tooltips to each capability to help with user selection
[Branding] Website branding changed to Node-RED Smart Home[Branding] Logo created, updated across Alexa Skill and Google Home Skill[Branding] Change to red.cb-net.co.uk (inc SSL/ NGINX conf etc - leaving existing hostnames for Web API and MQTT in-play)-
[Google Assistant] Enable use of both Alexa and Google Home services - high-level plan:-
MongoDB Schema Changes:-
Google Home device data staging (available via /admin/update-schema):-
Create new "attributes" element (mixed):Create new attributes.colorModel element (string)Create new element attributes.colorTemperatureRange : {temperatureMinK (number), temperatureMaxK (number)}Move existing validRange values for colorTemperatureCreate new element attributes.temperatureRange : {temperatureMin (number), temperatureMax (number)}Create new element attributes.temperatureScale (string)Create new element attributes.thermostatModes (array of strings)Move existing validRange values for temperatureModify getstate, setstate, device creation to use new elementsCreate new element attributes.sceneReversible(boolean)Add attribute element "translation" for Google Home and Alexa
-
-
-
API Add new routers for-
SYNC-
Add ReplaceCapability function to translate stored capabilities for Google Home:PowerController >> action.devices.traits.OnOffBrightnessController >> action.devices.traits.BrightnessColorController & ColorTemperatureController >> action.devices.traits.ColorSettingSceneController >> action.devices.traits.SceneThermostatController >> action.devices.traits.TemperatureSetting
-
Add gHomeReplaceType function to translate stored types for Google HomeACTIVITY_TRIGGER >> action.devices.types.SCENELIGHT >> action.devices.types.LIGHTSMARTPLUG >> action.devices.types.OUTLETSWITCH >> action.devices.types.SWITCHTHERMOSTAT >> action.devices.types.THERMOSTAT
-
EXECQUERYDISCONNECT
-
-
[Web API] Change service to modular architecture, based on express.router to better divide up code. Single monolithic index.js is too difficult to maintain[Google Home] add 'roomHint' (string) attribute/ text box on device creation to populate[Command API] Moved response construction to NodeJS instance as opposed to Lambda[Google Home] Add support for Async State Updates[Alexa] Add support for Async state updates/ Alexa Authorization directive-
[Service Management] maintenance functions for:AccessToken cleanup (handled via TTL index)MongoDB Sessions (not needed)
[Logging] Introduced Cloudwatch support for logs[Google Home] add support for mediaState trait (Alexa equiv. PlaybackController) / TV device type (experimental)[Google Home] add support for volume trait (Alexa equiv. Speaker)/ Speaker device type (experimental)[Google Home] add 2FA (PIN) check to Smart Lock device type (optional)
[Node-RED Contrib] Move Request Library to HTTPS due to ehcd curve errors[Capability] Add Alexa Contact Sensor capability[User] Add My Account option to remove OAuth tokens[API] Add State Update validation to API (was already built-in to Node-RED contrib, this is a fail-safe)[Node-RED Contrib] Added handler/ GUI-based warnings for unsupported commands[Node-RED Contrib] Add 'message/' topic / alerting capability in Node-RED interface for bad OOB state updates (those hosting their own must run the commands outlined here. (Work in Progress)[Alexa] Add support for ContactSensor[Alexa] Add support for MotionSensor[State API] Enable Change Reports/ status changes to GHome and Alexa for ContactSensor and MotionSensor
[Google Home] Fix multi-command/ partial success responses-
[Google Home] add TraitsOpen/CloseFanSpeed
-
[Google Home] add device typesFanInternal/ External Blinds
-
[Alexa] add device typesFanInternal/ External Blinds
-
[Alexa] add capability:RangeController, customised for Blinds and general device types
[Website] Translations for supported skill languages-
[Node-RED Nodes] multiple fixes:Resolve state node being "first" to register causing MQTT connection failureRemoved the need/ requirement for payload.acknowledged to be set in state updates
-
Re-structure service in preparation for further async/ event driven executionAdd .env file to reduce command complexityAdd .ghomejwt file to simplify env definitionsIntroduce new async function to check for JWT/ kick off Home Graph API OAuth
Streamlined passport authentication/ strategies code, consolidating into app.js (for now) and removing duplicate code from alexa, ghome, auth and default routesNew MongoDB Indexes to improve Admin UI performance (aggregate query times significantly improved, changed table presentation to be on document load).Add email verification flow on account creationAdd limitAttempts to passport-local-mongoose config to track lastLogin informationForce all new user accounts to be lower case, lots of same-named accounts (for same email address!) with different case, clearly this was causing confusion!Add Dark Mode theme to UI via https://github.com/sandoche/Darkmode.jsChange changePassword to use landing page, preventing token use by email scanning services that check URLsAdd isVerified to Admin/ Users pageAdd functionality to enable/ disable users via /admin/users interfaceBump all depends to vCurrent (at time of writing), including EJS which required changes on file includes within templatesAdd TOC / nav pane on /docs using https://github.com/afeld/bootstrap-tocAdd sitemap using: https://www.npmjs.com/package/sitemap#example-of-using-sitemapjs-with-expressAdd robots.txt via https://www.npmjs.com/package/express-robots-txtRewrite Alexa and Google functions to Async/ Await, consolidate functions to reduce code duplicate/ overlapAdd support for branding/ brand name via .env fileAdd state reporting for fans, blinds (internal and external)Add support for mosquitto-auth-go plugin, replacing the now deprecated mosquitto-auth-plugAdd require 2FA PIN on Smart Lock device for Google Home-enabled users when creating / editing a Smart LockAdd check for duplicate device name on create new device- Ongoing
- [Response/ State Node] Review possibility to merge
- [State] ? move to conf node and offer checkbox/ auto-select if device.state.resportState == true
- [Device Admin] Edit
- [Device Admin] Disable Device
- [Device Admin] Reset Device State Element
- [User Admin] Reset Password
- [Node-RED Nodes] Translations for supported skill languages
- Alexa device types:
- Camera - Alexa Show stream On TV or Echo Show
- Door - Lock / Open + Confirm and Icon to display Locked/closed
- Doorbell to pass notifications
- Garage - Alexa is the Garage door locked / Alexa open / close
- Network HW - Alexa to confirm status UP / Down etc