# Path: mysensors/validation.py
# _LOGGER = logging.getLogger(__name__)
# def is_version(value):
# def safe_is_version(value):
# def is_battery_level(value):
# def is_heartbeat(value):
# 
# Path: mysensors/handler.py
# HANDLERS = Registry()


from enum import IntEnum
from mysensors.validation import is_version, percent_int
from .handler import HANDLERS
import voluptuous as vol
        SetReq.V_VAR3,
        SetReq.V_VAR4,
        SetReq.V_VAR5,
    ],
    Presentation.S_DUST: [SetReq.V_DUST_LEVEL],
    Presentation.S_SCENE_CONTROLLER: [SetReq.V_SCENE_ON, SetReq.V_SCENE_OFF],
}

LOGICAL_ZERO = "0"
LOGICAL_ONE = "1"
OFF = "Off"
HEAT_ON = "HeatOn"
COOL_ON = "CoolOn"
AUTO_CHANGE_OVER = "AutoChangeOver"
STABLE = "stable"
SUNNY = "sunny"
CLOUDY = "cloudy"
UNSTABLE = "unstable"
THUNDERSTORM = "thunderstorm"
UNKNOWN = "unknown"
FORECASTS = (STABLE, SUNNY, CLOUDY, UNSTABLE, THUNDERSTORM, UNKNOWN)

VALID_SETREQ = {
    SetReq.V_TEMP: str,
    SetReq.V_HUM: str,
    SetReq.V_LIGHT: vol.In(
        [LOGICAL_ZERO, LOGICAL_ONE],
        msg=f"value must be either {LOGICAL_ZERO} or {LOGICAL_ONE}",
    ),
    SetReq.V_DIMMER: vol.All(

# Path: mysensors/validation.py
# _LOGGER = logging.getLogger(__name__)
# def is_version(value):
# def safe_is_version(value):
# def is_battery_level(value):
# def is_heartbeat(value):
# 
# Path: mysensors/handler.py
# HANDLERS = Registry()


# Path: mysensors/const_14.py
from enum import IntEnum
from mysensors.validation import is_version, percent_int
from .handler import HANDLERS
import voluptuous as vol

        SetReq.V_VAR3,
        SetReq.V_VAR4,
        SetReq.V_VAR5,
    ],
    Presentation.S_DUST: [SetReq.V_DUST_LEVEL],
    Presentation.S_SCENE_CONTROLLER: [SetReq.V_SCENE_ON, SetReq.V_SCENE_OFF],
}

LOGICAL_ZERO = "0"
LOGICAL_ONE = "1"
OFF = "Off"
HEAT_ON = "HeatOn"
COOL_ON = "CoolOn"
AUTO_CHANGE_OVER = "AutoChangeOver"
STABLE = "stable"
SUNNY = "sunny"
CLOUDY = "cloudy"
UNSTABLE = "unstable"
THUNDERSTORM = "thunderstorm"
UNKNOWN = "unknown"
FORECASTS = (STABLE, SUNNY, CLOUDY, UNSTABLE, THUNDERSTORM, UNKNOWN)

VALID_SETREQ = {
    SetReq.V_TEMP: str,
    SetReq.V_HUM: str,
    SetReq.V_LIGHT: vol.In(
        [LOGICAL_ZERO, LOGICAL_ONE],
        msg=f"value must be either {LOGICAL_ZERO} or {LOGICAL_ONE}",
    ),
    SetReq.V_DIMMER: vol.All(

        percent_int,