mirror of
https://github.com/Threnklyn/esphome-dev.git
synced 2026-06-03 19:38:30 +02:00
Cleanup dashboard JS (#491)
* Cleanup dashboard JS * Add vscode * Save start_mark/end_mark * Updates * Updates * Remove need for cv.nameable It's a bit hacky but removes so much bloat from integrations * Add enum helper * Document APIs, and Improvements * Fixes * Fixes * Update PULL_REQUEST_TEMPLATE.md * Updates * Updates * Updates
This commit is contained in:
@@ -6,19 +6,24 @@ from esphome.const import CONF_BLUE, CONF_GREEN, CONF_RED, CONF_OUTPUT_ID, CONF_
|
||||
rgbw_ns = cg.esphome_ns.namespace('rgbw')
|
||||
RGBWLightOutput = rgbw_ns.class_('RGBWLightOutput', light.LightOutput)
|
||||
|
||||
CONFIG_SCHEMA = cv.nameable(light.RGB_LIGHT_SCHEMA.extend({
|
||||
cv.GenerateID(CONF_OUTPUT_ID): cv.declare_variable_id(RGBWLightOutput),
|
||||
cv.Required(CONF_RED): cv.use_variable_id(output.FloatOutput),
|
||||
cv.Required(CONF_GREEN): cv.use_variable_id(output.FloatOutput),
|
||||
cv.Required(CONF_BLUE): cv.use_variable_id(output.FloatOutput),
|
||||
cv.Required(CONF_WHITE): cv.use_variable_id(output.FloatOutput),
|
||||
}))
|
||||
CONFIG_SCHEMA = light.RGB_LIGHT_SCHEMA.extend({
|
||||
cv.GenerateID(CONF_OUTPUT_ID): cv.declare_id(RGBWLightOutput),
|
||||
cv.Required(CONF_RED): cv.use_id(output.FloatOutput),
|
||||
cv.Required(CONF_GREEN): cv.use_id(output.FloatOutput),
|
||||
cv.Required(CONF_BLUE): cv.use_id(output.FloatOutput),
|
||||
cv.Required(CONF_WHITE): cv.use_id(output.FloatOutput),
|
||||
})
|
||||
|
||||
|
||||
def to_code(config):
|
||||
red = yield cg.get_variable(config[CONF_RED])
|
||||
green = yield cg.get_variable(config[CONF_GREEN])
|
||||
blue = yield cg.get_variable(config[CONF_BLUE])
|
||||
white = yield cg.get_variable(config[CONF_WHITE])
|
||||
var = cg.new_Pvariable(config[CONF_OUTPUT_ID], red, green, blue, white)
|
||||
var = cg.new_Pvariable(config[CONF_OUTPUT_ID])
|
||||
yield light.register_light(var, config)
|
||||
|
||||
red = yield cg.get_variable(config[CONF_RED])
|
||||
cg.add(var.set_red(red))
|
||||
green = yield cg.get_variable(config[CONF_GREEN])
|
||||
cg.add(var.set_green(green))
|
||||
blue = yield cg.get_variable(config[CONF_BLUE])
|
||||
cg.add(var.set_blue(blue))
|
||||
white = yield cg.get_variable(config[CONF_WHITE])
|
||||
cg.add(var.set_white(white))
|
||||
|
||||
@@ -9,9 +9,10 @@ namespace rgbw {
|
||||
|
||||
class RGBWLightOutput : public light::LightOutput {
|
||||
public:
|
||||
RGBWLightOutput(output::FloatOutput *red, output::FloatOutput *green, output::FloatOutput *blue,
|
||||
output::FloatOutput *white)
|
||||
: red_(red), green_(green), blue_(blue), white_(white) {}
|
||||
void set_red(output::FloatOutput *red) { red_ = red; }
|
||||
void set_green(output::FloatOutput *green) { green_ = green; }
|
||||
void set_blue(output::FloatOutput *blue) { blue_ = blue; }
|
||||
void set_white(output::FloatOutput *white) { white_ = white; }
|
||||
light::LightTraits get_traits() override {
|
||||
auto traits = light::LightTraits();
|
||||
traits.set_supports_brightness(true);
|
||||
|
||||
Reference in New Issue
Block a user