『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 27281|回复: 98

[插件集成] 【9.27更新】QQ通知插件 for HA+图灵聊天机器人+QQ控制HA设备

  [复制链接]

22

主题

359

帖子

3723

积分

元老级技术达人

积分
3723
金钱
3329
HASS币
100

教程狂人

发表于 2017-9-24 16:46:54 | 显示全部楼层 |阅读模式
本帖最后由 33201 于 2017-9-30 13:59 编辑

插件简介
        插件核心功能基于qqbot。通过扫码登陆,即使扫码的手机退出QQ,QQ机器人插件也不会退出。相比微信的限制要少很多。

qqbot介绍
      qqbot 是一个用 python 实现的、基于腾讯 SmartQQ 协议的 QQ 机器人,可运行在 Linux 、 Windows 和 Mac OSX 平台下。
  项目 github 地址: https://github.com/pandolia/qqbot
  你可以通过扩展 qqbot 来实现:
  • 监控、收集 QQ 消息
  • 自动消息推送
  • 聊天机器人
  • 通过 QQ 远程控制你的设备


9.27重大更新       由于qqbot的限制,无法通过HA插件的方式直接调用qqbot,原来插件的设计方式需要每次发消息时候都要登录一下,稍微时间一长就要求重新登录,所以重新对原来的QQ通知插件进行了重写,新的设计思路为把qqbot作为一个与HA平行的独立应用操作,HA与qqbot通过彼此的http api相互调用。
       新的插件改为两种:
       1、QQ通知插件 for HA,通过qqbot的api发送QQ消息通知。
       2、【新增】图灵机器人+QQ控制HA设备 for qqbot,通过调用图灵的api和HA的api实现自动聊天和智能家居控制功能。

一、安装方法
1.1 安装qqbot
在 Python 2.7/3.4+ 下使用,用 pip 安装:
需要切换到homeassistant用户并在虚拟环境下安装,以便与homeassistant更好的配合。
sudo su -s /bin/bash homeassistant
source /srv/homeassistant/bin/activate
或者
/srv/homeassistant/homeassistant_env/bin/activate
然后安装qqbot
pip install qqbot
或者下载 源码 解压后 cd 到该目录并运行: “pip install .”
1.2 修改配置文件
1、下载解压附件
2、修改~/.qqbot-tmp/v2.3.conf文件的默认配置部分
    "默认配置" : {
        "qq" : "2176706040", #默认登录的QQ号
        "mailAccount" : "[email protected]", #接收登录二维码的邮箱,最好是QQ或者163的
        "mailAuthCode" : "111111111", #邮箱的授权密码
        "restartOnOffline" : True,
        "daemon": True,
        "pluginPath" : "",
        "plugins" : [
            'qqbot.plugins.sampleslots',
            'qqbot.plugins.schedrestart',
            'tuling',
        ],
      "pluginsConf" : {
          'qqbot.plugins.schedrestart': '8:00', #qqbot每天自动重启的时间
      }
注:
  • qqbot支持掉线后自动重启,但是因 smartqq 协议的限制,无法长时间保持在线状态,每次登录成功后的 cookie 会每在 1 ~ 2 天后失效,将被腾讯服务器强制下线,此时 必须 手工扫码重新登录。可以打开邮箱模式和自动重启模式,并配合 qbot.plugins.schedrestart 插件使用,每天在固定的时间扫码登录一次,基本上可以稳定的保持在线状态。
  • 邮箱的授权密码登录邮箱后获取,163邮箱在设置—常规设置—左侧客户端授权密码,QQ邮箱在设置—账户—POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务—生成授权码
3、修改~/.qqbot-tmp/plugins/tuling.py文件的配置部分
#图灵 api key
TLAPI_KEY = '123456'
#HomeAssistant的密码
HA_PASSWORD = '123456'
#允许控制HA设备的QQ列表
ALLOW_QQ_LIST = ["276859678","258214059"]
4、将附件里的.qqbot-tmp文件夹复制至/home/homeassistant/目录,将custom_components文件夹复制至/home/homeassistant/.homeassistant/目录
1.3 设置qqbot开机启动
将附件里的qqbot文件复制至/etc/init.d/目录之后接着执行下面的命令
sudo chmod +x /etc/init.d/qqbot
最后可以手动尝试启动服务
sudo /etc/init.d/qqbot start
接着在终端中编辑这个文件
sudo nano /etc/rc.local
在 exit 0 上面添加一行
sudo /etc/init.d/qqbot start
这样系统启动时就会随机启动 qqbot 了。
1.4 在HA的配置文件添加QQ通知插件
notify:
  - platform: qq
    name: qqNotify

二、使用方法:
2.1 HA里发送QQ消息通知
        在Services 面板里面测试要注意 message和target都是是必须要的参数。如果要发给qq群请加#group,发给讨论组请加#discuss。例如:
{"message":"下雨了","target":"276859678"}
{"message":"下雨了","target":"123456#group"} 
{"message":"下雨了","target":"侠客行#discuss"} 
QQ截图20170924164010.jpg
2.2 QQ自动聊天+QQ控制智能家居
QQ截图20170927222233.jpg
注:目前控制设备仅支持 打开关闭 两种操作,如果发给机器人的消息是以打开/关闭开头,则自动进入家居控制模式,否则则进入智能聊天模式。
三、其他事项
1、qqbot仅支持文本消息,无法发送图片、文件、音频、 xml 卡片消息
2、二维码的显示模式
      WebQQ 登录时需要用手机 QQ 扫描二维码图片,在 QQBot 中,二维码图片可以通过以下四种模式显示:
  • GUI模式: 在 GUI 界面中自动弹出二维码图片
  • 邮箱模式: 将二维码图片发送到指定的邮箱
  • 服务器模式: 在一个 HTTP 服务器中显示二维码图片
  • 文本模式: 在 Term 中以文本形式展示二维码(需要自行安装 pillow 和 wcwidth 库)

      GUI 模式是默认的模式,只适用于个人电脑。邮箱模式可以适用于个人电脑和远程服务器。服务器模式一般只在有公网 ip 的系统中使用。如果使用 QQ 邮箱来接收二维码,则发送二维码图片之后,手机 QQ 客户端会立即收到通知,在手机 QQ 客户端上打开邮件,再长按二维码就可以扫描了。文本模式方便在开发过程或者服务器部署时使用,为开发者提供快捷方式登陆 QQ 。
      注意:当开启了 邮箱模式/服务器模式/文本模式 时, GUI 模式是关闭的,登陆时不会自动弹出二维码图片。
3、关于qqbot的更多介绍和帮助请访问项目主页了解。
游客,如果您要查看本帖隐藏内容请回复





评分

参与人数 4金钱 +50 收起 理由
BullRom + 5 666!
lidicn + 20 在下对你的景仰犹如滔滔长江之水,连绵不绝.
luzai + 7 666!
+ 18 太厉害了,现在正缺少qq通知呢,谢谢大神!.

查看全部评分

回复

使用道具 举报

15

主题

331

帖子

2390

积分

金牌会员

Rank: 6Rank: 6

积分
2390
金钱
2059
HASS币
10
发表于 2017-9-24 17:42:42 | 显示全部楼层
赞赞赞
回复

使用道具 举报

3

主题

286

帖子

2605

积分

版主

懵懂的小白

Rank: 7Rank: 7Rank: 7

积分
2605
金钱
2319
HASS币
0
发表于 2017-9-24 17:56:52 | 显示全部楼层
谢谢分享,好好学习一下
回复

使用道具 举报

0

主题

114

帖子

3495

积分

论坛元老

Rank: 8Rank: 8

积分
3495
金钱
3381
HASS币
0
发表于 2017-9-24 18:13:01 | 显示全部楼层
谢谢楼主分享。。
回复

使用道具 举报

123

主题

4628

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16077
金钱
11364
HASS币
45
发表于 2017-9-24 18:15:15 | 显示全部楼层
太强大啦,缺啥来啥啊
回复

使用道具 举报

123

主题

4628

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16077
金钱
11364
HASS币
45
发表于 2017-9-24 18:18:11 | 显示全部楼层
看了下代码,果然简单粗暴!楼主号称不懂python都能写出插件,简直太牛了
回复

使用道具 举报

22

主题

359

帖子

3723

积分

元老级技术达人

积分
3723
金钱
3329
HASS币
100

教程狂人

 楼主| 发表于 2017-9-24 18:44:15 | 显示全部楼层
Jones 发表于 2017-9-24 18:18
看了下代码,果然简单粗暴!楼主号称不懂python都能写出插件,简直太牛了

参考wechat那个插件和qqbot的示例代码改,然后一遍遍的调试,哈哈

评分

参与人数 1金钱 +6 收起 理由
+ 6 666!

查看全部评分

回复

使用道具 举报

13

主题

194

帖子

1062

积分

金牌会员

Rank: 6Rank: 6

积分
1062
金钱
868
HASS币
0

教程狂人

发表于 2017-9-24 18:44:41 来自手机 | 显示全部楼层
谢谢分享,十分赞
回复

使用道具 举报

19

主题

457

帖子

8123

积分

元老级技术达人

云淡风轻近午天

积分
8123
金钱
7666
HASS币
0

教程狂人

发表于 2017-9-24 19:51:13 | 显示全部楼层
谢谢分享,要给赞
回复

使用道具 举报

0

主题

86

帖子

911

积分

高级会员

Rank: 4

积分
911
金钱
825
HASS币
0
发表于 2017-9-24 20:29:55 | 显示全部楼层
感谢,厉害了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-14 17:38 , Processed in 0.061535 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表