From 81ee1ea5d873b5cd7357585321ff4e8efdcf5125 Mon Sep 17 00:00:00 2001 From: Andreas Wansner Date: Wed, 23 Apr 2025 02:47:51 +0700 Subject: [PATCH] Merge branch adding Ubiquiti U7 Pro XG and XGS APs (#3030) * Add Ubiquiti U7 Pro XG and U7 Pro XGS device types - Added U7 Pro XG device type (Wi-Fi 7, 10GbE) with image - Added U7 Pro XGS device type (Wi-Fi 7, 10GbE, spectral scanning) with image - Created YAML files for device type definitions * Reduced comments section, fixed weight of U7 Pro XG * Crop images --------- Co-authored-by: Harry --- device-types/Ubiquiti/U7-Pro-XG.yaml | 52 ++++++++++++++++++ device-types/Ubiquiti/U7-Pro-XGS.yaml | 52 ++++++++++++++++++ .../Ubiquiti/ubiquiti-u7-pro-xg.front.png | Bin 0 -> 1218617 bytes .../Ubiquiti/ubiquiti-u7-pro-xg.rear.png | Bin 0 -> 889731 bytes .../Ubiquiti/ubiquiti-u7-pro-xgs.front.png | Bin 0 -> 1199211 bytes .../Ubiquiti/ubiquiti-u7-pro-xgs.rear.png | Bin 0 -> 878360 bytes 6 files changed, 104 insertions(+) create mode 100644 device-types/Ubiquiti/U7-Pro-XG.yaml create mode 100644 device-types/Ubiquiti/U7-Pro-XGS.yaml create mode 100755 elevation-images/Ubiquiti/ubiquiti-u7-pro-xg.front.png create mode 100755 elevation-images/Ubiquiti/ubiquiti-u7-pro-xg.rear.png create mode 100755 elevation-images/Ubiquiti/ubiquiti-u7-pro-xgs.front.png create mode 100755 elevation-images/Ubiquiti/ubiquiti-u7-pro-xgs.rear.png diff --git a/device-types/Ubiquiti/U7-Pro-XG.yaml b/device-types/Ubiquiti/U7-Pro-XG.yaml new file mode 100644 index 000000000..6901dbbef --- /dev/null +++ b/device-types/Ubiquiti/U7-Pro-XG.yaml @@ -0,0 +1,52 @@ +--- +manufacturer: Ubiquiti +model: U7 Pro XG +part_number: U7-Pro-XG +slug: ubiquiti-u7-pro-xg +u_height: 0 +is_full_depth: false +airflow: passive +weight: 750 +weight_unit: g +interfaces: + - name: Port 1 + type: 10gbase-t + poe_mode: pd + poe_type: type2-ieee802.3at + mgmt_only: false + - name: WLAN 0 + type: ieee802.11n + label: 2.4 GHz + description: | + Max Data Rate: 688 Mbps (BW40), MIMO: 2x2 (DL/UL MU-MIMO), Max TX Power: 23 dBm, Antenna Gain: 4 dBi + - name: WLAN 1 + type: ieee802.11ac + label: 5 GHz + description: | + Max Data Rate: 4.3 Gbps (BW240), MIMO: 2x2 (DL/UL MU-MIMO), Max TX Power: 26 dBm, Antenna Gain: 5 dBi + - name: WLAN 2 + type: ieee802.11ax + label: 6 GHz (WiFi 6E) + description: | + Max Data Rate: 5.8 Gbps (BW320), MIMO: 2x2 (DL/UL MU-MIMO), Max TX Power: 24 dBm, Antenna Gain: 6 dBi + - name: WLAN 3 + type: ieee802.11be + label: 5 GHz (WiFi 7) + description: | + Max Data Rate: 4.3 Gbps (BW240), MIMO: 2x2 (DL/UL MU-MIMO), Max TX Power: 26 dBm, Antenna Gain: 5 dBi + - name: WLAN 4 + type: ieee802.11be + label: 6 GHz (WiFi 7) + description: | + Max Data Rate: 5.8 Gbps (BW320), MIMO: 2x2 (DL/UL MU-MIMO), Max TX Power: 24 dBm, Antenna Gain: 6 dBi +front_image: true +rear_image: true +comments: | + [U7 Pro XG](https://techspecs.ui.com/unifi/wifi/u7-pro-xg) + + Ceiling-mounted 6-stream WiFi 7 AP with 10/5/2.5/1 GbE support. + + Dimensions: diameter 206 x 32.5 mm (diameter 8.1 x 1.3") + Max. Power Consumption: 22W + Weight: 750 g (1.7 lb) + Certifications: CE, FCC, IC diff --git a/device-types/Ubiquiti/U7-Pro-XGS.yaml b/device-types/Ubiquiti/U7-Pro-XGS.yaml new file mode 100644 index 000000000..6f29bfed7 --- /dev/null +++ b/device-types/Ubiquiti/U7-Pro-XGS.yaml @@ -0,0 +1,52 @@ +--- +manufacturer: Ubiquiti +model: U7 Pro XGS +part_number: U7-Pro-XGS +slug: ubiquiti-u7-pro-xgs +u_height: 0 +is_full_depth: false +airflow: passive +weight: 800 +weight_unit: g +interfaces: + - name: Port 1 + type: 10gbase-t + poe_mode: pd + poe_type: type3-ieee802.3bt + mgmt_only: false + - name: WLAN 0 + type: ieee802.11n + label: 2.4 GHz + description: | + Max Data Rate: 688 Mbps (BW40), MIMO: 2x2 (DL/UL MU-MIMO), Max TX Power: 23 dBm, Antenna Gain: 4 dBi + - name: WLAN 1 + type: ieee802.11ac + label: 5 GHz + description: | + Max Data Rate: 8.6 Gbps (BW240), MIMO: 4x4 (DL/UL MU-MIMO), Max TX Power: 29 dBm, Antenna Gain: 6 dBi + - name: WLAN 2 + type: ieee802.11ax + label: 6 GHz (WiFi 6E) + description: | + Max Data Rate: 5.8 Gbps (BW320), MIMO: 2x2 (DL/UL MU-MIMO), Max TX Power: 24 dBm, Antenna Gain: 6 dBi + - name: WLAN 3 + type: ieee802.11be + label: 5 GHz (WiFi 7) + description: | + Max Data Rate: 8.6 Gbps (BW240), MIMO: 4x4 (DL/UL MU-MIMO), Max TX Power: 29 dBm, Antenna Gain: 6 dBi + - name: WLAN 4 + type: ieee802.11be + label: 6 GHz (WiFi 7) + description: | + Max Data Rate: 5.8 Gbps (BW320), MIMO: 2x2 (DL/UL MU-MIMO), Max TX Power: 24 dBm, Antenna Gain: 6 dBi +front_image: true +rear_image: true +comments: | + [U7 Pro XGS](https://techspecs.ui.com/unifi/wifi/u7-pro-xgs) + + Ceiling-mounted 8-stream WiFi 7 AP with dedicated spectral scanning radio and 10/5/2.5/1 GbE support. + + Dimensions: diameter 215 x 32.5 mm (diameter 8.5 x 1.3") + Max. Power Consumption: 29W + Weight: 800 g (1.8 lb) + Certifications: CE, FCC, IC diff --git a/elevation-images/Ubiquiti/ubiquiti-u7-pro-xg.front.png b/elevation-images/Ubiquiti/ubiquiti-u7-pro-xg.front.png new file mode 100755 index 0000000000000000000000000000000000000000..577ee89503598ae27839f1e714b46c46222f11f1 GIT binary patch literal 1218617 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 z