Mercurial > code > home > repos > homeauto
diff service/piNode/devices.py @ 1059:faf1f8677a91
pi device support for motionStart edge trigger
Ignore-this: 1eda3d0bed8def055573fdc1db3cd7c3
darcs-hash:b77ef0bc873415b7319e8dff11d484d48f4bd10e
author | drewp <drewp@bigasterisk.com> |
---|---|
date | Mon, 21 Mar 2016 04:18:45 -0700 |
parents | d2007482aec5 |
children | 54fad386d6f5 |
line wrap: on
line diff
--- a/service/piNode/devices.py Mon Mar 21 04:17:57 2016 -0700 +++ b/service/piNode/devices.py Mon Mar 21 04:18:45 2016 -0700 @@ -119,14 +119,22 @@ self.pi.set_mode(17, pigpio.INPUT) self.pi.set_pull_up_down(17, pigpio.PUD_DOWN) + def hostStateInit(self): + self.lastRead = None + def poll(self): motion = self.pi.read(17) + oneshot = [] + if self.lastRead is not None and motion != self.lastRead: + oneshot = [(self.uri, ROOM['sees'], ROOM['motionStart'])] + self.lastRead = motion + return {'latest': [ (self.uri, ROOM['sees'], ROOM['motion'] if motion else ROOM['noMotion']), self.recentMotionStatement(motion), - ], 'oneshot': []} + ], 'oneshot': oneshot} def recentMotionStatement(self, motion): if not hasattr(self, 'lastMotionTime'):