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'):