Valve


The valve entity in Home Assistant provides an interface to control valves such as water, gas, or air valves.

Building block integration

This valve is a building block integration that cannot be added to your Home Assistant directly but is used and provided by other integrations.

A building block integration differs from the typical integration that connects to a device or service. Instead, other integrations that do integrate a device or service into Home Assistant use this valve building block to provide entities, services, and other functionality that you can use in your automations or dashboards.

If one of your integrations features this building block, this page documents the functionality the valve building block offers.

Device class

A device class is a measurement categorization in Home Assistant. It influences how the entity is represented in the dashboard. This can be modified in the customize section. For example, different states may be represented by different icons, colors, or text.

The following device classes are supported for valves:

  • None: Generic valve. This is the default and doesn’t need to be set.
  • water: Valve that controls the flow of water through a system.
  • gas: Valve that controls the flow of gas through a system.

Services

Valve control services

All valves respond to valve.open, valve.close, and valve.toggle. Valves that allow setting a specific position may also be controlled with valve.set_position and valve.stop.

Service data attribute Optional Description
entity_id yes String or list of strings that point at entity_id’s of valves. Use entity_id: all to target all.

Automation example

automation:
  trigger:
    platform: time
    at: "07:15:00"
  action:
    - service: valve.close
      target:
        entity_id: valve.demo

Service valve.set_position

Set the position of one or multiple valves if they support setting a specific position.

Service data attribute Optional Description
entity_id yes String or list of strings that point at entity_id’s of valves. Use entity_id: all to target all.
position no Integer between 0 (fully closed) and 100 (fully open).

Automation example

automation:
  trigger:
    platform: time
    at: "07:15:00"
  action:
    - service: valve.set_position
      target:
        entity_id: valve.demo
      data:
        position: 50