Mündəricat:

Node-RED-də JSON ilə necə işləmək olar: 13 addım
Node-RED-də JSON ilə necə işləmək olar: 13 addım

Video: Node-RED-də JSON ilə necə işləmək olar: 13 addım

Video: Node-RED-də JSON ilə necə işləmək olar: 13 addım
Video: ComfyUI Tutorial - How to Install ComfyUI on Windows, RunPod & Google Colab | Stable Diffusion SDXL 2024, Noyabr
Anonim
Node-RED-də JSON ilə necə işləmək olar
Node-RED-də JSON ilə necə işləmək olar

Bu təlimat, node-RED-də JSON ilə necə işləməyi öyrədəcək. Json fayllarını http get və post vasitəsi ilə ötürməklə şəbəkəyə qoşulmuş elektrik prizlərini necə idarə edəcəyinizi sizə göstərəcəyəm. Və bu bilikdən sonra JSON protokolunu dəstəkləyən hər hansı bir cihazı idarə etmək üçün istifadə edə bilərsiniz.

Tədris məqsədləri üçün NETIO 4All şəbəkə prizindən istifadə edəcəyəm, amma narahat olmayın, heç bir şey almağınıza ehtiyac yoxdur. NETIO istifadə edə biləcəyiniz inanılmaz 4All onlayn demoya malikdir.

Təchizat

NETIO 4All şəbəkəyə qoşulmuş powersocket və ya 4All onlayn demo:

Qırmızı Qırmızı

Addım 1: JSON Http (s) Protokolunu REST

REST JSON Http (s) Protokolu
REST JSON Http (s) Protokolu

Bu hissə bir az texniki xarakter daşıyır, amma mənə səbr edin. Bu hissəni izah etməsəydim, node-RED ilə göndərəcəyimiz json sənədlərindəki dəyərləri anlamaqda probleminiz olardı.

Hər bir çıxışa tətbiq olunan hərəkətlər (elektrik prizi):

Bütün M2M protokollarında NETIO elektrik prizləri fərdi çıxışlara tətbiq oluna bilən eyni hərəkətləri istifadə edir. Məsələn, hər hansı bir çıxışa keçid və ya qısa söndürmə hərəkəti yazıla bilər.

Bununla birlikdə, Action dəyişənləri yalnız dəyərlər yazmaq üçün istifadə edilə bilər, mövcud çıxış vəziyyətini oxumaq üçün istifadə edilə bilməz.

Bunlar hər bir çıxışa tətbiq edə biləcəyiniz hərəkətlərdir:

0 = Çıxış söndürüldü (Qapalı)

1 = Çıxış aktivdir (Açıq)

2 = Çıxış qısa müddətə söndürüldü (qısa Off)

3 = Çıxış qısa müddətə açıldı (qısa Açıq)

4 = Çıxış bir vəziyyətdən digərinə keçdi (keçid)

5 = Çıxış vəziyyəti dəyişməz (dəyişməz)

6 = Yoxdur

Nümunə - Çıxış nömrəsini dəyişdirmək üçün JSON faylı. 1:

{

"Çıxışlar": [{

"ID": 1, "Fəaliyyət": 4

}]

}

ID - bu nömrə hansı çıxışdan istifadə edəcəyimizi göstərir

Fəaliyyət - bu hissə, çıxışın edəcəyi hərəkətdir (məsələn, 1 (Çıxışı yandır))

Addım 2: axın

Axın
Axın

Və indi əsas hissə. Node-RED mühitinin görünüşü belədir.

URL API axını idxal etdik (Gördüyünüz layihə. Daha sonra axınları və bu layihəni necə idxal edəcəyinizi sizə göstərəcəyəm) Bu layihə iki hissədən ibarətdir:

  1. NETIO AN30 (JSON REST API) axını
  2. Dashboard (Proqramınızı idarə edə biləcəyiniz qrafik interfeys)

Addım 3: İdarəetmə Paneli

Tablosuna
Tablosuna

Bu təlimat üçün node-RED tablosuna bənzəyir. Zövqünüzə uyğunlaşdırmaq istəsəniz özəlləşdirə bilərsiniz.

Bu layihənin idarəetmə paneli 4 hissəyə bölünür:

  1. Cihaz Vəziyyəti - model, mac ünvanı və ya firmware versiyası kimi cihaz məlumatlarını göstərir.
  2. (POST) Nəzarət Çıxışı 1 - Çıxış 1 -i idarə edən 5 düymədən ibarətdir. Hər bir düymə fərqli hərəkətlər yerinə yetirir
  3. (GET) O1 - O4 Çıxış Vəziyyətləri - Bu hissə cihazınızdakı hər bir çıxışın cari vəziyyətini göstərir.
  4. Cihaz İdarəçiliyi - Bu hissədə NETIO 4Aall cihazından cari ölçülmüş dəyərləri göstərən hər cür qrafik və ölçü cihazlarını tapa bilərsiniz.

Addım 4: İdxal axını (layihə, Script, Etc)

İdxal axını (layihə, Script, Etc)
İdxal axını (layihə, Script, Etc)

Menyuda (yuxarı sağ küncdə) İdxal və sonra Panoya seçin.

Sonra aşağıdakı mətni göstərilən sahəyə kopyalayın və İdxal et düyməsini basın.

Eksik qovşaqların quraşdırılması

Düyünlər seçilmiş axına yüklənir. İdxal olunan, lakin hələ də Node-RED-də quraşdırılmayan qovşaqların siyahısı ilə bir səhv mesajının göstərilməsi mümkündür. Bu vəziyyətdə itkin qovşaqların quraşdırılması lazımdır.

Düyünlər yoxdursa, menyudan Palitranı idarə et seçin, Quraşdır düyməsini vurun və itkin olduğunuz qovşaqları tapın və quraşdırın.

Mətni idxal edin:

[{"id": "56b9510c.98c6f", "type": "tab", "label": "NETIO AN30 (REST JSON)", "disabled": false, "info": ""}, {"id ":" 6a66b637.da1558 "," type ":" http sorğusu "," z ":" 56b9510c.98c6f "," ad ":" HTTP İstəyi (POST) "," metod ":" POST "," ret ": "txt", "url": "https://netio-4All.netio-products.com:8080/netio.json", "tls": "", "x": 430, "y": 100, "teller":

Addım 5: Hamısı Birlikdə Necə Çalışır

Hamısı Birlikdə Necə Çalışır
Hamısı Birlikdə Necə Çalışır

Axın əsasən iki hissəyə bölünür: POST və GET.

POST: O1 -ə yazmaq

  • İdarəetmə Panosunda axında İdarə Panosunda yaradılmış beş düymə göstərilir.
  • Tablosundakı Çıxış 1 = ON düyməsini tıkladıqdan sonra, yük, çıxışı və hərəkəti (düymələrin hər biri üçün müəyyən edilmiş) təyin edən netio.json faylına təyin olunur.
  • HTTP İstəyi (POST) bloku netio.json faylını IP ünvanına sorğu olaraq göndərir.
  • Server cavabı (status) çıxış olaraq qaytarılır.
  • Msg.payload bloku nəticəni HTTP İstəkindən (POST) göstərir.

GET: O1 - O4 arasında oxu

  • 1 Saniyəlik Təkrar bloku, bir saniyəlik bir müddətlə, HTTP İstəyi (GET) blokunu aktivləşdirir və bu da netio.json -u GET sorğusu olaraq göndərir və serverdən alınan yuva statusu ilə tam bir JSON faylını qaytarır.
  • JSON Parse bloku, JSON faylını HTTP Request (GET) blokundan JSON Obyektinə çevirir, beləliklə JSON faylının xüsusiyyətlərini manipulyasiya etmək mümkündür.
  • Funksiya bloku JSON obyektinin ayrı -ayrı hissələrini alır və sonradan istifadə etmək üçün onları msg obyektinin xüsusiyyətlərinə çevirir.
  • Current Chart bloku msg.payload -ı msg obyektinin msg. TotalCurrent xüsusiyyətinə təyin edir, çünki sonrakı Cari Qrafik (Cihaz) bloku yalnız msg.payload dəyərini göstərə bilər.
  • JSON obyektindən götürüldüyü kimi, msg obyektinin seçilmiş xüsusiyyətlərini Göstəriş Panosunda göstərmək üçün müxtəlif çıxış qovşaqları izləyir.

Msg obyekti və msg.payload

Sadə və qısa bir izahat üçün bura baxın:

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

Addım 6: HTTP POST və GET

HTTP POST və GET
HTTP POST və GET
HTTP POST və GET
HTTP POST və GET

HTTP İstəyi (POST)

Bu qovşaq NETIO 4All cihazını idarə etmək üçün bir netio.json əmr faylını HTTP İstəyi (POST) olaraq göndərir.

HTTP İstəyi (GET)

Bu düyün bir HTTP İstəyi (GET) göndərir və status cavabını qaytarır.

Əvvəlcədən doldurulmuş ünvan, NETIO 4All onlayn demosunu göstərir, burada masanızda NETIO cihazı olmadan əlaqəni sınaya bilərsiniz.

netio-4all.netio-products.com

Bu qovşaqlarda öz IP ünvanınızı təyin etmək mümkündür; lakin IP -nin həm HTTP İstək qovşaqlarında, həm POST -da, həm də GET -də dəyişdirilməsi lazımdır.

Addım 7: Düymə Düyünləri

Düymə Düyünləri
Düymə Düyünləri
Düymə Düyünləri
Düymə Düyünləri

Düymə düyməsinə basmaq netio.json faylını (Sağdakı şəkil) ehtiva edən bir mesaj yaradır və sonra http post node vasitəsilə netio ağıllı elektrik yuvasına göndərilir.

Addım 8: Function Node

Funksiya Nodu
Funksiya Nodu
Funksiya Nodu
Funksiya Nodu

Function node, xüsusi bir JavaScript funksiyası yazmağa imkan verən xüsusi bir qovşaqdır.

Bu təlimatda funksiya ayrılmış JSON faylından (indi JSON obyekti) dəyərlər seçir və onları msg obyektinin xüsusiyyətlərinə təyin edir.

Kod dörd hissəyə bölünür:

  1. JSON obyektindən msg obyektinin fərdi xüsusiyyətlərinə dəyərlərin təyin edilməsi
  2. Şəbəkə şəbəkə prizinin qlobal ölçüləri dəstəkləmədiyi halda işləmə xətası

    Şəbəkəyə qoşulmuş elektrik prizi qlobal dəyərlərin ölçülməsini dəstəkləmirsə, Node-RED səhvləri göstərər, çünki bu funksiya müvafiq xassəni tapa bilməz, məsələn. msg.payload. GlobalMeasure. Voltage, çünki JSON obyektində olmayacaq. Bu halda, msg obyektinin xüsusiyyəti, məsələn. msg. Voltage, 0 olaraq təyin olunur və səhv idarə olunur.

  3. Çıxış vəziyyəti dəyərlərinin təyin edilməsi
  4. Çıxış vəziyyətinə görə göstərilən çıxış vəziyyəti dəyərlərinin rənglərinin təyin edilməsi

Addım 9: JSON Node və Inject Node

JSON Node və Inject Node
JSON Node və Inject Node
JSON Node və Inject Node
JSON Node və Inject Node

JSON qovşağı

JSON node JSON faylını təhlil edir və onu JSON obyektinə çevirir.

Serverdən GET sorğusuna cavab olaraq, HTTP İstək nodu, NETIO 4x cihazının cari vəziyyətini ehtiva edən bir JSON faylını qaytarır, ancaq sadəcə bir mətn faylıdır, buna görə də məlumatlarla işləmək üçün JSON faylına ehtiyac var. bir JSON obyektinə təhlil edilməlidir.

Nod vurun

Hər saniyədə bu düyün GET sorğusu göndərən HTTP İstəyi düyməsini aktivləşdirir.

Nəticədə, Tablosundakı dəyərlər bir saniyə ərzində yenilənir

Addım 10: Mətn Node və Debug Node

Mətn Node və Debug Node
Mətn Node və Debug Node
Mətn Node və Debug Node
Mətn Node və Debug Node

Mətn düyünü

Tablosuna bir mətn sahəsi göstərir. Bu təlimatda mətn qovşaqları cari, gərginlik, model, firmware versiyası və ya JSON versiyasını göstərir.

Etiket, Tablosuna Göstərilir və Ad, Node-RED-də axında göstərilən qovşaq adıdır.

Debug qovşağı

Mesaj yükünü göstərir.

Addım 11: Qrafik Node

Diaqram Node
Diaqram Node
Diaqram Node
Diaqram Node

Bu qovşaq, yükləmə dəyərinə görə tablosundakı cari qrafiki qurur.

Bu düyün yalnız faydalı yük dəyərinə görə qrafiklər qura bilər.

Bu səbəbdən msg.payload -ı göstərilməsi lazım olan dəyərə təyin etmək üçün bir funksiya nodu istifadə olunur.

msg.payload = msg. TotalCurrent;

Addım 12: Ölçmə Nodu və Bağlantı Nodları

Ölçmə Nodu və Bağlantı Nodları
Ölçmə Nodu və Bağlantı Nodları
Ölçmə Nodu və Bağlantı Nodları
Ölçmə Nodu və Bağlantı Nodları

Ölçmə düyünü

Bu qovşaq Panoya bir ölçü vidceti əlavə edir.

Bu təlimatda hər ölçü cihazı msg obyektinin bir xüsusiyyətini görüntüləyir: gərginlik [V], əyri [A], tezlik [Hz] və ümumi True Power Factor (TPF).

Bağlantı qovşaqları

Bağlantı və qovşaqların bağlanması tunel kimi işləyir. Msg.payload düyündəki linkə daxil olur və linkdən çıxma düyünündən çıxır.

Bir az daha aydın və oxumağı asanlaşdırmaq üçün istifadə etdim.

Addım 13: Təlimatımı oxuduğunuz üçün təşəkkür edirəm

Ümid edirəm ki, mənim öyrədicimdən zövq aldınız və yeni bir şey öyrəndim.

Bu təlimat verdiyim fərqli bələdçinin yalnız qısaldılmış versiyasıdır

Orijinal bələdçi daha uzun və daha detallı və ümumiyyətlə daha yaxşı qurulmuşdur. Bir şeyi başa düşmədinizsə və ya bir şeyi əldən verdiyimi və ya kifayət qədər izah etmədiyimi düşünürsünüzsə, mütləq orada tapa bilərsiniz.

Məyus olmayacağınıza söz verirəm

Orijinal:

Node-RED-in müxtəlif istifadəsi ilə bağlı oxşar təlimatlar da var, buna görə maraqlanırsınızsa araşdırmaqdan çekinmeyin:

Node-RED-də REST URL API ilə işləmək

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

Node-RED-də REST XML ilə işləmək

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

Node-RED-də TCP/Modbus ilə işləmək

Çox yaxında:)

Tövsiyə: