Mercurial > code > home > repos > homeauto
changeset 1049:96f0a8b345aa
pi pushbutton device
Ignore-this: 5bab6e8ad21fe4f24a2a92e6bc5678f3
darcs-hash:8f18d1b3736fc2abdf13430de797d852ed0e2c16
author | drewp <drewp@bigasterisk.com> |
---|---|
date | Tue, 02 Feb 2016 22:41:18 -0800 |
parents | f3c7f617c335 |
children | ae0461a50d03 |
files | service/piNode/devices.py |
diffstat | 1 files changed, 24 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/service/piNode/devices.py Tue Feb 02 22:37:11 2016 -0800 +++ b/service/piNode/devices.py Tue Feb 02 22:41:18 2016 -0800 @@ -248,6 +248,30 @@ ] @register +class PushbuttonInput(DeviceType): + """add a switch to ground; we'll turn on pullup""" + deviceType = ROOM['Pushbutton'] + + def __init__(self, *a, **kw): + DeviceType.__init__(self, *a, **kw) + log.debug("setup switch on %r", self.pinNumber) + self.pi.set_mode(self.pinNumber, pigpio.INPUT) + self.pi.set_pull_up_down(self.pinNumber, pigpio.PUD_UP) + + def poll(self): + closed = not self.pi.read(self.pinNumber) + + return [ + (self.uri, ROOM['buttonState'], + ROOM['pressed'] if closed else ROOM['notPressed']), + ] + + def watchPrefixes(self): + return [ + (self.uri, ROOM['buttonState']), + ] + +@register class OneWire(DeviceType): """ Also see /my/proj/ansible/roles/raspi_io_node/tasks/main.yml for