changeset 1172:d9abb93515c2

kitchen button, device code fixes Ignore-this: 3e0477db8cfa11207b7db9eadf1c7f12 darcs-hash:2263ac93c1ba6c5ff898ad1c3ae393fbbb6787ba
author drewp <drewp@bigasterisk.com>
date Sun, 11 Nov 2018 23:54:53 -0800
parents 6ff6e4df4f1e
children 63f426f98bb7
files service/piNode/config/frontbed.n3 service/piNode/config/kitchen.n3 service/piNode/devices.py service/piNode/requirements.txt
diffstat 4 files changed, 24 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/service/piNode/config/frontbed.n3	Sun Nov 11 23:54:17 2018 -0800
+++ b/service/piNode/config/frontbed.n3	Sun Nov 11 23:54:53 2018 -0800
@@ -37,7 +37,7 @@
 
 ha:frontbedPiTemp a :OnboardTemperature;
   :influxMeasurement "temperatureF";
-  :influxTag [:key "location"; :value "downBathPi"] .
+  :influxTag [:key "location"; :value "frontbedPi"] .
 
 # pin number ignored; see /boot/config.txt
 pin:GPIO17 :gpioNumber 17; :connectedTo ow: .
--- a/service/piNode/config/kitchen.n3	Sun Nov 11 23:54:17 2018 -0800
+++ b/service/piNode/config/kitchen.n3	Sun Nov 11 23:54:53 2018 -0800
@@ -13,8 +13,11 @@
   :onboardDevice ha:kitchenPiTemp;
   :hasPin
     pin:GPIO4,
-    pin:GPIO17
+    pin:GPIO17,
+    pin:GPIO14
     .
+
+# pin 18 IR in
     
 ha:kitchenPiTemp a :OnboardTemperature;
    :influxMeasurement [
@@ -42,3 +45,6 @@
     :measurement "temperatureF";
     :predicate :temperatureF;
     :tag [:key "host"; :value "kitchen"], [:key "location"; :value "kitchenCounter_ds_test"]] .
+
+pin:GPIO14 :gpioNumber 14; :connectedTo sensor:kitchenCounterButton1 .
+sensor:kitchenCounterButton1 a :Pushbutton .
--- a/service/piNode/devices.py	Sun Nov 11 23:54:17 2018 -0800
+++ b/service/piNode/devices.py	Sun Nov 11 23:54:53 2018 -0800
@@ -18,10 +18,7 @@
     import pigpio
 except ImportError:
     pigpio = None
-try:
-    import w1thermsensor
-except Exception:
-    w1thermsensor = None
+import w1thermsensor
 try:
     import rpi_ws281x
 except ImportError:
@@ -269,10 +266,16 @@
         DeviceType.__init__(self, *a, **kw)
         import DHT22
         self.sens = DHT22.sensor(self.pi, self.pinNumber)
+        self.recentLowTemp = (0, None) # time, temp
+        self.recentPeriodSec = 30
     
     def poll(self):
         stmts = set()
 
+        now = time.time()
+        if self.recentLowTemp[0] < now - self.recentPeriodSec:
+            self.recentLowTemp = (0, None)
+
         if self.sens.staleness() < self.pollPeriod * 2:
             humid, tempC = self.sens.humidity(), self.sens.temperature()
             if humid > -999:
@@ -280,14 +283,19 @@
             else:
                 stmts.add((self.uri, RDFS['comment'], Literal('No recent humidity measurement')))
             if tempC > -999:
-                stmts.add((self.uri, ROOM['temperatureF'],
-                           # see round() note in arduinoNode/devices.py
-                           Literal(round(tempC * 9 / 5 + 32, 2))))
+                # see round() note in arduinoNode/devices.py
+                tempF = round(tempC * 9 / 5 + 32, 2)
+                stmts.add((self.uri, ROOM['temperatureF'], Literal(tempF)))
+                if self.recentLowTemp[1] is None or tempF < self.recentLowTemp[1]:
+                    self.recentLowTemp = (now, tempF)
             else:
                 stmts.add((self.uri, RDFS['comment'], Literal('No recent temperature measurement')))
         else:
             stmts.add((self.uri, RDFS['comment'],
                        Literal('No recent DHT response (%.02f sec old)' % self.sens.staleness())))
+
+        if self.recentLowTemp[1] is not None:
+            stmts.add((self.uri, ROOM['recentLowTemperatureF'], Literal(self.recentLowTemp[1])))
             
         self.sens.trigger()
        
--- a/service/piNode/requirements.txt	Sun Nov 11 23:54:17 2018 -0800
+++ b/service/piNode/requirements.txt	Sun Nov 11 23:54:53 2018 -0800
@@ -6,14 +6,13 @@
 python-dateutil
 w1thermsensor
 service_identity
-git+git://github.com/adafruit/Adafruit_Python_DHT
 http://abyz.co.uk/rpi/pigpio/pigpio.zip
 git+git://github.com/adafruit/Adafruit_Nokia_LCD
 RPi.GPIO==0.6.2
 influxdb==3.0.0
 rpi_ws281x==3.0.4
 pyOpenSSL
-numpy==1.13.3
+numpy
 pillow
 imageio==2.2.0
 https://projects.bigasterisk.com/rdfdb/rdfdb-0.3.0.tar.gz