Мазмуну:

Node-REDде JSON менен кантип иштөө керек: 13 кадам
Node-REDде JSON менен кантип иштөө керек: 13 кадам

Video: Node-REDде JSON менен кантип иштөө керек: 13 кадам

Video: Node-REDде JSON менен кантип иштөө керек: 13 кадам
Video: ComfyUI Tutorial - How to Install ComfyUI on Windows, RunPod & Google Colab | Stable Diffusion SDXL 2024, Ноябрь
Anonim
Node-REDде JSON менен кантип иштөө керек
Node-REDде JSON менен кантип иштөө керек

Бул көрсөтмө сизге JSON менен түйүн-REDде кантип иштөөнү үйрөтөт. Мен сизге json файлдарын http get and post аркылуу берүү менен тармактык розеткаларды кантип башкарууну көрсөтөм. Жана бул билимди кийин JSON протоколун колдогон каалаган түзмөктү көзөмөлдөө үчүн колдоно аласыз.

Окутуу максатында мен NETIO 4All тармактык розеткасын колдоном, бирок кабатыр болбо, эч нерсе сатып алуунун кереги жок. NETIO укмуштуудай 4All онлайн демо колдоно аласыз.

Жабдуулар

NETIO 4All тармактык powerocket же 4All онлайн демо:

Түйүн-КЫЗЫЛ

1 -кадам: REST JSON Http (s) протоколу

REST JSON Http (s) протоколу
REST JSON Http (s) протоколу

Бул бөлүк бир аз техникалык, бирок мага чыдап коюңуз. Эгерде мен бул бөлүктү түшүндүрбөсөм, анда биз түйүн-КЫЗЫЛ аркылуу жөнөтө турган json файлдарындагы баалуулуктарды түшүнүүдө көйгөйлөргө туш болмоксуз.

Ар бир чыгууга тиешелүү аракеттер (электр розеткасы):

Бардык M2M протоколдорунда, NETIO электр розеткалары жеке чыгууларга карата колдонула турган аракеттерди колдонушат. Мисалы, Toggle же Short Off аракети каалаган чыгууга жазылышы мүмкүн.

Бирок, Action өзгөрмөсү баалуулуктарды жазуу үчүн гана колдонулушу мүмкүн, аны учурдагы розетка абалын окуу үчүн колдонууга болбойт.

Булар ар бир чыгарылышка карата колдонула турган аракеттер:

0 = Чыгуу өчүрүлдү (Өчүк)

1 = Output күйгүзүлдү (On)

2 = Чыгуу кыска убакытка өчүрүлдү (кыска өчүрүү)

3 = Чыгуу кыска убакытка күйгүзүлдү (кыска күйүк)

4 = Чыгуу бир абалдан экинчисине которулду (которуштуруу)

5 = Output абалы өзгөрүүсүз (өзгөрүүсүз)

6 = Этибарга алынбайт

Мисал - JSON файлы, чыгаруу номерин которуу үчүн. 1:

{

"Чыгаруулар": [{

"ID": 1, "Аракет": 4

}]

}

ID - бул сан биз колдоно турган продукцияны көрсөтөт

Аракет - бул бөлүк, бул чыгаруучу иш -аракет (мис. 1 (Чыгууну күйгүзүү))

2 -кадам: агым

Flow
Flow

Ал эми азыр негизги бөлүгү. Түйүндүү КЫЗЫЛ чөйрө ушундай көрүнөт.

Биз URL API агымын импорттодук (Сиз көрүп жаткан долбоор. Кийинчерээк мен сизге агымдарды жана бул долбоорду импорттоону көрсөтөм) Бул долбоор эки бөлүктөн турат:

  1. NETIO AN30 (JSON REST API) агымы
  2. Куралдар тактасы (Программаңызды иштете турган графикалык интерфейс)

3 -кадам: Куралдар тактасы

Куралдар тактасы
Куралдар тактасы

Бул көрсөтмө үчүн түйүн-КЫЗЫЛ тактасы ушундай көрүнөт. Сиз өзүңүздүн табитиңизге ылайыкташтырууну кааласаңыз, аны өзүңүзгө ылайыкташтырсаңыз болот.

Бул долбоордун панели 4 бөлүккө бөлүнөт:

  1. Түзмөк Статусу - модель, Mac дареги же жабдыктын версиясы сыяктуу түзмөк маалыматын көрсөтөт.
  2. (POST) Control Output 1 - Чыгууну көзөмөлдөгөн 5 баскычтан турат. Ар бир баскыч ар кандай аракеттерди аткарат
  3. (GET) O1 - O4 Output States - Бул бөлүк сиздин түзмөгүңүздөгү ар бир чыгаруунун учурдагы абалын көрсөтөт.
  4. Түзмөктү башкаруу - Бул бөлүктө NETIO 4Aall түзмөгүнөн учурдагы ченелген баалуулуктарды көрсөтүүчү ар кандай графиктерди жана өлчөгүчтөрдү таба аласыз.

4 -кадам: Импорттук агым (долбоор, скрипт, ж.б.)

Импорттук агым (долбоор, скрипт, ж.б.)
Импорттук агым (долбоор, скрипт, ж.б.)

Менюда (оң жактагы жогорку бурчта) Импорттоону, анан Алмашуу буферин тандаңыз.

Андан кийин, төмөндөгү текстти көрсөтүлгөн талаага көчүрүп, Импорттоону чыкылдатыңыз.

Жетишпеген түйүндөр орнотулууда

Түйүндөр тандалган агымга жүктөлөт. Мүмкүн, ката билдирүүсү импорттолуп жаткан, бирок азырынча Node-REDде орнотулбаган түйүндөрдүн тизмеси менен көрсөтүлүшү мүмкүн. Бул учурда, жок болгон түйүндөрдү орнотуу керек.

Эгерде түйүндөр жок болсо, менюдан Палитраны башкарууну тандап, Орнотууну чыкылдатып, жок болгон түйүндөрдү таап орнотуңуз.

Текстти импорттоо:

[{"id": "56b9510c.98c6f", "type": "tab", "label": "NETIO AN30 (REST JSON)", "өчүрүлгөн": жалган, "маалымат": ""}, {"id ":" 6a66b637.da1558 "," type ":" http өтүнүчү "," z ":" 56b9510c.98c6f "," аталышы ":" HTTP Сурамы (POST) "," метод ":" POST "," ret ": "txt", "url": "https://netio-4All.netio-products.com:8080/netio.json", "tls": "", "x": 430, "y": 100, "зымдар":

5 -кадам: Мунун баары кантип бирге иштейт

Мунун баары кантип бирге иштейт
Мунун баары кантип бирге иштейт

Агым негизинен эки бөлүккө бөлүнөт: POST жана GET.

POST: O1ге жазуу

  • Агымдагы Куралдар тактасында түзүлгөн беш баскыч панелде көрсөтүлөт.
  • Панелдеги Output 1 = ON баскычын чыкылдаткандан кийин, пайдалуу жүк netio.json файлына коюлат, ал өндүрүштү жана аракетти (баскычтардын ар бири үчүн аныкталган) көрсөтөт.
  • HTTP Request (POST) блогу netio.json файлын IP дарегине суроо катары жөнөтөт.
  • Сервердин жообу (статусу) чыгаруу катары кайтарылат.
  • Msg.payload блогу HTTP Сурамынын (POST) натыйжасын көрсөтөт.

Get: O1 - O4 чейин окуу

  • 1 Second Repeat блогу бир секунддун ичинде активдешет, HTTP Request (GET) блогу, ал өз кезегинде netio.jsonду GET суранычы катары жөнөтөт жана серверден алынган сокет статусу менен толук JSON файлын кайтарат.
  • JSON Parse блогу JSON файлын HTTP Request (GET) блогунан JSON объектине айландырат, андыктан JSON файлындагы касиеттерди башкарууга мүмкүн болот.
  • Функция блогу JSON объектисинин айрым бөлүктөрүн алат жана аларды кийинчерээк колдонуу үчүн msg объектинин касиеттерине айландырат.
  • Учурдагы диаграмма блогу msg.payloadду msg. TotalCurrent касиетине коет, анткени кийинки Учурдагы диаграмма (Түзмөк) блогу msg.payload маанисин гана көрсөтө алат.
  • JSON объектисинен алынган, msg объектинин тандалган касиеттерин башкаруу панелинде көрсөтүү үчүн ар кандай чыгаруу түйүндөрү иштейт.

Msg объектиси жана msg.payload

Жөнөкөй жана кыска түшүндүрмөнү бул жерден караңыз:

www.steves-internet-guide.com/node-red-mess…

6 -кадам: HTTP POST жана Get

HTTP POST жана Get
HTTP POST жана Get
HTTP POST жана Get
HTTP POST жана Get

HTTP Сурамы (POST)

Бул түйүн NETIO 4All түзмөгүн көзөмөлдөө үчүн netio.json буйрук файлын HTTP Сурамы (POST) катары жөнөтөт.

HTTP Сурамы (Get)

Бул түйүн HTTP сурамын (GET) жөнөтөт жана статустун жообун кайтарат.

Алдын ала толтурулган дарек NETIO 4All онлайн демонстрациясын көрсөтөт, анда сиз столунда NETIO аппараты жок туруп туташууну текшере аласыз.

netio-4all.netio-products.com

Бул түйүндөрдө өз IP дарегиңизди коюуга болот; бирок, IPти HTTP Request түйүндөрүндө, POSTте жана GETте өзгөртүү керек.

7 -кадам: Баскыч түйүндөрү

Баскыч түйүндөрү
Баскыч түйүндөрү
Баскыч түйүндөрү
Баскыч түйүндөрү

Баскычтын түйүнүн басуу netio.json файлын камтыган билдирүүнү пайда кылат (Оң жактагы сүрөт), андан кийин http пост түйүнү аркылуу netio акылдуу электр розеткасына жөнөтүлөт.

8 -кадам: Функция түйүнү

Функция түйүнү
Функция түйүнү
Функция түйүнү
Функция түйүнү

Функция түйүнү - бул колдонуучунун JavaScript функциясын жазууга мүмкүнчүлүк берген атайын түйүн.

Бул көрсөтмөдө, функция талданган JSON файлынан (азыр JSON объектиси) баалуулуктарды тандайт жана аларды msg объектинин касиеттерине дайындайт.

Код төрт бөлүмгө бөлүнөт:

  1. JSON объектисинен msg объектинин жеке касиеттерине баалуулуктарды дайындоо
  2. Тармактык розетка глобалдык өлчөөлөрдү колдобосо, катаны иштетүү

    Эгерде тармактык розетка глобалдык баалуулуктарды өлчөөнү колдобосо, Node-RED каталарды көрсөтөт, анткени бул функция тиешелүү касиетти таба албайт, мис. msg.payload. GlobalMeasure. Voltage, анткени ал JSON объектисинде болбойт. Бул учурда, msg объектинин касиети, мис. msg. Voltage, 0 деп коюлган жана ката кармалган.

  3. Чыгуу абалынын маанилерин дайындоо
  4. Чыгуу абалына жараша көрсөтүлгөн абал абалынын түстөрүн коюу

9 -кадам: JSON Node жана Inject Node

JSON Node жана Inject Node
JSON Node жана Inject Node
JSON Node жана Inject Node
JSON Node жана Inject Node

JSON түйүнү

JSON түйүнү JSON файлын талдайт жана аны JSON объектине айландырат.

Серверден GET сурамына жооп катары, HTTP суроо түйүнү NETIO 4x түзмөгүнүн учурдагы абалын камтыган JSON файлын кайтарат, бирок бул жөн гана текст файлы, андыктан маалыматтар менен иштөө үчүн JSON файлы керек. JSON объектине талдоо үчүн.

Түйүндү сайыңыз

Ар бир секунд сайын, бул түйүн GET сурамын жөнөтүүчү HTTP Сурам түйүнүн активдештирет.

Натыйжада, панелдеги баалуулуктар бир секундага чейин жаңыртылып турат

10 -кадам: Текст түйүнү жана мүчүлүштүктөрдү оңдоо түйүнү

Текст түйүнү жана мүчүлүштүктөрдү оңдоо түйүнү
Текст түйүнү жана мүчүлүштүктөрдү оңдоо түйүнү
Текст түйүнү жана мүчүлүштүктөрдү оңдоо түйүнү
Текст түйүнү жана мүчүлүштүктөрдү оңдоо түйүнү

Текст түйүнү

Куралдар тактасында текст талаасын көрсөтөт. Бул нускамада текст түйүндөрү учурдагы, чыңалуудагы, моделдин, жабдыктын версиясын же JSON версиясын көрсөтөт.

Этикетка тактасында көрсөтүлөт, ал эми Аты Node-RED агымында көрсөтүлгөн түйүндүн аталышы.

Мүчүлүштүктөрдү оңдоо түйүнү

Msg.payload көрсөтөт.

11 -кадам: Диаграмма түйүнү

Диаграмма түйүнү
Диаграмма түйүнү
Диаграмма түйүнү
Диаграмма түйүнү

Бул түйүн учурдагы диаграмманы панелдеги пайдалуу жүктүн наркына жараша түзөт.

Бул түйүн пайдалуу жүктүн наркына ылайык диаграммаларды гана түзө алат.

Ушул себептен улам, msg.payload көрсөткүчүн дисплейге коюу үчүн функция түйүнү колдонулат.

msg.payload = msg. TotalCurrent;

12 -кадам: ченегич түйүн жана шилтеме түйүндөрү

Ченөө түйүнү жана шилтеме түйүндөрү
Ченөө түйүнү жана шилтеме түйүндөрү
Ченөө түйүнү жана шилтеме түйүндөрү
Ченөө түйүнү жана шилтеме түйүндөрү

Өлчөө түйүнү

Бул түйүн панелге ченегич виджет кошот.

Бул көрсөтмөдө, ар бир өлчөгүч msg объектинин бир касиетин элестетет: чыңалуу [V], curent [A], жыштык [Hz] жана жалпы True Power Factor (TPF).

Шилтеме түйүндөрү

Түйүндөрдү туташтыруу шилтеме туннель сыяктуу иштейт. Msg.payload түйүндөгү шилтемеге келип, шилтеме түйүнүнөн чыгып кетет.

Мен муну агымды бир аз түшүнүктүү жана окууга жеңил кылуу үчүн колдондум.

13 -кадам: Менин көрсөтмөмдү окуганыңыз үчүн рахмат

Сиз менин үйрөткөн сабагымдан ырахат алдыңыз деп үмүттөнөм жана үмүт менен жаңы нерсени үйрөндүңүз.

Бул көрсөтмө мен жасаган ар кандай гиддердин кыскартылган версиясы

Түпнуска көрсөтмө узунураак жана деталдарга көбүрөөк багытталган жана жалпысынан жакшыраак структураланган. Эгерде сиз бир нерсени түшүнбөсөңүз же мен бир нерсени сагындым же жетиштүү түшүндүргөн жокмун деп ойлосоңуз, анда аны сөзсүз ошол жерден таба аласыз.

Мен убада берем, көңүлүңүз калбайт

Түпнуска:

Ошондой эле, Node-REDдин ар кандай колдонулушу жөнүндө окшош колдонмолор бар, андыктан сизди кызыктырса, анда изилдөөгө болот:

RED URL API менен иштөө түйүн-КЫЗЫЛ

www.netio-products.com/en/application-notes/an29-node-red-example-of-url-api-communication-with-netio-4x

REST XML менен түйүн-REDде иштөө

www.netio-products.com/en/application-notes/an31-node-red-example-of-rest-xml-communication-with-netio-4x

TCP/Modbus менен түйүн-КЫЗЫЛда иштөө

Жакында келет:)

Сунушталууда: