53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
import esphome.codegen as cg
|
|
import esphome.config_validation as cv
|
|
from esphome.components import number
|
|
from esphome.const import CONF_POWER, ENTITY_CATEGORY_CONFIG, CONF_ID
|
|
|
|
from .. import tw7100, tw7100_ns, CONF_TW7100_ID
|
|
|
|
DEPENDENCIES = ["tw7100"]
|
|
CODEOWNERS = ["@sqozz"]
|
|
|
|
tw7100Number = tw7100_ns.class_("tw7100Number", number.Number, cg.Component)
|
|
|
|
numbers = [
|
|
("VOL","mdi:volume-high"),
|
|
("VKEYSTONE",""),
|
|
("HKEYSTONE",""),
|
|
("BRIGHT","mdi:brightness-7"),
|
|
("CONTRAST","mdi:contrast"),
|
|
("DENSITY",""),
|
|
("TINT",""),
|
|
("CTEMP","mdi:format-color-fill"),
|
|
("FCOLOR","mdi:account"),
|
|
("NRS",""),
|
|
("MPEGNRS",""),
|
|
("OFFSETR","mdi:alpha-r-box-outline"),
|
|
("OFFSETG","mdi:alpha-g-box-outline"),
|
|
("OFFSETB","mdi:alpha-b-box-outline"),
|
|
("GAINR","mdi:alpha-r-circle-outline"),
|
|
("GAING","mdi:alpha-g-circle-outline"),
|
|
("GAINB","mdi:alpha-b-circle-outline"),
|
|
("SHRF","mdi:format-line-weight"),
|
|
("SHRS","mdi:image-filter-center-focus"),
|
|
("DERANGE","mdi:magnify-expand"),
|
|
("DESTRENGTH","mdi:magnify-plus-outline")
|
|
]
|
|
|
|
schema={cv.GenerateID(): cv.use_id(tw7100)}
|
|
for name,icon in numbers:
|
|
schema.update({cv.Optional(name): number.number_schema(tw7100Number, icon=icon)})
|
|
|
|
CONFIG_SCHEMA = cv.Schema(schema)
|
|
|
|
|
|
async def to_code(config):
|
|
parent = await cg.get_variable(config[CONF_ID])
|
|
|
|
for name,icon in numbers:
|
|
if name in config:
|
|
number_ = await number.new_number(config[name], min_value=0, max_value=255, step=1)
|
|
cg.add(number_.set_cmd(name))
|
|
cg.add(number_.set_tw7100_parent(parent))
|
|
cg.add(getattr(parent, "set_set_{}".format(name.lower()))(number_))
|