display:
  # 1.54 inch displays
  - platform: waveshare_epaper
    id: epd_1_54
    model: 1.54in
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    full_update_every: 30
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_1_54v2
    model: 1.54inv2
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    full_update_every: 30
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_1_54v2b
    model: 1.54inv2-b
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_1_54m09
    model: 1.54in-m5coreink-m09
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  # 2.13 inch displays
  - platform: waveshare_epaper
    id: epd_2_13
    model: 2.13in
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    full_update_every: 30
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_2_13v2
    model: 2.13inv2
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    full_update_every: 30
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_2_13ttgo
    model: 2.13in-ttgo
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    full_update_every: 30
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_2_13ttgo_b1
    model: 2.13in-ttgo-b1
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    full_update_every: 30
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_2_13ttgo_b73
    model: 2.13in-ttgo-b73
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    full_update_every: 30
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_2_13ttgo_b74
    model: 2.13in-ttgo-b74
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    full_update_every: 30
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_2_13dke
    model: 2.13in-ttgo-dke
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    full_update_every: 30
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_2_13v3
    model: 2.13inv3
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    full_update_every: 30
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  # 2.7 inch displays
  - platform: waveshare_epaper
    id: epd_2_70
    model: 2.70in
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_2_70b
    model: 2.70in-b
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_2_70bv2
    model: 2.70in-bv2
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_2_70v2
    model: 2.70inv2
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  # 2.9 inch displays
  - platform: waveshare_epaper
    id: epd_2_90
    model: 2.90in
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    full_update_every: 30
    reset_duration: 200ms
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_2_90v2
    model: 2.90inv2
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    full_update_every: 30
    reset_duration: 200ms
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_2_90b
    model: 2.90in-b
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_2_90bv3
    model: 2.90in-bv3
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_2_90v2r2
    model: 2.90inv2-r2
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    full_update_every: 30
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_2_90dke
    model: 2.90in-dke
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    full_update_every: 30
    reset_duration: 200ms
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_gdew029t5
    model: gdew029t5
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    full_update_every: 30
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_gdew042t81
    model: gdey042t81
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    full_update_every: 30
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  # 4.2 inch displays
  - platform: waveshare_epaper
    id: epd_4_20
    model: 4.20in
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_4_20bv2
    model: 4.20in-bv2
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_4_20in_bv2_bwr
    model: 4.20in-bv2-bwr
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  # 5.65 inch displays
  - platform: waveshare_epaper
    id: epd_5_65
    model: 5.65in-f
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  # 5.83 inch displays
  - platform: waveshare_epaper
    id: epd_5_83
    model: 5.83in
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_5_83v2
    model: 5.83inv2
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  # 7.5 inch displays
  - platform: waveshare_epaper
    id: epd_7_50
    model: 7.50in
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_7_50bv2
    model: 7.50in-bv2
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_7_50bv3
    model: 7.50in-bv3
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_7_50bv3_bwr
    model: 7.50in-bv3-bwr
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_7_50bc
    model: 7.50in-bc
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_7_50v2
    model: 7.50inv2
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_7_50v2alt
    model: 7.50inv2alt
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_7_50inv2p
    model: 7.50inv2p
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    full_update_every: 30
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    id: epd_7_50hdb
    model: 7.50in-hd-b
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  # 13.3 inch displays
  - platform: waveshare_epaper
    id: epd_13_3k
    model: 13.3in-k
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    model: 2.90in-d
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    reset_duration: 200ms
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    model: 2.90in
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    full_update_every: 30
    reset_duration: 200ms
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    model: 2.90inv2
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    full_update_every: 30
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    model: 2.70in-b
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());

  - platform: waveshare_epaper
    model: 2.70in-bv2
    cs_pin:
      allow_other_uses: true
      number: ${cs_pin}
    dc_pin:
      allow_other_uses: true
      number: ${dc_pin}
    busy_pin:
      allow_other_uses: true
      number: ${busy_pin}
    reset_pin:
      allow_other_uses: true
      number: ${reset_pin}
    lambda: |-
      it.rectangle(0, 0, it.get_width(), it.get_height());
