Skip to content

Commit aae1d9d

Browse files
authored
Merge pull request #156 from heifisch/main
fix #153 and fix #154
2 parents 5b1c0fb + 8eb73be commit aae1d9d

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

custom_components/jablotron80/jablotron.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
from custom_components.jablotron80.const import DEVICE_CONTROL_PANEL
1414
LOGGER = logging.getLogger(__package__)
15-
expected_warning_level = logging.warn
15+
expected_warning_level = logging.WARN
1616
verbose_connection_logging = False
1717
_loop = None # global variable to store event loop
1818

@@ -661,6 +661,7 @@ def __init__(self, device: str) -> None:
661661
self._stop = threading.Event()
662662
self._connection = None
663663
self._messages = asyncio.Event() # are there messages to process
664+
self.update_devices = False
664665

665666
def get_record(self) -> List[bytearray]:
666667

@@ -796,6 +797,8 @@ def read_send_packet_loop(self) -> None:
796797

797798
send_cmd.confirm(True)
798799
confirmed = True
800+
if send_cmd.name == 'Details':
801+
self.update_devices = True
799802
self._cmd_q.task_done()
800803

801804
retries -=1
@@ -1694,13 +1697,13 @@ def _get_zone_via_object(self,object: JablotronCommon) -> JablotronZone:
16941697
return object.zone
16951698

16961699
def _clear_triggers(self) -> None:
1697-
for device in self._active_devices.values():
1700+
for device in self._devices.values():
16981701
#if self.system_mode == JA80CentralUnit.SYSTEM_MODE_UNSPLIT:
16991702
# device.deactivate()
17001703
#else:
17011704
device.active = False
17021705
self._active_devices.clear()
1703-
for code in self._active_codes.values():
1706+
for code in self._codes.values():
17041707
#if self.system_mode == JA80CentralUnit.SYSTEM_MODE_UNSPLIT:
17051708
# device.deactivate()
17061709
#else:
@@ -1748,6 +1751,14 @@ def _activate_code_object(self, source):
17481751
if not zone is None:
17491752
zone.code_activated(source)
17501753

1754+
def _update_device(self):
1755+
for device in self._devices.values():
1756+
if device.device_id in self._active_devices:
1757+
device.active = True
1758+
else:
1759+
device.active = False
1760+
self._active_devices.clear()
1761+
17511762
def _activate_device(self, source):
17521763
if isinstance(source,JablotronDevice):
17531764
source.active = True
@@ -2198,6 +2209,10 @@ def _process_state(self, data: bytearray, packet_data: str) -> None:
21982209
else:
21992210
LOGGER.debug('message: ' + message)
22002211

2212+
if self._connection.update_devices:
2213+
self._update_device()
2214+
self._connection.update_devices = False
2215+
22012216
#LOGGER.info(f'Status: {hex(status)}, {format(status, "008b")}')
22022217
#LOGGER.info(f'{self}')
22032218

0 commit comments

Comments
 (0)