pwm.setPWM(1, 0, servoMax)
            time.sleep(0.1)
            pwm.setPWM(2, 0, servoMax)
            time.sleep(0.1)
            pwm.setPWM(3, 0, servoMax)
           

    print "servo ", "state: ", state
    
def act1_callback(payload):
    """
    :param payload: mqtt payload message
    """

    switchRelay('1', ACT1.state)



project = Project(PROJECT_ID)
device  = Device(project, DEVICE_UUID, API_KEY)


ACT1 = Actuator(Actuator.DIGITAL, ACTUATOR_NAME1)

device.addActuator(ACT1, act1_callback)

threads = []

while True:
    time.sleep(5.0)
    
    sensor.addValue(gpio_input)
    device.send()
    print gpio_input
    return

def string(device, sensor):
    global data1

    print "String1:", data1
    sensor.addValue(data1)
    device.send()
    return

project = Project(PROJECT_ID)
device = Device(project, DEVICE_UUID, API_KEY)

STR1 = Sensor(Sensor.STRING, STRING_NAME)
DI1 = Sensor(Sensor.DIGITAL, DI_SENSOR_NAME)
AN1 = Sensor(Sensor.ANALOG, AN_SENSOR_NAME)

device.addSensor(DI1)
device.addSensor(AN1)
device.addSensor(STR1)

threads = []

while True:
    t1 = threading.Thread(target=gpio_input, args=(InputDigital, device, DI1))
    t2 = threading.Thread(target=gpio_input, args=(InputAnalog, device, AN1))
    t3 = threading.Thread(target=string, args=(device, STR1))
    global InputAnalog1
    global InputAnalog2

    if id == '1':
        sensor.addValue(InputAnalog1)
        device.send()
        print InputAnalog1
        return
    else:
        sensor.addValue(InputAnalog2)
        device.send()
        print InputAnalog2
        return      

project = Project(PROJECT_ID)
device = Device(project, DEVICE_UUID, API_KEY)

AN1 = Sensor(Sensor.ANALOG, AN_SENSOR_NAME1)
AN2 = Sensor(Sensor.ANALOG, AN_SENSOR_NAME2)

device.addSensor(AN1)
device.addSensor(AN2)

threads = []

while True:
    t1 = threading.Thread(target=gpio_input, args=('1', device, AN1))
    t2 = threading.Thread(target=gpio_input, args=('2', device, AN2))
    threads.append(t1)
    threads.append(t2)
    t1.start()
        GPIO.output(GPIO_PIN, True)
    else:
        GPIO.output(GPIO_PIN, False)
    print "PIN ", GPIO_PIN, " state: ", state

    
def act1(client, userdata, message):
    """
    :param client:
    :param userdata:
    :param message:
    """
    # handles message arrived on subscribed topic
    msg = str(message.payload)
    j = json.loads(msg)
    act_state = j['state']
    print "act1", j['state']
    switchRelay(act_state)

project = Project(PROJECT_ID)
device = Device(project, DEVICE_UUID, API_KEY)

ACT1 = Actuator(Actuator.DIGITAL, ACTUATOR_NAME1)

device.addActuator(ACT1, act1)

try:
    while True:
        pass
except KeyboardInterrupt:           
    GPIO.cleanup()
    # handles message arrived on subscribed topic
    msg = str(message.payload)
    j = json.loads(msg)
    act_state = j['state']
    print "act2", j['state']
    switchRelay('2', act_state)

def gpio_input(gpio_input, device, sensor):
 
    sensor.addValue(gpio_input)
    device.send()
    print gpio_input
    return

project = Project(PROJECT_ID)
device  = Device(project, DEVICE_UUID, API_KEY)

DI1  = Sensor(Sensor.DIGITAL, DI_SENSOR_NAME)
AN1  = Sensor(Sensor.ANALOG, AN_SENSOR_NAME)
ACT1 = Actuator(Actuator.DIGITAL, ACTUATOR_NAME1)
ACT2 = Actuator(Actuator.DIGITAL, ACTUATOR_NAME2)

device.addSensor(DI1)
device.addSensor(AN1)

device.addActuator(ACT1, act1)
device.addActuator(ACT2, act2)

threads = []

while True:
def act2(client, userdata, message):
    """
    :param payload: mqtt payload message
    """

    switchRelay('2', ACT2.state)

def gpio_input(gpio_input, device, sensor):
 
    sensor.addValue(gpio_input)
    device.send()
    print gpio_input
    return

project = Project(PROJECT_ID)
device  = Device(project, DEVICE_UUID, API_KEY)

DI1  = Sensor(Sensor.DIGITAL, DI_SENSOR_NAME)
AN1  = Sensor(Sensor.ANALOG, AN_SENSOR_NAME)
ACT1 = Actuator(Actuator.DIGITAL, ACTUATOR_NAME1)
ACT2 = Actuator(Actuator.DIGITAL, ACTUATOR_NAME2)

device.addSensor(DI1)
device.addSensor(AN1)

device.addActuator(ACT1, act1_callback)
device.addActuator(ACT2, act2)

threads = []

while True: