提问人:Sincerbex 提问时间:11/11/2023 最后编辑:Sincerbex 更新时间:11/14/2023 访问量:73
Node-RED 从 php 导入 json [已关闭]
Node-RED import json from php [closed]
问:
我创建了一个包含流和节点的json文件。
模板.json
[
{
"id": "plc_reader7",
"label": "cliente3",
"type": "tab",
"nodes": [
{
"id": "insert7",
"type": "function",
"z": "b586b68d5132abbf",
"name": "insert mysql",
"func": "msg.topic = \"INSERT INTO letture (idcliente,timestamp,matricola,ip_address,livello_carburante,ore_totale_motore,velocita_attuale,pressione_attuale,pressione_olio_woma,temp_olio_woma,valore_adblue) VALUES (5,NOW(),'\" + msg.payload[0] + \"','\" + msg.payload[1] + \"','\" + msg.payload[2] + \"','\" + msg.payload[3] + \"','\" + msg.payload[4] + \"','\" + msg.payload[5] + \"','\" + msg.payload[6] + \"','\" + msg.payload[7] + \"','\" + msg.payload[8] + \"')\";\n//a\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 750,
"y": 620,
"wires": [
[
"mysql1"
]
]
},
{
"id": "debug7",
"type": "debug",
"z": "b586b68d5132abbf",
"name": "debug 1",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 800,
"y": 520,
"wires": []
},
{
"id": "matricola7",
"type": "OpcUa-Item",
"z": "b586b68d5132abbf",
"item": "ns=4;i=8",
"datatype": "String",
"value": "matricola",
"name": "matricola",
"x": 280,
"y": 280,
"wires": [
[
"opc7"
]
]
},
{
"id": "opc7",
"type": "OpcUa-Client",
"z": "b586b68d5132abbf",
"endpoint": "endpoint1",
"action": "read",
"deadbandtype": "a",
"deadbandvalue": 1,
"time": 10,
"timeUnit": "s",
"certificate": "n",
"localfile": "",
"localkeyfile": "",
"securitymode": "None",
"securitypolicy": "None",
"folderName4PKI": "",
"maxChunkCount": 1,
"maxMessageSize": 8192,
"receiveBufferSize": 8192,
"sendBufferSize": 8192,
"name": "",
"x": 600,
"y": 400,
"wires": [
[
"join7"
]
]
},
{
"id": "join7",
"type": "join",
"z": "b586b68d5132abbf",
"name": "",
"mode": "custom",
"build": "array",
"property": "payload",
"propertyType": "msg",
"key": "topic",
"joiner": "\\n",
"joinerType": "str",
"accumulate": false,
"timeout": "",
"count": "9",
"reduceRight": false,
"reduceExp": "",
"reduceInit": "",
"reduceInitType": "",
"reduceFixup": "",
"x": 610,
"y": 520,
"wires": [
[
"debug7",
"insert7"
]
]
},
{
"id": "timer7",
"type": "inject",
"z": "b586b68d5132abbf",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "3",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 90,
"y": 600,
"wires": [
[
"matricola7",
"ipaddress7",
"livello_carburante7",
"ore_totale_motore7",
"velocità_attuale7",
"pressione_attuale7",
"pressione_olio_woma7",
"temperatura_olio_woma7",
"valore_adblue7"
]
]
},
{
"id": "ipaddress7",
"type": "OpcUa-Item",
"z": "b586b68d5132abbf",
"item": "ns=4;i=9",
"datatype": "String",
"value": "ipaddress",
"name": "ipaddress",
"x": 280,
"y": 320,
"wires": [
[
"opc7"
]
]
},
{
"id": "livello_carburante7",
"type": "OpcUa-Item",
"z": "b586b68d5132abbf",
"item": "ns=4;i=13",
"datatype": "String",
"value": "livello_carburante",
"name": "livello_carburante",
"x": 310,
"y": 360,
"wires": [
[
"opc7"
]
]
},
{
"id": "ore_totale_motore7",
"type": "OpcUa-Item",
"z": "b586b68d5132abbf",
"item": "ns=4;i=10",
"datatype": "String",
"value": "ore_totale_motore",
"name": "ore_totale_motore",
"x": 310,
"y": 400,
"wires": [
[
"opc7"
]
]
},
{
"id": "velocità_attuale7",
"type": "OpcUa-Item",
"z": "b586b68d5132abbf",
"item": "ns=4;i=3",
"datatype": "String",
"value": "velocita_attuale",
"name": "velocita_attuale",
"x": 300,
"y": 440,
"wires": [
[
"opc7"
]
]
},
{
"id": "pressione_attuale7",
"type": "OpcUa-Item",
"z": "b586b68d5132abbf",
"item": "ns=4;i=4",
"datatype": "String",
"value": "pressione_attuale",
"name": "pressione_attuale",
"x": 310,
"y": 480,
"wires": [
[
"opc7"
]
]
},
{
"id": "pressione_olio_woma7",
"type": "OpcUa-Item",
"z": "b586b68d5132abbf",
"item": "ns=4;i=11",
"datatype": "String",
"value": "pressione_olio_woma",
"name": "pressione_olio_woma",
"x": 320,
"y": 520,
"wires": [
[
"opc7"
]
]
},
{
"id": "temperatura_olio_woma7",
"type": "OpcUa-Item",
"z": "b586b68d5132abbf",
"item": "ns=4;i=12",
"datatype": "String",
"value": "temperatura_olio_woma",
"name": "temperatura_olio_woma",
"x": 330,
"y": 560,
"wires": [
[
"opc7"
]
]
},
{
"id": "valore_adblue7",
"type": "OpcUa-Item",
"z": "b586b68d5132abbf",
"item": "ns=4;i=5",
"datatype": "String",
"value": "valore_adblue",
"name": "valore_adblue",
"x": 300,
"y": 600,
"wires": [
[
"opc7"
]
]
},
{
"id": "endpoint7",
"type": "OpcUa-Endpoint",
"endpoint": "opc.tcp://172.23.254.95:4840",
"secpol": "None",
"secmode": "None",
"none": true,
"login": false,
"usercert": false,
"usercertificate": "",
"userprivatekey": ""
},
{
"id": "mysql1",
"type": "mysql",
"z": "b586b68d5132abbf",
"mydb": "db1",
"name": "nodered_db",
"x": 930,
"y": 720,
"wires": [
[]
]
},
{
"id": "db1",
"type": "MySQLdatabase",
"name": "nodered",
"host": "127.0.0.1",
"port": "3306",
"db": "nodered",
"tz": "+02:00",
"charset": "UTF8",
"credentials": {"user":"1234567",
"password":"1234567"}
}
],
"configs": [ ]
}
]
json文件通过了语法检查,但是如果我尝试使用以下命令导入它:
`curl -X POST http://localhost:1880/flow -H "Content-Type: application/json" --data "@template.json"`
{"code":"unexpected_error","message":"missing nodes property"}
相反,如果我尝试从汉堡菜单在 nodered 上手动导入它,则会创建具有正确名称的 flow(tab),但它内部是空的(没有节点) 可能是什么错误?
答:
0赞
hardillb
11/11/2023
#1
如果要更新流(选项卡),则需要先下载现有 JSON,然后在该 JSON 的新节点上下载该 JSON,并使用 API 发布更新的流。
API 调用按预期工作
评论
0赞
Sincerbex
11/11/2023
嗨,@hardillb,感谢您的建议!但是,我无法传递mysql数据库凭据...你知道怎么做吗?
0赞
hardillb
11/11/2023
是的,你可以,你只需要正确地确定配置节点的范围。您可以更好地拉取整个流对象,而不仅仅是单个流(选项卡)
评论