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

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

[流程系列] Node-RED正确传递中文字符串

[复制链接]

7

主题

67

帖子

348

积分

中级会员

Rank: 3Rank: 3

积分
348
金钱
281
HASS币
0
发表于 2024-3-8 02:26:54 | 显示全部楼层 |阅读模式
本帖最后由 leung 于 2024-3-8 15:33 编辑

我的空气净化器fan_level是select实体,可选一档至五档,开发者工具查过确实是中文字符(应该是被xiaomi-miot翻译过)
select.bj352_y106m_58c8_fan_level
options:
  - 一档
  - 二档
  - 三档
  - 四档
  - 五档
为加入homekit使用,利用function节点,将homekit的1-17级映射为一档至五档(下为代码) {YKZ@TIKKZKSR9OMH2~D~FE.png
//风速档位映射
var value = parseInt(msg.payload.RotationSpeed);

// 使用 if...else if...else 语句将数值映射到档位
if (value >= 1 && value <= 4) {
    msg.payload = "一档";
} else if (value <= 7) {
    msg.payload = "二档";
} else if (value <= 10) {
    msg.payload = "三档";
} else if (value <= 14) {
    msg.payload = "四档";
} else if (value > 14) {
    msg.payload = "五档";
} else {
    msg.payload = "无效的数值";
}

// 将处理后的结果传递给下一个节点
return msg;

问题出在最后call service上,一至五档传递到msg.payload时,由于是中文字符,必须用双引号引住(如“一档”),而select option下数据填充需要中文字符没有双引号(如  一档)才能正常操作,否则报错error
{8})7H5L]ULA5(FMK6_H1BG.png
{"option":"msg.payload"} 
相当于以下写法可以执行操作
{"option":"三档"}
以下写法不能执行
{"option":""三档""}
怎么才能将传递到msg.payload时中文字符不带双引号?或者有什么写法规定?###########################################################################
二楼大哥提点,数据一栏语法错误,修改为以下代码,完美执行
{"option": msg.payload}
版主看到可以帮我移动到『HomeAssistant』求助&解答专区 【已解决】

回复

使用道具 举报

23

主题

631

帖子

4348

积分

元老级技术达人

积分
4348
金钱
3702
HASS币
30

教程狂人

QQ
发表于 2024-3-8 07:48:36 | 显示全部楼层
{"option":"msg.payload"}  中的msg.payload为什么要加双引号?如果你要引用msg.payload中的值,正确写法应该是{"option": msg.payload}
回复

使用道具 举报

7

主题

67

帖子

348

积分

中级会员

Rank: 3Rank: 3

积分
348
金钱
281
HASS币
0
 楼主| 发表于 2024-3-8 15:30:11 | 显示全部楼层
alei643 发表于 2024-3-8 07:48
{"option":"msg.payload"}  中的msg.payload为什么要加双引号?如果你要引用msg.payload中的值,正确写法应 ...

原来如此,我不太懂node red里面的语法,直接引用例子改写的。
测试了一下,完美实现了,谢谢~
回复

使用道具 举报

2

主题

341

帖子

2322

积分

金牌会员

Rank: 6Rank: 6

积分
2322
金钱
1976
HASS币
30
发表于 2024-3-11 13:18:12 | 显示全部楼层
另一写法就是左面改json格式然后
{"option": {{msg.payload}}}
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-29 21:46 , Processed in 0.217333 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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