Skip to content

Output Layers #6

@pwood

Description

@pwood

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions