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:
- Go to Settings > Automations & scenes.
- Open an existing automation or script, or select Create automation > Create new automation.
- 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.
- In the Then do section, select Add action.
- Search for and select Get Shelly KVS value.
- Set Device to the Shelly device, and Key to the name of the value you want to read.
- Select Save.
Options in the UI
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:
action: shelly.get_kvs_value
data:
device_id: e4c0e031f68a8fbe08c50eda5e189a70
key: "my_temperature_value"
response_variable: kvs
Options in YAML
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.
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:
- Set Shelly KVS value: Stores a value in a Shelly device’s Key-Value Storage.