From a95c8c2584e125026a6a01056bc1789c139b33d7 Mon Sep 17 00:00:00 2001 From: Ed Leckert Date: Sat, 12 Oct 2024 15:49:34 -0600 Subject: [PATCH] fix: cannot update multiple stations --- pyopensprinkler/station.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pyopensprinkler/station.py b/pyopensprinkler/station.py index 9577920..5279507 100644 --- a/pyopensprinkler/station.py +++ b/pyopensprinkler/station.py @@ -62,15 +62,17 @@ def _bit_check(self, bit_property): return bool(bits[position]) async def _bit_set(self, bit_property, bit_update_name, value): - bits = self._controller._state["stations"][bit_property] + bit_list = self._controller._state["stations"][bit_property] bank = math.floor(self._index / 8) - bits = list(reversed([int(x) for x in list("{0:08b}".format(bits[bank]))])) + bits = list(reversed([int(x) for x in list("{0:08b}".format(bit_list[bank]))])) position = self._index % 8 value = int(value) bits[position] = value bits = list(reversed(bits)) bits = "".join(map(str, bits)) bits = int(bits, 2) + bit_list[bank] = bits + self._controller._state["stations"][bit_property] = bit_list return await self._set_attribute(bit_update_name + str(bank), bits) async def run(self, seconds=None):