Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Output Layers #6

Open
4 of 6 tasks
pwood opened this issue Dec 19, 2020 · 0 comments
Open
4 of 6 tasks

Output Layers #6

pwood opened this issue Dec 19, 2020 · 0 comments
Labels
enhancement New feature or request

Comments

@pwood
Copy link
Member

pwood commented Dec 19, 2020

Output layers are a concept that allow multiple different interfaces/internal controller applications to share capabilites on devices, with each application having a priority.

Use case 1 (dual demand):

  • User switches on light in bathroom, this also asserts an extration fan should be on, fan goes on.
  • The environmental system sees high humidity in the bathroom, and asserts the fan should be on.
  • User switches off the light in bathroom, asserts the fan to be off, the fan remains on because the humidity is still too high.
  • Humidity drops below a water mark, asserts fan to be off, fan goes off.

Use case 2 (conflicting demand):

  • User switches on light, light asserts on, warm white. Light turns on to warm white.
  • Alarm system goes into alarm, asserts light red. Light turns red.
  • Alarm system cleans alarm, unasserts light red. Light results to be warm white.

To Do

  • Add Go interfaces to controller for stack and layer.
  • Pass stack and layer to HTTP interface.
  • Implement dumb pass thru layer.
  • Allow selection of layer and retention policy to HTTP interface (default HTTP layer is http).
  • Implement resolving layers, intercepting capabilities that have an output to a device.
  • Enable creation of multiple layers in configuration, with priority assigned by order.
@pwood pwood added the enhancement New feature or request label Dec 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant