smartshutter now correctly go through the logger interface
This commit is contained in:
1 parent
5ef7b27448
commit
545ebf2bd8
1 file changed
+21
-21
+21
-21
@@ -30,7 +30,7 @@ class SmartShutter(SmartObject):
|
|||||||
except:
|
except:
|
||||||
self.open_position_sensor = self.args["open_position"]
|
self.open_position_sensor = self.args["open_position"]
|
||||||
self.open_position = int(float(self.get_state(self.open_position_sensor)))
|
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)
|
self.listen_state(self.on_open_position_change,self.open_position_sensor)
|
||||||
else:
|
else:
|
||||||
self.open_position = 100
|
self.open_position = 100
|
||||||
@@ -40,7 +40,7 @@ class SmartShutter(SmartObject):
|
|||||||
except:
|
except:
|
||||||
self.close_position_sensor = self.args["close_position"]
|
self.close_position_sensor = self.args["close_position"]
|
||||||
self.close_position = int(float(self.get_state(self.close_position_sensor)))
|
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)
|
self.listen_state(self.on_close_position_change,self.close_position_sensor)
|
||||||
else:
|
else:
|
||||||
self.close_position = 0
|
self.close_position = 0
|
||||||
@@ -60,11 +60,11 @@ class SmartShutter(SmartObject):
|
|||||||
if 'close_conditions' in self.args:
|
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)
|
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:
|
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:
|
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)
|
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:
|
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
|
#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 the conditions change during the state change
|
||||||
@@ -96,7 +96,7 @@ class SmartShutter(SmartObject):
|
|||||||
try:
|
try:
|
||||||
current_position = float(current_position)
|
current_position = float(current_position)
|
||||||
except (TypeError, ValueError):
|
except (TypeError, ValueError):
|
||||||
self.log("Toggle ignored: current position is unavailable", level="WARNING")
|
self.log_warning("Toggle ignored: current position is unavailable")
|
||||||
return
|
return
|
||||||
|
|
||||||
# Reverse the requested movement when another press arrives in transit.
|
# Reverse the requested movement when another press arrives in transit.
|
||||||
@@ -114,7 +114,7 @@ class SmartShutter(SmartObject):
|
|||||||
if self.auto_switch:
|
if self.auto_switch:
|
||||||
self.set_state(self.auto_switch, state='off')
|
self.set_state(self.auto_switch, state='off')
|
||||||
self.target_position = self.close_position if should_close else self.open_position
|
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:
|
if self.target_position == 0:
|
||||||
self.call_service("cover/close_cover", entity_id=self.entity_id)
|
self.call_service("cover/close_cover", entity_id=self.entity_id)
|
||||||
elif self.target_position == 100:
|
elif self.target_position == 100:
|
||||||
@@ -124,25 +124,25 @@ class SmartShutter(SmartObject):
|
|||||||
|
|
||||||
def on_state_change(self, entity, attribute, old, new, kwargs):
|
def on_state_change(self, entity, attribute, old, new, kwargs):
|
||||||
if self.ready == False:
|
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
|
return
|
||||||
#for object that take a long time to change state, we need reevalute desired state once the state has changed
|
#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 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
|
#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:
|
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()
|
self.on_update()
|
||||||
|
|
||||||
def on_position_change(self, entity, attribute, old, new, kwargs):
|
def on_position_change(self, entity, attribute, old, new, kwargs):
|
||||||
if self.ready == False:
|
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
|
return
|
||||||
|
|
||||||
if self.target_position == None:
|
if self.target_position == None:
|
||||||
if self.target_position_reach_time != None and time.time() - self.target_position_reach_time < 60:
|
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:
|
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
|
if self.close_conditions: smart_conditions = self.close_conditions
|
||||||
else: smart_conditions = self.open_conditions
|
else: smart_conditions = self.open_conditions
|
||||||
|
|
||||||
@@ -150,13 +150,13 @@ class SmartShutter(SmartObject):
|
|||||||
self.set_state(self.auto_switch,state = "off")
|
self.set_state(self.auto_switch,state = "off")
|
||||||
else:
|
else:
|
||||||
if self.target_position == new:
|
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 = None
|
||||||
self.target_position_reach_time = time.time()
|
self.target_position_reach_time = time.time()
|
||||||
|
|
||||||
def on_open_position_change(self, entity, attribute, old, new, kwargs):
|
def on_open_position_change(self, entity, attribute, old, new, kwargs):
|
||||||
if self.ready == False:
|
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
|
return
|
||||||
|
|
||||||
if new != self.open_position:
|
if new != self.open_position:
|
||||||
@@ -167,7 +167,7 @@ class SmartShutter(SmartObject):
|
|||||||
|
|
||||||
def on_close_position_change(self, entity, attribute, old, new, kwargs):
|
def on_close_position_change(self, entity, attribute, old, new, kwargs):
|
||||||
if self.ready == False:
|
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
|
return
|
||||||
|
|
||||||
if new != self.close_position:
|
if new != self.close_position:
|
||||||
@@ -207,7 +207,7 @@ class SmartShutter(SmartObject):
|
|||||||
self.slow_transition_cb = None
|
self.slow_transition_cb = None
|
||||||
|
|
||||||
def on_retry_update(self, kwargs):
|
def on_retry_update(self, kwargs):
|
||||||
self.log("on_retry_update")
|
self.log_info("on_retry_update")
|
||||||
self.on_update()
|
self.on_update()
|
||||||
|
|
||||||
def on_update(self):
|
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.emergency_close_conditions and self.emergency_close_conditions.evaluate(False) == SmartCondition.Result.Succeeded:
|
||||||
if self.get_state(self.entity_id) != 'closed':
|
if self.get_state(self.entity_id) != 'closed':
|
||||||
log_evaluation_result(self.emergency_close_conditions)
|
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)
|
self.call_service("cover/close_cover", entity_id = self.entity_id)
|
||||||
if self.auto_switch: self.set_state(self.auto_switch,state = "on")
|
if self.auto_switch: self.set_state(self.auto_switch,state = "on")
|
||||||
elif self.is_auto_switch_on():
|
elif self.is_auto_switch_on():
|
||||||
@@ -247,12 +247,12 @@ class SmartShutter(SmartObject):
|
|||||||
if current_position != self.close_position:
|
if current_position != self.close_position:
|
||||||
log_evaluation_result(smart_conditions)
|
log_evaluation_result(smart_conditions)
|
||||||
self.target_position = self.close_position
|
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)
|
self.call_service("cover/set_cover_position", entity_id = self.entity_id,position = self.close_position)
|
||||||
elif current_state != 'closed':
|
elif current_state != 'closed':
|
||||||
log_evaluation_result(smart_conditions)
|
log_evaluation_result(smart_conditions)
|
||||||
self.target_position = self.close_position
|
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.call_service("cover/close_cover", entity_id = self.entity_id)
|
||||||
|
|
||||||
self.stop_slow_transition()
|
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.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)
|
self.slow_transition_cb = self.run_in(self.on_transition_update, 120)
|
||||||
else:
|
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:
|
else:
|
||||||
if self.open_position == 100:
|
if self.open_position == 100:
|
||||||
self.log("Opening shutter")
|
self.log_info("Opening shutter")
|
||||||
log_evaluation_result(smart_conditions)
|
log_evaluation_result(smart_conditions)
|
||||||
self.call_service("cover/open_cover", entity_id = self.entity_id)
|
self.call_service("cover/open_cover", entity_id = self.entity_id)
|
||||||
else:
|
else:
|
||||||
log_evaluation_result(smart_conditions)
|
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)
|
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
|
else : self.run_in(self.on_retry_update,60) #during HASS restart, shutter can be irresponsive untill the z-wave network is properly initialized
|
||||||
|
|||||||
Reference in new issue
Block a user