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.
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.
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" } |