core/homeassistant/components/tcp/sensor.py

44 lines
1.3 KiB
Python

"""Support for TCP socket based sensors."""
from __future__ import annotations
from typing import Final
from homeassistant.components.sensor import (
PLATFORM_SCHEMA as SENSOR_PLATFORM_SCHEMA,
SensorEntity,
)
from homeassistant.const import CONF_UNIT_OF_MEASUREMENT
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType, StateType
from .common import TCP_PLATFORM_SCHEMA
from .entity import TcpEntity
PLATFORM_SCHEMA: Final = SENSOR_PLATFORM_SCHEMA.extend(TCP_PLATFORM_SCHEMA)
def setup_platform(
hass: HomeAssistant,
config: ConfigType,
add_entities: AddEntitiesCallback,
discovery_info: DiscoveryInfoType | None = None,
) -> None:
"""Set up the TCP Sensor."""
add_entities([TcpSensor(hass, config)])
class TcpSensor(TcpEntity, SensorEntity):
"""Implementation of a TCP socket based sensor."""
@property
def native_value(self) -> StateType:
"""Return the state of the device."""
return self._state
@property
def native_unit_of_measurement(self) -> str | None:
"""Return the unit of measurement of this entity."""
return self._config[CONF_UNIT_OF_MEASUREMENT]