diff --git a/appdaemon/adapi.py b/appdaemon/adapi.py index 2c8e05743..3715cf594 100644 --- a/appdaemon/adapi.py +++ b/appdaemon/adapi.py @@ -1845,7 +1845,20 @@ def register_service(self, service: str, cb: Callable, namespace: str | None = N self.logger.debug("register_service: %s, %s", service, kwargs) namespace = namespace or self.namespace - self.AD.services.register_service(namespace, *service.split("/"), cb, __async="auto", name=self.name, **kwargs) + try: + domain, service = service.split("/", 2) + except ValueError as e: + raise ade.DomainNotSpecified(namespace, service) from e + else: + self.AD.services.register_service( + namespace, + domain=domain, + service=service, + callback=cb, + __async="auto", + name=self.name, + **kwargs + ) # fmt: skip def deregister_service(self, service: str, namespace: str | None = None) -> bool: """Deregister a service that had been previously registered. diff --git a/appdaemon/exceptions.py b/appdaemon/exceptions.py index b546dae93..ca4dbb812 100644 --- a/appdaemon/exceptions.py +++ b/appdaemon/exceptions.py @@ -227,6 +227,14 @@ def __str__(self): f"Services that exist in {self.domain}: {', '.join(self.domain_services)}" ) +@dataclass +class DomainNotSpecified(AppDaemonException): + namespace: str + service: str + + def __str__(self): + return f"domain not specified for service '{self.service}'" + @dataclass class AppCallbackFail(AppDaemonException):