Node-RED 从 php 导入 json [已关闭]

Node-RED import json from php [closed]

提问人:Sincerbex 提问时间:11/11/2023 最后编辑:Sincerbex 更新时间:11/14/2023 访问量:73

问:


编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答这个问题。

9天前关闭。

这篇文章在 6 天前被编辑并提交审核,未能重新打开帖子:

原始关闭原因未解决

我创建了一个包含流和节点的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),但它内部是空的(没有节点) 可能是什么错误?

php mysql json 节点-red plc

评论


答:

0赞 hardillb 11/11/2023 #1

如果要更新流(选项卡),则需要先下载现有 JSON,然后在该 JSON 的新节点上下载该 JSON,并使用 API 发布更新的流。

API 调用按预期工作

评论

0赞 Sincerbex 11/11/2023
嗨,@hardillb,感谢您的建议!但是,我无法传递mysql数据库凭据...你知道怎么做吗?
0赞 hardillb 11/11/2023
是的,你可以,你只需要正确地确定配置节点的范围。您可以更好地拉取整个流对象,而不仅仅是单个流(选项卡)