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 运行时产生的所有临时数据(包括语音缓存数据)

触发条件

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

示例

  • 用户:“清除缓存”
  • 叮当:“缓存目录已清空”
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.