def __init__(self, usbPort, baudRate=9600): super(ZigBeeDirect, self).__init__() import serial from Lib.xbee import ZigBee try: self._port = serial.Serial(usbPort, baudRate) except Exception as e: print >> sys.stderr, "Unable to connect to zigbee port, check that the port name (%s) and permissions are correct (should be a+rw)" % ( usbPort) raise e self._zigbee = ZigBee(self._port) # Place for the callback methods to store "static" values. # Currently only needed for the Moving Average Filter for the MCP9700 # temperature sensor temperature calculations. self._handler_memory = {} self._channels = {} self._sr = StateResolver() self._sensorDao = Sensors() self._sensors = self._sensorDao.findSensors() self._warned = []
if activeLocation == None: print "Unable to determine active experiment Location" exit sensorPollers = [] dataUpdaters = [] for sensorType in config.locations_config[ activeLocation['location']]['sensors']: sensor = None if sensorType == 'ZWaveHomeController': sensor = ZWaveHomeController(config.server_config['zwave_ip']) elif sensorType == 'ZWaveVeraLite': sensor = ZWaveVeraLite(config.server_config['zwave_ip'], config.server_config['zwave_port']) elif sensorType == 'ZigBee': sensor = ZigBee(config.server_config['udp_listen_port']) elif sensorType == 'ZigBeeDirect': sensor = ZigBeeDirect(config.server_config['zigbee_usb_port']) elif sensorType == 'GEOSystem': sensor = GEOSystem(config.server_config['mysql_geo_server'], config.server_config['mysql_geo_user'], config.server_config['mysql_geo_password'], config.server_config['mysql_geo_db'], config.server_config['mysql_geo_query']) if sensor != None: sensorPollers.append(sensor) dataUpdaters.append( SensorLog(sensor.channels, sensor.__class__.__name__)) for sensorPoller in sensorPollers: