Skip to content

Commit 95874a3

Browse files
authored
0.25.0b0 (#725)
* Add force clients update (#718) * Bump asusrouter to `1.2.0` * Bump version to `0.25.0b0`
1 parent 96c2772 commit 95874a3

File tree

16 files changed

+717
-632
lines changed

16 files changed

+717
-632
lines changed

custom_components/asusrouter/config_flow.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
CONF_DEFAULT_CACHE_TIME,
3737
CONF_DEFAULT_CONSIDER_HOME,
3838
CONF_DEFAULT_EVENT,
39+
CONF_DEFAULT_FORCE_CLIENTS,
40+
CONF_DEFAULT_FORCE_CLIENTS_WAITTIME,
3941
CONF_DEFAULT_HIDE_PASSWORDS,
4042
CONF_DEFAULT_INTERFACES,
4143
CONF_DEFAULT_INTERVALS,
@@ -47,6 +49,8 @@
4749
CONF_DEFAULT_SSL,
4850
CONF_DEFAULT_TRACK_DEVICES,
4951
CONF_DEFAULT_USERNAME,
52+
CONF_FORCE_CLIENTS,
53+
CONF_FORCE_CLIENTS_WAITTIME,
5054
CONF_HIDE_PASSWORDS,
5155
CONF_INTERFACES,
5256
CONF_INTERVAL,
@@ -368,6 +372,16 @@ def _create_form_connected_devices(
368372
CONF_TRACK_DEVICES,
369373
default=user_input.get(CONF_TRACK_DEVICES, CONF_DEFAULT_TRACK_DEVICES),
370374
): cv.boolean,
375+
vol.Required(
376+
CONF_FORCE_CLIENTS,
377+
default=user_input.get(CONF_FORCE_CLIENTS, CONF_DEFAULT_FORCE_CLIENTS),
378+
): cv.boolean,
379+
vol.Required(
380+
CONF_FORCE_CLIENTS_WAITTIME,
381+
default=user_input.get(
382+
CONF_FORCE_CLIENTS_WAITTIME, CONF_DEFAULT_FORCE_CLIENTS_WAITTIME
383+
),
384+
): cv.positive_float,
371385
vol.Required(
372386
CONF_LATEST_CONNECTED,
373387
default=user_input.get(

custom_components/asusrouter/const.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,8 @@
441441
CONF_EVENT_NODE_CONNECTED = "node_connected"
442442
CONF_EVENT_NODE_DISCONNECTED = "node_disconnected"
443443
CONF_EVENT_NODE_RECONNECTED = "node_reconnected"
444+
CONF_FORCE_CLIENTS = "force_clients"
445+
CONF_FORCE_CLIENTS_WAITTIME = "force_clients_waittime"
444446
CONF_HIDE_PASSWORDS = "hide_passwords"
445447
CONF_INTERFACES = "interfaces"
446448
CONF_INTERVAL = "interval_"
@@ -481,6 +483,8 @@
481483
CONF_EVENT_NODE_DISCONNECTED: True,
482484
CONF_EVENT_NODE_RECONNECTED: True,
483485
}
486+
CONF_DEFAULT_FORCE_CLIENTS = True
487+
CONF_DEFAULT_FORCE_CLIENTS_WAITTIME = 5.0
484488
CONF_DEFAULT_HIDE_PASSWORDS = False
485489
CONF_DEFAULT_INTERFACES = [WAN.upper()]
486490
CONF_DEFAULT_INTERVALS = {CONF_INTERVAL + FIRMWARE: 21600}
@@ -523,6 +527,8 @@
523527
CONF_CONFIRM,
524528
CONF_CONSIDER_HOME,
525529
CONF_ENABLE_CONTROL,
530+
CONF_FORCE_CLIENTS,
531+
CONF_FORCE_CLIENTS_WAITTIME,
526532
CONF_HIDE_PASSWORDS,
527533
CONF_INTERFACES,
528534
CONF_INTERVAL_DEVICES,

custom_components/asusrouter/manifest.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
"iot_class": "local_polling",
99
"issue_tracker": "https://github.com/Vaskivskyi/ha-asusrouter/issues",
1010
"loggers": ["asusrouter"],
11-
"requirements": ["asusrouter==1.1.2"],
11+
"requirements": ["asusrouter==1.2.0"],
1212
"ssdp": [
1313
{
1414
"manufacturer": "ASUSTeK Computer Inc."
1515
}
1616
],
17-
"version": "0.24.2"
17+
"version": "0.25.0b0"
1818
}

custom_components/asusrouter/router.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
AIMESH,
3737
CONF_DEFAULT_CONSIDER_HOME,
3838
CONF_DEFAULT_EVENT,
39+
CONF_DEFAULT_FORCE_CLIENTS,
40+
CONF_DEFAULT_FORCE_CLIENTS_WAITTIME,
3941
CONF_DEFAULT_INTERVALS,
4042
CONF_DEFAULT_LATEST_CONNECTED,
4143
CONF_DEFAULT_MODE,
@@ -45,6 +47,8 @@
4547
CONF_DEFAULT_SPLIT_INTERVALS,
4648
CONF_DEFAULT_TRACK_DEVICES,
4749
CONF_EVENT_NODE_CONNECTED,
50+
CONF_FORCE_CLIENTS,
51+
CONF_FORCE_CLIENTS_WAITTIME,
4852
CONF_INTERVAL,
4953
CONF_INTERVAL_DEVICES,
5054
CONF_LATEST_CONNECTED,
@@ -343,6 +347,21 @@ async def setup(self) -> None:
343347

344348
# Update clients
345349
await self.update_clients()
350+
351+
# Force clients settings
352+
# This should be done after clients update so that first update is fast
353+
force_clients = self._options.get(
354+
CONF_FORCE_CLIENTS, CONF_DEFAULT_FORCE_CLIENTS
355+
)
356+
if force_clients is True:
357+
force_clients_waittime = self._options.get(
358+
CONF_FORCE_CLIENTS_WAITTIME, CONF_DEFAULT_FORCE_CLIENTS_WAITTIME
359+
)
360+
_LOGGER.debug(
361+
"Forcing clients updates with %s s wait time",
362+
force_clients_waittime,
363+
)
364+
self.bridge.api.set_force_clients(force_clients, force_clients_waittime)
346365
else:
347366
_LOGGER.debug(
348367
"Device is in AiMesh node mode. Device tracking and AiMesh monitoring is disabled"

0 commit comments

Comments
 (0)