diff --git a/app.py b/app.py index 4cb76c2..0def56f 100644 --- a/app.py +++ b/app.py @@ -52,33 +52,31 @@ class UnifiAPI: self.session.verify = False self.headers = { 'X-API-KEY': config['unifi']['api_key'], - 'Accept': 'application/json' + 'Accept': 'application/json', + 'Content-Type': 'application/json' } def get_all_devices(self): - url = f"{self.base_url}/proxy/network/api/s/{self.site_id}/stat/device" + url = f"{self.base_url}/integration/v1/sites/{self.site_id}/devices" response = self.session.get(url, headers=self.headers) response.raise_for_status() - logger.debug(f"Raw device list response: {response.text}") return response.json()['data'] def get_device_details(self, device_id): - url = f"{self.base_url}/proxy/network/api/s/{self.site_id}/stat/device/{device_id}" + url = f"{self.base_url}/integration/v1/sites/{self.site_id}/devices/{device_id}" response = self.session.get(url, headers=self.headers) response.raise_for_status() - logger.debug(f"Raw device details response: {response.text}") - data = response.json()['data'][0] + data = response.json() return { 'state': data['state'], 'firmware': { - 'version': data['version'], - 'updatable': data.get('upgradable', False) + 'version': data['firmwareVersion'], + 'updatable': data.get('firmwareUpdatable', False) }, 'network': { - 'ip': data['ip'], - 'mac': data['mac'] - }, - 'interfaces': self._parse_interfaces(data.get('port_table', {})) + 'ip': data['ipAddress'], + 'mac': data['macAddress'] + } } def get_device_diagnostics(self, device): @@ -122,7 +120,7 @@ class UnifiAPI: 'width': f"{radio['channelWidthMHz']}MHz" } - return result# Monitoring functions + return result def run_diagnostics(device): try: config = load_config()