smartshutter now correctly go through the logger interface

This commit is contained in:
Pierre committed 2026-11-13 13:09:17 +01:00
1 parent 5ef7b27448
commit 545ebf2bd8
1 file changed
+21 -21
+21 -21
View File
@@ -30,7 +30,7 @@ class SmartShutter(SmartObject):
except:
self.open_position_sensor = self.args["open_position"]
self.open_position = int(float(self.get_state(self.open_position_sensor)))
self.log(f"Registering sensor {self.open_position_sensor} for open position")
self.log_info(f"Registering sensor {self.open_position_sensor} for open position")
self.listen_state(self.on_open_position_change,self.open_position_sensor)
else:
self.open_position = 100
@@ -40,7 +40,7 @@ class SmartShutter(SmartObject):
except:
self.close_position_sensor = self.args["close_position"]
self.close_position = int(float(self.get_state(self.close_position_sensor)))
self.log(f"Registering sensor {self.close_position_sensor} for close position")
self.log_info(f"Registering sensor {self.close_position_sensor} for close position")
self.listen_state(self.on_close_position_change,self.close_position_sensor)
else:
self.close_position = 0
@@ -60,11 +60,11 @@ class SmartShutter(SmartObject):
if 'close_conditions' in self.args:
self.close_conditions = SmartCondition.Evaluator(self,self.args["close_conditions"], condition_name = "close_conditions", templates_library = self.templates_library,on_update_cb = self.on_update,extra_entities_to_listen = extra_entities_to_listen, log_callback_trigger_reason = False, constants = self.constants)
if 'open_conditions' in self.args:
self.log("Both a close_conditions and an open_conditions has been defined, please use only one",level = 'ERROR')
self.log_error("Both a close_conditions and an open_conditions has been defined, please use only one")
elif 'open_conditions' in self.args:
self.open_conditions = SmartCondition.Evaluator(self,self.args["open_conditions"], condition_name = "open_conditions", templates_library = self.templates_library,on_update_cb = self.on_update,extra_entities_to_listen = extra_entities_to_listen, log_callback_trigger_reason = False, constants = self.constants)
else:
self.log("No close_conditions nor open_conditions defined",level = 'ERROR')
self.log_error("No close_conditions nor open_conditions defined")
#for object that take a long time to change state, we need reevalute desired state once the state has changed
#in case the conditions change during the state change
@@ -96,7 +96,7 @@ class SmartShutter(SmartObject):
try:
current_position = float(current_position)
except (TypeError, ValueError):
self.log("Toggle ignored: current position is unavailable", level="WARNING")
self.log_warning("Toggle ignored: current position is unavailable")
return
# Reverse the requested movement when another press arrives in transit.
@@ -114,7 +114,7 @@ class SmartShutter(SmartObject):
if self.auto_switch:
self.set_state(self.auto_switch, state='off')
self.target_position = self.close_position if should_close else self.open_position
self.log(f"Toggle shutter to {self.target_position} (previous position was {current_position})")
self.log_info(f"Toggle shutter to {self.target_position} (previous position was {current_position})")
if self.target_position == 0:
self.call_service("cover/close_cover", entity_id=self.entity_id)
elif self.target_position == 100:
@@ -124,25 +124,25 @@ class SmartShutter(SmartObject):
def on_state_change(self, entity, attribute, old, new, kwargs):
if self.ready == False:
self.log(f"on_state_change called before the app is ready",level = "WARNING")
self.log_warning(f"on_state_change called before the app is ready")
return
#for object that take a long time to change state, we need reevalute desired state once the state has changed
#in case the conditions change during the state change
#in case of shutter we can probably improve that and cancel the state change has it is updating
if old != new and not self.slow_transition:
self.log("state changed from " + str(old) + " to " + str(new))
self.log_info("state changed from " + str(old) + " to " + str(new))
self.on_update()
def on_position_change(self, entity, attribute, old, new, kwargs):
if self.ready == False:
self.log(f"on_position_change called before the app is ready",level = "WARNING")
self.log_warning(f"on_position_change called before the app is ready")
return
if self.target_position == None:
if self.target_position_reach_time != None and time.time() - self.target_position_reach_time < 60:
self.log(f"A position changed ({old} -> {new}) occured {time.time() - self.target_position_reach_time}s after a requested position change has been complete. This won't be considered as a manual command")
self.log_info(f"A position changed ({old} -> {new}) occured {time.time() - self.target_position_reach_time}s after a requested position change has been complete. This won't be considered as a manual command")
else:
self.log(f"Manual command has been received {old} -> {new}")
self.log_info(f"Manual command has been received {old} -> {new}")
if self.close_conditions: smart_conditions = self.close_conditions
else: smart_conditions = self.open_conditions
@@ -150,13 +150,13 @@ class SmartShutter(SmartObject):
self.set_state(self.auto_switch,state = "off")
else:
if self.target_position == new:
self.log(f"Movement completed old: {old}, new: {new}, target_position: {self.target_position}, current_position: {self.get_state(self.entity_id,attribute = 'current_position')}")
self.log_info(f"Movement completed old: {old}, new: {new}, target_position: {self.target_position}, current_position: {self.get_state(self.entity_id,attribute = 'current_position')}")
self.target_position = None
self.target_position_reach_time = time.time()
def on_open_position_change(self, entity, attribute, old, new, kwargs):
if self.ready == False:
self.log(f"on_open_position_change called before the app is ready",level = "WARNING")
self.log_warning(f"on_open_position_change called before the app is ready")
return
if new != self.open_position:
@@ -167,7 +167,7 @@ class SmartShutter(SmartObject):
def on_close_position_change(self, entity, attribute, old, new, kwargs):
if self.ready == False:
self.log(f"on_close_position_change called before the app is ready",level = "WARNING")
self.log_warning(f"on_close_position_change called before the app is ready")
return
if new != self.close_position:
@@ -207,7 +207,7 @@ class SmartShutter(SmartObject):
self.slow_transition_cb = None
def on_retry_update(self, kwargs):
self.log("on_retry_update")
self.log_info("on_retry_update")
self.on_update()
def on_update(self):
@@ -218,7 +218,7 @@ class SmartShutter(SmartObject):
if self.emergency_close_conditions and self.emergency_close_conditions.evaluate(False) == SmartCondition.Result.Succeeded:
if self.get_state(self.entity_id) != 'closed':
log_evaluation_result(self.emergency_close_conditions)
self.log("Closing shutter (Emergency close)")
self.log_info("Closing shutter (Emergency close)")
self.call_service("cover/close_cover", entity_id = self.entity_id)
if self.auto_switch: self.set_state(self.auto_switch,state = "on")
elif self.is_auto_switch_on():
@@ -247,12 +247,12 @@ class SmartShutter(SmartObject):
if current_position != self.close_position:
log_evaluation_result(smart_conditions)
self.target_position = self.close_position
self.log("Closing shutter at " + str(self.close_position) + " (previous position was " + str(current_position) + ")")
self.log_info("Closing shutter at " + str(self.close_position) + " (previous position was " + str(current_position) + ")")
self.call_service("cover/set_cover_position", entity_id = self.entity_id,position = self.close_position)
elif current_state != 'closed':
log_evaluation_result(smart_conditions)
self.target_position = self.close_position
self.log(f"Closing shutter, state was {current_state}")
self.log_info(f"Closing shutter, state was {current_state}")
self.call_service("cover/close_cover", entity_id = self.entity_id)
self.stop_slow_transition()
@@ -268,15 +268,15 @@ class SmartShutter(SmartObject):
self.call_service("cover/set_cover_position", entity_id = self.entity_id,position = wanted_position)
self.slow_transition_cb = self.run_in(self.on_transition_update, 120)
else:
self.log(f"Update ignored becaused we are waiting for a slow transition CB")
self.log_info(f"Update ignored becaused we are waiting for a slow transition CB")
else:
if self.open_position == 100:
self.log("Opening shutter")
self.log_info("Opening shutter")
log_evaluation_result(smart_conditions)
self.call_service("cover/open_cover", entity_id = self.entity_id)
else:
log_evaluation_result(smart_conditions)
self.log("Opening shutter at " + str(self.open_position) + " (previous position was " + str(current_position) + ")")
self.log_info("Opening shutter at " + str(self.open_position) + " (previous position was " + str(current_position) + ")")
self.call_service("cover/set_cover_position", entity_id = self.entity_id,position = self.open_position)
else : self.run_in(self.on_retry_update,60) #during HASS restart, shutter can be irresponsive untill the z-wave network is properly initialized