Skip to content

Commit 4d8e49c

Browse files
committed
Merge pull request gpiozero#304 from lurch/patch-2
Minor Energenie tweaks
2 parents 94a05ad + 864c4f9 commit 4d8e49c

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

gpiozero/boards.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -846,6 +846,7 @@ def __init__(self, socket=None, initial_value=False):
846846
raise EnergenieSocketMissing('socket number must be provided')
847847
if not (1 <= socket <= 4):
848848
raise EnergenieBadSocket('socket number must be between 1 and 4')
849+
self._value = None
849850
super(Energenie, self).__init__()
850851
self._socket = socket
851852
self._master = _EnergenieMaster()
@@ -877,8 +878,9 @@ def value(self):
877878

878879
@value.setter
879880
def value(self, value):
880-
self._master.transmit(self._socket, bool(value))
881-
self._value = bool(value)
881+
value = bool(value)
882+
self._master.transmit(self._socket, value)
883+
self._value = value
882884

883885
def on(self):
884886
self.value = True

tests/test_boards.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -430,11 +430,15 @@ def test_energenie_bad_init():
430430
Energenie()
431431
with pytest.raises(ValueError):
432432
Energenie(0)
433+
with pytest.raises(ValueError):
434+
Energenie(5)
433435

434436
def test_energenie():
435437
pins = [MockPin(n) for n in (17, 22, 23, 27, 24, 25)]
436438
with Energenie(1, initial_value=True) as device1, \
437439
Energenie(2, initial_value=False) as device2:
440+
assert repr(device1) == '<gpiozero.Energenie object on socket 1>'
441+
assert repr(device2) == '<gpiozero.Energenie object on socket 2>'
438442
assert device1.value
439443
assert not device2.value
440444
[pin.clear_states() for pin in pins]
@@ -455,4 +459,5 @@ def test_energenie():
455459
pins[3].assert_states_and_times([(0.0, True), (0.0, True)])
456460
pins[4].assert_states_and_times([(0.0, False)])
457461
pins[5].assert_states_and_times([(0.0, False), (0.1, True), (0.25, False)])
458-
462+
device1.close()
463+
assert repr(device1) == '<gpiozero.Energenie object closed>'

0 commit comments

Comments
 (0)