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

 找回密码
 立即注册
查看: 7819|回复: 10

[流程系列] 求助---读取Json数据并根据要求显示--红包答谢

[复制链接]

25

主题

640

帖子

2913

积分

金牌会员

Rank: 6Rank: 6

积分
2913
金钱
2263
HASS币
40
发表于 2019-7-14 18:15:33 | 显示全部楼层 |阅读模式
本帖最后由 sasukebinbin 于 2019-7-15 00:39 编辑

求有空有爱心的大神帮忙
纯属自己学习,但是搞了超过5个小时了,还是搞不定

Node red中已经通过http获取到json数据,最终希望根据要求显示出数据
数据结果如下 (这是国外的一个巴士到达时间的数据)
屏幕快照 2019-07-14 下午6.00.25.png
主要做3件事情
1.读取Array中ServiceNo
2.获取每个NextBus中的EstimateArrivial时间并跟当前系统时间进行加减得到分钟数
3.获取NextBus2的EstimateArrivial时间并跟当前系统时间进行加减得到分钟数

最终显示结果为:
ServiceNo "将在" 第2步中得到的分钟数 "分钟和" 第3步中得到的分钟数  "分钟后到达"
...
...
...
例如:
100 将在3分钟和8分钟后到达
200 将在2分钟和5分钟后到达

目前在for loop就遇到了问题
var service= msg.payload.Services;
var len=service.length;
var SvcNo=[];
for (var i=0; i<len; i++){
    SvcNo.push({payload:service[i].ServiceNo});

return [SvcNo];}
返回值只有i=0,没有其他数据。

帮忙写全套的大神,必送红包。
谢谢了,实在没精力研究了

屏幕快照 2019-07-14 下午6.17.01.png


回复

使用道具 举报

8

主题

2073

帖子

6057

积分

论坛元老

流水无味

Rank: 8Rank: 8

积分
6057
金钱
3984
HASS币
145

灌水之王

发表于 2019-7-14 18:27:57 | 显示全部楼层

回帖奖励 +1 金钱

路过帮顶 学习下
回复

使用道具 举报

27

主题

2143

帖子

8940

积分

论坛元老

Rank: 8Rank: 8

积分
8940
金钱
6792
HASS币
30

论坛元老

发表于 2019-7-14 21:50:53 | 显示全部楼层
感觉好像不难的样子,菜鸡围观一下
回复

使用道具 举报

25

主题

640

帖子

2913

积分

金牌会员

Rank: 6Rank: 6

积分
2913
金钱
2263
HASS币
40
 楼主| 发表于 2019-7-14 23:24:28 | 显示全部楼层
有没有大神抽空来帮忙一下
回复

使用道具 举报

9

主题

242

帖子

1792

积分

金牌会员

Rank: 6Rank: 6

积分
1792
金钱
1550
HASS币
0
发表于 2019-7-15 07:26:42 | 显示全部楼层
找花老板~!~!~支持几个静态~!~!支持下论谈,。。分分钟有人帮你搞定
回复

使用道具 举报

8

主题

2073

帖子

6057

积分

论坛元老

流水无味

Rank: 8Rank: 8

积分
6057
金钱
3984
HASS币
145

灌水之王

发表于 2019-7-15 07:28:40 | 显示全部楼层
oemsys 发表于 2019-7-15 07:26
找花老板~!~!~支持几个静态~!~!支持下论谈,。。分分钟有人帮你搞定

对 就是买一组静态, 花老板又是这行家 分分钟搞定!
回复

使用道具 举报

23

主题

1338

帖子

6761

积分

超级版主

Rank: 8Rank: 8

积分
6761
金钱
5398
HASS币
100

教程狂人

发表于 2019-7-15 09:11:03 | 显示全部楼层
javascript的问题吗?可以群里面找下我
回复

使用道具 举报

25

主题

640

帖子

2913

积分

金牌会员

Rank: 6Rank: 6

积分
2913
金钱
2263
HASS币
40
 楼主| 发表于 2019-7-15 14:25:40 | 显示全部楼层
natic 发表于 2019-7-15 09:11
javascript的问题吗?可以群里面找下我

感谢natic大神,在大神的全力支持下,终于成功了。
代码跟大家分享一下
难点估计就是最后一行了
自己估计不知道要学习多少才能发现
var end = [];
for (var i = 0; i < msg.payload.Services.length; i++) {
 var serviceNo = msg.payload.Services[i].ServiceNo;
 var nextBus = Math.round((new Date(msg.payload.Services[i].NextBus.EstimatedArrival) - new Date()) / 1000 / 60 );
 var nextBus2 = Math.round((new Date(msg.payload.Services[i].NextBus2.EstimatedArrival) - new Date()) / 1000 / 60 );
 var e = serviceNo + "将在" + nextBus + "分钟和" + nextBus2 + "分钟后到达";
 end.push(e);
}
return {payload:end};


接下来考虑怎么把得到的数据,通过MQTT输出到HA
回复

使用道具 举报

2

主题

287

帖子

996

积分

论坛积极会员

积分
996
金钱
709
HASS币
0
发表于 2019-7-15 15:32:30 | 显示全部楼层
02.png 01.png
借贴解惑,尝试做个流程,类似这样子的要怎样取数到mqtt里面?取完数后能否把一部分参数作为Attributes参数,而不是states?
回复

使用道具 举报

25

主题

640

帖子

2913

积分

金牌会员

Rank: 6Rank: 6

积分
2913
金钱
2263
HASS币
40
 楼主| 发表于 2019-7-15 17:18:59 | 显示全部楼层
哈哈 你走的快了点,不过你是对的。我现在数据获取到了,但是不知道是不是传到了mqtt里面,HA里面的Sensor也不知道写的对不对。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-4 16:21 , Processed in 0.073376 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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