HomeGraph API . devices

Instance Methods

query(body=None, x__xgafv=None)

Gets the current states in Home Graph for the given set of the third-party

reportStateAndNotification(body=None, x__xgafv=None)

Reports device state and optionally sends device notifications.

requestSync(body=None, x__xgafv=None)

Requests Google to send an `action.devices.SYNC`

sync(body=None, x__xgafv=None)

Gets all the devices associated with the given third-party user.

Method Details

query(body=None, x__xgafv=None)
Gets the current states in Home Graph for the given set of the third-party
user's devices.

The third-party user's identity is passed in via the `agent_user_id`
(see QueryRequest).
This request must be authorized using service account credentials from your
Actions console project.

Args:
  body: object, The request body.
    The object takes the form of:

{ # Request type for the
      # [`Query`](#google.home.graph.v1.HomeGraphApiService.Query) call.
    "requestId": "A String", # Request ID used for debugging.
    "agentUserId": "A String", # Required. Third-party user ID.
    "inputs": [ # Required. Inputs containing third-party device IDs for which to
        # get the device states.
      { # Device ID inputs to QueryRequest.
        "payload": { # Payload containing device IDs. # Payload containing third-party device IDs.
          "devices": [ # Third-party device IDs for which to get the device states.
            { # Third-party device ID for one device.
              "id": "A String", # Third-party device ID.
            },
          ],
        },
      },
    ],
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response type for the
      # [`Query`](#google.home.graph.v1.HomeGraphApiService.Query) call.
      # This should follow the same format as the Google smart home
      # `action.devices.QUERY`
      # [response](https://developers.google.com/assistant/smarthome/reference/intent/query).
      # # Example
      #
      # ```json
      # {
      #   "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
      #   "payload": {
      #     "devices": {
      #       "123": {
      #         "on": true,
      #         "online": true
      #       },
      #       "456": {
      #         "on": true,
      #         "online": true,
      #         "brightness": 80,
      #         "color": {
      #           "name": "cerulean",
      #           "spectrumRGB": 31655
      #         }
      #       }
      #     }
      #   }
      # }
      # ```
    "payload": { # Payload containing device states information. # Device states for the devices given in the request.
      "devices": { # States of the devices. Map of third-party device ID to struct of device
          # states.
        "a_key": {
          "a_key": "", # Properties of the object.
        },
      },
    },
    "requestId": "A String", # Request ID used for debugging. Copied from the request.
  }
reportStateAndNotification(body=None, x__xgafv=None)
Reports device state and optionally sends device notifications.
Called by your smart home Action when the state of a third-party device
changes or you need to send a notification about the device.
See [Implement Report
State](https://developers.google.com/assistant/smarthome/develop/report-state)
for more information.

This method updates the device state according to its declared
[traits](https://developers.google.com/assistant/smarthome/concepts/devices-traits).
Publishing a new state value outside of these traits will result in an
`INVALID_ARGUMENT` error response.

The third-party user's identity is passed in via the `agent_user_id`
(see ReportStateAndNotificationRequest).
This request must be authorized using service account credentials from your
Actions console project.

Args:
  body: object, The request body.
    The object takes the form of:

{ # Request type for the
      # [`ReportStateAndNotification`](#google.home.graph.v1.HomeGraphApiService.ReportStateAndNotification)
      # call. It may include states, notifications, or both. States and notifications
      # are defined per `device_id` (for example, "123" and "456" in the following
      # example).
      # # Example
      # 
      # ```json
      # {
      #   "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
      #   "agentUserId": "1234",
      #   "payload": {
      #     "devices": {
      #       "states": {
      #         "123": {
      #           "on": true
      #         },
      #         "456": {
      #           "on": true,
      #           "brightness": 10
      #         }
      #       },
      #     }
      #   }
      # }
      # ```
    "eventId": "A String", # Unique identifier per event (for example, a doorbell press).
    "requestId": "A String", # Request ID used for debugging.
    "payload": { # Payload containing the state and notification information for devices. # Required. State of devices to update and notification metadata for devices.
      "devices": { # The states and notifications specific to a device. # The devices for updating state and sending notifications.
        "states": { # States of devices to update. See the **Device STATES** section
            # of the individual trait [reference
            # guides](https://developers.google.com/assistant/smarthome/traits).
          "a_key": "", # Properties of the object.
        },
        "notifications": { # Notifications metadata for devices. See the **Device NOTIFICATIONS**
            # section of the individual trait [reference
            # guides](https://developers.google.com/assistant/smarthome/traits).
          "a_key": "", # Properties of the object.
        },
      },
    },
    "followUpToken": "A String", # Token to maintain state in the follow up notification response.
        # Deprecated. See the [notifications
        # guide](https://developers.google.com/assistant/smarthome/develop/notifications)
        # for details on implementing follow up notifications.
    "agentUserId": "A String", # Required. Third-party user ID.
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response type for the
      # [`ReportStateAndNotification`](#google.home.graph.v1.HomeGraphApiService.ReportStateAndNotification)
      # call.
    "requestId": "A String", # Request ID copied from ReportStateAndNotificationRequest.
  }
requestSync(body=None, x__xgafv=None)
Requests Google to send an `action.devices.SYNC`
[intent](https://developers.google.com/assistant/smarthome/reference/intent/sync)
to your smart home Action to update device metadata for the given user.


The third-party user's identity is passed via the `agent_user_id`
(see RequestSyncDevicesRequest).
This request must be authorized using service account credentials from your
Actions console project.

Args:
  body: object, The request body.
    The object takes the form of:

{ # Request type for the
      # [`RequestSyncDevices`](#google.home.graph.v1.HomeGraphApiService.RequestSyncDevices)
      # call.
    "agentUserId": "A String", # Required. Third-party user ID.
    "async": True or False, # Optional. If set, the request will be added to a queue and a response will
        # be returned immediately. This enables concurrent requests for the given
        # `agent_user_id`, but the caller will not receive any error responses.
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response type for the
      # [`RequestSyncDevices`](#google.home.graph.v1.HomeGraphApiService.RequestSyncDevices)
      # call.
      #
      # Intentionally empty upon success. An HTTP response code is returned
      # with more details upon failure.
  }
sync(body=None, x__xgafv=None)
Gets all the devices associated with the given third-party user.

The third-party user's identity is passed in via the `agent_user_id`
(see SyncRequest).
This request must be authorized using service account credentials from your
Actions console project.

Args:
  body: object, The request body.
    The object takes the form of:

{ # Request type for the [`Sync`](#google.home.graph.v1.HomeGraphApiService.Sync)
      # call.
    "requestId": "A String", # Request ID used for debugging.
    "agentUserId": "A String", # Required. Third-party user ID.
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response type for the
      # [`Sync`](#google.home.graph.v1.HomeGraphApiService.Sync) call.
      # This should follow the same format as the Google smart home
      # `action.devices.SYNC`
      # [response](https://developers.google.com/assistant/smarthome/reference/intent/sync).
      # # Example
      #
      # ```json
      # {
      #   "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
      #   "payload": {
      #     "agentUserId": "1836.15267389",
      #     "devices": [{
      #       "id": "123",
      #       "type": "action.devices.types.OUTLET",
      #       "traits": [
      #         "action.devices.traits.OnOff"
      #       ],
      #       "name": {
      #         "defaultNames": ["My Outlet 1234"],
      #         "name": "Night light",
      #         "nicknames": ["wall plug"]
      #       },
      #       "willReportState": false,
      #       "deviceInfo": {
      #         "manufacturer": "lights-out-inc",
      #         "model": "hs1234",
      #         "hwVersion": "3.2",
      #         "swVersion": "11.4"
      #       },
      #       "customData": {
      #         "fooValue": 74,
      #         "barValue": true,
      #         "bazValue": "foo"
      #       }
      #     }]
      #   }
      # }
      # ```
    "requestId": "A String", # Request ID used for debugging. Copied from the request.
    "payload": { # Payload containing device information. # Devices associated with the third-party user.
      "devices": [ # Devices associated with the third-party user.
        { # Third-party device definition.
          "roomHint": "A String", # Suggested name for the room where this device is installed.
              # Google attempts to use this value during user setup.
          "deviceInfo": { # Device information. # Device manufacturer, model, hardware version, and software version.
            "swVersion": "A String", # Device software version.
            "model": "A String", # Device model.
            "manufacturer": "A String", # Device manufacturer.
            "hwVersion": "A String", # Device hardware version.
          },
          "id": "A String", # Third-party device ID.
          "otherDeviceIds": [ # Alternate IDs associated with this device.
              # This is used to identify cloud synced devices enabled for [local
              # fulfillment](https://developers.google.com/assistant/smarthome/concepts/local).
            { # Alternate third-party device ID.
              "agentId": "A String", # Project ID for your smart home Action.
              "deviceId": "A String", # Unique third-party device ID.
            },
          ],
          "willReportState": True or False, # Indicates whether your smart home Action will report state of this device
              # to Google via
              # ReportStateAndNotification.
          "name": { # Identifiers used to describe the device. # Names given to this device by your smart home Action.
            "defaultNames": [ # List of names provided by the manufacturer rather than the user, such as
                # serial numbers, SKUs, etc.
              "A String",
            ],
            "name": "A String", # Primary name of the device, generally provided by the user.
            "nicknames": [ # Additional names provided by the user for the device.
              "A String",
            ],
          },
          "customData": { # Custom device attributes stored in Home Graph and provided to your
              # smart home Action in each
              # [QUERY](https://developers.google.com/assistant/smarthome/reference/intent/query)
              # and
              # [EXECUTE](https://developers.google.com/assistant/smarthome/reference/intent/execute)
              # intent.
            "a_key": "", # Properties of the object.
          },
          "notificationSupportedByAgent": True or False, # Indicates whether your smart home Action will report notifications
              # to Google for this device via
              # ReportStateAndNotification.
              #
              # If your smart home Action enables users to control device notifications,
              # you should update this field and call
              # RequestSyncDevices.
          "traits": [ # Traits supported by the device.
              # See [device
              # traits](https://developers.google.com/assistant/smarthome/traits).
            "A String",
          ],
          "structureHint": "A String", # Suggested name for the structure where this device is installed.
              # Google attempts to use this value during user setup.
          "type": "A String", # Hardware type of the device.
              # See [device
              # types](https://developers.google.com/assistant/smarthome/guides).
          "attributes": { # Attributes for the traits supported by the device.
            "a_key": "", # Properties of the object.
          },
        },
      ],
      "agentUserId": "A String", # Third-party user ID
    },
  }