From bf72dbb22318e4b265a074e307c3d339972565b1 Mon Sep 17 00:00:00 2001 From: Pierre Gironde Date: Sun, 11 Oct 2026 11:28:20 +0200 Subject: [PATCH] SmartObject now create its linked entity with create_entity --- smartobject.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/smartobject.py b/smartobject.py index 8a60dab..0124c48 100644 --- a/smartobject.py +++ b/smartobject.py @@ -113,12 +113,11 @@ class SmartObject(hass.Hass,LoggerInterface): if device_class is not None: attributes['device_class'] = device_class if state_class is not None: attributes['state_class'] = state_class - if state is not None: - entity.set_state(state=state, attributes=attributes, check_existence=False) - else: - if not entity.exists(): - entity.set_state(state='unknown', check_existence=False) - entity.set_state(attributes=attributes) + if state is None: + state = entity.get_state() if entity.exists() else None + if state is None: + state = 'unknown' + entity.set_state(state=state, attributes=attributes, check_existence=False) return entity @@ -219,14 +218,16 @@ class SmartObject(hass.Hass,LoggerInterface): # entity: → link app to a HA entity if "entity" in self.args: self.entity_id = self.args["entity"] - self.entity = self.get_entity(self.entity_id) + self.entity = self.get_entity(self.entity_id, check_existence=False) + initial_state = None if self.entity.exists(): self.log_info(f"Linked to {self.entity_id}") elif 'default_entity_state' in self.args: - self.entity.set_state(state = self.args["default_entity_state"]) - self.log_info(f"Creating {self.entity_id}, default_state = {self.args['default_entity_state']}") + initial_state = self.args["default_entity_state"] + self.log_info(f"Creating {self.entity_id}, default_state = {initial_state}") else: - self.entity.set_state(state = self.get_default_entity_state()) + initial_state = self.get_default_entity_state() + self.entity = self.create_entity(self.entity_id, state=initial_state) self.constants['self'] = self.entity_id else: