淘宝n0667链接_n0667播放

本篇文章给大家谈谈n0667链接,以及n0667播放的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

文章详情介绍:

红河州融入“1+5”区域人才协同发展“朋友圈”

为贯彻落实党的二十大精神和省委相关要求,推动区域人才协同发展,经与昆明市、曲靖市、玉溪市、楚雄州及大理州等州市多次沟通协调,7月14日,红河州委人才工作领导小组组织州级有关成员单位主要领导、部分县市委人才工作领导小组相关领导、企业代表及相关领域专家人才共40余人赴昆明市参加“1+5”区域人才工作互动合作启动仪式,融入滇中6地人才协调发展雁阵。

此次活动由昆明市牵头,曲靖市、玉溪市、楚雄州、红河州、大理州共同协办,围绕省委“一极引领、一带协同、多点支撑”举措,以“打造云滇飞地人才圈,推动区域人才工作互动合作”为主题,旨在共同构建“1+5+N”人才雁阵格局,积极打造人才互动“朋友圈”,实现信息协同、服务协同、活动协同、平台协同、政策协同等人才工作互动合作,加快推进区域人才资源、服务资源、创新资源等共建共享。

据悉,6州市将以区域人才工作互动合作机制为基础,推动优待政策共享、人才资源共享、人才待遇互认,加强人才交流互动和科研项目合作。目前,6州市已在人才服务一体化方面实行人才身份互认、待遇共享,各类高层次人才凭借人才电子卡,可共享6州市提供的两个板块10类优待政策。其中,公共服务事项涵盖了人力社保、医疗健康、户籍居留、车驾管、企业和税务等6类服务。社会服务涵盖了旅游、文体、酒店及交通出行等4类服务。目前红河州持有“红河惠才卡”的各类专家人才500余名,将同步享受昆明市、曲靖市、红河州、玉溪市、楚雄州、大理州6州市的人才优待政策。“1+5”区域人才工作互动合作启动后,红河州将与其他5个州市在产业协同上持续发力,加速推动产城人融合,实现多位一体发展,同时也将进一步提升人才服务质量,优化人才生态环境,有效激发人才干事创业活力。

启动仪式上,省委组织部副部长高俊致辞,就做好区域人才协同发展工作作了相关要求。昆明市相关领导介绍了人才协作具体内容。6州市领导共同为“市场化招才引智平台”进行了揭牌,并举行了与中国城市发展研究院营商环境院的签约仪式。四川大学人力资本开发研究所、中国城市发展研究院营商环境院、江苏人力资源产业园运营公司相关负责同志作了分享交流。参会人员还实地参观学习了云南(昆明官渡)国际人力资源服务产业园。

记者:胡艳辉 通讯员:李金龙 文/图

责编:吴明桔

红河州融媒体中心

法律顾问:云南亚尊律师事务所

0873-3990667

律师:杨煜峰

地址:云南省红河州蒙自市朝阳路新视界小区

声明:转载请注明来源于云南红河发布(hhrb_hh)!

「智能家居」自动化平台nodered基础教程

接上节,今天继续讲解基础类别节点,利用序列类别我们可以对消息体进行拆分、合并、排序,该类别有以下5个节点:

csv 在CSV格式的字符串及其JavaScript对象表示形式之间进行相互转换。

html 使用CSS选择器从msg.payload中保存的html文档中提取元素。

json 在JSON字符串及其JavaScript对象表示形式之间相互转换。

xml 在XML字符串及其JavaScript对象表示形式之间进行相互转换。

yaml 在YAML格式的字符串及其JavaScript对象表示形式之间相互转换。

html:我们可以搭配一个http的请求节点,使用http节点,去获取一个html的全部内容,然后使用html节点去进行解析 在解析的时候,首先要选择一个标签,比如你要获取一个html中的所有p标签,那么就可以这样配置,你可以将所有p标签内的文本内容存放到msg.payload中,当做一个数组来处理。

请求的html是这个,http://mczaiyun.top/data/1.html

内容很简单

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>scrollWidth和scrollHeight属性-蚂蚁部落</title>
<style type="text/css">
* {
margin: 0px;
padding: 0px;
}
#box {
width: 200px;
height: 150px;
border: 1px solid #ddd;
margin: 0px auto;
margin-top: 50px;
/* overflow: scroll; */
padding: 0px;
}
#box::before {
content: url("data:image/svg+xml,%3Csvg t='1610605001506' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='9843' xmlns:xlink='http://www.w3.org/1999/xlink' width='16' height='16'%3E%3Cdefs%3E%3Cstyle type='text/css'%3E%3C/style%3E%3C/defs%3E%3Cpath d='M562.005333 512l-211.2-211.2 60.330667-60.330667L682.666667 512l-271.530667 271.530667-60.330667-60.330667z' p-id='9844' fill='%239DA1A7'%3E%3C/path%3E%3C/svg%3E");
}
</style>
</head>
<body>
<div id="box">
<p>段落1</p>
<p>段落2</p>
<p>段落3</p>
<p>段落4</p>
<p>段落5</p>
<p>段落6</p>
</div>
</body>
</html>

我们使用这个节点,可以去定时监控一个页面的内容,比如有一个人发布了一篇文章,我们可以给某人发一封邮件。 也可以使用一些对外的信息,如微博,发布一条微博,来控制led灯的关闭,开启。这样的实战案例,需要我们来通过解析微博内容,来获取我们需要的内容。当然这里需要定制消息体,比如#开启#LED 或者#关闭#LED。解析相应的内容,进行不同的操作。

以下是这条流的json数据,大家可以导入自己动手做一下。

