############################################
##                                        ##
##   filename: 2bar_1display.yaml         ##
##   description: Specific configuration  ##
##   for the 2 BAR's, 1 Display setup     ##
##                                        ##
############################################

packages: 
    base: !include base.yaml
    scripts: !include 1bar_1display_scripts.yaml

mcp23008:
  - id: 'base_J1'
    i2c_id: buttons
    address: 0x21
  - id: 'base_J2'
    i2c_id: buttons
    address: 0x22
  - id: 'base_J3'
    i2c_id: buttons
    address: 0x23

binary_sensor:
  ############################
  ### Buttons Main Display ###
  ############################
  - platform: gpio
    id: 'main_display_btn_left'
    name: "Main Display button Left"
    pin: 
      mcp23xxx: base_J1
      number: 6
      mode: INPUT_PULLUP
      inverted: true
  - platform: gpio
    id: 'main_display_btn_right'
    name: "Main Display button Right"
    pin: 
      mcp23xxx: base_J1
      number: 2
      mode: INPUT_PULLUP
      inverted: true
      
  ############################
  ### Buttons BAR module 1 ###
  ############################
  - platform: gpio
    id: 'bar1_btn_left'
    name: "BAR 1 button Left"
    pin: 
      mcp23xxx: base_J2
      number: 6
      mode: INPUT_PULLUP
      inverted: true
  - platform: gpio
    id: 'bar1_btn_right'
    name: "BAR 1 button Right"
    pin: 
      mcp23xxx: base_J2
      number: 2
      mode: INPUT_PULLUP
      inverted: true

  ############################
  ### Buttons BAR module 2 ###
  ############################
  - platform: gpio
    id: 'bar2_btn_left'
    name: "BAR 2 button Left"
    pin: 
      mcp23xxx: base_J3
      number: 6
      mode: INPUT_PULLUP
      inverted: true
  - platform: gpio
    id: 'bar2_btn_right'
    name: "BAR 2 button Right"
    pin: 
      mcp23xxx: base_J3
      number: 2
      mode: INPUT_PULLUP
      inverted: true

light:
  - id: !extend neopixels
    num_leds: 9
  ##############################
  ### RGB LED's BAR module 1 ###
  ##############################
  - platform: partition
    name: "BAR 1 Left RGB Front"
    id: bar1_left_rgb_front
    segments:
      - id: neopixels
        from: 0
        to: 0
  - platform: partition
    name: "BAR 1 Left RGB Back"
    id: bar1_left_rgb_back
    segments:
      - id: neopixels
        from: 1
        to: 1
  - platform: partition
    name: "BAR 1 Right RGB Front"
    id: bar1_right_rgb_front
    segments:
      - id: neopixels
        from: 2
        to: 2
  - platform: partition
    name: "BAR 1 Right RGB Back"
    id: bar1_right_rgb_back
    segments:
      - id: neopixels
        from: 3
        to: 3
  ##############################
  ### RGB LED's BAR module 2 ###
  ##############################
  - platform: partition
    name: "BAR 2 Left RGB Front"
    id: bar2_left_rgb_front
    segments:
      - id: neopixels
        from: 4
        to: 4
  - platform: partition
    name: "BAR 2 Left RGB Back"
    id: bar2_left_rgb_back
    segments:
      - id: neopixels
        from: 5
        to: 5
  - platform: partition
    name: "BAR 2 Right RGB Front"
    id: bar2_right_rgb_front
    segments:
      - id: neopixels
        from: 6
        to: 6
  - platform: partition
    name: "BAR 2 Right RGB Back"
    id: bar2_right_rgb_back
    segments:
      - id: neopixels
        from: 7
        to: 7

display:
  ####################
  ### Main Display ###
  ####################
  - id: main_display
    platform: ili9xxx
    model: ili9341
    color_order: rgb
    invert_colors: false
    update_interval: 30s
    dc_pin: 
      number: GPIO37
      allow_other_uses: true
    cs_pin: 
      mcp23xxx: base_J1
      number: 5
      mode:
        output: true
      inverted: false
    show_test_card: false
    dimensions: 
      height: 240
      width: 320
    rotation: 180
  ####################
  ### BAR module 1 ###
  ####################
  - id: bar1_display_left
    platform: ili9xxx
    model: ST7735
    color_order: bgr
    update_interval: never
    dc_pin: 
      number: GPIO37
      allow_other_uses: true
    cs_pin: 
      mcp23xxx: base_J2
      number: 5
      mode:
        output: true
      inverted: false
    invert_colors: false
    show_test_card: false
    dimensions: 
      height: 160
      width: 80
      offset_width: 24
    rotation: 270
  - id: bar1_display_right
    platform: ili9xxx
    model: ST7735
    color_order: bgr
    update_interval: never
    dc_pin:
      number: GPIO37
      allow_other_uses: true
    cs_pin: 
      mcp23xxx: base_J2
      number: 1
      mode:
        output: true
      inverted: false
    invert_colors: false
    show_test_card: false
    dimensions: 
      height: 160
      width: 80
      offset_width: 24
    rotation: 90
  ####################
  ### BAR module 2 ###
  ####################
  - id: bar2_display_left
    platform: ili9xxx
    model: ST7735
    color_order: bgr
    update_interval: never
    dc_pin: 
      number: GPIO37
      allow_other_uses: true
    cs_pin: 
      mcp23xxx: base_J3
      number: 5
      mode:
        output: true
      inverted: false
    invert_colors: false
    show_test_card: false
    dimensions: 
      height: 160
      width: 80
      offset_width: 24
    rotation: 270
  - id: bar2_display_right
    platform: ili9xxx
    model: ST7735
    color_order: bgr
    update_interval: never
    dc_pin:
      number: GPIO37
      allow_other_uses: true
    cs_pin: 
      mcp23xxx: base_J3
      number: 1
      mode:
        output: true
      inverted: false
    invert_colors: false
    show_test_card: false
    dimensions: 
      height: 160
      width: 80
      offset_width: 24
    rotation: 90
