第一步:在节点管里下载“weather”,并安装,如下图:
image.png
第二步:在侧边栏找到“weather”并拖入流程,如下图:
image.png
第三步:在流程中拖入“function”,并写入以下代码,如下图:
let code;
code = msg.payload.current.weather;
switch(code) {
case '0':
status = '晴'
break;
case '1':
status = '多云'
break;
case '2':
status = '阴'
break;
case '3':
status = '阵雨'
break;
case '4':
status = '雷阵雨'
break;
case '5':
status = '雷阵雨并伴有冰雹'
break;
case '6':
status = '雨夹雪'
break;
case '7':
status = '小雨'
break;
case '8':
status = '中雨'
break;
case '9':
status = '大雨'
break;
case '10':
status = '暴雨'
break;
case '11':
status = '大暴雨'
break;
case '12':
status = '特大暴雨'
break;
case '13':
status = '阵雪'
break;
case '14':
status = '小雪'
break;
case '15':
status = '中雪'
break;
case '16':
status = '大雪'
break;
case '17':
status = '暴雪'
break;
case '18':
status = '雾'
break;
case '19':
status = '冻雨'
break;
case '20':
status = '沙尘暴'
break;
case '21':
status = '小雨转中雨'
break;
case '22':
status = '中雨转大雨'
break;
case '23':
status = '大雨转暴雨'
break;
case '24':
status = '暴雨转大暴雨'
break;
case '25':
status = '大暴雨转特大暴雨'
break;
case '26':
status = '小雪转中雪'
break;
case '27':
status = '中雪转大雪'
break;
case '28':
status = '大雪转暴雪'
break;
case '29':
status = '浮沉'
break;
case '30':
status = '扬沙'
break;
case '31':
status = '强沙尘暴'
break;
case '32':
status = '飑'
break;
case '33':
status = '龙卷风'
break;
case '34':
status = '若高吹雪'
break;
case '35':
status = '轻雾'
break;
case '53':
status = '霾'
break;
case '99':
status = '未知'
break;
default:
status = '无数据'
break;
}
return msg;
第四步:在流程中拖入“debug”,用于监测调试窗口,如下图:
image.png
第五步:在流程中拖入“link in”、“linkout”用于做输入输出链接,如下图:
image.png
第六步:根据需要显示的数据,在流程中拖入“function”,标注相对应的功能,这里我做的比较全面,依次按照顺序代码如下:
1,获取天气类型:
var result = {
payload: ""
}
var tq = msg.payload.current.weather;
switch(tq) {
case '0':
result.payload = '晴'
break;
case '1':
result.payload = '多云'
break;
case '2':
result.payload = '阴'
break;
case '3':
result.payload = '阵雨'
break;
case '4':
result.payload = '雷阵雨'
break;
case '5':
result.payload = '雷阵雨并伴有冰雹'
break;
case '6':
result.payload = '雨夹雪'
break;
case '7':
result.payload = '小雨'
break;
case '8':
result.payload = '中雨'
break;
case '9':
result.payload = '大雨'
break;
case '10':
result.payload = '暴雨'
break;
case '11':
result.payload = '大暴雨'
break;
case '12':
result.payload = '特大暴雨'
break;
case '13':
result.payload = '阵雪'
break;
case '14':
result.payload = '小雪'
break;
case '15':
result.payload = '中雪'
break;
case '16':
result.payload = '大雪'
break;
case '17':
result.payload = '暴雪'
break;
case '18':
result.payload = '雾'
break;
case '19':
result.payload = '冻雨'
break;
case '20':
result.payload = '沙尘暴'
break;
case '21':
result.payload = '小雨转中雨'
break;
case '22':
result.payload = '中雨转大雨'
break;
case '23':
result.payload = '大雨转暴雨'
break;
case '24':
result.payload = '暴雨转大暴雨'
break;
case '25':
result.payload = '大暴雨转特大暴雨'
break;
case '26':
result.payload = '小雪转中雪'
break;
case '27':
result.payload = '中雪转大雪'
break;
case '28':
result.payload = '大雪转暴雪'
break;
case '29':
result.payload = '浮沉'
break;
case '30':
result.payload = '扬沙'
break;
case '31':
result.payload = '强沙尘暴'
break;
case '32':
result.payload = '飑'
break;
case '33':
result.payload = '龙卷风'
break;
case '34':
result.payload = '若高吹雪'
break;
case '35':
result.payload = '轻雾'
break;
case '53':
result.payload = '霾'
break;
case '99':
result.payload = '未知'
break;
default:
result.payload = '无数据'
break;
}
return result;
2,获取体感温度:
var result = {
payload: msg.payload.current.feelsLike.value
}
return result;
3,获取当前温度:
var result = {
payload: msg.payload.current.temperature.value
}
return result;
4,获取当前湿度:
var result = {
payload: msg.payload.current.humidity.value
}
return result;
5,获取当前气压:
var result = {
payload: msg.payload.current.pressure.value
}
return result;
6,获取当前风速:
var result = {
payload: msg.payload.current.wind.speed.value
}
return result;
7,获取当前空气质量:
var result = {
payload: msg.payload.aqi.aqi
}
return result;
8,获取当前PM2.5:
var result = {
payload: msg.payload.aqi.pm25
}
return result;
9,获取未来14天的气温状态:
var payload = [{
"series": ["最低温度", "最高温度"],
"data": [
// [{ "x": 1504029632890, "y": 50 },
// { "x": 1504029636001, "y": 40 },
// { "x": 1504029638656, "y": 20 },
// { "x": 1504029640666, "y": 20 }
// ],
// [{ "x": 1504029633514, "y": 6 },
// { "x": 1504029636622, "y": 7 },
// { "x": 1504029639539, "y": 6 }
// ]
],
"labels": []
}];
var lTemp = [];
var hTemp = [];
var values = msg.payload.forecastDaily.temperature.value;
var date = new Date();
date.setHours(0);
date.setMinutes(0);
date.setSeconds(0);
date.setMilliseconds(0);
var x = date.getTime();
for(var i in values) {
lTemp.push({
"x": x,
"y": values[i]['to']
});
hTemp.push({
"x": x,
"y": values[i]['from']
});
x = new Date(x + 24 * 60 * 60 * 1000).getTime();
}
payload[0].data.push(lTemp);
payload[0].data.push(hTemp);
return {
'payload': payload
};
10,获取PM10:
var result = {
payload: msg.payload.aqi.pm10
}
return result;
11,获取一氧化碳CO:
var result = {
payload: msg.payload.aqi.co
}
return result;
12:获取二氧化氮NO2:
var result = {
payload: msg.payload.aqi.co
}
return result;
13:获取臭氧O3:
var result = {
payload: msg.payload.aqi.o3
}
return result;
14:获取二氧化硫SO2:
var result = {
payload: msg.payload.aqi.so2
}
return result;
15:获取数据来源:
var result = {
payload: msg.payload.aqi.src
}
return result;
第七步:如果还想对一些获取到的数据进行进一步的说明,可以参考调试窗口的一些信息,如下图:
image.png
第八步:在流程里链接相应的模块,如下图:
image.png
第九步:进入UI界面,看一下效果,具体的一些表现方式还可以根据自己的实际需要调整,我做的如下图,以供参考:
image.png
以上仅为个人参考网络上众多资料的一些实施操作。