Expose all services/discovery with possible add-ons (#1772)

This commit is contained in:
Pascal Vizeli 2020-06-02 15:17:24 +02:00 committed by GitHub
parent af412c3105
commit 9c902c5c69
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 2 deletions

5
API.md
View File

@ -672,7 +672,10 @@ Need ingress session as cookie.
"uuid": "uuid", "uuid": "uuid",
"config": {} "config": {}
} }
] ],
"services": {
"ozw": ["core_zwave"]
}
} }
``` ```

View File

@ -5,6 +5,7 @@ from ..const import (
ATTR_ADDON, ATTR_ADDON,
ATTR_CONFIG, ATTR_CONFIG,
ATTR_DISCOVERY, ATTR_DISCOVERY,
ATTR_SERVICES,
ATTR_SERVICE, ATTR_SERVICE,
ATTR_UUID, ATTR_UUID,
REQUEST_FROM, REQUEST_FROM,
@ -42,6 +43,7 @@ class APIDiscovery(CoreSysAttributes):
"""Show register services.""" """Show register services."""
self._check_permission_ha(request) self._check_permission_ha(request)
# Get available discovery
discovery = [] discovery = []
for message in self.sys_discovery.list_messages: for message in self.sys_discovery.list_messages:
discovery.append( discovery.append(
@ -53,7 +55,13 @@ class APIDiscovery(CoreSysAttributes):
} }
) )
return {ATTR_DISCOVERY: discovery} # Get available services/add-ons
services = {}
for addon in self.sys_addons.all:
for name in addon.discovery:
services.setdefault(name, []).append(addon.slug)
return {ATTR_DISCOVERY: discovery, ATTR_SERVICES: services}
@api_process @api_process
async def set_discovery(self, request): async def set_discovery(self, request):