Difference between revisions of "Maker API"

From Hubitat Documentation
Jump to: navigation, search
(Content 2.0 change)
 
(Replaced content with " <big>'''We're moving!''' Please visit http://docs2.hubitat.com for the latest documentation.</big> <big> This document is available at: http://docs2.hubitat.com/en/apps/...")
(Tag: Replaced)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This API is a simple HTTP GET API that allows you to get the status of your authorized devices and interact with them.
 
  
'''Installation:'''
+
<big>'''We're moving!''' Please visit http://docs2.hubitat.com for the latest documentation.</big>
  
Go to Apps, click Load New App
+
<big>
 
+
This document is available at: http://docs2.hubitat.com/en/apps/maker-api
Select Hubitat Maker API
+
</big>
 
 
Click Done.
 
 
 
The App is now installed and you are back at the list of installed apps.
 
 
 
Click on Hubitat Maker API in the list of Apps
 
 
 
You can enable logging if you want to see detailed information in the logs.  Remember to open up logs in another tab.
 
 
 
Select the devices you want to authorize for this API.  Only the devices you select will be accessible via the endpoints.
 
 
 
Next, you will see URLs to get you started.
 
 
 
Each endpoint url is made up of the following segments: http:// [hub ip address] /apps/api/[app id] /[endpoint path ?access_token=[access_token]
 
 
 
NOTE:  Your access token is an authorization token, similar to a username and password. Anyone with this token can access these endpoints. To reset your access token, you will need to remove and re-add Hubitat Maker API
 
 
 
To Get a list of all authorized devices:
 
 
 
'''/devices'''
 
 
 
This returns the following JSON:<pre>[
 
    {
 
        "id": "1",
 
        "name": "My First Device",
 
        "label": "Living Room Light"
 
    },
 
    {
 
        "id": "2",
 
        "name": "My Second Device",
 
        "label": "Living Room Switch"
 
    }
 
]</pre>'''/devices/all'''
 
 
 
This returns detailed information about each authorized device in JSON:<pre>[
 
    {
 
        "name": "My First Device",
 
        "label": "Living Room Light",
 
        "type": "Virtual Switch",
 
        "id": "1",
 
        "date": "2018-10-16T00:08:18+0000",
 
        "model": null,
 
        "manufacturer": null,
 
        "capabilities": [
 
            "Switch",
 
            "Refresh"
 
        ],
 
        "attributes": {
 
            "switch": "off"
 
        },
 
        "commands": [
 
            {
 
                "command": "off"
 
            },
 
            {
 
                "command": "on"
 
            },
 
            {
 
                "command": "refresh"
 
            }
 
        ]
 
    },
 
    {
 
        "name": "My Second Device",
 
        "label": "Living Room Switch",
 
        "type": "Virtual Switch",
 
        "id": "2",
 
        "date": "2018-01-03T02:49:57+0000",
 
        "model": null,
 
        "manufacturer": null,
 
        "capabilities": [
 
            "Switch",
 
            "Refresh"
 
        ],
 
        "attributes": {
 
            "switch": "on"
 
        },
 
        "commands": [
 
            {
 
                "command": "off"
 
            },
 
            {
 
                "command": "on"
 
            },
 
            {
 
                "command": "refresh"
 
            }
 
        ]
 
    }
 
]</pre>This endpoint contains all the known information about the device, including capabilities, attributes and commands.
 
 
 
NOTE: there is a limited subset of allowed commands, so just because a command shows up in this list, does not mean it will work via the API.
 
 
 
'''/devices/[device id]'''
 
 
 
This endpoint returns back the same details as /devices/all but only for a specific device.
 
 
 
'''/devices/[device id]/events'''
 
 
 
returns a JSON object of recent events for that [device id]<pre>[
 
    {
 
        "device_id": "1",
 
        "label": "Living Room Light",
 
        "name": "My First Device",
 
        "value": "off",
 
        "date": "2018-10-16T00:08:18+0000",
 
        "isStateChange": null,
 
        "source": "DEVICE"
 
    }
 
]</pre>'''/devices/[device id]/commands'''
 
 
 
returns a JSON object of the commands for that [device id]<pre>
 
[
 
    {
 
        "command": "off"
 
    },
 
    {
 
        "command": "on"
 
    },
 
    {
 
        "command": "refresh"
 
    }
 
]
 
</pre>'''/devices/[device id]/[command]/[secondary value]'''
 
 
 
This is the most powerful endpoint, as it can send a command to the authorized [device id] including an optional [secondary value]
 
 
 
Example, to turn on a light device 1
 
 
 
'''/devices/1/on'''
 
 
 
Another Example, to set the level of a light to 50%
 
 
 
'''/devices/1/setLevel/50'''
 
 
 
You should get back a full detail response in JSON for that object.
 

Latest revision as of 19:45, 25 September 2022

We're moving! Please visit http://docs2.hubitat.com for the latest documentation.

This document is available at: http://docs2.hubitat.com/en/apps/maker-api