From ea4b8111e684f9389a500099afaef674e2944d39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=2E=20=C3=81rkosi=20R=C3=B3bert?= Date: Fri, 18 Nov 2022 10:48:40 +0100 Subject: [PATCH] Update lcd_menu.rst --- components/display_menu/lcd_menu.rst | 37 +++++++++++++++------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/components/display_menu/lcd_menu.rst b/components/display_menu/lcd_menu.rst index 8ba5ef553..c254331e7 100644 --- a/components/display_menu/lcd_menu.rst +++ b/components/display_menu/lcd_menu.rst @@ -1,3 +1,5 @@ +.. _lcd_menu: + LCD Menu ======== @@ -6,14 +8,13 @@ LCD Menu :image: lcd_menu.png The component provides an infrastructure for setting up a hierarchical menu -on the character based LCD displays. - +on character based LCD displays. This offers the user an interactive method to display +labels, control entities like ``switch``, ``select``, ``number`` available locally on the +ESPHome node, without the requirement of a network connection. .. figure:: images/lcd_menu.png :align: center - :width: 50.0% - -.. _lcd_menu: + :width: 60.0% Overview -------- @@ -23,10 +24,10 @@ a hierarchical menu primarily intended to be controlled either by a rotary encod with a button or a five-button joystick controller. The component needs to be connected to an instance of a character based LCD display, which -at the moment are :ref:`lcd-pcf8574` or a :ref:`lcd-gpio`. For the best results the GPIO -connection is recommended; the I²C one running at the speed according to the datasheet -(usually ``100`` kHz) or even ESPHome default (``50`` kHz) will create perceptible delays especially -when changing a numeric value using the rotary encoder. Most ``PCF8574`` adapters used with +like :ref:`lcd-pcf8574` or :ref:`lcd-gpio`. For the best results the GPIO connection is +recommended; the I²C one running at the speed according to the datasheet (usually ``100`` +kHz) or even ESPHome default (``50`` kHz) will create perceptible delays especially when +changing a numeric value using the rotary encoder. Most ``PCF8574`` adapters used with these displays will happily run at ``200`` or even ``400`` kHz though so if you are comfortable accepting risks from running your hardware out of spec, you might want to try that in your :ref:`i2c` configuration. @@ -41,7 +42,7 @@ in your :ref:`i2c` configuration. ... user_characters: - position: 0 - data: # back arrow + data: # mark_back symbol - 0b00100 - 0b01000 - 0b11110 @@ -68,22 +69,24 @@ in your :ref:`i2c` configuration. items: ... - # Encoder to provide navigation + # Rotary encoder to provide navigation sensor: - platform: rotary_encoder ... + filters: + debounce: 30ms on_anticlockwise: - display_menu.up: on_clockwise: - display_menu.down: - # A de-bounced GPIO is used to 'click' + # A debounced GPIO push button is used to 'click' binary_sensor: - platform: gpio ... filters: - - delayed_on: 10ms - - delayed_off: 10ms + - delayed_on: 30ms + - delayed_off: 30ms on_press: - display_menu.enter: @@ -95,11 +98,11 @@ Configuration variables: Code of the character used to mark menu items going back one level, a selected one, the editing mode and item leading to a submenu. Defaults to ``0x5e`` (``^``), ``0x3e`` (``>``), ``0x2a`` (``*``) and ``0x7e`` (a right arrow). As the character set lacks a good looking - up arrow, using a user defined character is advisable (use ``8`` to reference one at - position ``0`` to avoid problems with zeros in a string). + back arrow, using a user defined character is advisable for ``mark_back`` (use ``8`` to + reference one at position ``0`` to avoid problems with zeros in a string). The rest of the configuration is described in the :ref:`Display Menu ` component. -The menu inherits the dimensions of the connected LCD display and uses the whole area. +The menu inherits the dimensions of the connected LCD display and uses the entire area. See Also --------