Мазмұны:

JSON-мен Node-RED-те қалай жұмыс істеу керек: 13 қадам
JSON-мен Node-RED-те қалай жұмыс істеу керек: 13 қадам

Бейне: JSON-мен Node-RED-те қалай жұмыс істеу керек: 13 қадам

Бейне: JSON-мен Node-RED-те қалай жұмыс істеу керек: 13 қадам
Бейне: Edema: Swollen Feet, Swollen Ankles & Swollen Legs [FIX Them FAST!] 2024, Желтоқсан
Anonim
JSON-мен Node-RED-те қалай жұмыс істеу керек
JSON-мен Node-RED-те қалай жұмыс істеу керек

Бұл нұсқаулық сізге JSON-мен RED түйінінде жұмыс істеуді үйретеді. Мен сізге желілік розеткаларды json файлдарын http алу және жіберу арқылы қалай басқаруға болатынын көрсетемін. Сіз бұл білімді кейінірек JSON протоколын қолдайтын кез келген құрылғыны басқару үшін пайдалана аласыз.

Оқыту мақсатында мен NETIO 4All желілік розеткасын қолданамын, бірақ уайымдамаңыз, сізге ештеңе сатып алудың қажеті жоқ. NETIO -да сіз қолдана алатын таңғажайып 4All онлайн демо нұсқасы бар.

Жабдықтар

NETIO 4All желілік powerocket немесе 4All онлайн демо:

Түйін-ҚЫЗЫЛ

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

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

Бұл бөлік сәл техникалық, бірақ маған шыдаңыз. Егер мен бұл бөлікті түсіндірмесем, онда біз түйін-ҚЫЗЫЛ арқылы жіберетін json файлдарындағы мәндерді түсінуде қиындықтар туындауы мүмкін.

Әр шығысқа қолданылатын әрекеттер (электр розеткасы):

Барлық M2M протоколдарында NETIO розеткалары жеке шығуларға қолдануға болатын әрекеттерді қолданады. Мысалы, кез келген шығысқа Toggle немесе Short Off әрекетін жазуға болады.

Дегенмен, Action айнымалы мәндерді жазу үшін ғана қолданыла алады, оны ағымдағы шығыс күйін оқу үшін қолдануға болмайды.

Бұл әр шығысқа қолдануға болатын әрекеттер:

0 = шығыс өшірулі (өшірулі)

1 = Шығу қосылды (Қосулы)

2 = шығыс қысқа уақытқа өшірілді (қысқа өшіру)

3 = шығыс қысқа уақытқа қосылды (қысқа қосулы)

4 = Шығу бір күйден екінші күйге ауыстырылды (ауысу)

5 = Шығу күйі өзгеріссіз (өзгеріссіз)

6 = Еленбейді

Мысал - шығыс нөмірін ауыстыру үшін JSON файлы. 1:

{

«Шығу»: [{

«Идентификатор»: 1, «Әрекет»: 4

}]

}

Идентификатор - бұл сан қандай шығыс қолданылатынын көрсетеді

Әрекет - бұл бөлік - бұл шығарылатын әрекет (мысалы, 1 (Шығуды қосу))

2 -қадам: ағын

Ағын
Ағын

Ал енді негізгі бөлім. ҚЫЗЫЛ түйін түйіні осылай көрінеді.

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

  1. NETIO AN30 (JSON REST API) ағыны
  2. Бақылау тақтасы (бағдарламаны басқаруға болатын графикалық интерфейс)

3 -қадам: бақылау тақтасы

Бақылау тақтасы
Бақылау тақтасы

Бұл нұсқаулыққа арналған RED түйініндегі бақылау тақтасы осылай көрінеді. Егер сіз өзіңіздің талғамыңызға сәйкес келсе, оны реттей аласыз.

Бұл жобаның бақылау тақтасы 4 бөлікке бөлінеді:

  1. Device Status - құрылғы туралы ақпарат, мысалы, модель, mac мекенжайы немесе микробағдарлама нұсқасы.
  2. (POST) Басқару шығысы 1 - Шығуды басқаратын 5 түйме бар. Әр түйме әр түрлі әрекетті орындайды
  3. (GET) O1 - O4 Шығу күйлері - Бұл бөлім сіздің құрылғыңыздан шыққан әрбір шығудың ағымдағы күйін көрсетеді.
  4. Құрылғыны басқару - бұл бөлімде сіз NETIO 4Aall құрылғысынан ағымдағы өлшенген мәндерді көрсететін графиктер мен өлшегіштердің барлық түрін таба аласыз.

4 -қадам: Импорт ағыны (жоба, сценарий, т.б.)

Импорт ағыны (жоба, сценарий, т.б.)
Импорт ағыны (жоба, сценарий, т.б.)

Мәзірде (оң жақ жоғарғы бұрышта) Импорттауды, содан кейін Алмасу буферін таңдаңыз.

Содан кейін төмендегі мәтінді көрсетілген өріске көшіріп, Импорттау түймешігін басыңыз.

Жетіспейтін түйіндерді орнату

Түйіндер таңдалған ағынға жүктеледі. Қате туралы хабар импортталатын, бірақ әлі түйін-ҚЫЗЫЛ-ға орнатылмаған түйіндердің тізімімен көрсетілуі мүмкін. Бұл жағдайда жетіспейтін түйіндерді орнату қажет.

Егер түйіндер жетіспесе, мәзірден Палитраны басқару пәрменін таңдаңыз, Орнату түймешігін басып, жоқ түйіндерді тауып орнатыңыз.

Мәтінді импорттау:

[{«id»: «56b9510c.98c6f», «type»: «tab», «label»: «NETIO AN30 (REST JSON)», «ажыратылған»: жалған, «ақпарат»: «»}, {«id «:» 6a66b637.da1558 «,» type «:» http сұранысы «,» z «:» 56b9510c.98c6f «,» name «:» 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 сұранысы (POST) блогы netio.json файлын IP мекенжайына сұраныс ретінде жібереді.
  • Сервер жауабы (күйі) шығыс ретінде қайтарылады.
  • Msg.payload блогы нәтижені HTTP сұрауынан (POST) көрсетеді.

Алу: O1 - O4 аралығында оқу

  • 1 секунд қайталау блогы бір секунд уақыт ішінде HTTP сұранысы (GET) блогын іске қосады, ол өз кезегінде netio.json файлын GET сұрауы ретінде жібереді және серверден алынған ұяшық күйі бар толық JSON файлын қайтарады.
  • JSON Parse блогы JSON файлын HTTP Request (GET) блогынан JSON объектісіне айналдырады, осылайша JSON файлындағы қасиеттерді басқаруға болады.
  • Функционалды блок JSON объектісінің жекелеген бөліктерін алады және оларды кейін пайдалану үшін msg объектісінің қасиеттеріне айналдырады.
  • Ағымдағы диаграмма блогы msg.payload файлын msg. TotalCurrent қасиетіне орнатады, себебі келесі ағымдағы диаграмма (құрылғы) тек msg.payload мәнін көрсете алады.
  • Басқару тақтасында JSON объектісінен алынған msg объектісінің таңдалған қасиеттерін көрсету үшін әр түрлі шығыс түйіндері орындалады.

Хабарлама объектісі және хабарлама жүктемесі

Қарапайым және қысқаша түсініктеме алу үшін мына жерден қараңыз:

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 сұрау түйіндерінде де, POST -та да, GET -те де өзгеруі керек.

7 -қадам: түйін түйіндері

Түйме түйіндері
Түйме түйіндері
Түйме түйіндері
Түйме түйіндері

Түймешік түйінін басу netio.json файлы (оң жақ сурет) бар хабарды шығарады, содан кейін http пост торабы арқылы netio smart power розеткасына жіберіледі.

8 -қадам: Функционалды түйін

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

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

Бұл нұсқаулықта функция талданған JSON файлынан (қазір JSON нысаны) мәндерді таңдайды және оларды msg объектісінің қасиеттеріне тағайындайды.

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

  1. JSON объектісінен msg объектісінің жеке қасиеттеріне мәндерді тағайындау
  2. Желілік розетка жаһандық өлшемдерді қолдамайтын жағдайда қатені өңдеу

    Егер желідегі розетка жаһандық мәндерді өлшеуді қолдамаса, Node-RED қателерді көрсетеді, себебі бұл функция сәйкес қасиетті таба алмайды, мысалы. msg.payload. GlobalMeasure. Voltage, себебі ол JSON нысанында болмайды. Бұл жағдайда msg объектісінің қасиеті, мысалы. msg. Voltage, 0 мәніне орнатылады және қате өңделеді.

  3. Шығу күйінің мәндерін тағайындау
  4. Шығару күйлеріне сәйкес шығыс күйінің мәндерінің түстерін орнату

9 -қадам: JSON түйіні және түйінді инъекциялау

JSON түйіні және түйінді инъекциялау
JSON түйіні және түйінді инъекциялау
JSON түйіні және түйінді инъекциялау
JSON түйіні және түйінді инъекциялау

JSON түйіні

JSON түйіні JSON файлын талдайды және оны JSON нысанына айналдырады.

Серверден GET сұрауына жауап ретінде HTTP сұрау түйіні NETIO 4x құрылғысының ағымдағы күйі бар JSON файлын қайтарады, бірақ ол тек мәтіндік файл, сондықтан деректермен жұмыс істеу үшін JSON файлы қажет. JSON нысанына талдау қажет.

Түйінді енгізіңіз

Әр секунд сайын бұл түйін GET сұранысын жіберетін HTTP сұрау түйінін белсендіреді.

Нәтижесінде, бақылау тақтасындағы мәндер бір секундқа жаңартылады

10 -қадам: Мәтіндік түйін және жөндеу түйіні

Мәтіндік түйін және жөндеу түйіні
Мәтіндік түйін және жөндеу түйіні
Мәтіндік түйін және жөндеу түйіні
Мәтіндік түйін және жөндеу түйіні

Мәтіндік түйін

Бақылау тақтасында мәтіндік өрісті көрсетеді. Бұл нұсқаулықта мәтіндік түйіндер токты, кернеуді, модельді, микробағдарлама нұсқасын немесе JSON нұсқасын көрсетеді.

Жапсырма бақылау тақтасында көрсетіледі, ал атау-Node-RED ағынында көрсетілетін түйін атауы.

Түзету түйіні

Хабарлама жүктемесін көрсетеді.

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

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

Бұл түйін бақылау тақтасындағы ағымдағы диаграмманы пайдалы жүктеме мәніне сәйкес салады.

Бұл түйін пайдалы жүктеме мәніне сәйкес диаграммаларды ғана құра алады.

Осы себепті, msg.payload жүктелуін көрсету қажет мәнге орнату үшін функция түйіні қолданылады.

msg.payload = msg. TotalCurrent;

12 -қадам: өлшеу торабы мен сілтеме түйіндері

Өлшеу торабы мен сілтеме түйіндері
Өлшеу торабы мен сілтеме түйіндері
Өлшеу торабы мен сілтеме түйіндері
Өлшеу торабы мен сілтеме түйіндері

Өлшеу торабы

Бұл түйін бақылау тақтасына көрсеткіш виджетін қосады.

Бұл нұсқаулықта әр өлшегіш хабарлама объектісінің бір қасиетін бейнелейді: кернеу [V], қисық [A], жиілік [Гц] және жалпы шынайы қуат факторы (TPF).

Сілтеме түйіндері

Түйіндерді қосу және байланыстыру туннель сияқты жұмыс істейді. Msg.payload түйіндегі сілтемеге келіп, сілтемеден шығу түйінінен шығады.

Мен оны ағынды біршама түсінікті және оқуды жеңілдету үшін қолдандым.

13 -қадам: Менің нұсқаулықты оқығаныңыз үшін рахмет

Сізге менің үйреткенім ұнады деп үміттенемін және жаңа нәрсені үйрендіңіз деп үміттенемін.

Бұл нұсқаулық - мен жасаған әр түрлі нұсқаулықтың қысқартылған нұсқасы

Түпнұсқа нұсқаулық ұзақ және егжей -тегжейлі бағытталған және әдетте жақсы құрылымдалған. Егер сіз бір нәрсені түсінбеген болсаңыз немесе мені бірдеңені жіберіп алдым немесе жеткілікті түсіндірмедім деп ойласаңыз, онда сіз оны міндетті түрде сол жерден таба аласыз.

Сізге көңіліңіз қалмайтынына уәде беремін

Түпнұсқа:

Сондай-ақ, NED-RED-тің әр түрлі қолданылуы туралы ұқсас нұсқаулықтар бар, сондықтан сізді қызықтыратын болсаңыз:

RED URL API түйінінде-RED-те жұмыс істеу

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

RED түйінінде REST XML-мен жұмыс істеу

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

ҚЫЗЫЛ түйінінде TCP/Modbus-пен жұмыс

Жақында болады:)

Ұсынылған: