#!/usr/bin/env python3 # -*- encoding=utf-8 -*- # description: # author:jack # create_time: 2018/1/3 """ desc:pass """ # import guess_num.df_assistant as dfa from dueros.Bot import Bot from dueros.card.TextCard import TextCard import paho.mqtt.client as mqtt HOST = "iot.dfrobot.com.cn" PORT = 1883 client_id = "kylin_dueros" Topic = '' def on_connect(client, userdata, flags, rc): print("Connected with result code "+str(rc)) client.subscribe(Topic) # 订阅消息 def on_message(client, userdata, msg): print("主题:"+msg.topic+" 消息:"+str(msg.payload.decode('utf-8'))) def on_subscribe(client, userdata, mid, granted_qos): print("On Subscribed: qos = %d" % granted_qos) def on_disconnect(client, userdata, rc): if rc != 0: print("Unexpected disconnection %s" % rc) client = mqtt.Client(client_id) client.username_pw_set('', '') client.on_connect = on_connect client.on_subscribe = on_subscribe client.on_disconnect = on_disconnect client.on_message = on_message client.connect(HOST, PORT, 600) client.loop_start() class Bot(Bot): def launchRequest(self): ''' 打开调用名 ''' self.wait_answer() output = '欢迎进入暖冬计划被窝服务中心' card = TextCard(output) # self.add_expect_text_response('我猜4') return { 'card': card, 'outputSpeech': output } def slot_easy_relay_func(self): ''' 获取数字槽位值处理 ''' print('slot_df_func ================') # client.connect(HOST, PORT, 600) value = self.get_slots('dict_light') print(value) if '开门' in value: self.ask('dict_light') client.publish(Topic, '1') return { 'outputSpeech': '已为您开门' } elif '关门' in value: self.ask('dict_light') client.publish(Topic, '0') return { 'outputSpeech': '已为您关门' } elif '退出功能' in value: return { 'outputSpeech': '欢迎再来' } def ended(self): return { 'outputSpeech': '欢迎再来' } def __init__(self, data): super(Bot, self).__init__(data) self.add_launch_handler(self.launchRequest) self.add_intent_handler('slot_easy_relay_func', self.slot_easy_relay_func) self.add_session_ended_handler(self.ended) # client.loop_start() #client.loop_forever() if __name__ == '__main__': pass