[
{
"id": "70d9360.22b68cc",
"type": "tab",
"label": "Flow 2",
"disabled": false,
"info": ""
},
{
"id": "c063491c.2a1318",
"type": "html",
"z": "70d9360.22b68cc",
"name": "get p",
"property": "payload",
"outproperty": "payload",
"tag": "p",
"ret": "text",
"as": "single",
"x": 650,
"y": 260,
"wires": [
[
"f6760bc5.997d58"
]
]
},
{
"id": "f6760bc5.997d58",
"type": "debug",
"z": "70d9360.22b68cc",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 900,
"y": 260,
"wires": []
},
{
"id": "56422139.aff37",
"type": "http request",
"z": "70d9360.22b68cc",
"name": "1.html",
"method": "GET",
"ret": "txt",
"paytoqs": "body",
"url": "http://mczaiyun.top/data/1.html",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"x": 370,
"y": 260,
"wires": [
[
"c063491c.2a1318"
]
]
},
{
"id": "27d30977.7bc8e6",
"type": "inject",
"z": "70d9360.22b68cc",
"name": "",
"props": [
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"x": 170,
"y": 260,
"wires": [
[
"56422139.aff37"
]
]
}
]

Json:使用与html差不多, 我们请求这个地址http://mczaiyun.top/data/wxdl.json来获取一个json数据,

这个json的内容是

是文心雕龙的文章

使用debug节点来打印json节点处理后的信息如下

Csv:文件内容

请求地址 http://mczaiyun.top/data/test.csv

请求的配置

配置完成之后 打印的效果是

Xml:与csv一致

Yaml:我们可以请求这个地址的一个yaml文件http://mczaiyun.top/data/pmc.yml

存储类别节点有以下4个:

file 将msg.payload写入文件,添加到末尾或替换现有内容。或者,它也可以删除文件。

file in 以字符串或二进制缓冲区的形式读取文件的内容。

watch 监视目录或文件中的更改。

tail 监听被一个文件被添加的内容

file:是将msg.payload写入文件,添加到末尾或替换现有内容。或者,它也可以删除文件。 输入 filename,也可以配置,如果没有该目录,则自动创建。写入完成后,输入消息将发送到输出端口。

每个消息的有效荷载将添加到文件的末尾,可以选择在每个消息之间添加一个换行符(\n)。

如果使用msg.filename,则每次写入后文件都会关闭。为了获得最佳体验,请使用固定的文件名。

可以将其配置为覆盖整个文件,而不是在文件后添加段落。例如,在将二进制数据写入文件(例如图像)时,应使用此选项,并且应禁用添加换行符的选项。

可以从编码列表中指定写入文件的数据的编码。

您可以将此节点配置为删除文件

file in:能以字符串或二进制缓冲区的形式读取文件的内容。输入 filename 如果未在节点配置中设置,该属性可以选择要读取的文件名。输入 payload 文件的内容可以是字符串,也可以是二进制的buffer。 filename 如果未在节点配置中设置,该属性可以选择要读取的文件名。

Watch:用于监视目录或文件中的更改。

您可以输入用逗号分隔的目录和/或文件的列表。您需要在所有带有空格的地方加上引号“…”。

在Windows上,必须在任何目录名称中使用双反斜杠\。

实际更改的文件的完整文件名将放入msg.payload和msg.filename中,而监视列表的字符串化版本将在msg.topic中返回。

msg.file仅包含已更改文件的短文件名。msg.type更改了事物的类型,通常是file或directory,而msg.size保留了文件的大小(以字节为单位)。

当然,在Linux中,everything也是一个文件,因此可以监视

PS:该目录或文件必须存在才能被监视。如果文件或目录被删除,即使重新创建它也可能不再被监视。

Tail:监听已配置文件中,被添加的内容。 在Windows上你需要根本文件的写入和更新注册。输出的是UTF-8的字符,或者二进制文件流。

完整地流配置

[
{
"id": "c9eae563.294d18",
"type": "tab",
"label": "流程 3",
"disabled": false,
"info": ""
},
{
"id": "738ced86.140b84",
"type": "file",
"z": "c9eae563.294d18",
"name": "追加到12.txt",
"filename": "12.txt",
"appendNewline": true,
"createDir": false,
"overwriteFile": "false",
"encoding": "none",
"x": 490,
"y": 260,
"wires": [
[
"921006b.457b4f8"
]
]
},
{
"id": "8dee2a6f.831118",
"type": "inject",
"z": "c9eae563.294d18",
"name": "",
"props": [
{
"p": "payload"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "我是被追加的",
"payloadType": "str",
"x": 190,
"y": 260,
"wires": [
[
"738ced86.140b84",
"3576d67e.f638fa"
]
]
},
{
"id": "921006b.457b4f8",
"type": "debug",
"z": "c9eae563.294d18",
"name": "",
"active": true,
"tosidebar": true,
"console": true,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 750,
"y": 260,
"wires": []
},
{
"id": "3576d67e.f638fa",
"type": "file in",
"z": "c9eae563.294d18",
"name": "读取12.txt",
"filename": "12.txt",
"format": "utf8",
"chunk": false,
"sendError": false,
"encoding": "none",
"x": 500,
"y": 400,
"wires": [
[
"921006b.457b4f8"
]
]
},
{
"id": "b231a4b7.143ea8",
"type": "watch",
"z": "c9eae563.294d18",
"name": "监听12.txt文件",
"files": "12.txt",
"recursive": "",
"x": 500,
"y": 620,
"wires": [
[
"7fba4883.304338"
]
]
},
{
"id": "7fba4883.304338",
"type": "debug",
"z": "c9eae563.294d18",
"name": "",
"active": true,
"tosidebar": true,
"console": true,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 750,
"y": 620,
"wires": []
},
{
"id": "fdf417e5.6c4db8",
"type": "tail",
"z": "c9eae563.294d18",
"name": "监听并获取12.txt内容",
"filetype": "text",
"split": "[\\r]{0,1}\\n",
"filename": "12.txt",
"inputs": 0,
"x": 500,
"y": 700,
"wires": [
[
"d8ada19c.f13ec"
]
]
},
{
"id": "d8ada19c.f13ec",
"type": "debug",
"z": "c9eae563.294d18",
"name": "",
"active": true,
"tosidebar": true,
"console": true,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 770,
"y": 700,
"wires": []
}
]

网络类别下的节点共12个,

mqtt in 连接到MQTT代理并订阅来自指定主题的消息。

mqtt out 连接到MQTT代理并发布消息。

http in 创建用于创建Web服务的HTTP端点。

http response 将响应发送回从HTTP输入节点接收的请求。

http request 发送HTTP请求并返回响应。

websocket in WebSocket输入节点。

websocket out WebSocket输出节点。

tcp in 提供TCP输入选择。可以连接到远程TCP端口,或接受传入连接。

tcp out 提供TCP输出的选择。可以连接到远程TCP端口,接受传入的连接,或回复从TCP In节点收到的消息。

tcp request 一个简单的TCP请求节点。将msg.payload发送到服务器tcp端口,并期望得到响应。

udp in UDP 输入节点。在msg.payload中生成Buffer,字符串或Base64编码的字符串。支持组播。

upd out 该节点将msg.payload发送到指定的UDP主机和端口。支持组播。

这一模块是Node-red的核心模块,如果要与硬件,设备通信,都要通过该模块来实现。由于本章节点过多,所以分多期来讲,这一期我们先来看看 http in、http out、http request。

http in:可以用于创建一个web服务的http接口,支持的方法有以下几种

GET、POST、PUT、DELETE PATHC,也支持POST上传文件 编写一个接口很简单。

创建一个Http in 节点;

使用函数 function 节点来处理要返回的数据;

使用http out节点来返回数据到客户端;

这就是一个完成的http请求链路。

该节点向后输出的内容有

payload GET请求包含任何查询字符串参数的对象。或者包含HTTP请求正文。 reqHTTP请求对象。该对象包含有关请求信息的多个属性。

body – 传入请求的正文。格式将取决于请求。

headers – 包含HTTP请求标头的对象。

query – 包含任何查询字符串参数的对象。

params – 包含任何路由参数的对象。

cookies – 包含请求cookie的对象。

files – 如果节点启用了文件上传,则为包含了上传的文件的对象。

res HTTP响应对象。此属性不应直接使用;HTTP Response节点记录了如何响应请求。该属性必须保留在传递给响应节点的消息上。

我们创建这样一个接口

接口的路径是 /getname 使用get请求

然后在后方添加一个function节点

这样就可以在flow中追加payload消息体了。

http response:为了将HTTP响应发送回客户端,返回的消息体有这几个元素

payload 响应的正文。

statusCode 如果设置,则用作响应状态代码。默认值:200。

headers 如果设置,则提供HTTP头以包含在响应中。

cookies 如果设置,则可用于设置或删除cookie。

创建一个http response 追击到上一步的流中

部署后,在浏览器输入 ip:port/getname 会看到这样一个返回体

http request:发送HTTP请求并返回响应。 有输入、输出,输入有这些参数

url 如果未在节点中配置,则此可选属性设置请求的url。

method 如果未在节点中配置,则此可选属性设置请求的HTTP方法。必须是GET,PUT,POST,PATCH或DELETE之一。

headers 设置请求的HTTP头。

cookies 如果设置,则可用于发送带有请求的cookie。

payload 发送为请求的正文。

rejectUnauthorized 如果设置为false,则允许对使用自签名证书的https站点进行请求。

followRedirects 如果设置为false,则阻止遵循重定向(HTTP 301)。默认情况下为true

requestTimeout 如果设置为正数毫秒,将覆盖全局设置的httpRequestTimeout参数。

输出的参数

payload 响应的正文。可以将节点配置为以字符串形式返回主体,尝试将其解析为JSON字符串或将其保留为二进制buffer。

statusCode 响应的状态码,如果请求无法完成,则返回错误码。

headers 包含响应头的对象。

responseUrl 如果在处理请求时发生任何重定向,则此属性为最终重定向的URL。否则则为原始请求的URL。

responseCookies 如果响应包含cookie,则此属性是每个cookie的‘名称/值’键值对的对象。

redirectList 如果请求被重定向了一次或多次,则累积的信息将被添加到此属性。“location”是下一个重定向目标。cookie是从重定向源返回的cookie。

这里给出一个示例

请求一个接口,可以配置证书, 选择请求方式;然后在节点前添加,inject节点,用于触发接口,在节点后追加 debug节点打印消息。

部署后触发流

PS:nodered自带的基础组件已经讲完,后边慢慢讲第三方组件。

— — — — — — END — — — — — —

我是小白,智能家居爱好者、一卡通行业从业者、曾经的建筑智能化从业者。致力为开源智能家居平台添砖加瓦。