Mercurial > code > home > repos > homeauto
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