Bump airOS to 0.2.6 improving device class matching more devices (#150134)

This commit is contained in:
Tom
2025-08-08 19:33:16 +02:00
committed by Franck Nijhof
parent 8edc5f0359
commit 6f4d405b26
6 changed files with 292 additions and 235 deletions

View File

@@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/airos",
"iot_class": "local_polling",
"quality_scale": "bronze",
"requirements": ["airos==0.2.4"]
"requirements": ["airos==0.2.6"]
}

2
requirements_all.txt generated
View File

@@ -453,7 +453,7 @@ airgradient==0.9.2
airly==1.1.0
# homeassistant.components.airos
airos==0.2.4
airos==0.2.6
# homeassistant.components.airthings_ble
airthings-ble==0.9.2

View File

@@ -435,7 +435,7 @@ airgradient==0.9.2
airly==1.1.0
# homeassistant.components.airos
airos==0.2.4
airos==0.2.6
# homeassistant.components.airthings_ble
airthings-ble==0.9.2

View File

@@ -15,7 +15,7 @@ from tests.common import MockConfigEntry, load_json_object_fixture
@pytest.fixture
def ap_fixture():
"""Load fixture data for AP mode."""
json_data = load_json_object_fixture("airos_ap-ptp.json", DOMAIN)
json_data = load_json_object_fixture("airos_loco5ac_ap-ptp.json", DOMAIN)
return AirOSData.from_dict(json_data)

View File

@@ -1,132 +1,194 @@
{
"chain_names": [
{ "number": 1, "name": "Chain 0" },
{ "number": 2, "name": "Chain 1" }
{
"name": "Chain 0",
"number": 1
},
{
"name": "Chain 1",
"number": 2
}
],
"host": {
"hostname": "NanoStation 5AC ap name",
"device_id": "03aa0d0b40fed0a47088293584ef5432",
"uptime": 264888,
"power_time": 268683,
"time": "2025-06-23 23:06:42",
"timestamp": 2668313184,
"fwversion": "v8.7.17",
"devmodel": "NanoStation 5AC loco",
"netrole": "bridge",
"loadavg": 0.412598,
"totalram": 63447040,
"freeram": 16564224,
"temperature": 0,
"cpuload": 10.10101,
"height": 3
},
"genuine": "/images/genuine.png",
"services": {
"dhcpc": false,
"dhcpd": false,
"dhcp6d_stateful": false,
"pppoe": false,
"airview": 2
"derived": {
"access_point": true,
"mac": "01:23:45:67:89:AB",
"mac_interface": "br0",
"ptmp": false,
"ptp": true,
"station": false
},
"firewall": {
"iptables": false,
"eb6tables": false,
"ebtables": false,
"ip6tables": false,
"eb6tables": false
"iptables": false
},
"genuine": "/images/genuine.png",
"gps": {
"fix": 0,
"lat": 52.379894,
"lon": 4.901608
},
"host": {
"cpuload": 10.10101,
"device_id": "03aa0d0b40fed0a47088293584ef5432",
"devmodel": "NanoStation 5AC loco",
"freeram": 16564224,
"fwversion": "v8.7.17",
"height": 3,
"hostname": "NanoStation 5AC ap name",
"loadavg": 0.412598,
"netrole": "bridge",
"power_time": 268683,
"temperature": 0,
"time": "2025-06-23 23:06:42",
"timestamp": 2668313184,
"totalram": 63447040,
"uptime": 264888
},
"interfaces": [
{
"enabled": true,
"hwaddr": "01:23:45:67:89:AB",
"ifname": "eth0",
"mtu": 1500,
"status": {
"cable_len": 18,
"duplex": true,
"ip6addr": null,
"ipaddr": "0.0.0.0",
"plugged": true,
"rx_bytes": 3984971949,
"rx_dropped": 0,
"rx_errors": 4,
"rx_packets": 73564835,
"snr": [30, 30, 30, 30],
"speed": 1000,
"tx_bytes": 209900085624,
"tx_dropped": 10,
"tx_errors": 0,
"tx_packets": 185866883
}
},
{
"enabled": true,
"hwaddr": "01:23:45:67:89:AB",
"ifname": "ath0",
"mtu": 1500,
"status": {
"cable_len": null,
"duplex": false,
"ip6addr": null,
"ipaddr": "0.0.0.0",
"plugged": false,
"rx_bytes": 206938324766,
"rx_dropped": 0,
"rx_errors": 0,
"rx_packets": 149767200,
"snr": null,
"speed": 0,
"tx_bytes": 5265602738,
"tx_dropped": 2005,
"tx_errors": 0,
"tx_packets": 52980390
}
},
{
"enabled": true,
"hwaddr": "01:23:45:67:89:AB",
"ifname": "br0",
"mtu": 1500,
"status": {
"cable_len": null,
"duplex": false,
"ip6addr": [
{
"addr": "fe80::eea:14ff:fea4:89cd",
"plen": 64
}
],
"ipaddr": "192.168.1.2",
"plugged": true,
"rx_bytes": 204802727,
"rx_dropped": 0,
"rx_errors": 0,
"rx_packets": 1791592,
"snr": null,
"speed": 0,
"tx_bytes": 236295176,
"tx_dropped": 0,
"tx_errors": 0,
"tx_packets": 298119
}
}
],
"ntpclient": {},
"portfw": false,
"provmode": {},
"services": {
"airview": 2,
"dhcp6d_stateful": false,
"dhcpc": false,
"dhcpd": false,
"pppoe": false
},
"unms": {
"status": 0,
"timestamp": null
},
"wireless": {
"essid": "DemoSSID",
"mode": "ap-ptp",
"ieeemode": "11ACVHT80",
"band": 2,
"compat_11n": 0,
"hide_essid": 0,
"apmac": "01:23:45:67:89:AB",
"antenna_gain": 13,
"frequency": 5500,
"center1_freq": 5530,
"dfs": 1,
"distance": 0,
"security": "WPA2",
"noisef": -89,
"txpower": -3,
"apmac": "01:23:45:67:89:AB",
"aprepeater": false,
"rstatus": 5,
"chanbw": 80,
"rx_chainmask": 3,
"tx_chainmask": 3,
"nol_state": 0,
"nol_timeout": 0,
"band": 2,
"cac_state": 0,
"cac_timeout": 0,
"rx_idx": 8,
"rx_nss": 2,
"tx_idx": 9,
"tx_nss": 2,
"throughput": { "tx": 222, "rx": 9907 },
"service": { "time": 267181, "link": 266003 },
"center1_freq": 5530,
"chanbw": 80,
"compat_11n": 0,
"count": 1,
"dfs": 1,
"distance": 0,
"essid": "DemoSSID",
"frequency": 5500,
"hide_essid": 0,
"ieeemode": "11ACVHT80",
"mode": "ap-ptp",
"noisef": -89,
"nol_state": 0,
"nol_timeout": 0,
"polling": {
"atpc_status": 2,
"cb_capacity": 593970,
"dl_capacity": 647400,
"ul_capacity": 540540,
"use": 48,
"tx_use": 6,
"rx_use": 42,
"atpc_status": 2,
"ff_cap_rep": false,
"fixed_frame": false,
"flex_mode": null,
"gps_sync": false,
"ff_cap_rep": false
"rx_use": 42,
"tx_use": 6,
"ul_capacity": 540540,
"use": 48
},
"rstatus": 5,
"rx_chainmask": 3,
"rx_idx": 8,
"rx_nss": 2,
"security": "WPA2",
"service": {
"link": 266003,
"time": 267181
},
"count": 1,
"sta": [
{
"mac": "01:23:45:67:89:AB",
"lastip": "192.168.1.2",
"signal": -59,
"rssi": 37,
"noisefloor": -89,
"chainrssi": [35, 32, 0],
"tx_idx": 9,
"rx_idx": 8,
"tx_nss": 2,
"rx_nss": 2,
"tx_latency": 0,
"distance": 1,
"tx_packets": 0,
"tx_lretries": 0,
"tx_sretries": 0,
"uptime": 170281,
"dl_signal_expect": -80,
"ul_signal_expect": -55,
"cb_capacity_expect": 416000,
"dl_capacity_expect": 208000,
"ul_capacity_expect": 624000,
"dl_rate_expect": 3,
"ul_rate_expect": 8,
"dl_linkscore": 100,
"ul_linkscore": 86,
"dl_avg_linkscore": 100,
"ul_avg_linkscore": 88,
"tx_ratedata": [175, 4, 47, 200, 673, 158, 163, 138, 68895, 19577430],
"stats": {
"rx_bytes": 206938324814,
"rx_packets": 149767200,
"rx_pps": 846,
"tx_bytes": 5265602739,
"tx_packets": 52980390,
"tx_pps": 0
},
"airmax": {
"actual_priority": 0,
"beam": 0,
"desired_priority": 0,
"cb_capacity": 593970,
"dl_capacity": 647400,
"ul_capacity": 540540,
"atpc_status": 2,
"beam": 0,
"cb_capacity": 593970,
"desired_priority": 0,
"dl_capacity": 647400,
"rx": {
"usage": 42,
"cinr": 31,
"evm": [
[
@@ -141,10 +203,10 @@
34, 33, 34, 34, 34, 34, 34, 35, 35, 35, 34, 35, 33, 34, 34, 34,
34, 35, 35, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35
]
]
],
"usage": 42
},
"tx": {
"usage": 6,
"cinr": 31,
"evm": [
[
@@ -159,142 +221,127 @@
38, 37, 37, 37, 38, 37, 38, 37, 37, 37, 37, 37, 36, 37, 37, 37,
37, 37, 37, 38, 37, 37, 38, 37, 36, 37, 37, 37, 37, 37, 37, 37
]
]
}
],
"usage": 6
},
"ul_capacity": 540540
},
"airos_connected": true,
"cb_capacity_expect": 416000,
"chainrssi": [35, 32, 0],
"distance": 1,
"dl_avg_linkscore": 100,
"dl_capacity_expect": 208000,
"dl_linkscore": 100,
"dl_rate_expect": 3,
"dl_signal_expect": -80,
"last_disc": 1,
"lastip": "192.168.1.2",
"mac": "01:23:45:67:89:AB",
"noisefloor": -89,
"remote": {
"age": 1,
"device_id": "d4f4cdf82961e619328a8f72f8d7653b",
"hostname": "NanoStation 5AC sta name",
"platform": "NanoStation 5AC loco",
"version": "WA.ar934x.v8.7.17.48152.250620.2132",
"time": "2025-06-23 23:13:54",
"cpuload": 43.564301,
"temperature": 0,
"totalram": 63447040,
"freeram": 14290944,
"netrole": "bridge",
"mode": "sta-ptp",
"sys_id": "0xe7fa",
"tx_throughput": 16023,
"rx_throughput": 251,
"uptime": 265320,
"power_time": 268512,
"compat_11n": 0,
"signal": -58,
"rssi": 38,
"noisefloor": -90,
"tx_power": -4,
"distance": 1,
"rx_chainmask": 3,
"airview": 2,
"antenna_gain": 13,
"cable_loss": 0,
"chainrssi": [33, 37, 0],
"compat_11n": 0,
"cpuload": 43.564301,
"device_id": "d4f4cdf82961e619328a8f72f8d7653b",
"distance": 1,
"ethlist": [
{
"cable_len": 14,
"duplex": true,
"enabled": true,
"ifname": "eth0",
"plugged": true,
"snr": [30, 30, 29, 30],
"speed": 1000
}
],
"freeram": 14290944,
"gps": {
"alt": null,
"dim": null,
"dop": null,
"fix": 0,
"lat": 52.379894,
"lon": 4.901608,
"sats": null,
"time_synced": null
},
"height": 2,
"hostname": "NanoStation 5AC sta name",
"ip6addr": ["fe80::eea:14ff:fea4:89ab"],
"ipaddr": ["192.168.1.2"],
"mode": "sta-ptp",
"netrole": "bridge",
"noisefloor": -90,
"oob": false,
"platform": "NanoStation 5AC loco",
"power_time": 268512,
"rssi": 38,
"rx_bytes": 3624206478,
"rx_chainmask": 3,
"rx_throughput": 251,
"service": {
"link": 265996,
"time": 267195
},
"signal": -58,
"sys_id": "0xe7fa",
"temperature": 0,
"time": "2025-06-23 23:13:54",
"totalram": 63447040,
"tx_bytes": 212308148210,
"tx_power": -4,
"tx_ratedata": [
14, 4, 372, 2223, 4708, 4037, 8142, 485763, 29420892, 24748154
],
"tx_bytes": 212308148210,
"rx_bytes": 3624206478,
"antenna_gain": 13,
"cable_loss": 0,
"height": 2,
"ethlist": [
{
"ifname": "eth0",
"enabled": true,
"plugged": true,
"duplex": true,
"speed": 1000,
"snr": [30, 30, 29, 30],
"cable_len": 14
}
],
"ipaddr": ["192.168.1.2"],
"ip6addr": ["fe80::eea:14ff:fea4:89ab"],
"gps": { "lat": "52.379894", "lon": "4.901608", "fix": 0 },
"oob": false,
"unms": { "status": 0, "timestamp": null },
"airview": 2,
"service": { "time": 267195, "link": 265996 }
"tx_throughput": 16023,
"unms": {
"status": 0,
"timestamp": null
},
"uptime": 265320,
"version": "WA.ar934x.v8.7.17.48152.250620.2132"
},
"airos_connected": true
"rssi": 37,
"rx_idx": 8,
"rx_nss": 2,
"signal": -59,
"stats": {
"rx_bytes": 206938324814,
"rx_packets": 149767200,
"rx_pps": 846,
"tx_bytes": 5265602739,
"tx_packets": 52980390,
"tx_pps": 0
},
"tx_idx": 9,
"tx_latency": 0,
"tx_lretries": 0,
"tx_nss": 2,
"tx_packets": 0,
"tx_ratedata": [175, 4, 47, 200, 673, 158, 163, 138, 68895, 19577430],
"tx_sretries": 0,
"ul_avg_linkscore": 88,
"ul_capacity_expect": 624000,
"ul_linkscore": 86,
"ul_rate_expect": 8,
"ul_signal_expect": -55,
"uptime": 170281
}
],
"sta_disconnected": []
},
"interfaces": [
{
"ifname": "eth0",
"hwaddr": "01:23:45:67:89:AB",
"enabled": true,
"mtu": 1500,
"status": {
"plugged": true,
"tx_bytes": 209900085624,
"rx_bytes": 3984971949,
"tx_packets": 185866883,
"rx_packets": 73564835,
"tx_errors": 0,
"rx_errors": 4,
"tx_dropped": 10,
"rx_dropped": 0,
"ipaddr": "0.0.0.0",
"speed": 1000,
"duplex": true,
"snr": [30, 30, 30, 30],
"cable_len": 18,
"ip6addr": null
}
"sta_disconnected": [],
"throughput": {
"rx": 9907,
"tx": 222
},
{
"ifname": "ath0",
"hwaddr": "01:23:45:67:89:AB",
"enabled": true,
"mtu": 1500,
"status": {
"plugged": false,
"tx_bytes": 5265602738,
"rx_bytes": 206938324766,
"tx_packets": 52980390,
"rx_packets": 149767200,
"tx_errors": 0,
"rx_errors": 0,
"tx_dropped": 2005,
"rx_dropped": 0,
"ipaddr": "0.0.0.0",
"speed": 0,
"duplex": false,
"snr": null,
"cable_len": null,
"ip6addr": null
}
},
{
"ifname": "br0",
"hwaddr": "01:23:45:67:89:AB",
"enabled": true,
"mtu": 1500,
"status": {
"plugged": true,
"tx_bytes": 236295176,
"rx_bytes": 204802727,
"tx_packets": 298119,
"rx_packets": 1791592,
"tx_errors": 0,
"rx_errors": 0,
"tx_dropped": 0,
"rx_dropped": 0,
"ipaddr": "192.168.1.2",
"speed": 0,
"duplex": false,
"snr": null,
"cable_len": null,
"ip6addr": [{ "addr": "fe80::eea:14ff:fea4:89cd", "plen": 64 }]
}
}
],
"provmode": {},
"ntpclient": {},
"unms": { "status": 0, "timestamp": null },
"gps": { "lat": 52.379894, "lon": 4.901608, "fix": 0 },
"derived": { "mac": "01:23:45:67:89:AB", "mac_interface": "br0" }
"tx_chainmask": 3,
"tx_idx": 9,
"tx_nss": 2,
"txpower": -3
}
}

View File

@@ -13,8 +13,12 @@
}),
]),
'derived': dict({
'access_point': True,
'mac': '**REDACTED**',
'mac_interface': 'br0',
'ptmp': False,
'ptp': True,
'station': False,
}),
'firewall': dict({
'eb6tables': False,
@@ -164,6 +168,7 @@
'dl_capacity': 647400,
'ff_cap_rep': False,
'fixed_frame': False,
'flex_mode': None,
'gps_sync': False,
'rx_use': 42,
'tx_use': 6,
@@ -515,9 +520,14 @@
]),
'freeram': 14290944,
'gps': dict({
'alt': None,
'dim': None,
'dop': None,
'fix': 0,
'lat': '**REDACTED**',
'lon': '**REDACTED**',
'sats': None,
'time_synced': None,
}),
'height': 2,
'hostname': '**REDACTED**',