Mercurial > code > home > repos > homeauto
comparison service/piNode/devices.py @ 1127:2d6e606cc475
switch neopixel libs. lost the r/g/b remapping feature
Ignore-this: d18b5118d63f42db7ee6e6defefa90f2
darcs-hash:b770efaccd10a2e5fdb7626359375c84fedb9ea0
author | drewp <drewp@bigasterisk.com> |
---|---|
date | Fri, 20 Oct 2017 02:19:53 -0700 |
parents | 77f6117e002f |
children | d5dec124ccfe |
comparison
equal
deleted
inserted
replaced
1126:82046a1c75f3 | 1127:2d6e606cc475 |
---|---|
10 try: | 10 try: |
11 import pigpio | 11 import pigpio |
12 except ImportError: | 12 except ImportError: |
13 pigpio = None | 13 pigpio = None |
14 import w1thermsensor | 14 import w1thermsensor |
15 try: | 15 import rpi_ws281x |
16 import neopixel | |
17 except ImportError: | |
18 neopixel = None | |
19 | 16 |
20 def setupPwm(pi, pinNumber, hz=8000): | 17 def setupPwm(pi, pinNumber, hz=8000): |
21 pi.set_mode(pinNumber, pigpio.OUTPUT) | 18 pi.set_mode(pinNumber, pigpio.OUTPUT) |
22 # see http://abyz.co.uk/rpi/pigpio/cif.html#gpioCfgClock | 19 # see http://abyz.co.uk/rpi/pigpio/cif.html#gpioCfgClock |
23 # and http://abyz.co.uk/rpi/pigpio/cif.html#gpioSetPWMfrequency | 20 # and http://abyz.co.uk/rpi/pigpio/cif.html#gpioSetPWMfrequency |
508 'ledCount': len(self.pixelUris), | 505 'ledCount': len(self.pixelUris), |
509 'pin': self.pinNumber, | 506 'pin': self.pinNumber, |
510 'ledType': 'WS2812', | 507 'ledType': 'WS2812', |
511 'colorOrder': colorOrder | 508 'colorOrder': colorOrder |
512 } | 509 } |
513 self.neo = neopixel.Adafruit_NeoPixel(len(self.values), pin=18, strip_type=stripType) | 510 self.neo = rpi_ws281x.Adafruit_NeoPixel(len(self.values), pin=18) |
514 self.neo.begin() | 511 self.neo.begin() |
515 | 512 |
516 def getColorOrder(self, graph, uri): | 513 def getColorOrder(self, graph, uri): |
517 colorOrder = graph.value(uri, ROOM['colorOrder'], | 514 colorOrder = graph.value(uri, ROOM['colorOrder'], |
518 default=ROOM['ledColorOrder/RGB']) | 515 default=ROOM['ledColorOrder/RGB']) |
519 head, tail = str(colorOrder).rsplit('/', 1) | 516 head, tail = str(colorOrder).rsplit('/', 1) |
520 if head != str(ROOM['ledColorOrder']): | 517 if head != str(ROOM['ledColorOrder']): |
521 raise NotImplementedError('%r colorOrder %r' % (uri, colorOrder)) | 518 raise NotImplementedError('%r colorOrder %r' % (uri, colorOrder)) |
522 stripType = getattr(neopixel.ws, 'WS2811_STRIP_%s' % tail) | 519 stripType = None |
523 return colorOrder, stripType | 520 return colorOrder, stripType |
524 | 521 |
525 def _rgbFromHex(self, h): | 522 def _rgbFromHex(self, h): |
526 rrggbb = h.lstrip('#') | 523 rrggbb = h.lstrip('#') |
527 return [int(x, 16) for x in [rrggbb[0:2], rrggbb[2:4], rrggbb[4:6]]] | 524 return [int(x, 16) for x in [rrggbb[0:2], rrggbb[2:4], rrggbb[4:6]]] |