Skip to content

Latest commit

 

History

History
91 lines (74 loc) · 3.12 KB

configure-custom-api.md

File metadata and controls

91 lines (74 loc) · 3.12 KB

Custom API

The Custom API page lets you use any generic service which has a web API which accepts GET or POST requests.

For example, IFTTT webhooks can be used to run an action on any IFTTT-integrated service.

In this way IFTTT can act as a bridge to other light services (such as Magic Home / MagicHue) or any other service which you may want to control with your Teams presence, e.g. 'When I'm in do not disturb pause Roomba'.

To connect PresenceLight to a custom API:

Configure the web service (e.g. created the applets in IFTTT) Enter the corresponding API method and URI against each presence state.

Configured

The Custom API REST API calls also support providing a json formatted body to the endpoints (Uri) of Custom API.

You can use the following variables in your JSON body:

  • {{availability}}
  • {{activity}}

If you use above variables in the JSON body they will be replaced with the availability and/or activity values of your Microsoft Teams status.

Home Assistant integration

To use PresenceLight with Home Assistant you can use the Custom API functionality as follows:

In Home Assistant you can use Webhooks triggers to trigger an Automation Action, like turning on a light bulb.

Example Automation for turning on a light bulb based on the Teams status send using the Custom API functionality of PresenceLight.

alias: Teams presence - IKEA Light Bulb Living Room
description: >-
  Show the Microsoft Teams status via a color of the Light Bulb in the Living
  Room
trigger:
  - platform: webhook
    allowed_methods:
      - POST
    local_only: true
    webhook_id: "<enter secret webhook id here>"
condition: []
action:
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ trigger.json.presence_status == 'Busy' }}"
        sequence:
          - service: light.turn_on
            metadata: {}
            data:
              color_name: red
            target:
              entity_id: light.ikea_bulb
      - conditions:
          - condition: template
            value_template: "{{ trigger.json.presence_status == 'Available' }}"
        sequence:
          - service: light.turn_on
            metadata: {}
            data:
              color_name: green
            target:
              entity_id: light.ikea_bulb
      - conditions:
          - condition: template
            value_template: "{{ trigger.json.presence_status == 'Away' }}"
        sequence:
          - service: light.turn_on
            metadata: {}
            data:
              color_name: yellow
            target:
              entity_id: light.ikea_bulb
      - conditions: null
        sequence:
          - service: light.turn_off
            metadata: {}
            target:
              entity_id: light.ikea_bulb
            data: {}
mode: single

In PresenceLight Custom API setting you need to enter the following information:

Method Uri Body
POST http://homeassistant.local:8123/api/webhook/webhook_id { "presence_status":"Away" }