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

 找回密码
 立即注册
查看: 190|回复: 1

[教程系列] 解决nodejs不支持http0.9导致http请求插件HPE_INVALID_CONSTANT问题

[复制链接]

1

主题

4

帖子

224

积分

中级会员

Rank: 3Rank: 3

积分
224
金钱
220
HASS币
0
发表于 2024-12-22 18:56:20 | 显示全部楼层 |阅读模式
本帖最后由 tplnet 于 2024-12-22 19:00 编辑

因为使用的是中弘VRF,而且因为是米家版本没有启动TCP的端口,所以一直通过miot接入



但在经历了一次断网时HA无法控制以后,因为有以太网口可以用web控制,所以决定插网线ha直连
于是参考https://bbs.hassbian.com/thread-7865-1-1.html试图通过web控制页面进行控制,发现其中的"查询网关"和“请求网关”一直报错HPE_INVALID_CONSTANT,但是API手动访问时候报错

感到奇怪所以用cURL请求了一下,发现提示
curl: (1) Received HTTP/0.9 when not allowed


所以尝试了下加--http0.9能够访问

于是参考https://bbs.hassbian.com/thread-20514-1-1.html,用子进程curl替代了nodered的http请求插件:
1、增加一个function节点
2、设置:
模块名称child_process,导入为childProcess;
3、运行函数:
var buff = childProcess.execSync(`
curl --http0.9 -L -X GET -u admin: '${msg.url}'
`);
var data = buff.toString();
msg.payload = JSON.parse(data);
return msg;
4、用它替换"查询网关"和“请求网关”

5、修正“合成”这个节点中的URL
6、done

回复

使用道具 举报

12

主题

1451

帖子

4611

积分

论坛元老

Rank: 8Rank: 8

积分
4611
金钱
3160
HASS币
0
发表于 2024-12-22 20:08:20 | 显示全部楼层
高,实在是高
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-1-22 09:23 , Processed in 0.047154 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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