本帖最后由 dscao 于 2023-5-11 16:56 编辑
2022.7.1 企业微信自建应用消息新增功能
1、支持代理服务器设置
2、支持接口中转服务器设置
服务器安装node-red,服务器的IP加入可信服务器列表
----------
钉钉群机器人消息
HomeAssistant 钉钉群机器人消息推送
修改自:
修改: 1、支持加签功能
2、支持消息类型 type
配置:
notify:
- platform: dingtalk_robot
name: dingtalk # 实体ID 比如这个出来就是notify.dingtalk
resource: https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxxxxxxxxx #机器人向钉钉群推送消息的Webhook地址
secret: SECxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx #加签密钥 ,未加签不填写此行。
复制代码
调用服务:
service: notify.dingtalk #调用服务
data:
message: 消息内容
target:
- at的手机号1
- at的手机号2
- at的手机号3
service: notify.dingtalk
data:
message: 发送纯文本消息,当前时间:{{now().strftime('%Y-%m-%d %H:%M:%S')}}
service: notify.dingtalk
data:
message: 发送带标题和分隔线的纯文本消息,我就是我, @XXX 是不一样的烟火
title: 这是标题
service: notify.dingtalk
data:
message: 发送带标题和内容的链接卡片
title: 这是标题
data:
type: link
url: 'https://www.dingtalk.com/'
picurl: 'https://gw.alicdn.com/imgextra/i2/O1CN01r4HyWa20OJS6nSgeK_!!6000000006839-2-tps-386-80.png'
service: notify.dingtalk
data:
message: "#### 杭州天气 @150XXXXXXXX \n > 9度,西北风1级,空气良89,相对温度73%\n > ![screenshot](https://img.alicdn.com/tfs/TB1NwmBEL9TBuNjy1zbXXXpepXa-2400-1218.png)\n > ###### 10点20分发布 [天气](https://www.dingtalk.com) \n"
title: 这是标题
data:
type: markdown
service: notify.dingtalk
data:
message: "![screenshot](https://gw.alicdn.com/tfs/TB1ut3xxbsrBKNjSZFpXXcXhFXa-846-786.png) ### 乔布斯 20 年前想打造的苹果咖啡厅 Apple Store 的设计正从原来满满的科技感走向生活化,而其生活化的走向其实可以追溯到 20 年前苹果一个建立咖啡馆的计划"
title: 这是标题,整体跳转ActionCard类型
data:
type: actionCard
url: 'https://www.dingtalk.com/'
复制代码
企业微信群机器人消息
HomeAssistant 企业微信群机器人消息推送
功能限制:
群机器人推送消息必须要到企业微信中才能看到,微信插件无法查看,不能同步到个人微信中。
25楼反映个人微信中是可以同步企业微信群聊消息的,经测试确实可以。
配置:
notify:
- platform: wework_robot
name: wework_robot
resource: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx #自己的机器人地址
复制代码
调用服务:
service: notify.wework_robot #调用服务
data:
message: 消息内容(仅发送文本消息时at手机号才有效)
target:
- at的手机号1
- at的手机号2
- at的手机号3
service: notify.wework_robot
data:
message: 发送纯文本消息,当前时间:{{now().strftime('%Y-%m-%d %H:%M:%S')}}
service: notify.wework_robot
data:
message: 发送带标题和分隔线的纯文本消息
title: 这是标题
service: notify.wework_robot
data:
message: "实时新增用户反馈<font color="warning">132例</font>,请相关同事注意。\n >类型:<font color="comment">用户反馈</font>\n >普通用户反馈:<font color="comment">117例</font>\n >VIP用户反馈:<font color="comment">15例</font>"
title: 这是标题
data:
type: markdown
service: notify.wework_robot
data:
message: 发送图片,标题和消息都不显示
data:
type: image
imagepath: /config/www/1.jpg
service: notify.wework_robot
data:
message: 发送带标题、内容和头图的链接卡片
title: 这是标题
data:
type: news
url: 'http://www.sogou.com'
picurl: 'https://bbs.hassbian.com/static/image/common/logo.png'
service: notify.wework_robot
data:
message: 发送图片文件,标题和消息都不显示
data:
type: file
filepath: /config/www/1.jpg
service: notify.wework_robot
data:
message: 发送mp3文件,标题和消息都不显示
data:
type: file
filepath: /config/www/1.mp3
service: notify.wework_robot
data:
message: 发送mp4文件,标题和消息都不显示
data:
type: file
filepath: /config/www/1.mp4
复制代码
效果:
企业微信自建应用论坛修改加强版
https://bbs.hassbian.com/thread-16924-1-1.html
https://bbs.hassbian.com/thread-12547-1-1.html
https://bbs.hassbian.com/thread-7128-1-1.html
企业微信官方相关文档:
https://open.work.weixin.qq.com/help2/pc/15381
https://developer.work.weixin.qq.com/document/path/90236
jijngpengboo 和 27hh 版本基础再修改的版本。
需求:
《[进阶教程] 根据论坛 27hh大大的企业微信插件修改推送本地图片到微信》 增加了本地图片上传到企业微信空间的功能,没有公网或透传的网络也可以使用。这也就优化了访问图片的速度和稳定性,这点是很好的。
但有些情况下还是需要使用网络图片的,比如:车辆定位地图的推送。
修改: (主要针对news类型消息)
1、同时支持本地上传图片和网络地址的图片
优先使用imagepath上传本地图片,如果 imagepath 本地址图片不存在或未填写时使用 picurl 网络地址。
如果 picurl 网络地址也未配置,则发送无图片带标题的链接卡片(与原来的一致)
url 不填写则使用图片的链接
2、增加 target 微信接收者。
3、同时支持news和mpnews类型,mpnews类型时,必须为本地图片上传。可使用safe: 1 为保密消息。4、支持代理服务器设置(暂无有效代理服务器,未测试)
5、支持接口中转服务器设置(node-red已测试)
配置:
notify:
- platform: wework_notify
name: wework # 实体ID 比如这个出来就是notify.wework
corpid: # 这个是企业微信的企业id
agentId: "1000002" # 这个是企业微信里面新建应用的应用id
secret: # 这个是企业微信里面新建应用的应用secret
touser: '@all' # 默认接收者, @all为全体成员,也可用具体ID: 如:userid1|userid2|userid3
https_proxies: username:[email protected] :8080 #支持https的代理服务器地址(可选项)
resource: http://XXX.XXX.XXX.XXX:1880/endpoint #选配服务器中转地址(可选项),默认为: https://qyapi.weixin.qq.com/cgi-bin ,可设置为 http:xxx.xxx.com:1880/endpoint 或 http:xxx.xxx.com:1880(具体根据node-red的设置)
resource_username: username #选配服务器中转基本认证用户 如 node-red中的http_node username (可选项)
resource_password: password #选配服务器中转地址认证密码 如 node-red中的http_node password (可选项)
复制代码
调用服务:
基本格式:
service: notify.wework #调用服务
data:
message: 消息内容
target: '接收者ID1|接收者ID2|接收者ID3'
service: notify.wework #调用服务
data:
message: 消息内容
target:
- 接收者ID1
- 接收者ID2
- 接收者ID3
复制代码
参考格式:
service: notify.wework
data:
message: 发送纯文本消息,当前时间:{{now().strftime('%Y-%m-%d %H:%M:%S')}}
service: notify.wework
data:
message: 发送带标题和分隔线的纯文本消息
title: 这是标题
service: notify.wework
data:
message: ''
title: 发送带标题的链接卡片
data:
type: news
url: 'http://www.sogou.com'
service: notify.wework
data:
message: 发送带标题和内容的链接卡片
title: 这是标题
data:
type: textcard
url: 'http://www.sogou.com'
service: notify.wework
data:
message: 发送带标题、内容和头图的链接卡片,优先使用上传本地图片,本地址图片不存在时或未配置时使用 picurl网络地址
title: 这是标题
data:
type: news
url: 'http://www.sogou.com'
picurl: 'https://bbs.hassbian.com/static/image/common/logo.png'
imagepath: /config/www/1.jpg
service: notify.wework
data:
message: 发送带标题、内容和头图的链接卡片,上传本地图片,mpnews消息与news消息类似,不同的是图文消息内容存储在微信后台,并且支持保密选项(safe: 1,不填写默认为0)。每个应用每天最多可以发送100次。
title: 这是标题
data:
type: mpnews
url: 'http://www.sogou.com'
imagepath: /config/www/1.jpg
safe: 1
service: notify.wework
data:
message: 发送带标题、内容和头图的链接卡片
title: 推送视频
data:
type: video
videopath: /config/www/1.mp4
safe: 0
复制代码
示例:
service: notify.wechat
data:
title: 小汽车当前位置:{{states('sensor.mycar_loc')}}
message: "状态刷新时间:{{state_attr('device_tracker.gddr_gooddriver',
'querytime')}}{{'\r\n'}}车辆状态:{{state_attr('device_tracker.gddr_gooddriver',
'status')}}{{'\r\n'}}到达位置时间:{{state_attr('device_tracker.gddr_gooddriver',
'updatetime')}}{{'\r\n'}}停车时长:{{state_attr('device_tracker.gddr_gooddriver',
'parking_time')}}{{'\r\n'}}当前速度:{{state_attr('device_tracker.gddr_gooddriver',
'speed') | round(1) }}km/h"
data:
type: news
url: "https://uri.amap.com/marker?position={{state_attr('device_tracker.gddr_gooddriver',
'longitude')+0.00555}},{{state_attr('device_tracker.gddr_gooddriver',
'latitude')-0.00240}}"
picurl: "https://restapi.amap.com/v3/staticmap?zoom=14&size=1024*512&markers=large,,A:{{state_attr('device_tracker.gddr_gooddriver',
'longitude')+0.00555}},{{state_attr('device_tracker.gddr_gooddriver',
'latitude')-0.00240}}&key=819cxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
复制代码
效果:
安装:
下载附件解压后放到custom_components中,重启ha,再到配置放到configuration.yaml中,再重启。
自动化或脚本参考:
alias: 摄像头截图并推送微信
sequence:
- service: camera.snapshot
data:
filename: /config/www/camera/camera_outdoor.jpg
target:
entity_id: camera.surveillance_ipcamoutdoor
- service: notify.wechat
data:
target: cls
title: 门前摄像头截图
message: 摄像头截图
data:
type: news
imagepath: /config/www/camera/camera_outdoor.jpg
mode: single
复制代码
alias: 摄像头录制并推送微信
sequence:
- service: camera.record
data:
filename: /config/www/camera/camera_outdoor.mp4
duration: 10
target:
entity_id: camera.surveillance_ipcamoutdoor
- service: notify.wechat
data:
target: cls
title: 门前摄像头录制片段
message: 摄像头截图
data:
type: video
videopath: /config/www/camera/camera_outdoor.mp4
mode: single
复制代码
还一个钉钉内部应用,与微信企业应用也差不多。问题还是对“填写机器人的公网IP"为必填项,ha的环境基本不太适合了,至少需要相对固定的IP或一台代理服务器。
如果微信企业应用以后申请的应用也改为必填项,可能就只能使用功能简单点的群机器人消息了。
其实只需要一个适合自己的就好了,取自己需要用的就好。
这个前人已经有了代码了,整理这个难度很小,但是费时间费精力,总算是初步完成了这个集合。