@@ -138,25 +138,7 @@ def update_config(
138138 def read (
139139 self ,
140140 immediate_write_to_central_state : bool = True ,
141- skip_power_plug_state : bool = False ,
142141 ) -> types .aemet .AEMETEnclosureState :
143- em27_has_power : Optional [bool ] = None
144- em27_voltage : Optional [float ] = None
145- em27_current : Optional [float ] = None
146- em27_power : Optional [float ] = None
147- if skip_power_plug_state :
148- em27_has_power = self .state .em27_has_power
149- em27_voltage = self .state .em27_voltage
150- em27_current = self .state .em27_current
151- em27_power = self .state .em27_power
152- else :
153- if self .enclosure_config .use_em27_power_plug :
154- em27_has_power = self .tasmota_plug .get_power_state ()
155- throughput_state = self .tasmota_plug .get_throughput_state ()
156- em27_voltage = throughput_state ["em27_voltage" ]
157- em27_current = throughput_state ["em27_current" ]
158- em27_power = throughput_state ["em27_power" ]
159-
160142 try :
161143 out = self ._run_command ("DataQuery" , mode = "most-recent" , uri = "dl:Public" )
162144 headers = [d ["name" ] for d in out ["head" ]["fields" ]]
@@ -170,11 +152,12 @@ def read(
170152 # d["time"] = out["data"][0]["time"]
171153 # d["no"] = out["data"][0]["no"]
172154 news = types .aemet .AEMETEnclosureState .model_validate (d )
173-
174- news .em27_has_power = em27_has_power
175- news .em27_voltage = em27_voltage
176- news .em27_current = em27_current
177- news .em27_power = em27_power
155+ if self .enclosure_config .use_em27_power_plug :
156+ news .em27_has_power = self .tasmota_plug .get_power_state ()
157+ throughput_state = self .tasmota_plug .get_throughput_state ()
158+ news .em27_voltage = throughput_state ["em27_voltage" ]
159+ news .em27_current = throughput_state ["em27_current" ]
160+ news .em27_power = throughput_state ["em27_power" ]
178161
179162 news .dt = datetime .datetime .now (tz = datetime .timezone .utc )
180163 if news .auto_mode is None :
@@ -208,9 +191,7 @@ def set_enhanced_security_mode(self, mode: bool) -> None:
208191 self .logger .info (f"Setting enhanced security mode to { mode } " )
209192 self ._set_value ("dl:Public.ENHANCED_SECURITY" , 1 if mode else 0 )
210193 dt = tum_esm_utils .timing .wait_for_condition (
211- is_successful = lambda : (
212- self .read (skip_power_plug_state = True ).enhanced_security_mode == mode
213- ),
194+ is_successful = lambda : self .read ().enhanced_security_mode == mode ,
214195 timeout_seconds = 40 ,
215196 timeout_message = "Enhanced security mode did not update within 30 seconds." ,
216197 check_interval_seconds = 5 ,
@@ -224,9 +205,7 @@ def set_enclosure_mode(self, mode: Literal["auto", "manual"]) -> None:
224205 else :
225206 self ._set_value ("dl:Public.AUTO_" , 0 )
226207 dt = tum_esm_utils .timing .wait_for_condition (
227- is_successful = lambda : (
228- self .read (skip_power_plug_state = True ).auto_mode == (1 if mode == "auto" else 0 )
229- ),
208+ is_successful = lambda : self .read ().auto_mode == (1 if mode == "auto" else 0 ),
230209 timeout_seconds = 40 ,
231210 timeout_message = "Enclosure mode did not update within 30 seconds." ,
232211 check_interval_seconds = 5 ,
@@ -238,9 +217,7 @@ def set_averia_fault_code(self, new_value: int) -> None:
238217 self .logger .info (f"Setting averia fault code to { new_value } " )
239218 self ._set_value ("dl:Public.AVERIA" , new_value )
240219 dt = tum_esm_utils .timing .wait_for_condition (
241- is_successful = lambda : (
242- self .read (skip_power_plug_state = True ).averia_fault_code == new_value
243- ),
220+ is_successful = lambda : self .read ().averia_fault_code == new_value ,
244221 timeout_seconds = 40 ,
245222 timeout_message = "Averia fault code did not update within 30 seconds." ,
246223 check_interval_seconds = 5 ,
@@ -253,7 +230,7 @@ def set_alert_level(self, new_value: int) -> None:
253230 self .logger .info (f"Setting alert level to { new_value } " )
254231 self ._set_value ("dl:Public.ALERTA" , new_value )
255232 dt = tum_esm_utils .timing .wait_for_condition (
256- is_successful = lambda : self .read (skip_power_plug_state = True ).alert_level == new_value ,
233+ is_successful = lambda : self .read ().alert_level == new_value ,
257234 timeout_seconds = 40 ,
258235 timeout_message = "Alert level did not update within 30 seconds." ,
259236 check_interval_seconds = 5 ,
@@ -269,9 +246,7 @@ def open_cover(self) -> None:
269246 self ._set_value ("dl:Public.MOTOR_ON" , 1 )
270247 self ._set_value ("dl:Public.Estado_actual" , "AF" ) # open releasing fechillo
271248 dt = tum_esm_utils .timing .wait_for_condition (
272- is_successful = lambda : (
273- self .read (skip_power_plug_state = True ).pretty_cover_status == "open"
274- ),
249+ is_successful = lambda : self .read ().pretty_cover_status == "open" ,
275250 timeout_seconds = 90 ,
276251 timeout_message = "Cover did not open within 90 seconds." ,
277252 check_interval_seconds = 5 ,
@@ -287,9 +262,7 @@ def close_cover(self) -> None:
287262 self ._set_value ("dl:Public.MOTOR_ON" , 1 )
288263 self ._set_value ("dl:Public.Estado_actual" , "C." ) # closing
289264 dt = tum_esm_utils .timing .wait_for_condition (
290- is_successful = lambda : (
291- self .read (skip_power_plug_state = True ).pretty_cover_status == "closed"
292- ),
265+ is_successful = lambda : self .read ().pretty_cover_status == "closed" ,
293266 timeout_seconds = 90 ,
294267 timeout_message = "Cover did not close within 90 seconds." ,
295268 check_interval_seconds = 5 ,
0 commit comments