esphome / issues

Issue Tracker for ESPHome
https://esphome.io/
285 stars 34 forks source link

Release 2024.4.1 doesn't allow to share control lines on multiple Displays TM1637 #5749

Closed Eng65745 closed 2 weeks ago

Eng65745 commented 2 weeks ago

The problem

I have a simple setup with a ESP-32 controlling two displays TM1637, to display values from two HA sensors.

As shown in https://esphome.io/components/display/tm1637, "Connect multiple displays", control-lines for clk and dio can be shared between displays.

It has been working for some months, and still is, but after updating to ESPHome 2024.4.1 the yaml doesn't compile anymore: it shows remarks that "Pin xx is used in multiple places".

Which version of ESPHome has the issue?

2024.4.1 (maybe older ones too, I upgraded from 2023.11.6)

What type of installation are you using?

Home Assistant Add-on

Which version of Home Assistant has the issue?

2024.4.4

What platform are you using?

ESP32

Board

esp32dev

Component causing the issue

TM1637

Example YAML snippet

# Same pins 13 and 14 used for both displays, just exchanged

display:
  - platform: tm1637
    id: display_1
    clk_pin: 13
    dio_pin: 14
    intensity: 4
    lambda: |-
      if (id(pzempower).state > 0 ) {
         it.printf(1, "%3.2f", id(pzempower).state/1000);
      } else {
         it.printf(0, "%s", "----");
      }

  - platform: tm1637
    id: display_2
    clk_pin: 14   
    dio_pin: 13
    intensity: 4
    lambda: |-
      if (id(status).state == "Online") {
         it.printf(1, "%3.2f", id(modbus_generation).state/1000);
      } else {         
         it.printf(0, "%s", "----");
      }

Anything in the logs that might be useful for us?

When trying to update (new compilation):

display.tm1637: [source /config/esphome/power-monitor-v2.yaml:56]

  Pin 13 is used in multiple places.     <---------------------------------------
  platform: tm1637
  id: display_2
  clk_pin: 
    number: 14
    mode: 
      output: True
      input: False
      open_drain: False
      pullup: False
      pulldown: False
    inverted: False
    ignore_strapping_warning: False
    drive_strength: 20.0
  dio_pin: 
    number: 13
    mode: 
      output: True
      input: False
      open_drain: False
      pullup: False
      pulldown: False
    inverted: False
    ignore_strapping_warning: False
    drive_strength: 20.0
  intensity: 4
  lambda: !lambda |-
    if (id(status).state == "Online") {
       it.printf(1, "%3.2f", id(modbus_generation).state/1000);
    } else {         
       it.printf(0, "%s", "----");
    }
  inverted: False
  length: 6
  update_interval: 1s
Pin 14 is used in multiple places   <-----------------------------------------------

Pin 14 is used in multiple places

Additional information

No response

ssieb commented 2 weeks ago

You need to read the changelogs. See the pin schema for how to resolve this.