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

 找回密码
 立即注册
查看: 1771|回复: 3

[教程系列] node-red 之 一键重启容器

[复制链接]

14

主题

430

帖子

2697

积分

金牌会员

Rank: 6Rank: 6

积分
2697
金钱
2267
HASS币
0
发表于 2022-7-30 17:17:03 | 显示全部楼层 |阅读模式
本帖最后由 ylilike 于 2022-7-30 18:00 编辑

有时候需要重要一下容器,不管是用命令
docker restart container_name

或者

                               
登录/注册后可看大图
进入 portainer 选中 container_name重启
总归是有点繁琐……
那么问题来了,有什么简单方便的方法,或者,做个开关一键重启呢?
答案显然是 :yes
前置条件要有portainer,重启调用了portainer API 的 restart 命令抓登陆包
首先,打开浏览器,按F12开发者工具,然后,登陆一下portainer,找到auth

                               
登录/注册后可看大图
得到request:
Request URLUL
Request Method
POST
Request payload
{"username":"admin","password":"12342234"}
响应的结果为:
{"jwt":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJhZG1pbiIsInJvbGUiOjEsInNjb3BlIjoiZGVmYXVsdCIsImV4cCI6MTY1Nzc5Mjg0M30.C51VqcP2F_YwaLceMAufxxQE-ufvMxcvkk6XQ2V4zyc"}

这就是auth验证的关键
在node-red中构造请求

                               
登录/注册后可看大图
payload 用 function ,内容如下:

                               
登录/注册后可看大图
点击时间戳,得到 jwt认证token

                               
登录/注册后可看大图
抓取重启的包
有了token再来抓个重启的包:

                               
登录/注册后可看大图
Request URLUL
Request Method
POST
Request payload
{}
url中那一长串,是容器的id

                               
登录/注册后可看大图
auth 已经在上一步获取到了,万事俱备,只欠构造!
构造重启请求

                               
登录/注册后可看大图
auth调用上步登陆取的jwt值,写进headers中,id值从portainer中取到。

                               
登录/注册后可看大图
request节点请求方式选 : 用msg method 设定

                               
登录/注册后可看大图
这样就可以手动从node-red中重启容器了。
home-assistant 中调用一键重启
这方式就多种多样了,我就拿mqtt来做个开关,一键重启了。
做一个虚拟的mqtt开关
switch:
  - platform: mqtt
    name: "重启smb"
    state_topic: "/restart_smb/stat"
    command_topic: "/restart_smb/cmmd"
    payload_on: "on"
    payload_off: "off"

写入home-assistant的配置文件中并重启。
然后到node-red中加入 mqtt 做关联:如下图

                               
登录/注册后可看大图
导出的流分享如下:
详见附件


onekeyrestart.zip

2.06 KB, 下载次数: 1

若然,一切若然~
回复

使用道具 举报

8

主题

171

帖子

2457

积分

金牌会员

Rank: 6Rank: 6

积分
2457
金钱
2286
HASS币
0
发表于 2022-7-30 17:47:18 来自手机 | 显示全部楼层
看起来不错
回复

使用道具 举报

8

主题

365

帖子

3973

积分

论坛元老

Rank: 8Rank: 8

积分
3973
金钱
3608
HASS币
10
发表于 2022-7-30 21:28:30 | 显示全部楼层
容器id好像是会变的,期待有更好的方法
回复

使用道具 举报

14

主题

430

帖子

2697

积分

金牌会员

Rank: 6Rank: 6

积分
2697
金钱
2267
HASS币
0
 楼主| 发表于 2022-7-31 11:33:09 | 显示全部楼层
s2233 发表于 2022-7-30 21:28
容器id好像是会变的,期待有更好的方法

你不升级 修改就不会变,不过,可以获取ID的,流我也写好了
若然,一切若然~
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-22 07:08 , Processed in 0.331653 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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