Get Shelly KVS value

Use this action to read a value from a Shelly device’s Key-Value Storage (KVS). KVS is a small store on the device where Shelly scripts keep values. A common use is to pull a value that a device script calculated, such as a measurement, into Home Assistant. The value can be text, a number, a boolean, an empty value, a mapping, or a list.

This action returns its result in a response variable, which you can use in later steps of the same automation or script.

Using this action from the user interface

If you prefer building automations and scripts visually, Home Assistant walks you through this action step by step. You pick what to target, tweak a few options, and save. No YAML knowledge required.

To get a KVS value from an automation or a script:

  1. Go to Settings > Automations & scenes.
  2. Open an existing automation or script, or select Create automation > Create new automation.
  3. If you’re setting up a new automation, add a trigger in the When section. Scripts don’t need a trigger. They run when something else calls them.
  4. In the Then do section, select Add action.
  5. Search for and select Get Shelly KVS value.
  6. Set Device to the Shelly device, and Key to the name of the value you want to read.
  7. Select Save.

Options in the UI

Device

The Shelly device to read the value from.

Key

The name of the key to read.

Using this action in YAML

If you work directly in YAML, or you want to know exactly what Home Assistant does under the hood, this section has the technical reference. It lists the field names you use in YAML, their types, and which ones are required.

In YAML, refer to this action as shelly.get_kvs_value. Store the result in a response variable so you can use it in later steps:

ActionActions are used in several places in Home Assistant. As part of a script or automation, actions define what is going to happen once a trigger is activated. In scripts, an action is called *sequence*. [Learn more]
action: shelly.get_kvs_value
data:
  device_id: e4c0e031f68a8fbe08c50eda5e189a70
  key: "my_temperature_value"
response_variable: kvs

Options in YAML

device_id string Required

The Shelly device to read the value from.

key string Required

The name of the key to read.

Response data

The action returns the stored value in a value field. The value can be text, a number, a boolean, an empty value, a mapping, or a list, depending on what the device script stored.

Example: create a sensor from a KVS value

This example creates a template sensor that reads a temperature value from the KVS key my_temperature_value every 10 minutes.

# Example configuration.yaml entry
template:
  - triggers:
      - trigger: time_pattern
        minutes: "/10"
    actions:
      - action: shelly.get_kvs_value
        data:
          device_id: e4c0e031f68a8fbe08c50eda5e189a70
          key: "my_temperature_value"
        response_variable: temperature_variable
    sensor:
      - name: "My temperature"
        state: "{{ temperature_variable.value }}"
        unit_of_measurement: "°C"
        device_class: temperature

Good to know

  • KVS actions work only on non-sleeping Shelly generation 2 and later devices.

Still stuck?

The Home Assistant community is quick to help: join Discord for real-time chat, post on the community forum with the action you’re calling and what you expected to happen, or share on our subreddit /r/homeassistant.

Tip

AI assistants like ChatGPT or Claude can also explain actions or suggest the right one when you describe what you want in plain language.

Related actions

These actions work well alongside this one: