developers.home-assistant/docs/api/native-app-integration/sensors.md

5.6 KiB

title
Sensors

The mobile_app component supports exposing custom sensors that can be managed entirely via your app.

Registering a sensor

All sensors must be registered before they can get updated. You can only register one sensor at a time, unlike updating sensors.

To register a sensor, make a request to the webhook like this:

{
  "data": {
    "attributes": {
      "foo": "bar"
    },
    "device_class": "battery",
    "icon": "mdi:battery",
    "name": "Battery State",
    "state": "12345",
    "type": "sensor",
    "unique_id": "battery_state",
    "unit_of_measurement": "%",
    "state_class": "measurement",
    "entity_category": "diagnostic"
  },
  "type": "register_sensor"
}

The valid keys are:

Key Type Required Description
attributes object No Attributes to attach to the sensor
device_class string No One of the valid device classes. Binary Sensor Classes, Sensor Classes
icon Material Design Icon (string) No Must be prefixed mdi:. If not provided, default value is mdi:cellphone
name string Yes The name of the sensor
state bool, float, int, string Yes The state of the sensor
type string Yes The type of the sensor. Must be one of binary_sensor or sensor
unique_id string Yes An identifier unique to this installation of your app. You'll need this later. Usually best when its a safe version of the sensor name
unit_of_measurement string No The unit of measurement for the sensor
state_class string No The state class of the entity (sensors only)
entity_category string No The entity category of the entity

Sensors will appear as soon as they are registered.

Updating a sensor

Once a sensor has been registered, you need to update it. This is very similar to registering it, but you can update all your sensors at the same time.

For example, to update the sensor we registered above, you would send this:

{
  "data": [
    {
      "attributes": {
        "hello": "world"
      },
      "icon": "mdi:battery",
      "state": 123,
      "type": "sensor",
      "unique_id": "battery_state"
    }
  ],
  "type": "update_sensor_states"
}

Only some of the keys are allowed during updates:

Key Type Required Description
attributes object No Attributes to attach to the sensor
icon Material Design Icon (string) No Must be prefixed mdi:
state bool, float, int, string Yes The state of the sensor
type string Yes The type of the sensor. Must be one of binary_sensor or sensor
unique_id string Yes An identifier unique to this installation of your app. You'll need this later. Usually best when its a safe version of the sensor name