1818 NodeType ,
1919 PowerStatistics ,
2020 RelayConfig ,
21+ RelayLock ,
2122 RelayState ,
2223)
2324from ..connection import StickController
@@ -85,7 +86,7 @@ def __init__(
8586 super ().__init__ (mac , address , controller , loaded_callback )
8687
8788 # Relay
88- self ._relay_lock = False
89+ self ._relay_lock : RelayLock = RelayLock ( lock_state = False )
8990 self ._relay_state : RelayState = RelayState ()
9091 self ._relay_config : RelayConfig = RelayConfig ()
9192
@@ -178,13 +179,12 @@ async def relay_init_on(self) -> None:
178179 await self ._relay_init_set (True )
179180
180181 @property
181- def relay_lock (self ) -> bool :
182+ def relay_lock (self ) -> RelayLock :
182183 """State of the relay lock."""
183184 return self ._relay_lock
184185
185- async def set_relay_lock (self , state : bool ) -> None :
186+ async def set_relay_lock (self , state : bool ) -> RelayLock :
186187 """Set the state of the relay-lock."""
187- self ._relay_lock = state
188188 await self ._relay_update_lock (state )
189189 await self .publish_feature_update_to_subscribers (
190190 NodeFeature .RELAY_LOCK , state
@@ -644,7 +644,7 @@ async def set_relay(self, state: bool) -> bool:
644644 f"Changing state of relay is not supported for node { self .mac } "
645645 )
646646
647- if self ._relay_lock :
647+ if getattr ( self ._relay_lock , "lock_state" ) :
648648 raise NodeError ("Changing state of relay failed, it is locked" )
649649
650650 _LOGGER .debug ("set_relay() start" )
@@ -710,10 +710,10 @@ async def _relay_update_state(
710710 )
711711 await self .save_cache ()
712712
713- async def _relay_update_lock (self , lock : bool ) -> None :
713+ async def _relay_update_lock (self , state : bool ) -> None :
714714 """Process relay lock update."""
715715 state_update = False
716- if lock :
716+ if state :
717717 self ._set_cache (CACHE_RELAY_LOCK , "True" )
718718 if not self ._relay_lock :
719719 state_update = True
@@ -722,7 +722,7 @@ async def _relay_update_lock(self, lock: bool) -> None:
722722 if self ._relay_lock :
723723 state_update = True
724724
725- self ._relay_lock = lock
725+ self ._relay_lock = replace ( self . _relay_lock , lock_state = state )
726726 if state_update :
727727 await self .publish_feature_update_to_subscribers (
728728 NodeFeature .RELAY_LOCK , self ._relay_lock
0 commit comments