Skip to content

Commit

Permalink
Add support signal strength select
Browse files Browse the repository at this point in the history
  • Loading branch information
Dmitry Mamontov committed Apr 8, 2022
1 parent 40204bc commit 1a94b61
Show file tree
Hide file tree
Showing 9 changed files with 184 additions and 53 deletions.
76 changes: 39 additions & 37 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,15 +104,17 @@ Many more Xiaomi and Redmi routers supported by MiWiFi (OpenWRT - Luci API)
- `xqnetwork/wan_info` - WAN port information.
- `misystem/led` - Interaction with LEDs.
- `xqnetwork/wifi_detail_all` - Getting information about WiFi adapters
- `xqnetwork/wifi_up` - Turning on
- `xqnetwork/wifi_down` - Turning off
- `xqnetwork/set_wifi` - Update WiFi settings. Causes the adapter to reboot.
- `xqnetwork/avaliable_channels` - Gets available channels for WiFi adapter
- `xqnetwork/wifi_connect_devices` - Get information about connected devices
- `misystem/devicelist` - More information about connected devices
- `xqsystem/reboot` - Reboot
- `misystem/newstatus` - Additional information about connected devices for force load mode

##### Action
- `xqsystem/reboot` - Reboot
- `xqnetwork/wifi_up` - Turning on
- `xqnetwork/wifi_down` - Turning off
- `xqnetwork/set_wifi` - Update WiFi settings. Causes the adapter to reboot.

❗ If your router is not listed or not tested, try adding an integration, it will check everything and give a link to create an issue. You just have to click `Submit new issue`

❗ If at the time of adding the integration only `Router {ip} not supported` message is displayed, please create an issue with the message that the router is not supported, indicating the model of the router.
Expand All @@ -123,36 +125,36 @@ Many more Xiaomi and Redmi routers supported by MiWiFi (OpenWRT - Luci API)
- 🔴 - Not supported
- ⚪ - Not tested

| Image | Router | Code | Required API | Additional API |
| ------------------------ | -------------------------------------- |:------:|:------------------:|:---------------------------:|
| ![](images/RA70.png) | **Xiaomi Router Xiaomi AX9000** | RA70 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🟢</sub> |
| ![](images/RA72.png) | **Xiaomi Router AX6000** | RA72 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🟢</sub> |
| ![](images/RA80.png) | **Xiaomi Mesh System AX3000** | RA82 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🟢</sub> |
| ![](images/RA80.png) | **Xiaomi Router AX3000** | RA80 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🟢</sub> |
| ![](images/RB03.png) | **Redmi Router AX6S** | RB03 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🟢</sub> |
| ![](images/RA81.png) | **Redmi Router AX3000** | RA81 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🟢</sub> |
| ![](images/RA71.png) | **Redmi Router AX1800** | RA71 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🟢</sub> |
| ![](images/RA69.png) | **Redmi Router AX6** | RA69 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🟢</sub> |
| ![](images/RA67.png) | **Redmi Router AX5** | RA67 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🟢</sub> |
| ![](images/AX1800.png) | **Mi Router AX1800** | RM1800 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🟢</sub> |
| ![](images/AX3600.png) | **Xiaomi AIoT Router AX3600** | R3600 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🟢</sub> |
| ![](images/RM2100.png) | **Redmi Router AC2100** | RM2100 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🟢</sub> |
| ![](images/R2100.png) | **Mi Router AC2100** | R2100 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🟢</sub> |
| ![](images/R1350.png) | **Mi Router 4 Pro** | R1350 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🟢</sub> |
| ![](images/R2350.png) | **Mi AIoT Router AC2350** | R2350 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🟢</sub> |
| ![](images/D01.png) | **Mi Router Mesh** | D01 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🔴</sub> |
| ![](images/R4AC.png) | **Mi Router 4A** | R4AC | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🔴</sub> |
| ![](images/R4A.png) | **Mi Router 4A Gigabit** | R4A | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🔴</sub> |
| ![](images/R4CM.png) | **Mi Router 4C** | R4CM | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🔴</sub> |
| ![](images/R4.png) | **Mi Router 4** | R4 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🔴</sub> |
| ![](images/R4C.png) | **Mi Router 4Q** | R4C | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🔴</sub> |
| ![](images/R3L.png) | **Mi Router 3A** | R3A | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🔴</sub> |
| ![](images/R3L.png) | **Mi Router 3C** | R3L | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🔴</sub> |
| ![](images/R3D.png) | **Mi Router HD** | R3D | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🔴</sub> |
| ![](images/r3p.png) | **Mi Router Pro** | R3P | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🔴</sub> |
| ![](images/R3.png) | **Mi Router 3** | R3 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🔴</sub> |
| ![](images/R3.png) | **Mi Router 3G** | R3G | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🔴</sub> |
| ![](images/R1CL.png) | **Mi Router Lite** | R1CL | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🔴</sub> |
| ![](images/R1C.png) | **Mi Router Mini** | R1CM | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🔴</sub> |
| ![](images/R2D.png) | **Mi Router R2D** | R2D | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🔴</sub> |
| ![](images/R1D.png) | **Mi Router R1D** | R1D | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢🔴</sub> |
| Image | Router | Code | Required API | Additional API | Action API |
| ------------------------ | -------------------------------------- |:------:|:------------------:|:-------------------------:|:------------------:|
| ![](images/RA70.png) | **Xiaomi Router Xiaomi AX9000** | RA70 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/RA72.png) | **Xiaomi Router AX6000** | RA72 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/RA80.png) | **Xiaomi Mesh System AX3000** | RA82 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/RA80.png) | **Xiaomi Router AX3000** | RA80 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/RB03.png) | **Redmi Router AX6S** | RB03 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/RA81.png) | **Redmi Router AX3000** | RA81 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/RA71.png) | **Redmi Router AX1800** | RA71 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/RA69.png) | **Redmi Router AX6** | RA69 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/RA67.png) | **Redmi Router AX5** | RA67 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/AX1800.png) | **Mi Router AX1800** | RM1800 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/AX3600.png) | **Xiaomi AIoT Router AX3600** | R3600 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/RM2100.png) | **Redmi Router AC2100** | RM2100 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/R2100.png) | **Mi Router AC2100** | R2100 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/R1350.png) | **Mi Router 4 Pro** | R1350 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/R2350.png) | **Mi AIoT Router AC2350** | R2350 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/D01.png) | **Mi Router Mesh** | D01 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🔴</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/R4AC.png) | **Mi Router 4A** | R4AC | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🔴</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/R4A.png) | **Mi Router 4A Gigabit** | R4A | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🔴</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/R4CM.png) | **Mi Router 4C** | R4CM | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🔴</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/R4.png) | **Mi Router 4** | R4 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🔴</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/R4C.png) | **Mi Router 4Q** | R4C | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🔴</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/R3L.png) | **Mi Router 3A** | R3A | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🔴</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/R3L.png) | **Mi Router 3C** | R3L | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🔴</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/R3D.png) | **Mi Router HD** | R3D | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🔴</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/r3p.png) | **Mi Router Pro** | R3P | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🔴</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/R3.png) | **Mi Router 3** | R3 | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🔴</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/R3.png) | **Mi Router 3G** | R3G | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🔴</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/R1CL.png) | **Mi Router Lite** | R1CL | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🔴</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/R1C.png) | **Mi Router Mini** | R1CM | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🔴</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/R2D.png) | **Mi Router R2D** | R2D | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🔴</sub> | <sub>🟢🟢🟢🟢</sub> |
| ![](images/R1D.png) | **Mi Router R1D** | R1D | <sub>🟢🟢🟢🟢</sub> | <sub>🟢🟢🟢🟢🟢🟢🟢🔴</sub> | <sub>🟢🟢🟢🟢</sub> |
6 changes: 5 additions & 1 deletion custom_components/miwifi/config_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,10 @@ async def async_step_discovery_confirm(
vol.Required(
CONF_SCAN_INTERVAL, default=DEFAULT_SCAN_INTERVAL
): vol.All(vol.Coerce(int), vol.Range(min=10)),
vol.Optional(
CONF_TIMEOUT,
default=DEFAULT_TIMEOUT,
): vol.All(vol.Coerce(int), vol.Range(min=10)),
}
),
errors=errors,
Expand Down Expand Up @@ -272,7 +276,7 @@ def _get_options_schema(self) -> vol.Schema:
default=get_config_value(
self._config_entry, CONF_TIMEOUT, DEFAULT_TIMEOUT
),
): vol.All(vol.Coerce(int), vol.Range(min=5)),
): vol.All(vol.Coerce(int), vol.Range(min=10)),
}

if (
Expand Down
13 changes: 13 additions & 0 deletions custom_components/miwifi/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

from homeassistant.const import Platform

# fmt: off
DOMAIN: Final = "miwifi"
ATTRIBUTION: Final = "Data provided by MiWifi"

Expand Down Expand Up @@ -160,6 +161,17 @@
ATTR_SELECT_WIFI_5_0_GAME_CHANNELS: Final = "wifi_5_0_game_channels"
ATTR_SELECT_WIFI_5_0_GAME_CHANNEL_NAME: Final = f"{ATTR_WIFI_NAME} 5G game channel"

ATTR_SELECT_SIGNAL_STRENGTH_OPTIONS: Final = ["min", "mid", "max"]

ATTR_SELECT_WIFI_2_4_SIGNAL_STRENGTH: Final = "wifi_2_4_signal_strength"
ATTR_SELECT_WIFI_2_4_SIGNAL_STRENGTH_NAME: Final = f"{ATTR_WIFI_NAME} 2.4G signal strength"

ATTR_SELECT_WIFI_5_0_SIGNAL_STRENGTH: Final = "wifi_5_0_signal_strength"
ATTR_SELECT_WIFI_5_0_SIGNAL_STRENGTH_NAME: Final = f"{ATTR_WIFI_NAME} 5G signal strength"

ATTR_SELECT_WIFI_5_0_GAME_SIGNAL_STRENGTH: Final = "wifi_5_0_game_signal_strength"
ATTR_SELECT_WIFI_5_0_GAME_SIGNAL_STRENGTH_NAME: Final = f"{ATTR_WIFI_NAME} 5G game signal strength"

"""Camera attributes"""
ATTR_CAMERA_IMAGE: Final = "image"
ATTR_CAMERA_IMAGE_NAME: Final = "Image"
Expand All @@ -178,3 +190,4 @@
ATTR_TRACKER_DOWN_SPEED: Final = "down_speed"
ATTR_TRACKER_UP_SPEED: Final = "up_speed"
ATTR_TRACKER_LAST_ACTIVITY: Final = "last_activity"
# fmt: on
Loading

0 comments on commit 1a94b61

Please sign in to comment.