From 74d3275d2964b067adcc5e1adc23d018e34ec06c Mon Sep 17 00:00:00 2001 From: Guillermo Ruffino Date: Fri, 10 Apr 2020 00:07:34 -0300 Subject: [PATCH] add ac_dimmer (#536) * add ac_dimmer * whitespace --- components/output/ac_dimmer.rst | 81 +++++++++++++++++++ components/output/images/robotdyn_dimmer.jpg | Bin 0 -> 48549 bytes images/ac_dimmer.svg | 1 + index.rst | 1 + 4 files changed, 83 insertions(+) create mode 100644 components/output/ac_dimmer.rst create mode 100644 components/output/images/robotdyn_dimmer.jpg create mode 100644 images/ac_dimmer.svg diff --git a/components/output/ac_dimmer.rst b/components/output/ac_dimmer.rst new file mode 100644 index 000000000..623357f33 --- /dev/null +++ b/components/output/ac_dimmer.rst @@ -0,0 +1,81 @@ +AC Dimmer Component +=================== + +.. seo:: + :description: Instructions for setting up AC Dimmer integration in ESPHome. + :image: ac_dimmer.svg + +.. warning:: + + This component has not been fully tested yet, if you are testing this component + please share your experience with the dimmer hardware and light model and + configuration here https://github.com/esphome/feature-requests/issues/278 + + Thanks! + +The ``ac_dimmer`` component allows you to connect a dimmable light or other load +which supports phase control dimming to your ESPHome project. + +There are several already made boards which are compatible with this integration, +for example the `RobotDyn dimmer +`__. + +.. figure:: images/robotdyn_dimmer.jpg + :align: center + :width: 50.0% + + RobotDyn Module. Image by `RobotDyn`_ + +.. _RobotDyn: https://robotdyn.com/ac-light-dimmer-module-1-channel-3-3v-5v-logic-ac-50-60hz-220v-110v.html + +.. code-block:: yaml + + # Example configuration entry + output: + - platform: ac_dimmer + id: dimmer1 + gate_pin: D7 + zero_cross_pin: + number: D6 + mode: INPUT + inverted: yes + + light: + - platform: monochromatic + output: dimmer1 + name: Dimmerized Light + +Configuration variables: +------------------------ + +- **gate_pin** (**Required**, :ref:`config-pin`): The pin used to control the Triac or + Mosfet. +- **zero_cross_pin** (**Required**, :ref:`config-pin`): The pin used to sense the AC + Zero cross event, you can have several dimmers controlled with the same zero cross + detector, in such case duplicate the ``zero_cross_pin`` config on each output. +- **method** (*Optional*): Set the method for dimming, can be: + + - ``leading pulse`` (default): a short pulse to trigger a triac. + - ``leading``: gate pin driven high until the zero cross is detected + - ``trailing``: gate pin driven high from zero cross until dim period, this method + is suitable for mosfet dimmers only. + +- **init_with_half_cycle** (*Optional*, boolean): Will send the first full half AC cycle + Try to use this for dimmable LED lights, it might help turning on at low brightness + levels. On Halogen lamps it might show at initial flicker. Defaults to ``False``. +- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. +- All other options from :ref:`Output `. + +Dimming lights with phase control can be tricky, the minimum level your light turns on +might be different from other lights, also the perceived light level might not correlate +to the percentage output set to the light, to try to minimize these behaviors you can +tweak the values ``min_power`` from this output component and also ``gamma_correct`` from +the monochromatic light. + +See Also +-------- + +- :doc:`/components/output/index` +- :doc:`/components/light/monochromatic` +- :apiref:`ac_dimmer/ac_dimmer.h` +- :ghedit:`Edit` diff --git a/components/output/images/robotdyn_dimmer.jpg b/components/output/images/robotdyn_dimmer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8173202d0f288c99ece31574421763a5fe5b59dc GIT binary patch literal 48549 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 \ No newline at end of file diff --git a/index.rst b/index.rst index 5802d2714..c442b32f2 100644 --- a/index.rst +++ b/index.rst @@ -200,6 +200,7 @@ Output Components Slow PWM, components/output/slow_pwm, pwm.png GPIO Output, components/output/gpio, pin.svg ESP32 LEDC, components/output/ledc, pwm.png + AC Dimmer, components/output/ac_dimmer, ac_dimmer.svg PCA9685, components/output/pca9685, pca9685.jpg TLC59208F, components/output/tlc59208f, tlc59208f.jpg MY9231/MY9291, components/output/my9231, my9231.svg