Mercurial > code > home > repos > homeauto
changeset 210:75717a0be824
ledoutput support for piNode
Ignore-this: 3c803f823e2db77285885395db892835
author | drewp@bigasterisk.com |
---|---|
date | Sat, 07 Nov 2015 12:24:59 -0800 |
parents | 6a1462822c56 |
children | 7d3645c2157e |
files | service/piNode/devices.py |
diffstat | 1 files changed, 30 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/service/piNode/devices.py Sat Nov 07 10:40:28 2015 -0800 +++ b/service/piNode/devices.py Sat Nov 07 12:24:59 2015 -0800 @@ -177,6 +177,36 @@ 'pred': ROOM['color'], }] + +@register +class LedOutput(DeviceType): + deviceType = ROOM['LedOutput'] + + def setup(self): + self.pi.set_mode(self.pinNumber, pigpio.OUTPUT) + self.pi.set_PWM_frequency(self.pinNumber, 200) + self.pi.set_PWM_dutycycle(self.pinNumber, 0) + + def outputPatterns(self): + return [(self.uri, ROOM['brightness'], None)] + + def sendOutput(self, statements): + assert len(statements) == 1 + assert statements[0][:2] == (self.uri, ROOM['brightness']) + v = int(float(statements[0][2]) * 255) + self.pi.set_PWM_dutycycle(self.pinNumber, v) + + def outputWidgets(self): + return [{ + 'element': 'output-slider', + 'min': 0, + 'max': 1, + 'step': 1 / 255, + 'subj': self.uri, + 'pred': ROOM['brightness'], + }] + + @register class OnboardTemperature(DeviceType): deviceType = ROOM['OnboardTemperature']