mirror of
https://github.com/esphome/esphome.git
synced 2025-09-11 15:52:20 +01:00
30 lines
888 B
Python
30 lines
888 B
Python
import esphome.config_validation as cv
|
|
from esphome.const import CONF_BRIGHTNESS, CONF_COLOR, CONF_LED
|
|
|
|
from ..defines import CONF_MAIN
|
|
from ..lv_validation import lv_brightness, lv_color
|
|
from ..lvcode import lv
|
|
from ..types import LvType
|
|
from . import Widget, WidgetType
|
|
|
|
LED_SCHEMA = cv.Schema(
|
|
{
|
|
cv.Optional(CONF_COLOR): lv_color,
|
|
cv.Optional(CONF_BRIGHTNESS): lv_brightness,
|
|
}
|
|
)
|
|
|
|
|
|
class LedType(WidgetType):
|
|
def __init__(self):
|
|
super().__init__(CONF_LED, LvType("lv_led_t"), (CONF_MAIN,), LED_SCHEMA)
|
|
|
|
async def to_code(self, w: Widget, config):
|
|
if (color := config.get(CONF_COLOR)) is not None:
|
|
lv.led_set_color(w.obj, await lv_color.process(color))
|
|
if (brightness := config.get(CONF_BRIGHTNESS)) is not None:
|
|
lv.led_set_brightness(w.obj, await lv_brightness.process(brightness))
|
|
|
|
|
|
led_spec = LedType()
|