Проблема в том, что поле json broker
используется несколькими записями в потоке для разных целей. Например,
Узел конфигурации mqtt-broker
, который вы пытаетесь редактировать:
{
"id": "c2ba2a60.80ae38",
"type": "mqtt-broker",
"z": "",
"name": "",
"broker": "192.168.1.116",
"port": "1883",
"clientid": "",
"usetls": false,
"compatmode": false,
"keepalive": "60",
"cleansession": true,
"birthTopic": "",
"birthQos": "0",
"birthPayload": "",
"closeTopic": "",
"closeQos": "0",
"closePayload": "",
"willTopic": "",
"willQos": "0",
"willPayload": ""
}
И узел mqtt-in
:
{
"id": "98d0e95b.c28c2",
"type": "mqtt in",
"z": "a4de5120.cd3f58",
"name": "",
"topic": "#",
"qos": "0",
"datatype": "auto",
"broker": "c2ba2a60.80ae38",
"x": 190,
"y": 80,
"wires": [
[]
]
}
Как вы можете видеть когда вы запускаете свой скрипт sed, он также изменит broker
запись в узле mqtt-in
, которая указывает на mqtt-broker
.
Открытие / сохранение, вероятно, работает, потому что у вас определен только один mqtt-broker
поэтому он будет выбран по умолчанию в списке, поэтому исправляет эту запись при развертывании.
Если вы хотите делать подобные вещи, вам потребуется нечто более сложное, которое знает о записи type
в каждом JSON запись обновляется.