Fix integrations.json creation, make iot_standards a list (#80945)

This commit is contained in:
Bram Kragten 2022-10-25 13:43:40 +02:00 committed by GitHub
parent 64eb316908
commit 36bb0bbc1a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 17 additions and 8 deletions

View file

@ -0,0 +1 @@
"""Virtual integration: Ultraloq."""

View file

@ -2,5 +2,5 @@
"domain": "ultraloq", "domain": "ultraloq",
"name": "Ultraloq", "name": "Ultraloq",
"integration_type": "virtual", "integration_type": "virtual",
"iot_standard": "zwave" "iot_standards": ["zwave"]
} }

View file

@ -2368,6 +2368,7 @@
"integrations": { "integrations": {
"symfonisk": { "symfonisk": {
"integration_type": "virtual", "integration_type": "virtual",
"supported_by": "sonos",
"name": "IKEA SYMFONISK" "name": "IKEA SYMFONISK"
}, },
"tradfri": { "tradfri": {
@ -5607,6 +5608,9 @@
"integrations": { "integrations": {
"ultraloq": { "ultraloq": {
"integration_type": "virtual", "integration_type": "virtual",
"iot_standards": [
"zwave"
],
"name": "Ultraloq" "name": "Ultraloq"
} }
} }

View file

@ -113,6 +113,10 @@ def _populate_brand_integrations(
metadata["config_flow"] = integration.config_flow metadata["config_flow"] = integration.config_flow
if integration.iot_class: if integration.iot_class:
metadata["iot_class"] = integration.iot_class metadata["iot_class"] = integration.iot_class
if integration.supported_by:
metadata["supported_by"] = integration.supported_by
if integration.iot_standards:
metadata["iot_standards"] = integration.iot_standards
if integration.translated_name: if integration.translated_name:
integration_data["translated_name"].add(domain) integration_data["translated_name"].add(domain)
else: else:
@ -185,8 +189,8 @@ def _generate_integrations(
if integration.integration_type == "virtual": if integration.integration_type == "virtual":
if integration.supported_by: if integration.supported_by:
metadata["supported_by"] = integration.supported_by metadata["supported_by"] = integration.supported_by
if integration.iot_standard: if integration.iot_standards:
metadata["iot_standard"] = integration.iot_standard metadata["iot_standards"] = integration.iot_standards
else: else:
metadata["config_flow"] = integration.config_flow metadata["config_flow"] = integration.config_flow
if integration.iot_class: if integration.iot_class:

View file

@ -263,9 +263,9 @@ VIRTUAL_INTEGRATION_MANIFEST_SCHEMA = vol.Schema(
vol.Required("domain"): str, vol.Required("domain"): str,
vol.Required("name"): str, vol.Required("name"): str,
vol.Required("integration_type"): "virtual", vol.Required("integration_type"): "virtual",
vol.Exclusive("iot_standard", "virtual_integration"): vol.Any( vol.Exclusive("iot_standards", "virtual_integration"): [
"homekit", "zigbee", "zwave" vol.Any("homekit", "zigbee", "zwave")
), ],
vol.Exclusive("supported_by", "virtual_integration"): str, vol.Exclusive("supported_by", "virtual_integration"): str,
} }
) )

View file

@ -186,9 +186,9 @@ class Integration:
return self.manifest.get("iot_class") return self.manifest.get("iot_class")
@property @property
def iot_standard(self) -> str: def iot_standards(self) -> list[str]:
"""Return the IoT standard supported by this virtual integration.""" """Return the IoT standard supported by this virtual integration."""
return self.manifest.get("iot_standard", {}) return self.manifest.get("iot_standards", [])
def add_error(self, *args: Any, **kwargs: Any) -> None: def add_error(self, *args: Any, **kwargs: Any) -> None:
"""Add an error.""" """Add an error."""