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

标题: 钉钉应用机器人接收和推送消息 [打印本页]

作者: dreamyuf    时间: 2023-8-29 23:56
标题: 钉钉应用机器人接收和推送消息
本帖最后由 dreamyuf 于 2024-6-20 13:28 编辑

node-red钉钉应用机器人接收消息 - 『Node-RED』综合讨论区 - 『瀚思彼岸』» 智能家居技术论坛 - Powered by Discuz! (hassbian.com)
钉钉应用消息推送 - 『Node-RED』综合讨论区 - 『瀚思彼岸』» 智能家居技术论坛 - Powered by Discuz! (hassbian.com)

在早上发帖的基础上,学习了既有的帖子,同样,钉钉设置部分看别人的帖子吧。

其实群里都有相关的内容,我自己研究的时候走了些弯路,群里发的很多细节都没有讲,所以用起来不那么顺畅,既然我自己都研究好了,就不麻烦大家再研究了。
1.钉钉机器人可以单聊推送、可以群推送,目前都是群推送
2.钉钉机器人有两种,目前写的都是后台创建应用的。[attach]51059[/attach]


--------------------2024-6-20更新消息队列-------------

[attach]60524[/attach]

作者: dreamyuf    时间: 2023-8-30 08:56
[attach]51061[/attach]

作者: 心之向阳    时间: 2023-8-30 22:09
感谢,请问一下G_openConversationId如何获取
作者: 心之向阳    时间: 2023-8-30 22:33
补充一下,本人也是小白,群会话ID(chatId/openConversationId)
获取教程:https://open.dingtalk.com/docume ... ition#35531e30ffynt,群会话ID(chatId/openConversationId)获取地址:https://open-dev.dingtalk.com/ap ... onversationByCorpId,填写corpId即可,其它保持默认,手机扫描二维码,选择需要调试的机器人,即可得到chatId/openConversationId
作者: dreamyuf    时间: 2023-8-30 22:35
心之向阳 发表于 2023-8-30 22:09
感谢,请问一下G_openConversationId如何获取

登录开发者后台后,打开这个路径,按照说明操作就可以了
https://open.dingtalk.com/tools/explorer/jsapi?id=10303
作者: 心之向阳    时间: 2023-8-30 22:40
后面自己解决了
作者: 心之向阳    时间: 2023-8-30 22:42
咨询一下,这样弄好之后,ha如何调用和使用通知,谢谢
作者: 心之向阳    时间: 2023-8-30 22:46
需要在config.yaml里面添加下面这个代码吗

notify:
  - platform: dingtalk_notify
    name: dingtalk        # 实体ID  比如这个出来就是notify.dingtalk
    appkey:               # 这个是钉钉应用里面新建应用的应用AppKey
    appsecret:            # 这个是钉钉应用里面新建应用的应用AppSecret
    touser: 'userid1'     # 默认接收者,用户的userid,每次最多传20个。: 如:userid1|userid2|userid3,在钉钉管理后台——内部通讯录管理——成员详情的最上显示“员工UserID”。
    https_proxies: username:[email protected]:8080   #支持https的代理服务器地址(可选项)初步测试公共代理可以使用
    resource: http://XXX.XXX.XXX.XXX:1880/endpoint   #选配服务器中转地址(可选项),默认为: https://api.dingtalk.com ,可设置为 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 (可选项)
作者: dreamyuf    时间: 2023-8-30 22:48
在nodered里面读取ha里面的家居数据,处理后,利用这个接口发送信息到钉钉群,或者在钉钉群@机器人,收到后判断指令,连接ha执行操作家居设备就可以了,附一个读取ha的天气的模块,构建了需要发送的信息,连接上发送程序就可以了发到钉钉群了
  1. [
  2.     {
  3.         "id": "fd0b37d28f4ca7ad",
  4.         "type": "api-current-state",
  5.         "z": "b07b9e629f1e3946",
  6.         "name": "家里感觉温度",
  7.         "server": "0d791a796fc66ffe",
  8.         "version": 3,
  9.         "outputs": 1,
  10.         "halt_if": "",
  11.         "halt_if_type": "str",
  12.         "halt_if_compare": "is",
  13.         "entity_id": "sensor.wo_de_jia_gan_jue_wen_du",
  14.         "state_type": "str",
  15.         "blockInputOverrides": false,
  16.         "outputProperties": [
  17.             {
  18.                 "property": "payload",
  19.                 "propertyType": "msg",
  20.                 "value": "",
  21.                 "valueType": "entityState"
  22.             },
  23.             {
  24.                 "property": "data",
  25.                 "propertyType": "msg",
  26.                 "value": "wo_de_jia_gan_jue_wen_du",
  27.                 "valueType": "str"
  28.             }
  29.         ],
  30.         "for": "0",
  31.         "forType": "num",
  32.         "forUnits": "minutes",
  33.         "override_topic": false,
  34.         "state_location": "payload",
  35.         "override_payload": "msg",
  36.         "entity_location": "data",
  37.         "override_data": "msg",
  38.         "x": 340,
  39.         "y": 540,
  40.         "wires": [
  41.             [
  42.                 "fc7565f511ea7c7c"
  43.             ]
  44.         ]
  45.     },
  46.     {
  47.         "id": "fc7565f511ea7c7c",
  48.         "type": "function",
  49.         "z": "b07b9e629f1e3946",
  50.         "name": "温度查询处理",
  51.         "func": "let message = {\n    "title": "温度查询",\n    "text": "#### 家里的温度 \\n > 感知温度:"+msg.payload+"°C"\n}\nlet dmsg = {\n    "msgParam": JSON.stringify(message),\n    "msgKey": "sampleMarkdown",\n\n}\n\nglobal.set("dingMsg", JSON.stringify(dmsg));\nreturn msg;",
  52.         "outputs": 1,
  53.         "noerr": 0,
  54.         "initialize": "",
  55.         "finalize": "",
  56.         "libs": [],
  57.         "x": 540,
  58.         "y": 540,
  59.         "wires": [
  60.             [
  61.                 "02b5c8ae84c5521f"
  62.             ]
  63.         ]
  64.     },
  65.     {
  66.         "id": "0d791a796fc66ffe",
  67.         "type": "server",
  68.         "name": "Home Ass",
  69.         "version": 5,
  70.         "addon": false,
  71.         "rejectUnauthorizedCerts": true,
  72.         "ha_boolean": "y|yes|true|on|home|open",
  73.         "connectionDelay": true,
  74.         "cacheJson": true,
  75.         "heartbeat": false,
  76.         "heartbeatInterval": "30",
  77.         "areaSelector": "friendlyName",
  78.         "deviceSelector": "friendlyName",
  79.         "entitySelector": "friendlyName",
  80.         "statusSeparator": ": ",
  81.         "statusYear": "hidden",
  82.         "statusMonth": "short",
  83.         "statusDay": "numeric",
  84.         "statusHourCycle": "default",
  85.         "statusTimeFormat": "h:m",
  86.         "enableGlobalContextStore": false
  87.     }
  88. ]
复制代码




作者: dreamyuf    时间: 2023-8-30 22:50
心之向阳 发表于 2023-8-30 22:46
需要在config.yaml里面添加下面这个代码吗

notify:

你说的这个是ha里的机器人,我发的是node red的机器人,不是一个东西。
他的这个是直接发送给指定人的,属于单聊
作者: 心之向阳    时间: 2023-8-30 22:52
dreamyuf 发表于 2023-8-30 22:50
你说的这个是ha里的机器人,我发的是node red的机器人,不是一个东西。
他的这个是直接发送给指定人的, ...

那这个node-red的机器人如何使用,可以联动ha吗

作者: dreamyuf    时间: 2023-8-30 22:56
心之向阳 发表于 2023-8-30 22:52
那这个node-red的机器人如何使用,可以联动ha吗

可以联动,我发的代码导入到node red里面,修改下参数配置,就可以用了,功能全部测试过。
作者: 心之向阳    时间: 2023-8-30 22:57
dreamyuf 发表于 2023-8-30 22:48
在nodered里面读取ha里面的家居数据,处理后,利用这个接口发送信息到钉钉群,或者在钉钉群@机器人,收到后 ...

代码方便导个json格式吗,提示错误e = {\n    "title": "温度查,谢谢
作者: dreamyuf    时间: 2023-8-30 23:05
心之向阳 发表于 2023-8-30 22:57
代码方便导个json格式吗,提示错误e = {\n    "title": "温度查,谢谢

最新的已经发给你了,注意查收
作者: isw866    时间: 2023-9-12 11:36
dreamyuf 发表于 2023-8-30 23:05
最新的已经发给你了,注意查收

能否分享一下json文件,多谢
作者: a_dongde    时间: 2024-3-10 23:04
可否反向控制?
作者: dreamyuf    时间: 2024-3-19 12:58
a_dongde 发表于 2024-3-10 23:04
可否反向控制?

可以通过钉钉给NR发信息,NR收到指令后根据指令来响应
作者: a_dongde    时间: 2024-3-19 14:54
dreamyuf 发表于 2024-3-19 12:58
可以通过钉钉给NR发信息,NR收到指令后根据指令来响应

大佬这个怎么操作?
作者: dreamyuf    时间: 2024-3-19 20:46
a_dongde 发表于 2024-3-19 14:54
大佬这个怎么操作?

NR上用这个模块

                               
登录/注册后可看大图

钉钉回调地址填写nr地址:1880/dingtalk,就能收到信息了

作者: snowing    时间: 2024-6-4 19:16
dreamyuf 发表于 2023-8-30 23:05
最新的已经发给你了,注意查收

同样的问题,大佬可以发一下吗
作者: a_dongde    时间: 2024-6-15 21:35
dreamyuf 发表于 2024-3-19 20:46
NR上用这个模块

钉钉回调地址填写nr地址:1880/dingtalk,就能收到信息了

大佬如何确定我URL地址设定正确了?  目前单向消息测试已经可以了,就是发送个机器人的消息这个地址无法验证是否正确。
作者: dreamyuf    时间: 2024-6-20 13:12
a_dongde 发表于 2024-6-15 21:35
大佬如何确定我URL地址设定正确了?  目前单向消息测试已经可以了,就是发送个机器人的消息这个地址无法 ...

在NR上做下debug就可以看到是否收到信息了
作者: dreamyuf    时间: 2024-6-20 13:23
snowing 发表于 2024-6-4 19:16
同样的问题,大佬可以发一下吗

[attach]60522[/attach]

直接导入,修改定义参数即可

作者: dreamyuf    时间: 2024-6-20 13:24
snowing 发表于 2024-6-4 19:16
同样的问题,大佬可以发一下吗

[attach]60523[/attach]

直接导入,修改定义参数即可

作者: a_dongde    时间: 2024-6-20 14:27
dreamyuf 发表于 2024-6-20 13:12
在NR上做下debug就可以看到是否收到信息了

NR中没有收到消息,,不知道怎么确认这个回调地址是否正确。目前只能单向发消息,回复给钉钉机器人的消息流程中无法收到。




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5