type
status
date
slug
summary
tags
category
icon
password
🔎产品介绍
产品外观
全网实在找不到相关产品介绍,不确定是小作坊自己做的还是已经灭绝的老物件,所以上小黄鱼图

产品介绍
见上图小黄鱼收购一个8口分监分控且带8个千兆交换机的智能PDU,PDU集成小屏幕可以依次显示8路插座电流、输入电压、总负载等数据。

具备web后台管理控制,见下图
//未开放端口,等回家了上传

!不具备485远程控制协议,买回来之后才发现,找卖家要协议说设备太老了只支持websocket,只有重头研究该协议了。
📖方案概述
使用nodered通过websocket接入
关于websocket,来自AI:
WebSocket协议是一种基于TCP的网络协议,它允许客户端和服务器之间建立持久连接,实现全双工通信。以下是对WebSocket协议的简单介绍及其使用方法:
一、WebSocket协议简介
- 全双工通信:与传统的HTTP请求/响应模式不同,WebSocket协议允许服务器与客户端之间在任何时间点双向自由流动数据,实现了真正的全双工通信。
- 持久连接:WebSocket通过一次握手后建立起持久连接,避免了HTTP协议中每次请求都需要建立新连接的繁琐过程,从而降低了通信延迟和开销。
- 数据类型支持:WebSocket协议不仅支持文本数据的传输,还支持二进制数据(如ArrayBuffer或Blob对象)的传输,这使得它在处理多媒体数据和实时通信方面更具优势。
- 跨域支持:WebSocket协议可以跨域使用,允许不同源的客户端与服务器进行通信,而无需像HTTP协议那样使用额外的跨域处理机制。
- 安全性:WebSocket协议可以使用SSL/TLS协议进行加密(即wss://协议),确保数据的安全传输。
二、WebSocket使用方法
- 创建WebSocket连接:
- 在客户端,可以使用JavaScript的WebSocket构造函数来创建一个WebSocket连接。例如:
这里,
'ws://localhost:8080'是WebSocket服务器的URL。如果是加密连接,则使用'wss://'协议。- 处理连接事件:
- WebSocket提供了几个重要的事件来处理连接的打开、关闭、错误以及接收消息等情况。例如:
- 发送消息:
- 一旦WebSocket连接打开,就可以使用
send方法向服务器发送消息。例如:
- 接收消息:
- 当服务器向客户端发送消息时,客户端的
onmessage事件会被触发,并可以通过事件对象的data属性来获取消息内容。
- 关闭连接:
- 可以使用
close方法来关闭WebSocket连接。例如:
三、进阶用法与注意事项
- 二进制数据的发送与接收:
- WebSocket支持发送和接收二进制数据。在发送二进制数据时,可以使用
ArrayBuffer或Blob对象。在接收二进制数据时,需要将binaryType属性设置为'arraybuffer'或'blob'。
- 心跳检测和重连机制:
- 为了保持WebSocket连接的稳定性,可以实现心跳检测和重连机制。心跳检测可以通过定时发送自定义的心跳消息来实现,而重连则可以在
onclose事件处理器中添加重连逻辑。
- 安全性考虑:
- 在使用WebSocket进行通信时,安全性是一个重要的考虑因素。建议使用
wss://协议来确保数据的安全传输。此外,还需要注意防范中间人攻击、数据篡改等安全风险。
- 跨域问题:
- 虽然WebSocket协议本身支持跨域通信,但在某些情况下(如浏览器安全策略的限制),可能仍然需要使用CORS等机制来进行跨域访问控制。
综上所述,WebSocket协议为Web应用带来了前所未有的交互性和实时性。通过掌握WebSocket的基本用法和进阶技巧,可以构建出更加动态和响应迅速的Web应用。
我的理解:
使用TCP/IP方式进行通讯,分为客户端和服务端,二者需要握手产生连接,每次开始运行只需要握手一次。
🤔 协议分析
协议文本见附件
详情参考附件,这里有几点特别提出:

如图所示提出新更新版本的指令方式有所改变,我的那款需要按照新方式配置。
但是状态响应结果似乎又不太一样,所以状态响应那一块需要自行测试获取逻辑(我的没用那个)
⌨️ 流程代码
点击展开/折叠
🛠️ 节点配置
如下NodeRED配置
点击打开/折叠
右键导入流程后,配置监听服务端连接端口(如无异常默认即可):
状态响应情况概述:
由于我只接入了初次连接及开关控制之后检测对应插座开关状态,然后定时循环获取电流及电量,可以看出在获取数据时并没有开关状态相关的数据: 所以当使用PDU的web后台控制开关之后,开关的状态不能很好的实时反应到homeassistant的开关状态中;我是在配置完其他页面的时候才意识到这个问题的,然后回过头来写了状态反馈的脚本程序,但是测试了几次发现规律不太对;基于设备已经接入插座不方便频繁开关电源且我很少会登录web后台操作PDU所以决定不再配置该内容,如果有人恰好找到同款且想加入该功能,我也预留了配置节点,如下:
- 作者:CHAOS
- 链接:https://tangly1024.com/article/haha3
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章








