From 1ebcb84da9fbd0cb9b0cbdb8884d445e2e1388f9 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Tue, 25 Aug 2026 16:31:03 +0200 Subject: [PATCH] Use async_get_device_and_config_entry service helper in octoprint (#180143) --- .../components/octoprint/services.py | 21 ++++--------------- .../components/octoprint/strings.json | 3 --- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/homeassistant/components/octoprint/services.py b/homeassistant/components/octoprint/services.py index 22f6cb0e71b0..2f9948f704b9 100644 --- a/homeassistant/components/octoprint/services.py +++ b/homeassistant/components/octoprint/services.py @@ -5,11 +5,9 @@ from typing import cast from pyoctoprintapi import OctoprintClient import voluptuous as vol -from homeassistant.config_entries import ConfigEntryState from homeassistant.const import CONF_DEVICE_ID, CONF_PORT, CONF_PROFILE_NAME from homeassistant.core import HomeAssistant, ServiceCall, callback -from homeassistant.exceptions import ServiceValidationError -from homeassistant.helpers import config_validation as cv, device_registry as dr +from homeassistant.helpers import config_validation as cv, service from .const import CONF_BAUDRATE, DOMAIN, SERVICE_CONNECT from .coordinator import OctoprintConfigEntry @@ -28,21 +26,10 @@ def async_get_client_for_service_call( hass: HomeAssistant, call: ServiceCall ) -> OctoprintClient: """Get the client related to a service call (by device ID).""" - device_id = call.data[CONF_DEVICE_ID] - - _, config_entry = dr.async_get_device_and_config_entry_for_domain( - hass, device_id, domain=DOMAIN - ) - if config_entry is not None and config_entry.state is ConfigEntryState.LOADED: - return cast(OctoprintConfigEntry, config_entry).runtime_data.octoprint - - raise ServiceValidationError( - translation_domain=DOMAIN, - translation_key="missing_client", - translation_placeholders={ - "device_id": device_id, - }, + _, config_entry = service.async_get_device_and_config_entry( + hass, DOMAIN, call.data[CONF_DEVICE_ID] ) + return cast(OctoprintConfigEntry, config_entry).runtime_data.octoprint @callback diff --git a/homeassistant/components/octoprint/strings.json b/homeassistant/components/octoprint/strings.json index 66cfe06148de..c39edd1d94f5 100644 --- a/homeassistant/components/octoprint/strings.json +++ b/homeassistant/components/octoprint/strings.json @@ -81,9 +81,6 @@ "exceptions": { "error_setting_temperature": { "message": "Error setting target {tool} temperature" - }, - "missing_client": { - "message": "No client for device ID: {device_id}" } }, "services": {