Advertisement
Guest User

ITTT_PNP_AlexaConnection

a guest
Jan 17th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.28 KB | None | 0 0
  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()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement