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",
"config": {}
}
]
],
"services": {
"ozw": ["core_zwave"]
}
}
```

View File

@ -5,6 +5,7 @@ from ..const import (
ATTR_ADDON,
ATTR_CONFIG,
ATTR_DISCOVERY,
ATTR_SERVICES,
ATTR_SERVICE,
ATTR_UUID,
REQUEST_FROM,
@ -42,6 +43,7 @@ class APIDiscovery(CoreSysAttributes):
"""Show register services."""
self._check_permission_ha(request)
# Get available discovery
discovery = []
for message in self.sys_discovery.list_messages:
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
async def set_discovery(self, request):