Valve entity
A valve entity controls valve devices such as the water or gas valves in your home. Derive a platform entity from homeassistant.components.valve.ValveEntity.
Properties
Properties should always only return information from memory and not do I/O (like network requests). Implement update() or async_update() to fetch data.
| Name | Type | Default | Description | 
|---|---|---|---|
| current_valve_position | int | None | None | The current position of the valve where 0 means closed and 100 is fully open. This attribute is required on valves with reports_position = True, where it's used to determine state. | 
| is_closed | bool | None | None | If the valve is closed or not. Used to determine statefor valves that don't report position. | 
| is_closing | bool | None | None | If the valve is closing or not. Used to determine state. | 
| is_opening | bool | None | None | If the valve is opening or not. Used to determine state. | 
| reports_position | bool | Required | If the valve knows its position or not. | 
Device classes
| Constant | Description | 
|---|---|
| ValveDeviceClass.WATER | Control of a water valve. | 
| ValveDeviceClass.GAS | Control of a gas valve. | 
States
The state is defined by setting it's properties. The resulting state is using the ValveState enum to return one of the below members.
| Value | Description | 
|---|---|
| OPENING | The valve is in the process of opening to reach a set position. | 
| OPEN | The valve has reached the open position. | 
| CLOSING | The valve is in the process of closing to reach a set position. | 
| CLOSED | The valve has reached the closed position. | 
Supported features
Supported features are defined by using values in the ValveEntityFeature enum
and are combined using the bitwise or (|) operator.
| Value | Description | 
|---|---|
| OPEN | The valve supports being opened. | 
| CLOSE | The valve supports being closed. | 
| SET_POSITION | The valve supports moving to a specific position between opened and closed. | 
| STOP | The valve supports stopping the current action (open, close, set position) | 
Methods
Open valve
Only implement this method if the flag SUPPORT_OPEN is set. For valves that
can set position, this method should be left unimplemented and only set_valve_position is required.
class MyValve(ValveEntity):
    # Implement one of these methods.
    def open_valve(self) -> None:
        """Open the valve."""
    async def async_open_valve(self) -> None:
        """Open the valve."""
Close valve
Only implement this method if the flag SUPPORT_CLOSE is set.  For valves that
can set position, this method should be left unimplemented and only set_valve_position is required.
class MyValve(ValveEntity):
    # Implement one of these methods.
    def close_valve(self) -> None:
        """Close valve."""
    async def async_close_valve(self) -> None:
        """Close valve."""
Set valve position
Only implement this method if the flag SUPPORT_SET_POSITION is set. This method must be implemented in valves that can set position.
class MyValve(ValveEntity):
    # Implement one of these methods.
    def set_valve_position(self, position: int) -> None:
        """Move the valve to a specific position."""
    async def async_set_valve_position(self, position: int) -> None:
        """Move the valve to a specific position."""
Stop valve
Only implement this method if the flag SUPPORT_STOP is set.
class MyValve(ValveEntity):
    # Implement one of these methods.
    def stop_valve(self) -> None:
        """Stop the valve."""
    async def async_stop_valve(self) -> None:
        """Stop the valve."""