Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''
- # @ Author: Luis
- # @ Create Time: 2021-01-20 00:56:39
- # @ Modified time: 2021-01-20 12:41:14
- # @ Description: Python GPIO - Alexa
- '''
- import logging
- import os
- import time
- from flask import Flask
- from flask_ask import Ask, request, session, question, statement
- import RPi.GPIO as GPIO
- app = Flask(__name__)
- ask = Ask(app, "/")
- logging.getLogger('flask_ask').setLevel(logging.DEBUG)
- STATUSON = ["open", "high", "on"] # all values that are defined as synonyms in type
- STATUSBTW = ["stop"]
- STATUSOFF = ["close", "low", "off"]
- @ask.launch
- def launch():
- speech_text = 'Hello'
- return question(speech_text).reprompt(speech_text).simple_card(speech_text)
- @ask.intent('LightIntent', mapping = {'status':'status'})
- def Gpio_Intent(status,room):
- GPIO.setwarnings(False)
- GPIO.setmode(GPIO.BCM)
- GPIO.setup(17,GPIO.OUT)
- if status in STATUSON:
- GPIO.output(17,GPIO.HIGH)
- time.sleep(0.5)
- GPIO.output(17,GPIO.LOW)
- return statement('Door open')
- t1 = time.time()
- elif status in STATUSOFF and time.time() - t1 >= 5:
- GPIO.output(17,GPIO.HIGH)
- time.sleep(0.5)
- GPIO.output(17,GPIO.LOW)
- return statement('Door close')
- elif status in STATUSOFF and time.time() - t1 <= 5:
- GPIO.output(17,GPIO.HIGH)
- time.sleep(0.5)
- GPIO.output(17,GPIO.LOW)
- time.sleep(2)
- GPIO.output(17,GPIO.HIGH)
- time.sleep(0.5)
- GPIO.output(17,GPIO.LOW)
- return statement('Door close')
- else:
- return statement('Sorry, this command is not possible.')
- @ask.intent('AMAZON.HelpIntent')
- def help():
- speech_text = 'You can say hello to me!'
- return question(speech_text).reprompt(speech_text).simple_card('HelloWorld', speech_text)
- @ask.session_ended
- def session_ended():
- return "{}", 200
- if __name__ == '__main__':
- if 'ASK_VERIFY_REQUESTS' in os.environ:
- verify = str(os.environ.get('ASK_VERIFY_REQUESTS', '')).lower()
- if verify == 'false':
- app.config['ASK_VERIFY_REQUESTS'] = False
- app.run(debug=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement