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

 找回密码
 立即注册
查看: 6272|回复: 5

[流程系列] 【天气预报】抓取了数据,但是不知道怎么显示到主界面

[复制链接]

14

主题

253

帖子

1051

积分

金牌会员

Rank: 6Rank: 6

积分
1051
金钱
798
HASS币
0
发表于 2018-11-8 21:45:33 | 显示全部楼层 |阅读模式
[
    {
        "id": "904dc4b7.b8de28",
        "type": "tab",
        "label": "抓取天气预报",
        "disabled": false,
        "info": ""
    },
    {
        "id": "98466e5d.9ce5e",
        "type": "inject",
        "z": "904dc4b7.b8de28",
        "name": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 130,
        "y": 235,
        "wires": [
            [
                "3bd5f3d2.93709c"
            ]
        ]
    },
    {
        "id": "3bd5f3d2.93709c",
        "type": "http request",
        "z": "904dc4b7.b8de28",
        "name": "天气预报",
        "method": "GET",
        "ret": "obj",
        "url": "http://t.weather.sojson.com/api/weather/city/101040100",
        "tls": "",
        "x": 318,
        "y": 235,
        "wires": [
            [
                "1616770a.be51e9"
            ]
        ]
    },
    {
        "id": "4f1a815e.449b1",
        "type": "debug",
        "z": "904dc4b7.b8de28",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "x": 784,
        "y": 179,
        "wires": []
    },
    {
        "id": "1616770a.be51e9",
        "type": "function",
        "z": "904dc4b7.b8de28",
        "name": "处理天气json数据",
        "func": "var p = msg.payload["cityInfo"]["city"]\nvar t = msg.payload["cityInfo"]["updateTime"]\nvar s = msg.payload["data"]["shidu"]\nvar d1_LowTemp = msg.payload["data"]["forecast"][0]["low"]\nvar d1_HighTemp = msg.payload["data"]["forecast"][0]["high"]\nvar d1_AQI = msg.payload["data"]["forecast"][0]["aqi"]\nvar d1_TYPE = msg.payload["data"]["forecast"][0]["type"]\nmsg.payload = {}\nmsg.payload['City'] = p\nmsg.payload['UP-Time'] = t\nmsg.payload['Shidu'] = s\nmsg.payload['d1_LowTemp']=d1_LowTemp\nmsg.payload['d1_HighTemp']=d1_HighTemp\nmsg.payload['d1_AQI'] = d1_AQI\nmsg.payload['d1_TYPE'] = d1_TYPE\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 568,
        "y": 234,
        "wires": [
            [
                "8f19c22e.853f1",
                "4f1a815e.449b1"
            ]
        ]
    },
    {
        "id": "8f19c22e.853f1",
        "type": "pushbear",
        "z": "904dc4b7.b8de28",
        "server": "697fc2c2.1acb0c",
        "title": "重庆市天气预报",
        "content": "",
        "x": 777.5,
        "y": 309,
        "wires": [
            []
        ]
    },
    {
        "id": "697fc2c2.1acb0c",
        "type": "pushbear-server",
        "z": "",
        "name": "#6505 Smart home",
        "sendkey": "6505-978ebd176c8b635b8c68b371c7330f04",
        "title": "天气预报"
    }
]

用到了4个组件:
1、inject
2、http request
3、function
4、pushbear

第一个,时间戳,用来重复执行代码,比如我打算3小时刷新一次天气预报数据。设定它为3小时重复执行一次。
第二个,http组件,用来获取json数据,数据来源“http://t.weather.sojson.com/api/weather/city/101040100”最后一组数字,请到“http://www.weather.com.cn/weather1d/101040100.shtml#dingzhi_first”这里查询当地天气,然后复制url中间的那串数字。在此,对两个网站表示感谢。
第三个,用来处理拿到的json天气数据,取出我们需要的部分,并进行数据的拼接。
第四个,微信推送组件,这里不用推送到微信也可以,本来是打算发表到hassio的首页界面,不知道怎么写,就只好推送到微信了。不过,数据还需要处理一下,否则在微信端还是json格式,不直观。


求指教:如何把数据发布到hassio首页去调用。
回复

使用道具 举报

62

主题

581

帖子

6117

积分

论坛元老

Rank: 8Rank: 8

积分
6117
金钱
5461
HASS币
240

教程狂人论坛风云人物

发表于 2018-11-8 22:45:20 | 显示全部楼层
建议你找L大,他应该怎么怎么通过mqtt传送到ha
尝试过萝卜,我想你一定会忘记青瓜
回复

使用道具 举报

220

主题

1284

帖子

7869

积分

超级版主

Rank: 8Rank: 8

积分
7869
金钱
6555
HASS币
86

教程狂人论坛风云人物突出贡献

发表于 2018-11-9 09:06:37 | 显示全部楼层
本帖最后由 lidicn 于 2018-11-9 09:08 编辑

两种思路,
A. 直接restful sensor https://bbs.hassbian.com/thread-2697-1-1.html
B. 通过mqtt传递数据到ha, 参考https://bbs.hassbian.com/thread-5345-1-1.html   mqtt sensor
回复

使用道具 举报

14

主题

253

帖子

1051

积分

金牌会员

Rank: 6Rank: 6

积分
1051
金钱
798
HASS币
0
 楼主| 发表于 2018-11-9 09:20:03 | 显示全部楼层
lidicn 发表于 2018-11-9 09:06
两种思路,
A. 直接restful sensor https://bbs.hassbian.com/thread-2697-1-1.html
B. 通过mqtt传递数据到h ...

非常感谢,我学习去了。。。
回复

使用道具 举报

14

主题

253

帖子

1051

积分

金牌会员

Rank: 6Rank: 6

积分
1051
金钱
798
HASS币
0
 楼主| 发表于 2018-11-9 09:22:17 | 显示全部楼层
antsunzj 发表于 2018-11-8 22:45
建议你找L大,他应该怎么怎么通过mqtt传送到ha

我也在看他的示例,有些地方说得太简单,对于一个初学者而言,总是不能发现关键的地方。
回复

使用道具 举报

0

主题

9

帖子

58

积分

注册会员

Rank: 2

积分
58
金钱
49
HASS币
0
发表于 2020-6-3 19:33:49 | 显示全部楼层
代码不对呀,导不进去nodered
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-6-8 23:05 , Processed in 3.519119 second(s), 29 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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