İçindekiler:

Düğüm-RED'de JSON ile Nasıl Çalışılır: 13 Adım
Düğüm-RED'de JSON ile Nasıl Çalışılır: 13 Adım

Video: Düğüm-RED'de JSON ile Nasıl Çalışılır: 13 Adım

Video: Düğüm-RED'de JSON ile Nasıl Çalışılır: 13 Adım
Video: HTML, CSS, JS | 32-Düğüm(Node) Kavramı ve Query Selector - DOM 2 2024, Kasım
Anonim
Düğüm-RED'de JSON ile Nasıl Çalışılır
Düğüm-RED'de JSON ile Nasıl Çalışılır

Bu talimat, size düğüm-RED'de JSON ile nasıl çalışacağınızı öğretecektir. Http get ve post yoluyla json dosyalarını aktararak ağ bağlantılı elektrik prizlerini nasıl kontrol edeceğinizi göstereceğim. Ve bu bilgiyi daha sonra JSON protokolünü destekleyen herhangi bir cihazı kontrol etmek için kullanabilirsiniz.

Öğretme amacıyla NETIO 4All ağ bağlantılı elektrik prizini kullanacağım, ama merak etmeyin, herhangi bir şey satın almanıza gerek yok. NETIO, kullanabileceğiniz harika 4All çevrimiçi demosuna sahiptir.

Gereçler

NETIO 4All ağ bağlantılı güç soketi veya 4All çevrimiçi demo:

Düğüm-KIRMIZI

Adım 1: REST JSON Http(s) Protokolü

REST JSON Http(ler) Protokolü
REST JSON Http(ler) Protokolü

Bu kısım biraz teknik ama lütfen bana tahammül edin. Bu kısmı açıklamasaydım, düğüm-RED'de göndereceğimiz json dosyalarındaki değerleri anlamada sorun yaşardınız.

Her çıkışa (elektrik prizi) uygulanabilir eylemler:

Tüm M2M protokollerinde, NETIO güç soketleri, bireysel çıkışlara uygulanabilen eylemlerin aynısını kullanır. Örneğin, herhangi bir çıktıya bir Toggle veya Short Off eylemi yazılabilir.

Ancak Action değişkeni sadece değer yazmak için kullanılabilir, mevcut çıkış durumunu okumak için kullanılamaz.

Bunlar, her bir çıktıya uygulayabileceğiniz eylemlerdir:

0 = Çıkış kapalı (Kapalı)

1 = Çıkış açık (Açık)

2 = Çıkış kısa süreliğine kapalı (kısa Kapalı)

3 = Çıkış kısa bir süre için açık (kısa Açık)

4 = Çıkış bir durumdan diğerine geçti (geçiş)

5 = Çıkış durumu değişmedi (değişiklik yok)

6 = Yoksayıldı

Örnek – Çıkış numarasını değiştirmek için JSON dosyası. 1:

{

"Çıktılar": [{

"Kimlik": 1, "Eylem": 4

}]

}

Kimlik - bu sayı hangi çıktıyı kullanacağımızı gösterir

Eylem - bu kısım, çıktının yapacağı eylemdir (ör. 1 (Çıkışı aç))

2. Adım: Akış

Akış
Akış

Ve şimdi ana kısım. Bu, düğüm-RED ortamının nasıl göründüğüdür.

URL API akışını içe aktardık (Gördüğünüz proje. Daha sonra akışları nasıl içe aktaracağınızı ve bu projeyi göstereceğim) Bu proje iki bölümden oluşmaktadır:

  1. NETIO AN30 (JSON REST API) akışı
  2. Dashboard (Programınızı çalıştırabileceğiniz grafik arayüz)

3. Adım: Gösterge Tablosu

Gösterge Paneli
Gösterge Paneli

Bu talimat için RED düğümündeki gösterge tablosu böyle görünüyor. Dilerseniz zevkinize göre özelleştirebilirsiniz.

Bu projenin gösterge tablosu 4 bölüme ayrılmıştır:

  1. Cihaz Durumu - model, mac adresi veya donanım yazılımı sürümü gibi cihaz bilgilerini gösterir.
  2. (POST) Kontrol Çıkışı 1 - Çıkış 1'i kontrol eden 5 düğme içerir. Her düğme farklı eylemi gerçekleştirir.
  3. (GET) O1 - O4 Çıkış Durumları - Bu bölüm, cihazınızdan gelen her bir çıkışın mevcut durumunu gösterir.
  4. Cihaz Yönetimi - Bu bölümde NETIO 4Aall cihazından güncel ölçülen değerleri gösteren her türlü grafik ve göstergeyi bulabilirsiniz.

Adım 4: Akışı İçe Aktar (proje, Komut Dosyası vb.)

İçe Aktarma Akışı (proje, Komut Dosyası vb.)
İçe Aktarma Akışı (proje, Komut Dosyası vb.)

Menüde (sağ üst köşe) İçe Aktar'ı ve ardından Pano'yu seçin.

Ardından, aşağıdaki metni belirtilen alana kopyalayın ve İçe Aktar'a tıklayın.

Eksik düğümleri yükleme

Düğümler seçilen akışa yüklenir. İçe aktarılmakta olan ancak henüz Node-RED'de kurulmamış olan düğümlerin bir listesiyle birlikte bir hata mesajının görüntülenmesi mümkündür. Bu durumda, eksik düğümlerin yüklenmesi gerekir.

Eksik düğümler varsa, menüden Yönet paletini seçin, Yükle'ye tıklayın ve eksik olan düğümleri bulun ve kurun.

Metni içe aktar:

[{"id":"56b9510c.98c6f", "type":"tab", "label":"NETIO AN30 (REST JSON)", "disabled":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":

Adım 5: Her Şey Birlikte Nasıl Çalışır?

Her Şey Birlikte Nasıl Çalışır?
Her Şey Birlikte Nasıl Çalışır?

Akış temel olarak iki kısma ayrılır: POST ve GET.

POST: O1'e Yazma

  • Flow'daki Dashboard'da oluşturulan beş düğme Dashboard'da görüntülenir.
  • Dashboard'da Çıktı 1 = AÇIK düğmesine tıkladıktan sonra, yük, çıktıyı ve eylemi belirten netio.json dosyasına ayarlanır (düğmelerin her biri için tanımlanır).
  • HTTP İsteği (POST) bloğu, netio.json dosyasını bir IP adresine istek olarak gönderir.
  • Sunucu yanıtı (durum) çıktı olarak döndürülür.
  • Msg.payload bloğu, HTTP İsteğinden (POST) gelen sonucu görüntüler.

GET: O1 – O4 arasında okuma

  • 1 Saniyelik Tekrar bloğu, bir saniyelik bir süre ile HTTP İsteği (GET) bloğunu etkinleştirir, bu da netio.json'u bir GET isteği olarak gönderir ve sunucudan alındığı gibi soket durumu ile eksiksiz bir JSON dosyası döndürür.
  • JSON Ayrıştırma bloğu, JSON dosyasını HTTP İsteği (GET) bloğundan bir JSON Nesnesine dönüştürür, böylece JSON dosyasındaki özellikleri değiştirmek mümkün olur.
  • Function bloğu, JSON nesnesinin tek tek parçalarını alır ve bunları daha sonra kullanmak üzere bir msg nesnesinin özelliklerine dönüştürür.
  • Geçerli Grafik bloğu, sonraki Geçerli Grafik (Aygıt) bloğu yalnızca msg.payload değerini görüntüleyebildiğinden, msg.payload'ı msg nesnesinin msg. TotalCurrent özelliğine ayarlar.
  • Ardından, panoda JSON nesnesinden alınan msg nesnesinin seçili özelliklerini görüntülemek için çeşitli çıkış düğümleri gelir.

msg nesnesi ve msg.payload

Basit ve özlü bir açıklama için buraya bakın:

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

6. Adım: HTTP POST ve GET

HTTP POST ve GET
HTTP POST ve GET
HTTP POST ve GET
HTTP POST ve GET

HTTP İsteği(POST)

Bu düğüm, NETIO 4All cihazını kontrol etmek için bir HTTP İsteği (POST) olarak bir netio.json komut dosyası gönderir.

HTTP İsteği(GET)

Bu düğüm bir HTTP İsteği (GET) gönderir ve durum yanıtını döndürür.

Önceden doldurulmuş adres, masanızda bir NETIO cihazı olmadan bağlantıyı test edebileceğiniz NETIO 4All çevrimiçi demosunu gösterir.

netio-4all.netio-products.com

Bu düğümlerde kendi IP adresinizi ayarlamanız mümkündür; ancak IP'nin hem HTTP İstek düğümlerinde, POST'ta hem de GET'te değiştirilmesi gerekir.

Adım 7: Düğme Düğümleri

Düğme Düğümleri
Düğme Düğümleri
Düğme Düğümleri
Düğme Düğümleri

Düğme düğümüne tıklamak, netio.json dosyasını (Sağ resim) içeren ve daha sonra http posta düğümü aracılığıyla netio akıllı güç soketine gönderilen bir mesaj oluşturur.

Adım 8: İşlev Düğümü

İşlev Düğümü
İşlev Düğümü
İşlev Düğümü
İşlev Düğümü

İşlev düğümü, özel bir JavaScript işlevi yazmayı sağlayan özel bir düğümdür.

Bu talimatta işlev, ayrıştırılmış JSON dosyasından (şimdi bir JSON nesnesi) değerler alır ve bunları msg nesnesinin özelliklerine atar.

Kod dört bölüme ayrılmıştır:

  1. JSON nesnesinden msg nesnesinin bireysel özelliklerine değer atama
  2. Ağa bağlı elektrik prizinin global ölçümleri desteklememesi durumunda hata işleme

    Ağ bağlantılı elektrik prizi global değerlerin ölçümünü desteklemiyorsa, Node-RED hataları görüntüler çünkü bu fonksiyon ilgili özelliği bulamaz, örn. msg.payload. GlobalMeasure. Voltage, çünkü JSON nesnesinde mevcut olmayacaktı. Bu durumda, msg nesnesinin özelliği, ör. msg. Voltage, 0'a ayarlanır ve hata işlenirken yakalanır.

  3. Çıkış durumu değerleri atama
  4. Çıktı durumlarına göre görüntülenen çıktı durumu değerlerinin renklerini ayarlama

9. Adım: JSON Düğümü ve Enjekte Düğümü

JSON Düğümü ve Enjekte Düğümü
JSON Düğümü ve Enjekte Düğümü
JSON Düğümü ve Enjekte Düğümü
JSON Düğümü ve Enjekte Düğümü

JSON düğümü

JSON düğümü, JSON dosyasını ayrıştırır ve onu bir JSON nesnesine dönüştürür.

Sunucudan GET isteğine bir yanıt olarak, HTTP İstek düğümü, NETIO 4x cihazının mevcut durumunu içeren bir JSON dosyası döndürür, ancak yalnızca bir metin dosyasıdır, bu nedenle verilerle çalışabilmesi için JSON dosyasının ihtiyacı vardır. bir JSON nesnesine ayrıştırılacak.

Enjekte düğümü

Bu düğüm her saniye, bir GET isteği gönderen HTTP İstek düğümünü etkinleştirir.

Sonuç olarak Dashboard'daki değerler bir saniyelik periyotlarla güncellenir.

Adım 10: Metin Düğümü ve Hata Ayıklama Düğümü

Metin Düğümü ve Hata Ayıklama Düğümü
Metin Düğümü ve Hata Ayıklama Düğümü
Metin Düğümü ve Hata Ayıklama Düğümü
Metin Düğümü ve Hata Ayıklama Düğümü

Metin düğümü

Gösterge Tablosunda bir metin alanı görüntüler. Bu talimatta, metin düğümleri akımı, voltajı, modeli, bellenim sürümünü veya JSON sürümünü görüntüler.

Etiket, Gösterge Tablosunda görüntülenir ve Ad, Düğüm-RED'de akışta görüntülenen düğüm adıdır.

Hata ayıklama düğümü

msg.payload'ı görüntüler.

Adım 11: Grafik Düğümü

Grafik Düğümü
Grafik Düğümü
Grafik Düğümü
Grafik Düğümü

Bu düğüm, yük değerine göre Gösterge Tablosunda mevcut grafiği çizer.

Bu düğüm yalnızca yük değerine göre çizelgeleri çizebilir.

Bu nedenle, msg.payload'ı görüntülenmesi gereken değere ayarlamak için bir işlev düğümü kullanılır.

msg.payload = msg. TotalCurrent;

Adım 12: Düğümü ve Bağlantı Düğümlerini Ölçme

Gösterge Düğümü ve Bağlantı Düğümleri
Gösterge Düğümü ve Bağlantı Düğümleri
Gösterge Düğümü ve Bağlantı Düğümleri
Gösterge Düğümü ve Bağlantı Düğümleri

gösterge düğümü

Bu düğüm, Gösterge Tablosuna bir gösterge widget'ı ekler.

Bu talimatta, her gösterge msg nesnesinin bir özelliğini görselleştirir: voltaj [V], akım [A], frekans [Hz] ve genel Gerçek Güç Faktörü (TPF).

Bağlantı düğümleri

Bağla ve bağla düğümler bir tünel gibi çalışır. Msg.payload, düğümdeki bağlantıya gelir ve bağlantı çıkış düğümünden çıkar.

Akışı biraz daha net ve okunmasını kolaylaştırmak için kullandım.

Adım 13: Talimatımı Okuduğunuz İçin Teşekkür Ederim

Umarım öğretilebilir ve umutla yeni bir şeyler öğrenmişsinizdir.

Bu talimat, yaptığım farklı kılavuzun yalnızca kısaltılmış versiyonudur

Orijinal kılavuz daha uzundur ve çok daha fazla ayrıntıya yöneliktir ve genellikle daha iyi yapılandırılmıştır. Bir şeyi anlamadıysanız veya kaçırdığımı veya yeterince açıklamadığımı düşünüyorsanız, kesinlikle orada bulabilirsiniz.

söz veriyorum hayal kırıklığına uğramayacaksın

Orijinal:

Ayrıca, düğüm-RED'in çeşitli kullanımları hakkında benzer kılavuzlar vardır, bu nedenle ilgileniyorsanız, keşfetmekten çekinmeyin:

RED düğümünde REST URL API ile çalışma

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

RED düğümünde REST XML ile çalışma

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

RED düğümünde TCP/Modbus ile çalışma

Çok yakında gelecek:)

Önerilen: