AssistantVerticalsHomeautomationProtoHomeAutomation_MetaData

AI Overview😉

  • The potential purpose of this module is to provide detailed metadata about home automation devices, including their capabilities, features, and relationships with other devices. This metadata is used to enable smart home features and improve the user experience.
  • This module could impact search results by providing more accurate and relevant information about home automation devices, allowing users to find and control their devices more easily. It could also enable more advanced features, such as automated routines and voice control, by providing a deeper understanding of device capabilities and relationships.
  • A website may change things to be more favorable for this function by providing more detailed and accurate metadata about their devices, such as supported features, device types, and relationships with other devices. They may also need to implement APIs and data formats that allow for seamless communication with the Google Assistant and other smart home systems.

Interesting Module? Vote 👇

Voting helps other researchers find interesting modules.

Current Votes: 0

GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoHomeAutomation_MetaData (google_api_content_warehouse v0.4.0)

Next ID: 45

Attributes

  • supportedStructureFeatures (type: GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoSupportedStructureFeatures.t, default: nil) - The features that are available for a structure. Will only be populated if the item_type == STRUCTURE.
  • traitRoutingHints (type: list(GoogleApi.ContentWarehouse.V1.Model.HomeGraphCommonTraitRoutingHints.t), default: nil) - For SHED devices, some traits can only be executed on 3P cloud, e.g. "action.devices.traits.MediaInitiation", "action.devices.traits.Channel" go/shed-per-trait-routing
  • parentNode (type: list(String.t), default: nil) - LINT.IfChange(home_graph_single_parent) At the moment, we just have a single string. In future this will expand with additional metadata from client or cloud execution data store. In today's 'tree' HomeGraph each object has a single parent. In the future this may have a mesh for complex cases -- zones, doors, etc -- so we make this a repeated element today. LINT.ThenChange(//depot/google3/assistant/assistant_server/settings/user_defined_actions/footprints/footprint_accessor.cc:home_graph_single_parent)
  • actionProjectConfigs (type: list(GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoActionProjectConfig.t), default: nil) - Custom actions that this item supports.
  • zoneNameSaftDocument (type: GoogleApi.ContentWarehouse.V1.Model.NlpSaftDocument.t, default: nil) - SAFT Document with linguistic annotations for the zone name, if applicable.
  • operationalNodeId (type: String.t, default: nil) - Operational CHIP Node ID that combines the fabric ID and node id in format of . (Hex format without 0x prefix, for example, 0F001234FA67AA39.1234ABCD1111DDDD).
  • saftDocument (type: GoogleApi.ContentWarehouse.V1.Model.NlpSaftDocument.t, default: nil) - SAFT Document with linguistic annotations for the primary device name.
  • opaqueCustomData (type: String.t, default: nil) - Store custom data for agent calls here. This will likely be short-lived -- we will replace this with calls to HGS. (Note: This may end up not temporary if we only need it for a couple partners -- more efficient to have it on a few users than require HGS reads for all users.
  • lanscanOptedIn (type: boolean(), default: nil) - Whether local home platform should discover new devices via LAN for the structure.
  • plural (type: list(String.t), default: nil) - We use this to determine if the synonyms matched in the aqua interpretation is plural. Then we will return disambiguate dialog or execute commands with all the targets.
  • deviceModelId (type: String.t, default: nil) - See note in home_graph.proto; loaded into DE now to avoid having to double-read assistant settings records as per go/smarthome-removing-assistant-settings
  • notificationSupportedByAgent (type: boolean(), default: nil) - Indicates whether the device is capable of sending notifications. This field will be set by the agent (partner) on an incoming SYNC. If a device is not capable of generating notifications, the partner should set this flag to false. If a partner is not capable of calling ReportStateAndNotification to send notifications to Google, the partner should set this flag to false. If there is a user setting in the partner app to enable notifications and it is turned off, the partner should set this flag to false.
  • parentType (type: list(String.t), default: nil) - The type of the parent. Currently only set for devices, to distinguish between structure and room parents. Items currently have only one parent, and entries after the first parent_type are ignored.
  • gcmExecutionAddress (type: String.t, default: nil) - GCM address for cloud execution across google cloud messaging rather than 3p cloud.
  • smartDeviceManagementData (type: GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoSmartDeviceManagementData.t, default: nil) - Data needed for SDM (fleet management). See go/enterprise-id-in-assistant.
  • voiceMatchRequired (type: String.t, default: nil) - Set to which level of voice match is needed. Enum based on string input from the partner in json sync. Values accepted: "none" (but in this case partners won't set it), "owner" [requires matching one of the creator gaia IDs], or "member" [any recognized voice 'enrolled' on the device]. This may expand; only "owner" is in use for first partner, Tile.
  • personalizedNicknames (type: list(String.t), default: nil) - User-given nicknames for an entity (e.g. "My house"). These nicknames are unique to the gaia user. Nickname in DeviceInfo is per-entity level nickname, while personalized_nicknames is per-user per-entity.
  • primaryName (type: String.t, default: nil) - Which of the values was the original, user-provided name -- or our disambiguated, cleaned-up version of it. This is what we use in TTS when we need to identify an object that wasn't just spoken uniquely by the user -- in disambiguation dialogue, or in response to a collective interrogative (e.g. "what lights are on in the kitchen?")
  • attributes (type: map(), default: nil) - Attributes data as provided from SYNC. This gets used in mutation and execution and in some potential cases, in biasing.
  • hashValue (type: String.t, default: nil) - The hash value from go/de-consistency-check
  • willReportState (type: boolean(), default: nil) - This device will report state; we can query realtime state from local HGS rather than slow QUERY intent to the 3p cloud.
  • matterUniqueId (type: GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoMatterUniqueId.t, default: nil) - Matter Unique ID. Contains VID/PID information
  • userDefinedDeviceType (type: String.t, default: nil) - The priority order of speech targeting: 1. user_defined_device_type 2. derived_device_type 3. device_type
  • supportsDirectResponse (type: boolean(), default: nil) - This device supports direct response -- if the device itself is issuing the query (which means it's also an assistant surface) we can return its payload directly rather than via cloud.
  • targetDeviceSignalStrengths (type: map(), default: nil) - Only present for an AoGH device. HGS Device ID of a target device and the signal strength (RSSI in dB, higher is better) between that target device and the AoGH device. If this map is empty, there are no target devices reachable by this AoGH device.
  • roleInformation (type: GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoRoleInformation.t, default: nil) - User's role information for this device. This will be used in Home Automation server to decide if user has authority to fulfill its request.
  • traitToAttributeProtos (type: %{optional(String.t) => GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoAttributes.t}, default: nil) - Map of trait to a proto representing the attribute. This is different from the attributes field above which is represented as a struct. The attributes here are represented as protos and will require specific support per trait.
  • traitRoutingTable (type: %{optional(String.t) => GoogleApi.ContentWarehouse.V1.Model.HomeGraphCommonRoutingTable.t}, default: nil) - Map from traits to routing table. Metadata includes preferred execution path per trait and, when Matter is preferred, which endpoint should be used for the trait.
  • assistantDeviceId (type: String.t, default: nil) - Device ID that matches the ID passed from the device to discourse_context when a user issues a query to an Assistant-enabled device that is registered with Cast (via CCS (see go/castservers)), or some other service.
  • derivedType (type: list(String.t), default: nil) - Any types that are not the given item type, but derived later. For example, if an item has type action.devices.types.OUTLET but is named "floor lamp" we can derive that it also has type action.devices.types.LIGHT. Also considered along with |type| when triggering type-based actions.
  • modelName (type: String.t, default: nil) - Model name from HomeGraph, populated from model_manifest.model_name. See b/200087451.
  • notificationEnabledByUser (type: boolean(), default: nil) - Indicates whether notifications have been enabled by a user and will be announced for this device. This is set by the user within the Google app settings, and Google will announce the device notification only if both notification_supported_by_agent and notification_enabled_by_user are true.
  • otherDeviceIds (type: list(GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoAgentDeviceId.t), default: nil) - Other agent id + foreign id pairs associated with the device. This can be used to represent a group of devices (e.g. Sonos' bonded zone) as a single device, or a device that comes in through different sync flows (e.g. Newman with a Nest camera).
  • smartHomeFeatures (type: GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoSmartHomeFeatures.t, default: nil) - SmartHome feature flags that may be enabled per-item.
  • supportedTraitsByAgent (type: %{optional(String.t) => GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoHomeAutomation_MetaDataSupportedTraits.t}, default: nil) - Map from agent ID to supported traits. Some devices (e.g. Newman) have multiple agents, with each agent being associated with a specific set of traits. This could alternatively have been formatted as map as {trait, agent} pairs instead of the {agent, list of trait} pairs, but we retain this format to be consistent with HomeGraph's representation. In practice, a trait should only be paired with a single agent (i.e. we should not have two agents with the same trait in their value list). This field is optional and should only be provided if the item has multiple agents.
  • type (type: String.t, default: nil) - The item type, such as "action.devices.types.VACUUM" - to be used in triggering type-based actions, e.g. "start vacuuming": go/smarthome-type-based-actions.
  • tdssUpdateTimestamp (type: DateTime.t, default: nil) - The timestamp at which the TDSS map was last updated. This information is used to help determine which hub would be preferred if multiple hubs report the same reach-ability for a device.
  • creatorGaiaId (type: String.t, default: nil) - See Device.creator_gaia_ids in //home/graph/proto/service/types.proto. If empty, the GAIA ID from the request EUC is assumed to be the creator. We only need at most one creator_gaia_id.
  • reportStateStatus (type: String.t, default: nil) - Whether device report state is out of sync with Query response.
  • routableViaGcm (type: boolean(), default: nil) - Only present for a target device. Indicates this target device is reachable by a local (AoGH) path via an AoGH device.
  • groupIds (type: list(String.t), default: nil) - List of parent group IDs, if the device is added to one or multiple device groups (see go/home-groups). Will be consumed by Smart Home APIs and (in the future) Assistant CTF to populate the group member list of device groups.
  • physicalLocation (type: GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoPhysicalLocation.t, default: nil) - Stores the location for the STRUCTURE type.
  • otherDeviceSources (type: list(String.t), default: nil) - Additional device sources. This can be the result of the device being merged with other devices with a different source.
  • agentInformation (type: GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoAgentInformation.t, default: nil) - Agent details.

Summary

Types

t()

Functions

decode(value, options)

Unwrap a decoded JSON object into its complex fields.

Types

Link to this type

t()

@type t() ::
  %GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoHomeAutomation_MetaData{
    actionProjectConfigs:
      [
        GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoActionProjectConfig.t()
      ]
      | nil,
    agentInformation:
      GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoAgentInformation.t()
      | nil,
    assistantDeviceId: String.t() | nil,
    attributes: map() | nil,
    creatorGaiaId: String.t() | nil,
    derivedType: [String.t()] | nil,
    deviceModelId: String.t() | nil,
    gcmExecutionAddress: String.t() | nil,
    groupIds: [String.t()] | nil,
    hashValue: String.t() | nil,
    lanscanOptedIn: boolean() | nil,
    matterUniqueId:
      GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoMatterUniqueId.t()
      | nil,
    modelName: String.t() | nil,
    notificationEnabledByUser: boolean() | nil,
    notificationSupportedByAgent: boolean() | nil,
    opaqueCustomData: String.t() | nil,
    operationalNodeId: String.t() | nil,
    otherDeviceIds:
      [
        GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoAgentDeviceId.t()
      ]
      | nil,
    otherDeviceSources: [String.t()] | nil,
    parentNode: [String.t()] | nil,
    parentType: [String.t()] | nil,
    personalizedNicknames: [String.t()] | nil,
    physicalLocation:
      GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoPhysicalLocation.t()
      | nil,
    plural: [String.t()] | nil,
    primaryName: String.t() | nil,
    reportStateStatus: String.t() | nil,
    roleInformation:
      GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoRoleInformation.t()
      | nil,
    routableViaGcm: boolean() | nil,
    saftDocument: GoogleApi.ContentWarehouse.V1.Model.NlpSaftDocument.t() | nil,
    smartDeviceManagementData:
      GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoSmartDeviceManagementData.t()
      | nil,
    smartHomeFeatures:
      GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoSmartHomeFeatures.t()
      | nil,
    supportedStructureFeatures:
      GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoSupportedStructureFeatures.t()
      | nil,
    supportedTraitsByAgent:
      %{
        optional(String.t()) =>
          GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoHomeAutomation_MetaDataSupportedTraits.t()
      }
      | nil,
    supportsDirectResponse: boolean() | nil,
    targetDeviceSignalStrengths: map() | nil,
    tdssUpdateTimestamp: DateTime.t() | nil,
    traitRoutingHints:
      [GoogleApi.ContentWarehouse.V1.Model.HomeGraphCommonTraitRoutingHints.t()]
      | nil,
    traitRoutingTable:
      %{
        optional(String.t()) =>
          GoogleApi.ContentWarehouse.V1.Model.HomeGraphCommonRoutingTable.t()
      }
      | nil,
    traitToAttributeProtos:
      %{
        optional(String.t()) =>
          GoogleApi.ContentWarehouse.V1.Model.AssistantVerticalsHomeautomationProtoAttributes.t()
      }
      | nil,
    type: String.t() | nil,
    userDefinedDeviceType: String.t() | nil,
    voiceMatchRequired: String.t() | nil,
    willReportState: boolean() | nil,
    zoneNameSaftDocument:
      GoogleApi.ContentWarehouse.V1.Model.NlpSaftDocument.t() | nil
  }

Functions

Link to this function

decode(value, options)

@spec decode(struct(), keyword()) :: struct()

Unwrap a decoded JSON object into its complex fields.