Skip to content
This repository has been archived by the owner on Apr 13, 2018. It is now read-only.

plugins

Joseph Pan edited this page Dec 24, 2017 · 12 revisions

叮当的官方插件

Table of Contents

Echo

简单的回声/传话功能。

当接入微信时,可以利用这个功能实现远程给家里发语音消息。

  • 如果发送的是文本信息,用户发的内容将被转换成语音再播放;
  • 如果发送的是语音消息,则用户的语音将被叮当直接播放。

触发条件

当检测到指令中包含 "echo" 或者 "传话" 时,将其余内容直接念出来。

示例

  • 用户:“echo 你是最棒的”
  • 叮当:“你是最棒的”

Email

检查邮件功能。

触发条件

  1. 用户已在 ~/.dingdang/profile.xml 中完成了邮箱的配置。
  2. 指令中有关键词 “邮件” 。

另外,叮当还有个定期消息检查机制,每 30 秒会执行一次邮件检查,如果有未读邮件,将会在当次运行会话中给用户语音播报一次。

语音播报的规则:

  • 如果配置 read_email_title 选项为 true,会同时阅读邮件标题。如果为 false,则只阅读邮件的发件人信息。
  • 如果邮件的标题带有 [echo] 的前缀,则不管 read_email_title 值为什么,都会阅读该邮件的标题,并且不会播报发件人信息(可利用该功能来实现传话、其他事件监控播报,例如与 ifttt 结合发布各类通知)。
  • 如果邮件的标题带有 [control] 的前缀,且发件人是用户的邮箱,则将当成一条远程命令指令进行响应。

示例

  • 用户:“我有多少封邮件?”

  • 叮当:“您有一封来自 m at hahack.com 的未读邮件”

  • 用户:(发送一篇标题为 [echo] 你是最棒的 的邮件到叮当邮箱中)

  • 叮当:“你是最棒的”

  • 用户:(发送一篇标题为 [control] 发送微信二维码 的邮件到叮当邮箱中)

  • 叮当:“正在发送微信登录二维码到您的邮箱...发送成功”

Time

时间插件。询问叮当时间。

触发条件

指令中有关键词 “时间” 或 “几点”

示例

  • 用户:“现在几点?”
  • 叮当:“现在时间是2017年5月14日23点14分PM”

Camera

用于调起摄像头拍照(如果安装了摄像头的话)。

触发条件

指令中有关键词 “拍照” 或 “拍张照” 时。

如果接入了邮箱或微信,照片将发送到用户的邮箱或微信中(选择哪种取决于配置中 prefers_email 的值)。

示例

倒计时拍照

  • 用户:“拍张照”。
  • 叮当:“收到,3秒后启动拍照……咔擦(拍照声)……拍照成功!正在发送照片到您的微信……发送成功!”

无声拍照

  • 用户:“偷偷地拍张照”(也可以使用微信发)。
  • 叮当:“……(无声)”

配置

# 拍照
camera:
    enable: true
    dest_path: "/home/pi/camera" # 保存目录
    quality: 5              # 成像质量(0~100)
    vertical_flip: false    # 竖直翻转
    horizontal_flip: false  # 水平翻转
    count_down: 3           # 倒计时(秒),仅当开启倒计时时有效
    sendToUser: true        # 拍完照是否发送到邮箱/微信
    sound: true             # 是否有拍照音效
    usb_camera: false              # 是否是 USB 摄像头

如果是 USB 摄像头,还需要确保安装了 fswebcam :

sudo apt-get install fswebcam

SendQR

要求叮当发送微信登录二维码到用户邮箱(方便远程微信登录)。

触发条件

指令中有关键词 “微信” 和 “二维码”

示例

  • 用户:“发送我的微信二维码?”
  • 叮当:“正在发送微信登录二维码到您的邮箱...发送成功”

特别说明

微信不允许扫描文件的登录二维码,否则会提示“无法识别的二维码”。因此只能直接用相机扫码登录。

Chatting

用于进入/退出闲聊模式的插件。

交互示例

  • 用户:我们聊聊天吧。
  • 叮当:进入闲聊模式,现在跟我说说话吧!
  • 用户:现在几点?
  • 叮当:现在时间是20点08分。
  • 用户:你几岁了?
  • 叮当:我1岁了。
  • 用户:结束闲聊。
  • 叮当:退出闲聊模式。

Unclear

用于处理未知的问题。

如果接入了对话机器人,将转交给对话机器人应对;否则将给予类似 “我没听清楚” 这样的回复。

触发条件

语音指令不符合其他的插件的触发条件。

示例

  • 用户:“讲个绕口令”
  • 叮当:“山上五棵树,架上五壶醋,林中五只鹿,箱里五条裤。伐了山上树,搬下架上的醋,射死林中的鹿,取出箱中的裤。”

Hass

用于控制接入HomeAssistant的设备

示例

  • 用户:“开启助手”
  • 叮当:“开始家庭助手控制”
  • 叮当:“请在滴一声后说明内容”
  • 用户:“开始浇水”
  • 叮当:“执行成功”

配置

homeassistant:
    url: "http://127.0.0.1"    #切记加上http://,ip或者域名为你的homeassistant的主机
    port: "8123"               # 端口为你的homeassistant的端口
    password: ""               # 建议加上密码,增加安全性

HomeAssistant配置

configuration.yaml相同目录下添加customize.yaml并include进配置文件。

查看状态类的设备(传感器等)将命令写成list;控制类的设备命令写成dict,控制命令为key,动作为value。

如下是示例的部分配置:

sensor.tempareture:
  friendly_name: "环境温度"
  dingdang: ["查看环境温度", "当前环境温度", "环境温度"]
sensor.humidity:
  friendly_name: "环境湿度"
  dingdang: ["查看环境湿度度", "当前环境湿度", "环境湿度"]
switch.light:
  friendly_name: "补光"
  dingdang: {"开始补光":"turn_on", "补光":"turn_on", "停止补光":"turn_off", "结束补光":"turn_off"}
switch.pump:
  friendly_name: "浇水"
  dingdang: {"开始浇水":"turn_on", "浇水":"turn_on", "停止浇水":"turn_off", "结束浇水":"turn_off"}  

CleanCache

用于清除 dingdang 运行时产生的所有临时数据(包括语音缓存数据)

触发条件

指令中有关键词 “清除缓存” 或 “清空缓存”

示例

  • 用户:“清除缓存”
  • 叮当:“缓存目录已清空”