From cbd154b12539715e6e9fe569c66ea1bef807fbaa Mon Sep 17 00:00:00 2001 From: Tomasz Poszytek <50657947+tposzytek@users.noreply.github.com> Date: Fri, 10 Jun 2022 17:53:55 +0200 Subject: [PATCH] Philips HUE (Independent Publisher) (#1438) * Philips HUE (Independent Publisher) * Philips HUE (Independent Publisher) --- .../Philips HUE/apiDefinition.swagger.json | 2176 +++++++++++++++++ .../Philips HUE/apiProperties.json | 73 + .../Philips HUE/readme.md | 97 + 3 files changed, 2346 insertions(+) create mode 100644 independent-publisher-connectors/Philips HUE/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Philips HUE/apiProperties.json create mode 100644 independent-publisher-connectors/Philips HUE/readme.md diff --git a/independent-publisher-connectors/Philips HUE/apiDefinition.swagger.json b/independent-publisher-connectors/Philips HUE/apiDefinition.swagger.json new file mode 100644 index 000000000..041118fcb --- /dev/null +++ b/independent-publisher-connectors/Philips HUE/apiDefinition.swagger.json @@ -0,0 +1,2176 @@ +{ + "swagger": "2.0", + "info": { + "title": "Philips HUE", + "description": "Philips HUE allows you to control smart home devices, like lights, switches, plugs and more built by Philips.", + "version": "1.0", + "contact": { + "name": "Tomasz Poszytek", + "url": "https://aka.ms/poszytek", + "email": "tomasz@poszytek.eu" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.philips-hue.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.philips-hue.com/en-us/support/legal/privacy-policy" + }, + { + "propertyName": "Categories", + "propertyValue": "Internet of Things;Lifestyle and Entertainment" + } + ], + "host": "api.meethue.com", + "basePath": "/route", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/clip/v2/resource/light": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "description": "List of errors.", + "type": "object", + "properties": { + "description": { + "type": "string", + "x-nullable": true, + "description": "A human-readable explanation specific to this occurrence of the problem.", + "title": "Error description" + } + } + }, + "description": "Errors that occurred during the call." + }, + "data": { + "type": "array", + "description": "User lights.", + "items": { + "description": "List of lights.", + "type": "object", + "properties": { + "alert": { + "type": "object", + "properties": { + "action_values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of alert effects that the light supports.", + "title": "Action values" + } + }, + "title": "Alert" + }, + "color": { + "type": "object", + "title": "Color", + "properties": { + "gamut": { + "type": "object", + "description": "Color gamut of color bulb.", + "title": "Gamut", + "properties": { + "blue": { + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "float", + "description": "X position in color gamut.", + "title": "Blue X" + }, + "y": { + "type": "number", + "format": "float", + "description": "Y position in color gamut.", + "title": "Blue Y" + } + }, + "description": "CIE XY blue gamut position." + }, + "green": { + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "float", + "description": "X position in color gamut.", + "title": "Green X" + }, + "y": { + "type": "number", + "format": "float", + "description": "X position in color gamut.", + "title": "Green Y" + } + }, + "description": "CIE XY green gamut position." + }, + "red": { + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "float", + "description": "X position in color gamut.", + "title": "Red X" + }, + "y": { + "type": "number", + "format": "float", + "description": "X position in color gamut.", + "title": "Red Y" + } + }, + "description": "CIE XY red gamut position." + } + } + }, + "gamut_type": { + "type": "string", + "description": "The gamut types supported by hue: A - Gamut of early Philips color-only products, B - Limited gamut of first Hue color products, C - Richer color gamut of Hue white and color ambiance products, other - Color gamut of non-hue products.", + "title": "Gamut type" + }, + "xy": { + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "float", + "description": "X position in color gamut.", + "title": "X" + }, + "y": { + "type": "number", + "format": "float", + "description": "Y position in color gamut.", + "title": "Y" + } + }, + "title": "", + "description": "CIE XY gamut position." + } + } + }, + "color_temperature": { + "type": "object", + "properties": { + "mirek": { + "type": "integer", + "format": "int32", + "description": "Color temperature in mirek or null when the light color is not in the ct spectrum.", + "title": "Mirek" + }, + "mirek_schema": { + "type": "object", + "properties": { + "mirek_maximum": { + "type": "integer", + "format": "int32", + "description": "Maximum color temperature this light supports.", + "title": "Mirek maximum" + }, + "mirek_minimum": { + "type": "integer", + "format": "int32", + "description": "Minimum color temperature this light supports.", + "title": "Mirek minimum" + } + }, + "title": "" + }, + "mirek_valid": { + "type": "boolean", + "description": "Indication whether the value presented in mirek is valid.", + "title": "Mirek valid" + } + }, + "title": "Color temperature" + }, + "dimming": { + "type": "object", + "properties": { + "brightness": { + "type": "number", + "format": "float", + "description": "Brightness percentage. value cannot be 0, writing 0 changes it to lowest possible brightness.", + "title": "Brightness" + }, + "min_dim_level": { + "type": "number", + "format": "float", + "description": "Percentage of the maximum lumen the device outputs on minimum brightness.", + "title": "Min dim level" + } + }, + "description": "Dimming settings.", + "title": "Dimming" + }, + "dynamics": { + "type": "object", + "properties": { + "speed": { + "type": "number", + "format": "float", + "description": "Speed of dynamic palette or effect. The speed is valid for the dynamic palette if the status is dynamic_palette or for the corresponding effect listed in status. In case of status none, the speed is not valid.", + "title": "Speed" + }, + "speed_valid": { + "type": "boolean", + "description": "Indicates whether the value presented in speed is valid.", + "title": "Speed valid" + }, + "status": { + "type": "string", + "description": "Current status of the lamp with dynamics.", + "title": "Status" + }, + "status_values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Statuses in which a lamp could be when playing dynamics.", + "title": "Status values" + } + }, + "title": "Dynamics" + }, + "id": { + "type": "string", + "description": "Unique identifier representing a specific resource instance.", + "title": "Resource id" + }, + "id_v1": { + "type": "string", + "description": "Clip v1 resource identifier (v1 API version).", + "title": "Clip v1 resource id" + }, + "metadata": { + "type": "object", + "properties": { + "archetype": { + "type": "string", + "description": "Light archetype. Deprecated: use archetype on device level.", + "title": "Archetype" + }, + "name": { + "type": "string", + "description": "Human readable name of a resource.", + "title": "Device given name" + } + }, + "description": "Additional metadata including a user given name.", + "title": "" + }, + "mode": { + "type": "string", + "description": "One of: normal or streaming.", + "title": "Mode" + }, + "on": { + "type": "object", + "properties": { + "on": { + "type": "boolean", + "description": "On/Off state of the light: on=true, off=false.", + "title": "Light state" + } + } + }, + "owner": { + "type": "object", + "properties": { + "rid": { + "type": "string", + "description": "The unique id of the referenced resource.", + "title": "RID" + }, + "rtype": { + "type": "string", + "description": "The type of the referenced resource.", + "title": "Rtype" + } + }, + "description": "Owner of the service, in case the owner service is deleted, the service also gets deleted.", + "title": "Owner" + }, + "type": { + "type": "string", + "description": "Type of the supported resources.", + "title": "Type" + } + } + } + } + } + } + } + }, + "summary": "Get lights", + "description": "Get list of your devices having lightning capabilities.", + "operationId": "GetLights", + "parameters": [] + } + }, + "/clip/v2/resource/light/{DeviceId}": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "description": "List of errors.", + "type": "object", + "properties": { + "description": { + "type": "string", + "x-nullable": true, + "description": "A human-readable explanation specific to this occurrence of the problem.", + "title": "Error description" + } + } + }, + "description": "Errors that occurred during the call." + }, + "data": { + "type": "array", + "description": "Lights matching given ID.", + "items": { + "description": "List of lights.", + "type": "object", + "properties": { + "alert": { + "type": "object", + "properties": { + "action_values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of alert effects that the light supports.", + "title": "Action values" + } + }, + "title": "Alert" + }, + "color": { + "type": "object", + "title": "Color", + "properties": { + "gamut": { + "type": "object", + "description": "Color gamut of color bulb.", + "title": "Gamut", + "properties": { + "blue": { + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "float", + "description": "X position in color gamut.", + "title": "Blue X" + }, + "y": { + "type": "number", + "format": "float", + "description": "Y position in color gamut.", + "title": "Blue Y" + } + }, + "description": "CIE XY blue gamut position." + }, + "green": { + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "float", + "description": "X position in color gamut.", + "title": "Green X" + }, + "y": { + "type": "number", + "format": "float", + "description": "X position in color gamut.", + "title": "Green Y" + } + }, + "description": "CIE XY green gamut position." + }, + "red": { + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "float", + "description": "X position in color gamut.", + "title": "Red X" + }, + "y": { + "type": "number", + "format": "float", + "description": "X position in color gamut.", + "title": "Red Y" + } + }, + "description": "CIE XY red gamut position." + } + } + }, + "gamut_type": { + "type": "string", + "description": "The gamut types supported by hue: A - Gamut of early Philips color-only products, B - Limited gamut of first Hue color products, C - Richer color gamut of Hue white and color ambiance products, other - Color gamut of non-hue products.", + "title": "Gamut type" + }, + "xy": { + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "float", + "description": "X position in color gamut.", + "title": "X" + }, + "y": { + "type": "number", + "format": "float", + "description": "Y position in color gamut.", + "title": "Y" + } + }, + "title": "", + "description": "CIE XY gamut position." + } + } + }, + "color_temperature": { + "type": "object", + "properties": { + "mirek": { + "type": "integer", + "format": "int32", + "description": "Color temperature in mirek or null when the light color is not in the ct spectrum.", + "title": "Mirek" + }, + "mirek_schema": { + "type": "object", + "properties": { + "mirek_maximum": { + "type": "integer", + "format": "int32", + "description": "Maximum color temperature this light supports.", + "title": "Mirek maximum" + }, + "mirek_minimum": { + "type": "integer", + "format": "int32", + "description": "Minimum color temperature this light supports.", + "title": "Mirek minimum" + } + }, + "title": "" + }, + "mirek_valid": { + "type": "boolean", + "description": "Indication whether the value presented in mirek is valid.", + "title": "Mirek valid" + } + }, + "title": "Color temperature" + }, + "dimming": { + "type": "object", + "properties": { + "brightness": { + "type": "number", + "format": "float", + "description": "Brightness percentage. value cannot be 0, writing 0 changes it to lowest possible brightness.", + "title": "Brightness" + }, + "min_dim_level": { + "type": "number", + "format": "float", + "description": "Percentage of the maximum lumen the device outputs on minimum brightness.", + "title": "Min dim level" + } + }, + "description": "Dimming settings.", + "title": "Dimming" + }, + "dynamics": { + "type": "object", + "properties": { + "speed": { + "type": "number", + "format": "float", + "description": "Speed of dynamic palette or effect. The speed is valid for the dynamic palette if the status is dynamic_palette or for the corresponding effect listed in status. In case of status none, the speed is not valid.", + "title": "Speed" + }, + "speed_valid": { + "type": "boolean", + "description": "Indicates whether the value presented in speed is valid.", + "title": "Speed valid" + }, + "status": { + "type": "string", + "description": "Current status of the lamp with dynamics.", + "title": "Status" + }, + "status_values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Statuses in which a lamp could be when playing dynamics.", + "title": "Status values" + } + }, + "title": "Dynamics" + }, + "id": { + "type": "string", + "description": "Unique identifier representing a specific resource instance.", + "title": "Resource id" + }, + "id_v1": { + "type": "string", + "description": "Clip v1 resource identifier (v1 API version).", + "title": "Clip v1 resource id" + }, + "metadata": { + "type": "object", + "properties": { + "archetype": { + "type": "string", + "description": "Light archetype. Deprecated: use archetype on device level.", + "title": "Archetype" + }, + "name": { + "type": "string", + "description": "Human readable name of a resource.", + "title": "Device given name" + } + }, + "description": "Additional metadata including a user given name.", + "title": "" + }, + "mode": { + "type": "string", + "description": "One of: normal or streaming.", + "title": "Mode" + }, + "on": { + "type": "object", + "properties": { + "on": { + "type": "boolean", + "description": "On/Off state of the light: on=true, off=false.", + "title": "Light state" + } + } + }, + "owner": { + "type": "object", + "properties": { + "rid": { + "type": "string", + "description": "The unique id of the referenced resource.", + "title": "RID" + }, + "rtype": { + "type": "string", + "description": "The type of the referenced resource.", + "title": "Rtype" + } + }, + "description": "Owner of the service, in case the owner service is deleted, the service also gets deleted.", + "title": "Owner" + }, + "type": { + "type": "string", + "description": "Type of the supported resources.", + "title": "Type" + } + } + } + } + } + } + } + }, + "summary": "Get light", + "description": "Get details of a specific device having lightning capabilities.", + "operationId": "GetLight", + "parameters": [ + { + "name": "DeviceId", + "in": "path", + "required": true, + "type": "string", + "description": "Id of a device to display details.", + "x-ms-summary": "Device Id", + "x-ms-url-encoding": "single", + "x-ms-dynamic-values": { + "operationId": "GetLights", + "value-path": "id", + "value-collection": "data", + "value-title": "metadata/name" + } + } + ] + }, + "put": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "rid": { + "type": "string", + "description": "rid" + }, + "rtype": { + "type": "string", + "description": "rtype" + } + } + }, + "description": "data" + }, + "errors": { + "type": "array", + "items": { + "description": "List of errors.", + "type": "object", + "properties": { + "description": { + "type": "string", + "x-nullable": true, + "description": "A human-readable explanation specific to this occurrence of the problem.", + "title": "Error description" + } + } + }, + "description": "Errors that occurred during the call." + } + } + } + } + }, + "summary": "Execute light", + "operationId": "ExecuteLight", + "description": "Execute device having lightning capabilities.", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "DeviceId", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Device Id", + "x-ms-url-encoding": "single", + "description": "Id of a device to update properties.", + "x-ms-dynamic-values": { + "operationId": "GetLights", + "value-path": "id", + "value-collection": "data", + "value-title": "metadata/name" + } + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "metadata": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "MinLength: 1 - maxLength: 32. Human readable name of a resource.", + "title": "Name" + } + }, + "description": "Metadata" + }, + "on": { + "type": "object", + "properties": { + "on": { + "type": "boolean", + "description": "On/Off state of the light on=true, off=false.", + "title": "On", + "enum": [ + true, + false + ] + } + }, + "description": "on" + }, + "dimming": { + "type": "object", + "properties": { + "brightness": { + "type": "number", + "format": "float", + "description": "Maximum: 100. Brightness percentage. Writing 0 changes it to lowest possible brightness.", + "title": "Brightness" + } + }, + "description": "Dimming" + }, + "color_temperature": { + "type": "object", + "properties": { + "mirek": { + "type": "integer", + "format": "int32", + "description": "Minimum: 153 - maximum: 500. Color temperature in mirek or null when the light color is not in the ct spectrum.", + "title": "Mirek" + } + }, + "description": "Color temperature" + }, + "color": { + "title": "Color", + "type": "object", + "properties": { + "xy": { + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "float", + "title": "X", + "description": "Minimum: 0 - maximum: 1. X position in color gamut." + }, + "y": { + "type": "number", + "format": "float", + "title": "Y", + "description": "Minimum: 0 - maximum: 1. Y position in color gamut." + } + }, + "description": "CIE XY gamut position." + } + }, + "description": "Color" + }, + "dynamics": { + "type": "object", + "properties": { + "speed": { + "type": "number", + "format": "float", + "description": "Minimum: 0 - maximum: 1. Speed of dynamic palette. The speed is valid for the dynamic palette if the status is dynamic_palette or for the corresponding effect listed in status. In case of status none, the speed is not valid.", + "title": "Speed" + }, + "duration": { + "type": "integer", + "format": "int32", + "description": "Maximum: 6000000. Duration of a light transition in ms. Accuracy is in 100ms steps.", + "title": "Duration" + } + }, + "description": "Dynamics" + }, + "alert": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "One of the available actions to execute on a device. I.e. \"breathe\".", + "title": "Action", + "default": "breathe" + } + }, + "description": "Alert" + }, + "gradient": { + "type": "object", + "title": "Gradient", + "properties": { + "points": { + "title": "Points", + "type": "array", + "items": { + "type": "object", + "properties": { + "color": { + "title": "Color", + "type": "object", + "properties": { + "xy": { + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "float", + "description": "Minimum: 0 - maximum: 1. X position in color gamut.", + "title": "X" + }, + "y": { + "type": "number", + "format": "float", + "description": "Minimum: 0 - maximum: 1. Y position in color gamut.", + "title": "Y" + } + }, + "description": "CIE XY gamut position." + } + }, + "description": "Color" + } + } + }, + "description": "Collection of gradients points. For control of the gradient points a minimum of 2 points need to be provided." + } + }, + "description": "Basic feature containing gradient properties." + } + } + } + } + ] + } + }, + "/clip/v2/resource/device": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "description": "List of errors.", + "type": "object", + "properties": { + "description": { + "type": "string", + "x-nullable": true, + "description": "A human-readable explanation specific to this occurrence of the problem.", + "title": "Error description" + } + } + }, + "description": "Errors that occurred during the call." + }, + "data": { + "description": "User devices.", + "type": "array", + "items": { + "description": "List of devices.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier representing a specific resource instance.", + "title": "Id" + }, + "id_v1": { + "type": "string", + "description": "Clip v1 resource identifier (to be used in API v1).", + "title": "Id v1" + }, + "metadata": { + "type": "object", + "properties": { + "archetype": { + "type": "string", + "description": "Default archetype given by manufacturer.", + "title": "Archetype" + }, + "name": { + "type": "string", + "description": "Human readable name of a resource.", + "title": "Name" + } + }, + "description": "Additional metadata including a user given name.", + "title": "" + }, + "product_data": { + "type": "object", + "properties": { + "certified": { + "type": "boolean", + "description": "This device is HUE certified.", + "title": "Certified", + "enum": [ + true, + false + ] + }, + "manufacturer_name": { + "type": "string", + "description": "Name of device manufacturer.", + "title": "Manufacturer name" + }, + "model_id": { + "type": "string", + "description": "unique identification of device model.", + "title": "Model Id" + }, + "product_archetype": { + "type": "string", + "description": "Archetype of the product.", + "title": "Product archetype" + }, + "product_name": { + "type": "string", + "description": "Name of the product.", + "title": "Product name" + }, + "software_version": { + "type": "string", + "description": "Software version of the product.", + "title": "Software version" + } + }, + "description": "Product detailed information.", + "title": "" + }, + "services": { + "description": "References all services aggregating control and state of children in the group.", + "title": "Services", + "type": "array", + "items": { + "type": "object", + "properties": { + "rid": { + "type": "string", + "description": "The unique id of the referenced resource." + }, + "rtype": { + "type": "string", + "description": "The type of the referenced resource." + } + } + } + }, + "type": { + "type": "string", + "description": "Type of the supported resource.", + "title": "Type" + } + } + } + } + } + } + } + }, + "summary": "Get devices", + "operationId": "GetDevices", + "description": "Get list of all your devices.", + "parameters": [] + } + }, + "/clip/v2/resource/device/{DeviceId}": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "description": "List of errors.", + "type": "object", + "properties": { + "description": { + "type": "string", + "x-nullable": true, + "description": "A human-readable explanation specific to this occurrence of the problem.", + "title": "Error description" + } + } + }, + "description": "Errors that occurred during the call." + }, + "data": { + "description": "Devices matching given ID.", + "type": "array", + "items": { + "description": "List of devices.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier representing a specific resource instance.", + "title": "Id" + }, + "id_v1": { + "type": "string", + "description": "Clip v1 resource identifier (to be used in API v1).", + "title": "Id v1" + }, + "metadata": { + "type": "object", + "properties": { + "archetype": { + "type": "string", + "description": "Default archetype given by manufacturer.", + "title": "Archetype" + }, + "name": { + "type": "string", + "description": "Human readable name of a resource.", + "title": "Name" + } + }, + "description": "Additional metadata including a user given name.", + "title": "" + }, + "product_data": { + "type": "object", + "properties": { + "certified": { + "type": "boolean", + "description": "This device is HUE certified.", + "title": "Certified", + "enum": [ + true, + false + ] + }, + "manufacturer_name": { + "type": "string", + "description": "Name of device manufacturer.", + "title": "Manufacturer name" + }, + "model_id": { + "type": "string", + "description": "unique identification of device model.", + "title": "Model Id" + }, + "product_archetype": { + "type": "string", + "description": "Archetype of the product.", + "title": "Product archetype" + }, + "product_name": { + "type": "string", + "description": "Name of the product.", + "title": "Product name" + }, + "software_version": { + "type": "string", + "description": "Software version of the product.", + "title": "Software version" + } + }, + "description": "Product detailed information.", + "title": "" + }, + "services": { + "description": "References all services aggregating control and state of children in the group.", + "title": "Services", + "type": "array", + "items": { + "type": "object", + "properties": { + "rid": { + "type": "string", + "description": "The unique id of the referenced resource." + }, + "rtype": { + "type": "string", + "description": "The type of the referenced resource." + } + } + } + }, + "type": { + "type": "string", + "description": "Type of the supported resource.", + "title": "Type" + } + } + } + } + } + } + } + }, + "summary": "Get device", + "operationId": "GetDevice", + "description": "Get details of a specific device.", + "parameters": [ + { + "name": "DeviceId", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Device Id", + "x-ms-url-encoding": "single", + "x-ms-dynamic-values": { + "operationId": "GetDevices", + "value-path": "id", + "value-collection": "data", + "value-title": "metadata/name" + }, + "description": "Id of a device to display details." + } + ] + }, + "put": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "Updated devices.", + "items": { + "type": "object", + "description": "List of updated devices.", + "properties": { + "rid": { + "type": "string", + "description": "The unique id of the referenced resource.", + "title": "rid" + }, + "rtype": { + "type": "string", + "description": "The type of the referenced resource.", + "title": "rtype" + } + } + } + }, + "errors": { + "type": "array", + "items": { + "description": "List of errors.", + "type": "object", + "properties": { + "description": { + "type": "string", + "x-nullable": true, + "description": "A human-readable explanation specific to this occurrence of the problem.", + "title": "Error description" + } + } + }, + "description": "Errors that occurred during the call." + } + } + } + } + }, + "summary": "Execute device", + "operationId": "ExecuteDevice", + "description": "Execute a specific device.", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "DeviceId", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Device Id", + "x-ms-url-encoding": "single", + "description": "Id of a device to update metadata.", + "x-ms-dynamic-values": { + "operationId": "GetDevices", + "value-path": "id", + "value-collection": "data", + "value-title": "metadata/name" + } + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "metadata": { + "type": "object", + "properties": { + "archetype": { + "type": "string", + "description": "By default archetype given by manufacturer.", + "title": "Archetype", + "enum": [ + "bridge_v2", + "unknown_archetype", + "classic_bulb", + "sultan_bulb", + "flood_bulb", + "spot_bulb", + "candle_bulb", + "luster_bulb", + "pendant_round", + "pendant_long", + "ceiling_round", + "ceiling_square", + "floor_shade", + "floor_lantern", + "table_shade", + "recessed_ceiling", + "recessed_floor", + "single_spot", + "double_spot", + "table_wash", + "wall_lantern", + "wall_shade", + "flexible_lamp", + "ground_spot", + "wall_spot", + "plug", + "hue_go", + "hue_lightstrip", + "hue_iris", + "hue_bloom", + "bollard", + "wall_washer", + "hue_play", + "vintage_bulb", + "christmas_tree", + "hue_centris", + "hue_lightstrip_tv", + "hue_tube", + "hue_signe" + ] + }, + "name": { + "type": "string", + "description": "Human readable name of a resource (max. 32 characters).", + "title": "Name" + } + }, + "description": "Additional metadata including a user given name.", + "title": "" + }, + "identify": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "Type \"identify\" to trigger identification. Bridge performs Zigbee LED identification cycles for 5 seconds. Lights perform one breathe cycle. Sensors perform LED identification cycles for 15 seconds.", + "title": "Action", + "default": "identify" + } + }, + "title": "" + } + } + } + } + ] + } + }, + "/clip/v2/resource/room": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "description": "List of errors.", + "type": "object", + "properties": { + "description": { + "type": "string", + "x-nullable": true, + "description": "A human-readable explanation specific to this occurrence of the problem.", + "title": "Error description" + } + } + }, + "description": "Errors that occurred during the call." + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "children": { + "type": "array", + "items": { + "type": "object", + "properties": { + "rid": { + "type": "string", + "description": "The unique id of the created scene.", + "title": "rid" + }, + "rtype": { + "type": "string", + "description": "The type of the created scene.", + "title": "rtype" + } + } + }, + "title": "Children", + "description": "Devices to group by the Room. Following children are allowed: \"device\"." + }, + "grouped_services": { + "type": "array", + "items": { + "type": "object", + "properties": { + "rid": { + "type": "string", + "description": "The unique id of the created scene.", + "title": "rid" + }, + "rtype": { + "type": "string", + "description": "The type of the created scene.", + "title": "rtype" + } + } + }, + "title": "Grouped services", + "description": "References to aggregated control services. Deprecated: use services." + }, + "id": { + "type": "string", + "description": "Unique identifier representing a specific resource instance.", + "title": "Id" + }, + "id_v1": { + "type": "string", + "description": "Clip v1 resource identifier (to be used in API v1).", + "title": "Id v1" + }, + "metadata": { + "type": "object", + "properties": { + "archetype": { + "type": "string", + "description": "Default archetype given by manufacturer.", + "title": "Archetype" + }, + "name": { + "type": "string", + "description": "Human readable name of a resource.", + "title": "Name" + } + }, + "description": "Configuration object for a room." + }, + "services": { + "title": "Services", + "type": "array", + "items": { + "type": "object", + "properties": { + "rid": { + "type": "string", + "description": "The unique id of the created scene.", + "title": "rid" + }, + "rtype": { + "type": "string", + "description": "The type of the created scene.", + "title": "rtype" + } + } + }, + "description": "References all services aggregating control and state of children in the group. Aggregation is per service type, i.e. every service type which can be grouped has a corresponding definition of grouped type. Supported types: \"light\"." + }, + "type": { + "type": "string", + "description": "Type of the supported resources.", + "title": "Type" + } + } + }, + "description": "Data." + } + } + } + } + }, + "summary": "Get rooms", + "description": "Get list of rooms (groups).", + "operationId": "GetRooms", + "parameters": [] + } + }, + "/clip/v2/resource/scene": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "description": "List of errors.", + "type": "object", + "properties": { + "description": { + "type": "string", + "x-nullable": true, + "description": "A human-readable explanation specific to this occurrence of the problem.", + "title": "Error description" + } + } + }, + "description": "Errors that occurred during the call." + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "action": { + "type": "object", + "properties": { + "color": { + "title": "Color", + "type": "object", + "properties": { + "xy": { + "title": "", + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "float", + "description": "Minimum: 0 - maximum: 1. X position in color gamut.", + "title": "X" + }, + "y": { + "type": "number", + "format": "float", + "description": "Minimum: 0 - maximum: 1. Y position in color gamut.", + "title": "Y" + } + }, + "description": "CIE XY gamut position." + } + } + }, + "dimming": { + "type": "object", + "properties": { + "brightness": { + "type": "number", + "format": "float", + "description": "Maximum: 100. Brightness percentage. Writing 0 changes it to lowest possible brightness.", + "title": "Brightness" + } + }, + "title": "Dimming" + }, + "on": { + "type": "object", + "properties": { + "on": { + "type": "boolean", + "description": "On/Off state of the light on=true, off=false.", + "title": "On", + "enum": [ + true, + false + ] + } + }, + "title": "On" + }, + "color_temperature": { + "type": "object", + "properties": { + "mirek": { + "type": "integer", + "format": "int32", + "description": "Minimum: 153 - maximum: 500. Color temperature in mirek or null when the light color is not in the ct spectrum.", + "title": "Mirek" + } + }, + "title": "Color temperature" + } + }, + "title": "Action", + "description": "Action settings." + }, + "target": { + "type": "object", + "properties": { + "rid": { + "type": "string", + "description": "The unique id of the referenced resource.", + "title": "rid" + }, + "rtype": { + "type": "string", + "description": "The type of the referenced resource.", + "title": "rtype" + } + }, + "title": "Target", + "description": "The identifier of the light to execute the action on." + } + } + }, + "title": "Actions", + "description": "List of actions executed in scene." + }, + "group": { + "type": "object", + "properties": { + "rid": { + "type": "string", + "description": "The unique id of the referenced resource.", + "title": "rid" + }, + "rtype": { + "type": "string", + "description": "The type of the referenced resource.", + "title": "rtype" + } + }, + "title": "Group", + "description": "Group associated with this Scene. All services in the group are part of this scene." + }, + "id": { + "type": "string", + "description": "Unique identifier representing a specific resource instance.", + "title": "Id" + }, + "id_v1": { + "type": "string", + "description": "Clip v1 resource identifier (to be used in API v1).", + "title": "Id v1" + }, + "metadata": { + "type": "object", + "title": "Metadata", + "properties": { + "image": { + "type": "object", + "properties": { + "rid": { + "type": "string", + "description": "The unique id of the referenced resource.", + "title": "rid" + }, + "rtype": { + "type": "string", + "description": "The type of the referenced resource.", + "title": "rtype" + } + }, + "title": "Image", + "description": "Reference with unique identifier for the image representing the scene only accepting \"rtype\": \"public_image\" on creation." + }, + "name": { + "type": "string", + "description": "Human readable name of a resource.", + "title": "Name" + } + }, + "description": "Additional metadata including a user given name." + }, + "palette": { + "title": "Palette", + "type": "object", + "properties": { + "color": { + "type": "array", + "items": { + "type": "object", + "properties": { + "color": { + "title": "Color", + "type": "object", + "properties": { + "xy": { + "title": "", + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "float", + "description": "Minimum: 0 - maximum: 1. X position in color gamut.", + "title": "X" + }, + "y": { + "type": "number", + "format": "float", + "description": "Minimum: 0 - maximum: 1. Y position in color gamut.", + "title": "Y" + } + }, + "description": "CIE XY gamut position." + } + } + }, + "dimming": { + "type": "object", + "properties": { + "brightness": { + "type": "number", + "format": "float", + "description": "Maximum: 100. Brightness percentage. Writing 0 changes it to lowest possible brightness.", + "title": "Brightness" + } + }, + "title": "Dimming" + } + } + }, + "title": "Color" + }, + "color_temperature": { + "type": "array", + "items": { + "type": "object", + "properties": { + "color_temperature": { + "type": "object", + "properties": { + "mirek": { + "type": "integer", + "format": "int32", + "description": "Minimum: 153 - maximum: 500. Color temperature in mirek or null when the light color is not in the ct spectrum.", + "title": "Mirek" + } + }, + "title": "" + }, + "dimming": { + "type": "object", + "properties": { + "brightness": { + "type": "number", + "format": "float", + "description": "Maximum: 100. Brightness percentage. Writing 0 changes it to lowest possible brightness.", + "title": "Brightness" + } + }, + "title": "Dimming" + } + } + }, + "title": "Color temperature" + }, + "dimming": { + "type": "array", + "items": { + "type": "object", + "properties": { + "brightness": { + "type": "number", + "format": "float", + "description": "Maximum: 100. Brightness percentage. Writing 0 changes it to lowest possible brightness.", + "title": "Brightness" + } + } + }, + "title": "Dimming" + } + }, + "description": "Group of colors that describe the palette of colors to be used when playing dynamics." + }, + "speed": { + "type": "number", + "format": "float", + "description": "Speed of dynamic palette for this scene.", + "title": "Speed" + }, + "type": { + "type": "string", + "description": "Type of the supported resources.", + "title": "Type" + } + } + }, + "description": "Data." + } + } + } + } + }, + "summary": "Get scenes", + "operationId": "GetScenes", + "description": "Get a list of all scenes. Scenes are used to store and recall settings for a group of lights.", + "parameters": [] + } + }, + "/clip/v2/resource/scene/{SceneId}": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "description": "List of errors.", + "type": "object", + "properties": { + "description": { + "type": "string", + "x-nullable": true, + "description": "A human-readable explanation specific to this occurrence of the problem.", + "title": "Error description" + } + } + }, + "description": "Errors that occurred during the call." + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "action": { + "type": "object", + "properties": { + "color": { + "title": "Color", + "type": "object", + "properties": { + "xy": { + "title": "", + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "float", + "description": "Minimum: 0 - maximum: 1. X position in color gamut.", + "title": "X" + }, + "y": { + "type": "number", + "format": "float", + "description": "Minimum: 0 - maximum: 1. Y position in color gamut.", + "title": "Y" + } + }, + "description": "CIE XY gamut position." + } + } + }, + "dimming": { + "type": "object", + "properties": { + "brightness": { + "type": "number", + "format": "float", + "description": "Maximum: 100. Brightness percentage. Writing 0 changes it to lowest possible brightness.", + "title": "Brightness" + } + }, + "title": "Dimming" + }, + "on": { + "type": "object", + "properties": { + "on": { + "type": "boolean", + "description": "On/Off state of the light on=true, off=false.", + "title": "On", + "enum": [ + true, + false + ] + } + }, + "title": "On" + }, + "color_temperature": { + "type": "object", + "properties": { + "mirek": { + "type": "integer", + "format": "int32", + "description": "Minimum: 153 - maximum: 500. Color temperature in mirek or null when the light color is not in the ct spectrum.", + "title": "Mirek" + } + }, + "title": "Color temperature" + } + }, + "title": "Action", + "description": "Action settings." + }, + "target": { + "type": "object", + "properties": { + "rid": { + "type": "string", + "description": "The unique id of the referenced resource.", + "title": "rid" + }, + "rtype": { + "type": "string", + "description": "The type of the referenced resource.", + "title": "rtype" + } + }, + "title": "Target", + "description": "The identifier of the light to execute the action on." + } + } + }, + "title": "Actions", + "description": "List of actions executed in scene." + }, + "group": { + "type": "object", + "properties": { + "rid": { + "type": "string", + "description": "The unique id of the referenced resource.", + "title": "rid" + }, + "rtype": { + "type": "string", + "description": "The type of the referenced resource.", + "title": "rtype" + } + }, + "title": "Group", + "description": "Group associated with this Scene. All services in the group are part of this scene." + }, + "id": { + "type": "string", + "description": "Unique identifier representing a specific resource instance.", + "title": "Id" + }, + "id_v1": { + "type": "string", + "description": "Clip v1 resource identifier (to be used in API v1).", + "title": "Id v1" + }, + "metadata": { + "type": "object", + "title": "Metadata", + "properties": { + "image": { + "type": "object", + "properties": { + "rid": { + "type": "string", + "description": "The unique id of the referenced resource.", + "title": "rid" + }, + "rtype": { + "type": "string", + "description": "The type of the referenced resource.", + "title": "rtype" + } + }, + "title": "Image", + "description": "Reference with unique identifier for the image representing the scene only accepting \"rtype\": \"public_image\" on creation." + }, + "name": { + "type": "string", + "description": "Human readable name of a resource.", + "title": "Name" + } + }, + "description": "Additional metadata including a user given name." + }, + "palette": { + "title": "Palette", + "type": "object", + "properties": { + "color": { + "type": "array", + "items": { + "type": "object", + "properties": { + "color": { + "title": "Color", + "type": "object", + "properties": { + "xy": { + "title": "", + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "float", + "description": "Minimum: 0 - maximum: 1. X position in color gamut.", + "title": "X" + }, + "y": { + "type": "number", + "format": "float", + "description": "Minimum: 0 - maximum: 1. Y position in color gamut.", + "title": "Y" + } + }, + "description": "CIE XY gamut position." + } + } + }, + "dimming": { + "type": "object", + "properties": { + "brightness": { + "type": "number", + "format": "float", + "description": "Maximum: 100. Brightness percentage. Writing 0 changes it to lowest possible brightness.", + "title": "Brightness" + } + }, + "title": "Dimming" + } + } + }, + "title": "Color" + }, + "color_temperature": { + "type": "array", + "items": { + "type": "object", + "properties": { + "color_temperature": { + "type": "object", + "properties": { + "mirek": { + "type": "integer", + "format": "int32", + "description": "Minimum: 153 - maximum: 500. Color temperature in mirek or null when the light color is not in the ct spectrum.", + "title": "Mirek" + } + }, + "title": "" + }, + "dimming": { + "type": "object", + "properties": { + "brightness": { + "type": "number", + "format": "float", + "description": "Maximum: 100. Brightness percentage. Writing 0 changes it to lowest possible brightness.", + "title": "Brightness" + } + }, + "title": "Dimming" + } + } + }, + "title": "Color temperature" + }, + "dimming": { + "type": "array", + "items": { + "type": "object", + "properties": { + "brightness": { + "type": "number", + "format": "float", + "description": "Maximum: 100. Brightness percentage. Writing 0 changes it to lowest possible brightness.", + "title": "Brightness" + } + } + }, + "title": "Dimming" + } + }, + "description": "Group of colors that describe the palette of colors to be used when playing dynamics." + }, + "speed": { + "type": "number", + "format": "float", + "description": "Speed of dynamic palette for this scene.", + "title": "Speed" + }, + "type": { + "type": "string", + "description": "Type of the supported resources.", + "title": "Type" + } + } + }, + "description": "Data." + } + } + } + } + }, + "summary": "Get scene", + "operationId": "GetScene", + "description": "Get details of a specific scene.", + "parameters": [ + { + "name": "SceneId", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Scene Id", + "x-ms-url-encoding": "single", + "x-ms-dynamic-values": { + "operationId": "GetScenes", + "value-path": "id", + "value-collection": "data", + "value-title": "metadata/name" + }, + "description": "Id of a scene to display details." + } + ] + }, + "delete": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "Updated scenes.", + "items": { + "type": "object", + "description": "List of updated scenes.", + "properties": { + "rid": { + "type": "string", + "description": "The unique id of the deleted scene.", + "title": "rid" + }, + "rtype": { + "type": "string", + "description": "The type of the deleted scene.", + "title": "rtype" + } + } + } + }, + "errors": { + "type": "array", + "items": { + "description": "List of errors.", + "type": "object", + "properties": { + "description": { + "type": "string", + "x-nullable": true, + "description": "A human-readable explanation specific to this occurrence of the problem.", + "title": "Error description" + } + } + }, + "description": "Errors that occurred during the call." + } + } + } + } + }, + "summary": "Delete scene", + "description": "Delete specific scene.", + "operationId": "DeleteScene", + "parameters": [ + { + "name": "SceneId", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Scene Id", + "x-ms-url-encoding": "single", + "x-ms-dynamic-values": { + "operationId": "GetScenes", + "value-path": "id", + "value-collection": "data", + "value-title": "metadata/name" + }, + "description": "Id of a scene to delete." + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://api.meethue.com/v2/oauth2/authorize", + "tokenUrl": "https://api.meethue.com/v2/oauth2/token", + "scopes": {} + } + }, + "security": [ + { + "oauth2_auth": [] + } + ], + "tags": [] +} \ No newline at end of file diff --git a/independent-publisher-connectors/Philips HUE/apiProperties.json b/independent-publisher-connectors/Philips HUE/apiProperties.json new file mode 100644 index 000000000..06c355997 --- /dev/null +++ b/independent-publisher-connectors/Philips HUE/apiProperties.json @@ -0,0 +1,73 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "", + "scopes": [], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False", + "IsOnbehalfofLoginSupported": false + }, + "customParameters": { + "authorizationUrl": { + "value": "https://api.meethue.com/v2/oauth2/authorize" + }, + "tokenUrl": { + "value": "https://api.meethue.com/v2/oauth2/token" + }, + "refreshUrl": { + "value": "https://api.meethue.com/v2/oauth2/token" + } + } + } + }, + "apiKey": { + "type": "securestring", + "uiDefinition": { + "displayName": "HUE application key", + "description": "The API Key that is returned after performing PUT and POST authorization calls.", + "tooltip": "Provide HUE application key", + "constraints": { + "tabIndex": 2, + "required": true, + "clearText": false + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "setheader", + "title": "HUE application key", + "parameters": { + "x-ms-apimTemplateParameter.name": "hue-application-key", + "x-ms-apimTemplateParameter.value": "@connectionParameters('apiKey')", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request", + "x-ms-apimTemplate-operationName": [ + "GetLights", + "GetLight", + "ExecuteLight", + "GetDevices", + "GetDevice", + "ExecuteDevice", + "GetRooms", + "GetScenes", + "CreateScene", + "GetScene", + "DeleteScene" + ] + } + } + ], + "publisher": "Tomasz Poszytek", + "stackOwner": "Philips HUE" + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/Philips HUE/readme.md b/independent-publisher-connectors/Philips HUE/readme.md new file mode 100644 index 000000000..9b9cf622b --- /dev/null +++ b/independent-publisher-connectors/Philips HUE/readme.md @@ -0,0 +1,97 @@ +# Philips HUE + +Philips HUE allows you to control smart home devices, like lights, switches, plugs and more built by Philips. +The connector is using API V2 endpoints. + +## Publisher: Tomasz Poszytek + +## Prerequisites + +You have to create a developer account at Philips HUE. You can sign up for free [here](https://developers.meethue.com/). + +## Obtaining Credentials + +### Hue Remote API + +The **Hue Remote API** is a definition of an app that you will use to authorize all requests from Power Automate. To set it up navigate to [your apps](https://developers.meethue.com/my-apps/) and create new **Hue Remote API** to use with Power Automate. Use ``https://global.consent.azure-apim.net/redirect`` as the Callback URL. After **appid** is created you will be able to obtain your **Client ID** and **Client Secret** values. + +### HUE application key + +**HUE application key** is mandatory to provide during connection creation. Without the valid application key you won't be able to access any data from your account. The HUE application key must be generated once and it is not expiring. **The process consist of two steps**. You need to perform first a PUT request and then POST request to generate it: + +1. Download and install Postman application from [here](https://www.postman.com/downloads/). You can as well use any other software allowing you to make HTTP calls. +2. Import **PUT request** to Postman: + +```curl --location --request PUT 'https://api.meethue.com/route/api/0/config' \ +--header 'Content-Type: application/json' \ +--header 'Authorization: Bearer YOURTOKEN' \ +--data-raw '{"linkbutton":true}' +``` +3. Set up Authorization using oauth 2.0. To do that follow steps described in [Postman Learning Center](https://learning.postman.com/docs/sending-requests/authorization/#oauth-20). Use the following values: + + 1. Auth URL: https://api.meethue.com/v2/oauth2/authorize + 2. Access Token URL: https://api.meethue.com/v2/oauth2/token + 3. Client ID: Available under HUE Remote API created as a Prerequisite: https://developers.meethue.com/my-apps/ + 4. Client Secret: Available under HUE Remote API created as a Prerequisite: https://developers.meethue.com/my-apps/ + +4. Import **POST request** to Postman and choose configured in step 3. oauth 2.0 as its Authorization: + +```curl --location --request POST 'https://api.meethue.com/route/api' \ +--header 'Content-Type: application/json' \ +--header 'Authorization: Bearer YOURTOKEN' \ +--data-raw '{"devicetype":"YOUR NAME HERE"}' +``` + +5. Execute PUT request and after that POST request. **Copy "username" value** returned by POST request. + +You're now ready to create a connection for Philips HUE connector in Power Automate. + +## Supported Operations + +### Get lights + +Get list of your devices having lightning capabilities. + +### Get light + +Get details of a specific device having lightning capabilities. + +### Execute light + +Execute device having lightning capabilities. + +### Get devices + +Get list of all your devices. + +### Get device + +Get details of a specific device. + +### Execute device + +Execute a specific device. + +### Get rooms + +Get list of rooms (groups). + +### Get scenes + +Get a list of all scenes. Scenes are used to store and recall settings for a group of lights. + +### Get scene + +Get details of a specific scene. + +### Delete scene + +Delete specific scene. + +## Known Issues and Limitations + +Action's **Execute light** parameter "Action" should contain value only for devices supporting it, e.g. light bulbs. Using it with other device types will complete request successfully although will return status code 207 instead 200. + +## Disclaimer + +Current version of the connector does not cover all possible actions available under Philips HUE API v2 collection. I have built those I found the most important. Please let me know via https://aka.ms/poszytek what other actions you would like to have and I will update the connector. \ No newline at end of file