mirror of
https://github.com/tomaae/homeassistant-mikrotik_router.git
synced 2025-06-28 19:50:06 +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-network": {},
|
||||||
"dhcp": {},
|
"dhcp": {},
|
||||||
"capsman_hosts": {},
|
"capsman_hosts": {},
|
||||||
|
"wireless": {},
|
||||||
"wireless_hosts": {},
|
"wireless_hosts": {},
|
||||||
"host": {},
|
"host": {},
|
||||||
"host_hass": {},
|
"host_hass": {},
|
||||||
|
@ -632,6 +633,9 @@ class MikrotikControllerData:
|
||||||
if self.api.connected() and self.support_capsman:
|
if self.api.connected() and self.support_capsman:
|
||||||
await self.hass.async_add_executor_job(self.get_capsman_hosts)
|
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:
|
if self.api.connected() and self.support_wireless:
|
||||||
await self.hass.async_add_executor_job(self.get_wireless_hosts)
|
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
|
# get_wireless_hosts
|
||||||
# ---------------------------
|
# ---------------------------
|
||||||
|
|
|
@ -12,6 +12,7 @@ from .switch_types import (
|
||||||
SENSOR_SERVICES,
|
SENSOR_SERVICES,
|
||||||
DEVICE_ATTRIBUTES_IFACE_ETHER,
|
DEVICE_ATTRIBUTES_IFACE_ETHER,
|
||||||
DEVICE_ATTRIBUTES_IFACE_SFP,
|
DEVICE_ATTRIBUTES_IFACE_SFP,
|
||||||
|
DEVICE_ATTRIBUTES_IFACE_WIRELESS,
|
||||||
)
|
)
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
@ -114,6 +115,11 @@ class MikrotikPortSwitch(MikrotikSwitch):
|
||||||
if variable in self._data:
|
if variable in self._data:
|
||||||
attributes[format_attribute(variable)] = self._data[variable]
|
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
|
return attributes
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|
|
@ -56,6 +56,29 @@ DEVICE_ATTRIBUTES_IFACE_SFP = [
|
||||||
"eeprom-checksum",
|
"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 = [
|
DEVICE_ATTRIBUTES_NAT = [
|
||||||
"protocol",
|
"protocol",
|
||||||
"dst-port",
|
"dst-port",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue