mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 21:27:38 +00:00
Configurable mode for KNX number entity (#58268)
This commit is contained in:
parent
da7e26c287
commit
45a98aee10
@ -7,7 +7,13 @@ from xknx import XKNX
|
|||||||
from xknx.devices import NumericValue
|
from xknx.devices import NumericValue
|
||||||
|
|
||||||
from homeassistant.components.number import NumberEntity
|
from homeassistant.components.number import NumberEntity
|
||||||
from homeassistant.const import CONF_NAME, CONF_TYPE, STATE_UNAVAILABLE, STATE_UNKNOWN
|
from homeassistant.const import (
|
||||||
|
CONF_MODE,
|
||||||
|
CONF_NAME,
|
||||||
|
CONF_TYPE,
|
||||||
|
STATE_UNAVAILABLE,
|
||||||
|
STATE_UNKNOWN,
|
||||||
|
)
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.restore_state import RestoreEntity
|
from homeassistant.helpers.restore_state import RestoreEntity
|
||||||
@ -63,6 +69,7 @@ class KNXNumber(KnxEntity, NumberEntity, RestoreEntity):
|
|||||||
NumberSchema.CONF_MIN,
|
NumberSchema.CONF_MIN,
|
||||||
self._device.sensor_value.dpt_class.value_min,
|
self._device.sensor_value.dpt_class.value_min,
|
||||||
)
|
)
|
||||||
|
self._attr_mode = config[CONF_MODE]
|
||||||
self._attr_step = config.get(
|
self._attr_step = config.get(
|
||||||
NumberSchema.CONF_STEP,
|
NumberSchema.CONF_STEP,
|
||||||
self._device.sensor_value.dpt_class.resolution,
|
self._device.sensor_value.dpt_class.resolution,
|
||||||
|
@ -3,7 +3,7 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from abc import ABC
|
from abc import ABC
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
from typing import Any, ClassVar
|
from typing import Any, ClassVar, Final
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
from xknx import XKNX
|
from xknx import XKNX
|
||||||
@ -18,11 +18,13 @@ from homeassistant.components.binary_sensor import (
|
|||||||
)
|
)
|
||||||
from homeassistant.components.climate.const import HVAC_MODE_HEAT, HVAC_MODES
|
from homeassistant.components.climate.const import HVAC_MODE_HEAT, HVAC_MODES
|
||||||
from homeassistant.components.cover import DEVICE_CLASSES as COVER_DEVICE_CLASSES
|
from homeassistant.components.cover import DEVICE_CLASSES as COVER_DEVICE_CLASSES
|
||||||
|
from homeassistant.components.number.const import MODE_AUTO, MODE_BOX, MODE_SLIDER
|
||||||
from homeassistant.components.sensor import CONF_STATE_CLASS, STATE_CLASSES_SCHEMA
|
from homeassistant.components.sensor import CONF_STATE_CLASS, STATE_CLASSES_SCHEMA
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
CONF_DEVICE_CLASS,
|
CONF_DEVICE_CLASS,
|
||||||
CONF_ENTITY_ID,
|
CONF_ENTITY_ID,
|
||||||
CONF_HOST,
|
CONF_HOST,
|
||||||
|
CONF_MODE,
|
||||||
CONF_NAME,
|
CONF_NAME,
|
||||||
CONF_PORT,
|
CONF_PORT,
|
||||||
CONF_TYPE,
|
CONF_TYPE,
|
||||||
@ -437,7 +439,7 @@ class ExposeSchema(KNXPlatformSchema):
|
|||||||
CONF_KNX_EXPOSE_ATTRIBUTE = "attribute"
|
CONF_KNX_EXPOSE_ATTRIBUTE = "attribute"
|
||||||
CONF_KNX_EXPOSE_BINARY = "binary"
|
CONF_KNX_EXPOSE_BINARY = "binary"
|
||||||
CONF_KNX_EXPOSE_DEFAULT = "default"
|
CONF_KNX_EXPOSE_DEFAULT = "default"
|
||||||
EXPOSE_TIME_TYPES = [
|
EXPOSE_TIME_TYPES: Final = [
|
||||||
"time",
|
"time",
|
||||||
"date",
|
"date",
|
||||||
"datetime",
|
"datetime",
|
||||||
@ -653,11 +655,14 @@ class NumberSchema(KNXPlatformSchema):
|
|||||||
CONF_STEP = "step"
|
CONF_STEP = "step"
|
||||||
DEFAULT_NAME = "KNX Number"
|
DEFAULT_NAME = "KNX Number"
|
||||||
|
|
||||||
|
NUMBER_MODES: Final = [MODE_AUTO, MODE_BOX, MODE_SLIDER]
|
||||||
|
|
||||||
ENTITY_SCHEMA = vol.All(
|
ENTITY_SCHEMA = vol.All(
|
||||||
vol.Schema(
|
vol.Schema(
|
||||||
{
|
{
|
||||||
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
|
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
|
||||||
vol.Optional(CONF_RESPOND_TO_READ, default=False): cv.boolean,
|
vol.Optional(CONF_RESPOND_TO_READ, default=False): cv.boolean,
|
||||||
|
vol.Optional(CONF_MODE, default=MODE_AUTO): vol.In(NUMBER_MODES),
|
||||||
vol.Required(CONF_TYPE): numeric_type_validator,
|
vol.Required(CONF_TYPE): numeric_type_validator,
|
||||||
vol.Required(KNX_ADDRESS): ga_list_validator,
|
vol.Required(KNX_ADDRESS): ga_list_validator,
|
||||||
vol.Optional(CONF_STATE_ADDRESS): ga_list_validator,
|
vol.Optional(CONF_STATE_ADDRESS): ga_list_validator,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user