SHARE
TWEET

ITTT_PNP_AlexaConnection

a guest Jan 17th, 2019 60 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/env python
  2.  
  3. # Import all the libraries
  4. import time
  5. import os
  6. import serial
  7. import RPi.GPIO as GPIO
  8. from pubnub import Pubnub
  9.  
  10. # Initialize the Pubnub Keys
  11. pub_key = "XXX-X-XXXXXX-XXXX-XXXX-XXXX-XXXXXXXX"
  12. sub_key = "XXX-X-XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
  13. LIGHT = 18
  14. #define pin of RPi on which you want to take output
  15. def init():
  16.         #initalize the pubnub keys and start subscribing
  17.         global pubnub
  18.         #Pubnub Initialization
  19.         GPIO.setmode(GPIO.BCM)
  20.         GPIO.setwarnings(False)
  21.         GPIO.setup(LIGHT, GPIO.OUT)
  22.         GPIO.output(LIGHT, False)
  23.         pubnub = Pubnub(publish_key = pub_key, subscribe_key = sub_key)
  24.         pubnub.subscribe(channels = 'alexaTrigger', callback = callback, error = callback, reconnec$
  25.  
  26. def control_alexa(controlCommand): #this function control Aalexa, commands received and action perf$
  27.         if controlCommand.has_key("trigger"):
  28.                 if controlCommand["trigger"] == "light" and controlCommand["status"] == 1:
  29.                         GPIO.output(LIGHT, True)
  30.                         print "light is on"
  31.                 else :
  32.                         s = serial.Serial('/dev/ttyACM0', 9600)
  33.                         #Namen ggf.anpassen
  34.                         s.isOpen()
  35.                         time.sleep(2)
  36.                         #der Arduino resettet nach einer Seriellen Verbindung, daher muss kurz gewa$
  37.                         s.write("t")
  38.                         GPIO.output(LIGHT, False)
  39.                         print "light is off"
  40.                 if controlCommand["trigger"] == "milliliter" and controlCommand["status"] == 2:
  41.                         s = serial.Serial('/dev/ttyACM0', 9600)
  42.                         #Namen ggf.anpassen
  43.                         s.isOpen()
  44.                         time.sleep(2)
  45.                         #der Arduino resettet nach einer Seriellen Verbindung, daher muss kurz gewa$
  46.                         s.write("a")
  47.                 if controlCommand["trigger"] == "milliliter" and controlCommand["status"] == 5:
  48.                         s = serial.Serial('/dev/ttyACM0', 9600)
  49.                         #Namen ggf.anpassen
  50.                         s.isOpen()
  51.                         time.sleep(2)
  52.                         #der Arduino resettet nach einer Seriellen Verbindung, daher muss kurz gewa$
  53.                         s.write("b")
  54.                 if controlCommand["trigger"] == "milliliter" and controlCommand["status"] == 10:
  55.                         s = serial.Serial('/dev/ttyACM0', 9600)
  56.                         #Namen ggf.anpassen
  57.                         s.isOpen()
  58.                         time.sleep(2)
  59.                         #der Arduino resettet nach einer Seriellen Verbindung, daher muss kurz gewa$
  60.                         s.write("c")
  61.                 if controlCommand["trigger"] == "milliliter" and controlCommand["status"] == 15:
  62.                         s = serial.Serial('/dev/ttyACM0', 9600)
  63.                         #Namen ggf.anpassen
  64.                         s.isOpen()
  65.                         time.sleep(2)
  66.                         #der Arduino resettet nach einer Seriellen Verbindung, daher muss kurz gewa$
  67.                         s.write("d")
  68.                 if controlCommand["trigger"] == "milliliter" and controlCommand["status"] == 20:
  69.                         s = serial.Serial('/dev/ttyACM0', 9600)
  70.                         #Namen ggf.anpassen
  71.                         s.isOpen()
  72.                         time.sleep(2)
  73.                         #der Arduino resettet nach einer Seriellen Verbindung, daher muss kurz gewa$
  74.                         s.write("e")
  75.                 if controlCommand["trigger"] == "milliliter" and controlCommand["status"] == 11:
  76.                         s = serial.Serial('/dev/ttyACM0', 9600)
  77.                         #Namen ggf.anpassen
  78.                         s.isOpen()
  79.                         time.sleep(2)
  80.                         #der Arduino resettet nach einer Seriellen Verbindung, daher muss kurz gewa$
  81.                         s.write("f")
  82.                 if controlCommand["trigger"] == "milliliter" and controlCommand["status"] == 12:
  83.                         s = serial.Serial('/dev/ttyACM0', 9600)
  84.                         #Namen ggf.anpassen
  85.                         s.isOpen()
  86.                         time.sleep(2)
  87.                         #der Arduino resettet nach einer Seriellen Verbindung, daher muss kurz gewa$
  88.                         s.write("g")
  89.                 else :
  90.                         pass
  91. def callback(message, channel):
  92. #this function waits for the message from the aleatrigger channel
  93.         if message.has_key("requester"):
  94.                 control_alexa(message)
  95.         else :
  96.                 pass
  97. def callback(message, channel):
  98.         #this function waits for the message from the aleatrigger channel
  99.         if message.has_key("requester"):
  100.                 control_alexa(message)
  101.         else :
  102.                 pass
  103. def error(message):
  104.         #if there is error in the channel, print the error
  105.         print("ERROR : " + str(message))
  106. def reconnect(message):
  107.         #responds if server connects with pubnub
  108.         print("RECONNECTED")
  109. def disconnect(message): #responds if server disconnects with pubnub
  110.         print("DISCONNECTED")
  111. if __name__ == '__main__':
  112.         init()
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top