mirror of
https://github.com/tomaae/homeassistant-mikrotik_router.git
synced 2025-08-19 00:39:40 +02:00
added firmware update binary sensor
This commit is contained in:
parent
ecee4043e3
commit
fe74959b7e
3 changed files with 183 additions and 0 deletions
|
@ -36,6 +36,7 @@ class MikrotikControllerData():
|
|||
self.data['interface'] = {}
|
||||
self.data['arp'] = {}
|
||||
self.data['nat'] = {}
|
||||
self.data['fw-update'] = {}
|
||||
|
||||
self.listeners = []
|
||||
|
||||
|
@ -44,6 +45,7 @@ class MikrotikControllerData():
|
|||
self.api = None
|
||||
|
||||
async_track_time_interval(self.hass, self.force_update, self.option_scan_interval)
|
||||
async_track_time_interval(self.hass, self.async_fwupdate_check, timedelta(hours=1))
|
||||
|
||||
return
|
||||
|
||||
|
@ -96,6 +98,17 @@ class MikrotikControllerData():
|
|||
self.get_system_resource()
|
||||
return
|
||||
|
||||
# ---------------------------
|
||||
# async_fwupdate_check
|
||||
# ---------------------------
|
||||
async def async_fwupdate_check(self):
|
||||
"""Update Mikrotik Controller data."""
|
||||
|
||||
self.get_firmare_update()
|
||||
|
||||
async_dispatcher_send(self.hass, self.signal_update)
|
||||
return
|
||||
|
||||
# ---------------------------
|
||||
# async_update
|
||||
# ---------------------------
|
||||
|
@ -103,6 +116,9 @@ class MikrotikControllerData():
|
|||
async def async_update(self):
|
||||
"""Update Mikrotik Controller data."""
|
||||
|
||||
if 'available' not in self.data['fw-update']:
|
||||
await self.async_fwupdate_check()
|
||||
|
||||
self.get_interfaces()
|
||||
self.get_arp()
|
||||
self.get_nat()
|
||||
|
@ -322,3 +338,16 @@ class MikrotikControllerData():
|
|||
self.data['resource']['hdd-usage'] = "unknown"
|
||||
|
||||
return
|
||||
|
||||
# ---------------------------
|
||||
# get_system_routerboard
|
||||
# ---------------------------
|
||||
def get_firmare_update(self):
|
||||
data = self.api.path("/system/package/update")
|
||||
for entry in data:
|
||||
self.data['fw-update']['available'] = True if entry['status'] == "New version is available" else False
|
||||
self.data['fw-update']['channel'] = entry['channel'] if 'channel' in entry else "unknown"
|
||||
self.data['fw-update']['installed-version'] = entry['installed-version'] if 'installed-version' in entry else "unknown"
|
||||
self.data['fw-update']['latest-version'] = entry['latest-version'] if 'latest-version' in entry else "unknown"
|
||||
|
||||
return
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue