Talaan ng mga Nilalaman:

Paano Magtrabaho Sa JSON sa Node-RED: 13 Mga Hakbang
Paano Magtrabaho Sa JSON sa Node-RED: 13 Mga Hakbang

Video: Paano Magtrabaho Sa JSON sa Node-RED: 13 Mga Hakbang

Video: Paano Magtrabaho Sa JSON sa Node-RED: 13 Mga Hakbang
Video: Going Rogue: How Out of Band Management Revolutionizes IT: A Look at HP iLO 2024, Nobyembre
Anonim
Paano Magtrabaho Sa JSON sa Node-RED
Paano Magtrabaho Sa JSON sa Node-RED

Ituturo sa iyo ang itinuturo na ito kung paano magtrabaho kasama si JSON sa node-RED. Ipapakita ko sa iyo kung paano makontrol ang mga naka-network na socket ng kuryente sa paglilipat ng mga json file sa pamamagitan ng http get at post. At maaari mong gamitin ang kaalamang ito sa paglaon upang makontrol ang anumang aparato na sumusuporta sa JSON protocol.

Para sa mga layunin ng pagtuturo ay gumagamit ako ng NETIO 4All networked power socket, ngunit huwag mag-alala, hindi mo kailangang bumili ng anuman. Ang NETIO ay may kamangha-manghang 4All online demo na maaari mong gamitin.

Mga gamit

NETIO 4Lahat ng naka-network na powersocket o 4All online demo:

Node-RED

Hakbang 1: REST JSON Http (na) Protocol

REST JSON Http (mga) Protocol
REST JSON Http (mga) Protocol

Ang bahaging ito ay medyo teknikal ngunit mangyaring tiisin mo ako. Kung hindi ko ipaliwanag ang bahaging ito pagkatapos ay magkakaroon ka ng mga problema sa pag-unawa sa mga halaga sa json file na ipapadala namin sa node-RED.

Mga aksyon na nalalapat sa bawat output (electrical socket):

Sa lahat ng mga M2M na protokol, ang mga socket ng kapangyarihan ng NETIO ay gumagamit ng parehong mga aksyon na maaaring mailapat sa mga indibidwal na output. Halimbawa, ang isang aksyon na Toggle o Short Off ay maaaring nakasulat sa anumang output.

Gayunpaman, ang variable ng Pagkilos ay maaari lamang magamit para sa mga halaga ng pagsulat, hindi ito maaaring gamitin upang mabasa ang kasalukuyang estado ng outlet.

Ito ang mga pagkilos na maaari mong mailapat sa bawat output:

0 = Ang output ay nakasara (Naka-off)

1 = Ang output ay nakabukas (Bukas)

2 = Ang output ay naka-off para sa isang maikling panahon (maikling Off)

3 = Ang output ay nakabukas para sa isang maikling panahon (maikling On)

4 = Ang output ay lumipat mula sa isang estado patungo sa iba pa (toggle)

5 = Ang estado ng output ay hindi nagbago (walang pagbabago)

6 = Hindi pinansin

Halimbawa - JSON file upang i-toggle ang output no. 1:

{

"Mga Output": [{

"ID": 1, "Aksyon": 4

}]

}

ID - isinasaad ng numerong ito kung aling output ang gagamitin namin

Pagkilos - ang bahaging ito, ay ang aksyon na gagawin ng output (hal. 1 (I-on ang output))

Hakbang 2: Daloy

Daloy
Daloy

At ngayon ang pangunahing bahagi. Ganito ang hitsura ng node-RED na kapaligiran.

Nag-import kami ng daloy ng URL API (Ang proyektong nakikita mo. Mamaya ipapakita ko sa iyo kung paano mag-import ng mga daloy at ang proyektong ito) Ang proyektong ito ay binubuo ng dalawang bahagi:

  1. Pag-agos ng NETIO AN30 (JSON REST API)
  2. Dashboard (Graphical interface kung saan maaari mong mapatakbo ang iyong programa)

Hakbang 3: Dashboard

Dashboard
Dashboard

Ganito ang hitsura ng dashboard sa node-RED para sa itinuturo na ito. Maaari mong ipasadya ito kung nais mong umangkop sa iyong panlasa.

Ang dashboard para sa proyektong ito ay nahahati sa 4 na bahagi:

  1. Katayuan ng Device - nagpapakita ng impormasyon ng aparato tulad ng modelo, mac address o bersyon ng firmware.
  2. (POST) Control Output 1 - Naglalaman ng 5 mga pindutan na kinokontrol ang output 1. Ang bawat pindutan ay nagpapatupad ng iba't ibang mga aksyon
  3. (GET) O1 - O4 Mga Output na Estado - Ipinapakita ng bahaging ito ang kasalukuyang estado ng bawat output mula sa iyong aparato.
  4. Pamamahala ng Device - Sa bahaging ito maaari kang makahanap ng lahat ng mga uri ng mga graph at gauge na nagpapakita ng kasalukuyang mga sukat na sukat mula sa NETIO 4Lahat ng aparato

Hakbang 4: Pag-import ng Daloy (proyekto, Script, Etc)

Pag-import ng Daloy (proyekto, Script, atbp)
Pag-import ng Daloy (proyekto, Script, atbp)

Sa menu (kanang sulok sa itaas) piliin ang I-import at pagkatapos ang Clipboard.

Pagkatapos, kopyahin ang teksto sa ibaba sa tinukoy na patlang at i-click ang I-import.

Pag-install ng mga nawawalang node

Ang mga node ay na-load sa napiling daloy. Posibleng ang isang mensahe ng error ay ipinapakita na may isang listahan ng mga node na na-import ngunit hindi pa naka-install sa Node-RED. Sa kasong ito, kailangang mai-install ang mga nawawalang node.

Kung may mga nawawalang node, piliin ang Pamahalaan ang palette sa menu, i-click ang I-install at hanapin at i-install ang mga node na nawawala mo.

Mag-import ng teksto:

[{"id": "56b9510c.98c6f", "type": "tab", "label": "NETIO AN30 (REST JSON)", "hindi pinagana": false, "info": ""}, {"id ":" 6a66b637.da1558 "," type ":" http request "," z ":" 56b9510c.98c6f "," name ":" HTTP Request (POST) "," method ":" POST "," ret ": "txt", "url": "https://netio-4All.netio-products.com:8080/netio.json", "tls": "", "x": 430, "y": 100, "wires":

Hakbang 5: Paano Ito Magagawa nang Magkasama

Paano Ito Magkakasamang Lahat
Paano Ito Magkakasamang Lahat

Karaniwan na nahahati ang daloy sa dalawang bahagi: POST at GET.

POST: Pagsusulat sa O1

  • Limang mga pindutan na nilikha sa Dashboard sa Daloy ay ipinapakita sa Dashboard.
  • Matapos i-click ang Output 1 = ON button sa Dashboard, ang payload ay nakatakda sa netio.json file na tumutukoy sa output at ang aksyon (tinukoy para sa bawat isa sa mga pindutan).
  • Ang block ng HTTP Request (POST) ay nagpapadala ng netio.json file bilang isang kahilingan sa isang IP address.
  • Ang tugon ng server (katayuan) ay ibinalik bilang output.
  • Ipinapakita ng block ng Msg.payload ang resulta mula sa HTTP Request (POST).

GET: Pagbasa mula sa O1 - O4

  • Aktibo ang 1 Second Repeat block, na may isang panahon ng isang segundo, ang HTTP Request (GET) block, na siya namang nagpapadala ng netio.json bilang isang kahilingan sa GET at ibabalik ang isang kumpletong JSON file na may katayuan ng socket na natanggap mula sa server.
  • Binabago ng JSON Parse block ang JSON file mula sa HTTP Request (GET) block sa isang JSON Object upang posible na manipulahin ang mga pag-aari sa JSON file.
  • Ang Function block ay tumatagal ng mga indibidwal na bahagi ng object ng JSON at binago ang mga ito sa mga pag-aari ng isang msg object para magamit sa paglaon.
  • Itinatakda ng block ng Kasalukuyang tsart ang msg.payload sa msg. Kabuuang pag-aari ng object ng msg, dahil ang kasunod na Kasalukuyang Tsart (Device) ay maipapakita lamang ang halagang msg.payload.
  • Iba't ibang mga output node pagkatapos ay sundin upang maipakita ang mga napiling pag-aari ng bagay na msg, tulad ng kinuha mula sa object na JSON, sa Dashboard.

Ang msg object at msg.payload

Para sa isang simple at maigsi na paliwanag, tingnan dito:

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

Hakbang 6: HTTP POST at GET

HTTP POST at GET
HTTP POST at GET
HTTP POST at GET
HTTP POST at GET

Kahilingan sa HTTP (POST)

Ang node na ito ay nagpapadala ng isang netio.json command file bilang isang HTTP Request (POST) upang makontrol ang NETIO 4All device.

Kahilingan sa HTTP (GET)

Nagpapadala ang node na ito ng isang HTTP Request (GET) at ibabalik ang tugon sa katayuan.

Ang punong puno ng address ay tumuturo sa NETIO 4All online demo, kung saan maaari mong subukan ang koneksyon nang hindi nagkakaroon ng isang NETIO aparato sa iyong mesa.

netio-4all.netio-productions.com

Posibleng itakda ang iyong sariling IP address sa mga node na ito; gayunpaman, ang IP ay kailangang mabago sa parehong mga HTTP Request node, POST pati na rin ang GET.

Hakbang 7: Mga Node ng Button

Mga Node ng Button
Mga Node ng Button
Mga Node ng Button
Mga Node ng Button

Ang pag-click sa button node ay bumubuo ng isang mensahe na naglalaman ng isang netio.json file (Tamang larawan) na pagkatapos ay ipinadala sa pamamagitan ng http post node sa netio smart power socket.

Hakbang 8: Function Node

Function Node
Function Node
Function Node
Function Node

Ang isang function node ay isang espesyal na node na nagbibigay-daan sa pagsusulat ng isang pasadyang pagpapaandar ng JavaScript.

Sa itinuturo na ito, ang function ay pumili ng mga halaga mula sa na-parse na JSON file (ngayon ay isang JSON object) at itatalaga ang mga ito sa mga pag-aari ng msg object.

Ang code ay nahahati sa apat na seksyon:

  1. Ang pagtatalaga ng mga halaga mula sa object ng JSON sa indibidwal na mga katangian ng object na msg
  2. Error sa paghawak kung sakaling hindi suportahan ng naka-network na socket ang pandaigdigang mga sukat

    Kung hindi sinusuportahan ng naka-network na socket ang pagsukat ng mga pandaigdigang halaga, ang Node-RED ay magpapakita ng mga error dahil ang function na ito ay hindi mahanap ang kani-kanilang pag-aari, hal. msg.payload. GlobalMeasure. Voltage, dahil wala ito sa object ng JSON. Sa kasong ito, ang pag-aari ng object ng msg, hal. Ang msg. Voltage, ay nakatakda sa 0 at ang error ay naabutan ng isang hawakan.

  3. Pagtatalaga ng mga halaga ng estado ng output
  4. Ang pagtatakda ng mga kulay ng ipinapakitang mga halaga ng estado ng output ayon sa mga estado ng output

Hakbang 9: JSON Node at Inject Node

JSON Node at Inject Node
JSON Node at Inject Node
JSON Node at Inject Node
JSON Node at Inject Node

JSON node

Pinag-parse ng node ng JSON ang JSON file at binago ito sa isang object na JSON.

Bilang isang tugon mula sa server sa kahilingan sa GET, ang HTTP Request node ay nagbabalik ng isang file na JSON na naglalaman ng kasalukuyang katayuan ng NETIO 4x aparato, ngunit ito ay simpleng isang text file, kaya upang gumana sa data, kailangan ng JSON file upang mai-parse sa isang bagay na JSON.

I-injection node

Tuwing segundo, pinapagana ng node na ito ang node ng HTTP Request na nagpapadala ng isang kahilingan sa GET.

Bilang isang resulta, ang mga halaga sa Dashboard ay na-update sa isang tagal ng isang segundo

Hakbang 10: Text Node at Debug Node

Text Node at Debug Node
Text Node at Debug Node
Text Node at Debug Node
Text Node at Debug Node

Node ng teksto

Nagpapakita ng isang patlang ng teksto sa Dashboard. Sa itinuturo na ito, ipinapakita ng mga node ng teksto ang kasalukuyang, boltahe, modelo, bersyon ng firmware o bersyon ng JSON.

Ang Label ay ipinapakita sa Dashboard, at ang Pangalan ay ang pangalan ng node na ipinapakita sa daloy sa Node-RED.

Node ng pag-debug

Ipinapakita ang msg.payload.

Hakbang 11: Chart Node

Chart Node
Chart Node
Chart Node
Chart Node

Ang node na ito ay naglalagay ng kasalukuyang tsart sa Dashboard alinsunod sa halagang payload.

Ang node na ito ay maaari lamang magplot ng mga chart ayon sa halaga ng payload.

Para sa kadahilanang ito, ginagamit ang isang function node upang maitakda ang msg.payload sa halagang kailangang ipakita.

msg.payload = msg. TotalCurrent;

Hakbang 12: Gauge Node at Link Nodes

Gauge Node at Link Nodes
Gauge Node at Link Nodes
Gauge Node at Link Nodes
Gauge Node at Link Nodes

Gauge node

Ang node na ito ay nagdaragdag ng isang gauge widget sa Dashboard.

Sa itinuturo na ito, nakikita ng bawat gauge ang isang pag-aari ng object ng msg: boltahe [V], curent [A], dalas [Hz] at ang pangkalahatang True Power Factor (TPF).

Mga node ng link

Ang link sa at i-link ang mga node ay gumagana tulad ng isang lagusan. Dumating ang msg.payload sa link sa node at lumalabas sa link out node.

Ginamit ko ito upang gawing mas malinaw ang daloy at mas madaling basahin.

Hakbang 13: Salamat sa Pagbasa ng Aking Makatuturo

Inaasahan kong nasiyahan ka sa aking natuturo at inaasahan kong may natutunan na bago.

Ang itinuturo na ito ay pinaikling bersyon lamang ng iba't ibang gabay na ginawa ko

Ang orihinal na gabay ay mas mahaba at higit na nakatuon sa detalye at sa pangkalahatan ay mas mahusay na nakaayos. Kung hindi mo naintindihan ang isang bagay o iniisip na na-miss ko o hindi ipinaliwanag ang sapat na isang bagay, tiyak na mahahanap mo ito doon.

Ipinapangako kong hindi ka mapapahiya

Orihinal:

Gayundin mayroong mga pamilyar na gabay tungkol sa iba't ibang paggamit ngnode-RED, kaya kung interesado kang huwag mag-atubiling galugarin:

Paggawa gamit ang REST URL API sa node-RED

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

Nagtatrabaho sa REST XML sa node-RED

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

Paggawa gamit ang TCP / Modbus sa node-RED

Paparating na:)

Inirerekumendang: