diff service/piNode/devices.py @ 1067:dfb284fb025c

invert support for Pushbutton Ignore-this: d4b994070114e26700857fcd2cd0118e darcs-hash:2cc350da1fc7da83153b9b4da89b97a85a9dc9ab
author drewp <drewp@bigasterisk.com>
date Sat, 02 Apr 2016 23:33:43 -0700
parents d29b9212c4c5
children 1ae78fe6f36e
line wrap: on
line diff
--- a/service/piNode/devices.py	Mon Mar 21 04:26:14 2016 -0700
+++ b/service/piNode/devices.py	Sat Apr 02 23:33:43 2016 -0700
@@ -270,11 +270,16 @@
         self.pi.set_mode(self.pinNumber, pigpio.INPUT)
         self.pi.set_pull_up_down(self.pinNumber, pigpio.PUD_UP)
         self.lastClosed = None
+        self.invert = (self.uri, ROOM['style'],
+                       ROOM['inverted']) in self.graph
 
     def poll(self):
         closed = not self.pi.read(self.pinNumber)
+        if self.invert:
+            closed = not closed
 
         if self.lastClosed is not None and closed != self.lastClosed:
+            log.debug('%s changed to %s', self.uri, closed)
             oneshot = [
                 (self.uri, ROOM['buttonState'],
                  ROOM['press'] if closed else ROOM['release']),