diff service/piNode/devices.py @ 254:ba1149814877

pi device support for motionStart edge trigger Ignore-this: 1eda3d0bed8def055573fdc1db3cd7c3
author drewp@bigasterisk.com
date Mon, 21 Mar 2016 04:18:45 -0700
parents 254df9f881a6
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'):