mirror of
https://github.com/tomaae/homeassistant-mikrotik_router.git
synced 2025-06-29 20:14:30 +02:00
added wifi information to interfaces
This commit is contained in:
parent
5520b25c0f
commit
c5570b6d5e
3 changed files with 83 additions and 0 deletions
|
@ -130,6 +130,7 @@ class MikrotikControllerData:
|
|||
"dhcp-network": {},
|
||||
"dhcp": {},
|
||||
"capsman_hosts": {},
|
||||
"wireless": {},
|
||||
"wireless_hosts": {},
|
||||
"host": {},
|
||||
"host_hass": {},
|
||||
|
@ -632,6 +633,9 @@ class MikrotikControllerData:
|
|||
if self.api.connected() and self.support_capsman:
|
||||
await self.hass.async_add_executor_job(self.get_capsman_hosts)
|
||||
|
||||
if self.api.connected() and self.support_wireless:
|
||||
await self.hass.async_add_executor_job(self.get_wireless)
|
||||
|
||||
if self.api.connected() and self.support_wireless:
|
||||
await self.hass.async_add_executor_job(self.get_wireless_hosts)
|
||||
|
||||
|
@ -1979,6 +1983,56 @@ class MikrotikControllerData:
|
|||
],
|
||||
)
|
||||
|
||||
# ---------------------------
|
||||
# get_wireless
|
||||
# ---------------------------
|
||||
def get_wireless(self):
|
||||
"""Get wireless data from Mikrotik"""
|
||||
wifimodule = "wifiwave2" if self.support_wifiwave2 else "wireless"
|
||||
self.data["wireless"] = parse_api(
|
||||
data=self.data["wireless"],
|
||||
source=self.api.query(f"/interface/{wifimodule}"),
|
||||
key="name",
|
||||
vals=[
|
||||
{"name": "master-interface", "default": ""},
|
||||
{"name": "mac-address", "default": "unknown"},
|
||||
{"name": "ssid", "default": "unknown"},
|
||||
{"name": "mode", "default": "unknown"},
|
||||
{"name": "radio-name", "default": "unknown"},
|
||||
{"name": "interface-type", "default": "unknown"},
|
||||
{"name": "country", "default": "unknown"},
|
||||
{"name": "installation", "default": "unknown"},
|
||||
{"name": "antenna-gain", "default": "unknown"},
|
||||
{"name": "frequency", "default": "unknown"},
|
||||
{"name": "band", "default": "unknown"},
|
||||
{"name": "channel-width", "default": "unknown"},
|
||||
{"name": "secondary-frequency", "default": "unknown"},
|
||||
{"name": "wireless-protocol", "default": "unknown"},
|
||||
{"name": "rate-set", "default": "unknown"},
|
||||
{"name": "distance", "default": "unknown"},
|
||||
{"name": "tx-power-mode", "default": "unknown"},
|
||||
{"name": "vlan-id", "default": "unknown"},
|
||||
{"name": "wds-mode", "default": "unknown"},
|
||||
{"name": "wds-default-bridge", "default": "unknown"},
|
||||
{"name": "bridge-mode", "default": "unknown"},
|
||||
{"name": "hide-ssid", "type": "bool"},
|
||||
{"name": "running", "type": "bool"},
|
||||
{"name": "disabled", "type": "bool"},
|
||||
],
|
||||
)
|
||||
|
||||
for uid in self.data["wireless"]:
|
||||
if self.data["wireless"][uid]["master-interface"]:
|
||||
for tmp in self.data["wireless"][uid]:
|
||||
if self.data["wireless"][uid][tmp] == "unknown":
|
||||
self.data["wireless"][uid][tmp] = self.data["wireless"][
|
||||
self.data["wireless"][uid]["master-interface"]
|
||||
][tmp]
|
||||
|
||||
if uid in self.data["interface"]:
|
||||
for tmp in self.data["wireless"][uid]:
|
||||
self.data["interface"][uid][tmp] = self.data["wireless"][uid][tmp]
|
||||
|
||||
# ---------------------------
|
||||
# get_wireless_hosts
|
||||
# ---------------------------
|
||||
|
|
|
@ -12,6 +12,7 @@ from .switch_types import (
|
|||
SENSOR_SERVICES,
|
||||
DEVICE_ATTRIBUTES_IFACE_ETHER,
|
||||
DEVICE_ATTRIBUTES_IFACE_SFP,
|
||||
DEVICE_ATTRIBUTES_IFACE_WIRELESS,
|
||||
)
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
@ -114,6 +115,11 @@ class MikrotikPortSwitch(MikrotikSwitch):
|
|||
if variable in self._data:
|
||||
attributes[format_attribute(variable)] = self._data[variable]
|
||||
|
||||
elif self._data["type"] == "wlan":
|
||||
for variable in DEVICE_ATTRIBUTES_IFACE_WIRELESS:
|
||||
if variable in self._data:
|
||||
attributes[format_attribute(variable)] = self._data[variable]
|
||||
|
||||
return attributes
|
||||
|
||||
@property
|
||||
|
|
|
@ -56,6 +56,29 @@ DEVICE_ATTRIBUTES_IFACE_SFP = [
|
|||
"eeprom-checksum",
|
||||
]
|
||||
|
||||
DEVICE_ATTRIBUTES_IFACE_WIRELESS = [
|
||||
"ssid",
|
||||
"mode",
|
||||
"radio-name",
|
||||
"interface-type",
|
||||
"country",
|
||||
"installation",
|
||||
"antenna-gain",
|
||||
"frequency",
|
||||
"band",
|
||||
"channel-width",
|
||||
"secondary-frequency",
|
||||
"wireless-protocol",
|
||||
"rate-set",
|
||||
"distance",
|
||||
"tx-power-mode",
|
||||
"vlan-id",
|
||||
"wds-mode",
|
||||
"wds-default-bridge",
|
||||
"bridge-mode",
|
||||
"hide-ssid",
|
||||
]
|
||||
|
||||
DEVICE_ATTRIBUTES_NAT = [
|
||||
"protocol",
|
||||
"dst-port",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue