Home Automation System API for the Bang & Olufsen Beoremote Halo 1.0.2

The Home Automation System API allows you to interact with a Beoremote Halo.

Requires Beoremote Halo version 1.4.759

Client Connection

  • Upon client connection to http socket 8080, a websocket upgrade request is required.
  • Throught the websocket connection the client must send a configuration
  • Beoremote Halo will remain configured as long as a client is connected. In the event of a disconnect, the client must reconnect and resend the configuration.
  • If a client connects to Beoremote Halo while a websocket connection is active, the current websocket connection is closed and the new client is able to perform a websocket upgrade.

Update Flow

  • Client configures Beoremote Halo
  • The client can update the elements in the configuration passed to Beoremote Halo.
  • Updates are cached on Beoremote Halo, and some updates tempoaraly changed the behaviour of Beoremote Halo e.g. Uupdate Display Page.

Event Flow

  • Halo sends Event notifications upon user interaction; system, status, power, button, and wheel events.

License

Copyright 2021 Bang & Olufsen a/s

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Servers

  • halo-hostname:8080wsproduction

    WebSocket

    port
    required
    string
    Default value:"8080"

Operations

  • PUB /

    Home Automation system to Beoremote Halo.

    Operation IDPublications

    Accepts one of the following messages:

    • #0configuration

      Page layout configuration

      The configuration contains the complete setup of the page(s) and button(s) Halo will present on the home automation screen. This can be used as a standalone setup or used together with a product.

      object
      uid: configuration

      Examples

    • #1update

      Updates from Home Automation System which should be reflected on Halo

      The Home Automation System is able to request different updates like a page update change, button update change or notification update which will be displayed on Halo until it is dismissed.

      object
      uid: update

      Examples

  • SUB /

    Beoremote Halo to Home Automation system.

    Operation IDSubscriptions

    Accepts the following message:

    event

    Events from Halo to Home Automation System

    Halo will send status events when updates are received from the Home Automation System. System changes are sent when Halo switches power state. Power events are sent when the Halo battery charge state has changed. Button and wheel events are sent when operated. Errors messages are sent upon malformed configuration or update.

    object
    uid: event

    Examples

Messages

  • #1configuration

    Page layout configuration

    The configuration contains the complete setup of the page(s) and button(s) Halo will present on the home automation screen. This can be used as a standalone setup or used together with a product.

    object
    uid: configuration
  • #2update

    Updates from Home Automation System which should be reflected on Halo

    The Home Automation System is able to request different updates like a page update change, button update change or notification update which will be displayed on Halo until it is dismissed.

    object
    uid: update
  • #3event

    Events from Halo to Home Automation System

    Halo will send status events when updates are received from the Home Automation System. System changes are sent when Halo switches power state. Power events are sent when the Halo battery charge state has changed. Button and wheel events are sent when operated. Errors messages are sent upon malformed configuration or update.

    object
    uid: event

Schemas

  • object
    uid: configuration
  • object
    uid: text
  • object
    uid: icons
  • object
    uid: button
  • object
    uid: event
  • object
    uid: statusEvent
  • object
    uid: systemEvent
  • object
    uid: powerEvent
  • object
    uid: buttonEvent
  • object
    uid: wheelEvent
  • object
    uid: update
  • object
    uid: updateButton
  • object
    uid: updateNotification
  • object
    uid: updateDisplayPage