diff --git a/homeassistant/components/mikrotik/const.py b/homeassistant/components/mikrotik/const.py
index 911d348365e0c061943c35eb7a48e16a01201bbc..4354b9b06bda551ecde5dff77852192bea3d8797 100644
--- a/homeassistant/components/mikrotik/const.py
+++ b/homeassistant/components/mikrotik/const.py
@@ -24,8 +24,11 @@ ARP: Final = "arp"
 CAPSMAN: Final = "capsman"
 DHCP: Final = "dhcp"
 WIRELESS: Final = "wireless"
+WIFIWAVE2: Final = "wifiwave2"
 IS_WIRELESS: Final = "is_wireless"
 IS_CAPSMAN: Final = "is_capsman"
+IS_WIFIWAVE2: Final = "is_wifiwave2"
+
 
 MIKROTIK_SERVICES: Final = {
     ARP: "/ip/arp/getall",
@@ -34,8 +37,10 @@ MIKROTIK_SERVICES: Final = {
     IDENTITY: "/system/identity/getall",
     INFO: "/system/routerboard/getall",
     WIRELESS: "/interface/wireless/registration-table/getall",
+    WIFIWAVE2: "/interface/wifiwave2/registration-table/print",
     IS_WIRELESS: "/interface/wireless/print",
     IS_CAPSMAN: "/caps-man/interface/print",
+    IS_WIFIWAVE2: "/interface/wifiwave2/print",
 }
 
 
diff --git a/homeassistant/components/mikrotik/hub.py b/homeassistant/components/mikrotik/hub.py
index 26a589486206e64fb798901d6f2a915cea7a0da1..9e0a610c7701b6739a9074ec2c344ab1d0bc47b4 100644
--- a/homeassistant/components/mikrotik/hub.py
+++ b/homeassistant/components/mikrotik/hub.py
@@ -31,9 +31,11 @@ from .const import (
     IDENTITY,
     INFO,
     IS_CAPSMAN,
+    IS_WIFIWAVE2,
     IS_WIRELESS,
     MIKROTIK_SERVICES,
     NAME,
+    WIFIWAVE2,
     WIRELESS,
 )
 from .device import Device
@@ -57,6 +59,7 @@ class MikrotikData:
         self.devices: dict[str, Device] = {}
         self.support_capsman: bool = False
         self.support_wireless: bool = False
+        self.support_wifiwave2: bool = False
         self.hostname: str = ""
         self.model: str = ""
         self.firmware: str = ""
@@ -97,6 +100,7 @@ class MikrotikData:
         self.serial_number = self.get_info(ATTR_SERIAL_NUMBER)
         self.support_capsman = bool(self.command(MIKROTIK_SERVICES[IS_CAPSMAN]))
         self.support_wireless = bool(self.command(MIKROTIK_SERVICES[IS_WIRELESS]))
+        self.support_wifiwave2 = bool(self.command(MIKROTIK_SERVICES[IS_WIFIWAVE2]))
 
     def get_list_from_interface(self, interface: str) -> dict[str, dict[str, Any]]:
         """Get devices from interface."""
@@ -121,6 +125,9 @@ class MikrotikData:
             elif self.support_wireless:
                 _LOGGER.debug("Hub supports wireless Interface")
                 device_list = wireless_devices = self.get_list_from_interface(WIRELESS)
+            elif self.support_wifiwave2:
+                _LOGGER.debug("Hub supports wifiwave2 Interface")
+                device_list = wireless_devices = self.get_list_from_interface(WIFIWAVE2)
 
             if not device_list or self.force_dhcp:
                 device_list = self.all_devices
diff --git a/tests/components/mikrotik/__init__.py b/tests/components/mikrotik/__init__.py
index b7f79f8ea51184ac00698007b27229536f426062..158f86fe452d8e5146836f85da11d34da2680769 100644
--- a/tests/components/mikrotik/__init__.py
+++ b/tests/components/mikrotik/__init__.py
@@ -62,6 +62,14 @@ DEVICE_3_DHCP_NUMERIC_NAME = {
     "host-name": 123,
     "comment": "Mobile",
 }
+DEVICE_4_DHCP = {
+    ".id": "*F7",
+    "address": "0.0.0.4",
+    "mac-address": "00:00:00:00:00:04",
+    "active-address": "0.0.0.4",
+    "host-name": "Device_4",
+    "comment": "Wifiwave2 device",
+}
 DEVICE_1_WIRELESS = {
     ".id": "*264",
     "interface": "wlan1",
@@ -109,9 +117,27 @@ DEVICE_3_WIRELESS = {
     "mac-address": "00:00:00:00:00:03",
     "last-ip": "0.0.0.3",
 }
+
+DEVICE_4_WIFIWAVE2 = {
+    ".id": "*F7",
+    "interface": "wifi1",
+    "ssid": "test-ssid",
+    "mac-address": "00:00:00:00:00:04",
+    "uptime": "2d15h28m27s",
+    "signal": -47,
+    "tx-rate": 54000000,
+    "rx-rate": 54000000,
+    "packets": "17748,18516",
+    "bytes": "1851474,2037295",
+    "tx-bits-per-second": 0,
+    "rx-bits-per-second": 0,
+    "authorized": True,
+}
+
 DHCP_DATA = [DEVICE_1_DHCP, DEVICE_2_DHCP]
 
 WIRELESS_DATA = [DEVICE_1_WIRELESS]
+WIFIWAVE2_DATA = [DEVICE_4_WIFIWAVE2]
 
 ARP_DATA = [
     {
@@ -144,16 +170,22 @@ ARP_DATA = [
 async def setup_mikrotik_entry(hass: HomeAssistant, **kwargs: Any) -> None:
     """Set up Mikrotik integration successfully."""
     support_wireless: bool = kwargs.get("support_wireless", True)
+    support_wifiwave2: bool = kwargs.get("support_wifiwave2", False)
     dhcp_data: list[dict[str, Any]] = kwargs.get("dhcp_data", DHCP_DATA)
     wireless_data: list[dict[str, Any]] = kwargs.get("wireless_data", WIRELESS_DATA)
+    wifiwave2_data: list[dict[str, Any]] = kwargs.get("wifiwave2_data", WIFIWAVE2_DATA)
 
     def mock_command(self, cmd: str, params: dict[str, Any] | None = None) -> Any:
         if cmd == mikrotik.const.MIKROTIK_SERVICES[mikrotik.const.IS_WIRELESS]:
             return support_wireless
+        if cmd == mikrotik.const.MIKROTIK_SERVICES[mikrotik.const.IS_WIFIWAVE2]:
+            return support_wifiwave2
         if cmd == mikrotik.const.MIKROTIK_SERVICES[mikrotik.const.DHCP]:
             return dhcp_data
         if cmd == mikrotik.const.MIKROTIK_SERVICES[mikrotik.const.WIRELESS]:
             return wireless_data
+        if cmd == mikrotik.const.MIKROTIK_SERVICES[mikrotik.const.WIFIWAVE2]:
+            return wifiwave2_data
         if cmd == mikrotik.const.MIKROTIK_SERVICES[mikrotik.const.ARP]:
             return ARP_DATA
         return {}
diff --git a/tests/components/mikrotik/test_device_tracker.py b/tests/components/mikrotik/test_device_tracker.py
index bd921320d7915c8b36062145b4cad16b9f89605f..323c958eb22d9673a70c5e086a3175213fb678ca 100644
--- a/tests/components/mikrotik/test_device_tracker.py
+++ b/tests/components/mikrotik/test_device_tracker.py
@@ -18,6 +18,8 @@ from . import (
     DEVICE_2_WIRELESS,
     DEVICE_3_DHCP_NUMERIC_NAME,
     DEVICE_3_WIRELESS,
+    DEVICE_4_DHCP,
+    DEVICE_4_WIFIWAVE2,
     DHCP_DATA,
     MOCK_DATA,
     MOCK_OPTIONS,
@@ -39,6 +41,7 @@ def mock_device_registry_devices(hass: HomeAssistant) -> None:
             "00:00:00:00:00:01",
             "00:00:00:00:00:02",
             "00:00:00:00:00:03",
+            "00:00:00:00:00:04",
         )
     ):
         dev_reg.async_get_or_create(
@@ -184,6 +187,26 @@ async def test_device_trackers_numerical_name(
     assert device_3.attributes["host_name"] == "123"
 
 
+async def test_hub_wifiwave2(hass: HomeAssistant, mock_device_registry_devices) -> None:
+    """Test device_trackers created when hub supports wifiwave2."""
+
+    await setup_mikrotik_entry(
+        hass,
+        dhcp_data=[DEVICE_4_DHCP],
+        wifiwave2_data=[DEVICE_4_WIFIWAVE2],
+        support_wireless=False,
+        support_wifiwave2=True,
+    )
+
+    device_4 = hass.states.get("device_tracker.device_4")
+    assert device_4
+    assert device_4.state == "home"
+    assert device_4.attributes["friendly_name"] == "Device_4"
+    assert device_4.attributes["ip"] == "0.0.0.4"
+    assert device_4.attributes["mac"] == "00:00:00:00:00:04"
+    assert device_4.attributes["host_name"] == "Device_4"
+
+
 async def test_restoring_devices(hass: HomeAssistant) -> None:
     """Test restoring existing device_tracker entities if not detected on startup."""
     config_entry = MockConfigEntry(