# Ubiquiti Enterprise Campus Switch 24-Port PoE
# Converted from the punchdown catalog on 2026-11-10. Source of the data: netbox. Image link found by web research on 2026-11-11.
network: 1
imports:
  - ../../defaults/types.network.yaml
models:
  ubiquiti/ecs-24-poe:
    name: Enterprise Campus Switch 24-Port PoE
    vendor: Ubiquiti
    role: switch
    aliases: [ ECS-24-PoE ]
    mount: 19in
    size: { units: 1 }
    weight: 9.46
    ports:
      2.5g-port-1..8: { type: 2.5gbase-t, poe: bt, x-poe-type: type4-ieee802.3bt, native: "2.5G Port {n}" }
      10g-port-9..24: { type: 10gbase-t, poe: bt, x-poe-type: type4-ieee802.3bt, native: "10G Port {n}" }
      sfp28-port-25..26: { type: 25gbase-x-sfp28, native: "SFP28 Port {n}" }
      psu1..2: { type: iec-60320-c14, role: power, side: rear, native: "PSU {n}" }
    x-airflow: front-to-rear
    x-full-depth: true
    x-module-bays: 6
    faces:
      front:
        background: "#c8c8c8"
        padding: { x: 3, y: 2 }
        layout:
          column:
            gap: 0.8
            align: start
            items:
              # Five long slots, each measured from the photo.
              - row:
                  gap: 0
                  items:
                    - { cutout-horizontal-slots: { width: 74.4, height: 4.0, margin: { left: 33.4 }, mask: { pattern: { length: 74.4, thickness: 1.8, columns: 1, margin: 0 } } } }
                    - { cutout-horizontal-slots: { width: 74.3, height: 4.0, margin: { left: 2.6 }, mask: { pattern: { length: 74.3, thickness: 1.8, columns: 1, margin: 0 } } } }
                    - { cutout-horizontal-slots: { width: 74.2, height: 4.0, margin: { left: 2.7 }, mask: { pattern: { length: 74.2, thickness: 1.8, columns: 1, margin: 0 } } } }
                    - { cutout-horizontal-slots: { width: 74.3, height: 4.0, margin: { left: 2.7 }, mask: { pattern: { length: 74.3, thickness: 1.8, columns: 1, margin: 0 } } } }
                    - { cutout-horizontal-slots: { width: 74.2, height: 4.0, margin: { left: 2.7 }, mask: { pattern: { length: 74.2, thickness: 1.8, columns: 1, margin: 0 } } } }
              - row:
                  gap: 0
                  width: 434
                  items:
                    - screen: { id: touchscreen, width: 23, height: 24, margin: { left: 2.2, right: 8.7 }, caption: { text: "Enterprise ⚡", gap: 2.28, text-style: { size: 2.6, weight: bold } } }
                    # One row of 24 in three blocks; the latch notch is at the top, so the jacks are turned over.
                    - row: { background: "#8a8a8a", gap: 0.2, items: [ { 2.5g-port-1..8: { rotation: 180, lights: link-activity } } ] }
                    - row: { background: "#8a8a8a", gap: 0, margin: { left: 4.4 }, items: [ { 10g-port-9..16: { rotation: 180, lights: link-activity } } ] }
                    - row: { background: "#8a8a8a", gap: 0, margin: { left: 4.3, right: 4.7 }, items: [ { 10g-port-17..24: { rotation: 180, lights: link-activity } } ] }
                    # Each cage's light sits above its left edge.
                    - row:
                        gap: 2
                        margin: { top: 3.8 }
                        items:
                          - sfp28-port-25: { lights: [{ id: link, position: top-left, placement: outside, width: 2.2, height: 1.8, offset: { x: 0, y: -2 } }] }
                          - sfp28-port-26: { lights: [{ id: link, position: top-left, placement: outside, width: 2.2, height: 1.8, offset: { x: 0, y: -2 } }] }
                    - button: { id: reset, width: 1.8, height: 1.8, margin: { left: 6.4 }, caption: { text: RESET, side: right, gap: 0.4, text-style: { size: 2.17 } } }
      rear:
        background: "#a9a9a9"
        padding: { x: 3, y: 2 }
        layout:
          row:
            gap: 0
            items:
              - label: { text: FAN 1/2/3/4, width: 10, height: 6, margin: { right: 5.5 } }
              # Four hot-swap fan modules: a fan behind a square grid cut in each module.
              - row:
                  repeat: 4
                  gap: 0.9
                  items:
                    - row:
                        background: "#9b9b9b"
                        width: 47
                        height: 40
                        justify: center
                        gap: 1.5
                        items:
                          - column: { height: 37.2, justify: space-between, items: [ screw, { indicator: { width: 1.6, height: 1.6, color: "#52d62a" } } ] }
                          - fan: { width: 35.6, height: 37, grille: { mask: { pattern: { preset: square-grid, size: 4, gap-x: 1, gap-y: 0.6, margin: 0.3 } } } }
              - grow
              - label: { text: PSU 1, width: 8, height: 3, margin: { right: 1 } }
              - row: { background: "#7d7d7d", width: 74.8, height: 40, gap: 3, margin: { right: 0.9 }, items: [ { fan-rings: { width: 42, height: 30 } }, { column: { gap: 2, items: [ { psu1: { label-position: none } }, { leds: [psu1-ac, psu1-dc] } ] } } ] }
              - row: { background: "#7d7d7d", width: 77.5, height: 40, gap: 3, margin: { right: 1 }, items: [ { fan-rings: { width: 42, height: 30 } }, { column: { gap: 2, items: [ { psu2: { label-position: none } }, { leds: [psu2-ac, psu2-dc] } ] } } ] }
              - label: { text: PSU 2, width: 7, height: 3 }
    source:
      url: https://store.ui.com/products/ecs-24-poe
      checked: 2026-11-11
      x-from: netbox
      x-faces: measured by hand from the NetBox photos on 2026-11-11 (docs/face-examples.md)
      x-netbox: ubiquiti-enterprise-campus-switch-24-port-poe
      x-netbox-elevation: [ front, rear ]
      x-reference-image: https://cdn.ecomm.ui.com/products/f83443e3-38b7-415b-85cd-e3da1d0c044c/6cae8c8d-f8ab-4207-b0f9-111898f30f66.png
      x-researched: 2026-11-11
