Node-RED

Node-RED vs Home Assistant Otomasyonları: Hangisini Kullanmalı ve İkisini Tek MQTT Broker'da Nasıl Çalıştırmalı

Home Assistant ve Node-RED cihazları otomatikleştirir, ancak farklı düşünürler. Bu karşılaştırma otomasyon tarzını, MQTT entegrasyonunu, hata ayıklamayı ve bakımı ele alıyor ve ikisini paylaşılan tek bir MQTT broker'a karşı temiz biçimde çalıştırmanın yolunu gösteriyor.

Tek bir MQTT broker'a bağlı bir akış editörü ve bir otomasyon panosunu gösteren Node-RED vs Home Assistant karşılaştırması
Bunu kendi MQTT broker’ınızda çalıştırınFree planla özel, yönetilen bir MQTT broker alın ve hazır kod örnekleriyle başlayın.
Ücretsiz deneyin Kod örnekleri Kart gerekmez

Node-RED vs Home Assistant, bir evi, bir laboratuvarı veya küçük bir binayı otomatikleştiren herkes için yaygın bir tartışmadır ve dürüst yanıt, ikisinin örtüşen ama farklı sorunları çözdüğüdür. Bu rehber her birinin otomasyonları nasıl oluşturduğunu, MQTT'yi nasıl ele aldığını ve hangisinin nerede parladığını karşılaştırıyor; ardından seçim yapmak zorunda kalmamanız için ikisini tek bir MQTT broker üzerinde yan yana nasıl çalıştıracağınızı gösteriyor.

Örtüşen İki Farklı Araç

Home Assistant bir ev otomasyonu platformudur. Temel fikri entity'dir: durumu ve öznitelikleri olan bir lamba, sensör, anahtar veya iklimlendirme cihazı. Yüzlerce entegrasyon, üretici cihazlarını ve bulut hizmetlerini entity'lere dönüştürür; pano, geçmiş, enerji görünümleri ve sesli asistanların tümü bu entity'ler üzerinde çalışır. Otomasyonlar birçok özellikten yalnızca biridir.

Node-RED, OpenJS Foundation'ın genel amaçlı, akış tabanlı bir programlama aracıdır. Ev, oda veya entity kavramı yoktur. Node'lar arasında akan mesajları vardır: MQTT, HTTP, veritabanları, dosyalar, seri portlar, endüstriyel protokoller ve binlerce topluluk node'u. Otomasyon onun işidir ve bunu oturma odaları için olduğu kadar fabrikalar ve bulut entegrasyonları için de kolayca yapar.

Dolayısıyla karşılaştırma "hangisi daha iyi" sorusundan çok "bu özel otomasyona hangi zihinsel model uyuyor" sorusudur.

Bir Bakışta Node-RED vs Home Assistant

Özellik Home Assistant Node-RED
Birincil amaç Arayüz, geçmiş ve entegrasyonlara sahip ev otomasyonu platformu Genel, akış tabanlı entegrasyon ve otomasyon
Otomasyon modeli Entity'ler üzerinde tetikleyiciler, koşullar ve eylemler Bağlı node'lardan geçen mesajlar
Yazım Görsel otomasyon editörü, YAML, blueprint'ler, script'ler Görsel akış editörü ve JavaScript function node'ları
MQTT Cihaz keşfi içeren yerleşik MQTT entegrasyonu Yerleşik mqtt in ve mqtt out node'ları, her topic yapısı
Cihaz desteği Çok geniş tüketici entegrasyonu seti Protokol seviyesinde node'lar; cihazlar ne bağlarsanız odur
Durum ve geçmiş Her entity için yerleşik Context, veritabanı veya panoları kendiniz eklersiniz
Karmaşık mantık Şablonlar ve script'ler, okunması zorlaşabilir Function node'ları, subflow'lar, döngüler ve veri dönüşümleri
Ev dışı kullanım Mümkün ama zahmetli Endüstriyel ve BT entegrasyonunda yaygın
Hata ayıklama Otomasyon izleri her çalışmayı adım adım gösterir Debug kenar çubuğu, node durumu ve mesaj inceleme
Tipik kurulum Pi veya mini PC'de Home Assistant OS ya da container npm, Docker veya Home Assistant eklentisi olarak

Her Yaklaşım Bir Otomasyonu Nasıl Oluşturur

Basit bir kural alalım: sera sıcaklığı 30 derecenin üzerine çıktığında fanı aç.

Home Assistant'ta

Önce MQTT sensörü ve fan entity'lere dönüşür. MQTT entegrasyonu yapılandırıldığında bunları configuration.yaml içinde tanımlayabilirsiniz:

mqtt:
  sensor:
    - name: "Greenhouse temperature"
      unique_id: greenhouse_temperature
      state_topic: "connectmq/demo/ha5k2m/greenhouse/temperature"
      unit_of_measurement: "°C"
      device_class: temperature
  switch:
    - name: "Greenhouse fan"
      unique_id: greenhouse_fan
      command_topic: "connectmq/demo/ha5k2m/greenhouse/fan/set"
      state_topic: "connectmq/demo/ha5k2m/greenhouse/fan/state"
      payload_on: "ON"
      payload_off: "OFF"

Ardından otomasyon topic'ler üzerinde değil, entity'ler üzerinde çalışır:

automation:
  - alias: "Greenhouse fan on when hot"
    triggers:
      - trigger: numeric_state
        entity_id: sensor.greenhouse_temperature
        above: 30
        for: "00:02:00"
    actions:
      - action: switch.turn_on
        target:
          entity_id: switch.greenhouse_fan

for ifadesi, sensörün geçmiş grafiği ve her otomasyon çalışmasının izi ücretsiz gelir. Aynı şeyi YAML'a dokunmadan görsel editörde de oluşturabilirsiniz.

Node-RED'de

Node-RED doğrudan topic'ler ve mesajlar üzerinde çalışır. Bir mqtt in node'u sıcaklık topic'ine abone olur, bir function node'u kuralı uygular ve bir mqtt out node'u komutu yayınlar:

// Fanı 30'un üzerinde aç, 27'nin altında kapat, yalnızca değişiklikte
const t = Number(msg.payload);
if (isNaN(t)) return null;

const fanOn = context.get("fanOn") || false;
if (!fanOn && t > 30) {
    context.set("fanOn", true);
    return { topic: "connectmq/demo/ha5k2m/greenhouse/fan/set", payload: "ON" };
}
if (fanOn && t < 27) {
    context.set("fanOn", false);
    return { topic: "connectmq/demo/ha5k2m/greenhouse/fan/set", payload: "OFF" };
}
return null;

Siz eklemedikçe entity kaydı, geçmiş veya pano yoktur. Buna karşılık tam kontrol elde edersiniz: üç satırda histerezis, her protokole kolay erişim ve YAML şablonlarında zahmetli olacak dönüşümler.

Home Assistant'ın Öne Çıktığı Yerler

  • Tüketici cihazları. Bir ürünün Home Assistant entegrasyonu varsa, entity'lerini, durumlarını ve kontrollerini neredeyse hiç emek harcamadan elde edersiniz.
  • Eve yönelik bir kullanıcı arayüzü. Panolar, mobil uygulama, varlık algılama, enerji görünümleri ve sesli kontrol yerleşiktir.
  • Basit kurallar için okunabilir otomasyonlar. Tetikleyici, koşul ve eylem, hanedeki diğer kişilerin anlaması ve düzenlemesi için kolaydır.
  • Otomasyon izleri. Bir kuralın neden tetiklendiğini veya tetiklenmediğini görmek, günlük otomasyonlarda hata ayıklamak için mükemmeldir.

Node-RED'in Öne Çıktığı Yerler

  • Karmaşık mantık ve veri şekillendirme. Durum makineleri, toplama, hız sınırlama ve JSON dönüşümleri function node'larında doğaldır.
  • Evin ötesindeki protokoller ve sistemler. Modbus, OPC UA, veritabanları, HTTP API'leri ve e-posta bir palette kurulumu uzağınızdadır. Node-RED ile MySQL ve Node-RED HTTP endpoint'leri rehberlerimize bakın.
  • Ham MQTT işleri. Her cihazı önce bir entity olarak modellemeden her topic yapısı, wildcard abonelikleri, retained message'lar ve MQTT 5 özellikleri.
  • Ev dışında yeniden kullanım. Aynı beceriler bir atölyeye, bir çiftliğe veya bir fabrika hattına da uygulanır.

İkisini Tek bir MQTT Broker'da Çalıştırma

Birini seçmek zorunda değilsiniz. Birçok kurulum, cihazlar ve kullanıcı arayüzü için Home Assistant'ı, daha ağır mantık ve entegrasyonlar için Node-RED'i çalıştırır. MQTT ikisi arasındaki en temiz yapıştırıcıdır, çünkü her ikisi de aynı broker'ın sıradan MQTT istemcileridir.

Sensors / ESP32 / Zigbee2MQTT ──┐
                                ├──> MQTT broker <──> Home Assistant (entities, UI, simple automations)
Node-RED (logic, integrations) ─┘                <──> Node-RED (complex flows, databases, APIs)

Birkaç kural bu düzeni sağlıklı tutar:

  1. Her karar için tek bir sahip. Sera fanının Home Assistant tarafından mı yoksa Node-RED tarafından mı kontrol edileceğine karar verin, asla ikisi birden değil. Tek bir komut topic'i için kavga eden iki otomasyon, "lamba sürekli kendiliğinden yeniden yanıyor" hatalarının en yaygın kaynağıdır.
  2. Ayrı topic dalları. Cihazlar durumu .../<device>/state altında yayınlar ve komutları .../<device>/set altında kabul eder. Node-RED türetilmiş verileri .../computed/... gibi kendi dalı altında yayınlar ve Home Assistant bunları ek sensörler olarak okuyabilir.
  3. Benzersiz client ID'ler. Her Home Assistant örneği, Node-RED örneği ve cihaz kendi client ID'sine ihtiyaç duyar. Yinelenen ID'ler broker'ın eski oturumu düşürmesine yol açar; bu da birkaç saniyede bir kopup bağlanan bağlantılar olarak görünür.
  4. Retained durum, retained olmayan komutlar. Yeniden başlatılan bir Home Assistant'ın mevcut değerleri görmesi için durum topic'lerini retain edin; komutları retain etmeyin, yoksa bir fan her yeniden bağlanmadan sonra tekrar açılabilir.
  5. Bağlantılarınızı sayın. Home Assistant, Node-RED, Zigbee2MQTT ve bir düzine ESP32 kartı birikir. Ücretsiz ConnectMQ Serverless planı 25 bağlantıya kadar izin verir; bu da çoğu evi karşılar, daha büyük kurulumlar ücretli bir plana geçer.

Node-RED'i node-red-contrib-home-assistant-websocket node'larıyla Home Assistant'ın kendi API'sine de bağlayabilirsiniz; popüler Node-RED eklentisi bu şekilde çalışır. Bu, Node-RED'e MQTT olmayanlar dahil her Home Assistant entity'sine erişim sağlar. Cihazlarınız zaten MQTT olduğunda MQTT yaklaşımını anlamak daha kolaydır ve iki aracı da bağımsız tutar: her biri diğerini bozmadan yeniden başlatılabilir veya değiştirilebilir.

İkisini aynı broker'a yönlendirme

Denemeler için her iki araç da broker.connectmq.com adresindeki herkese açık MQTT test broker'ını port 1883 üzerinden connectmq/demo/ha5k2m gibi benzersiz bir önekle kullanabilir. Gerçek bir ev için TLS üzerinden özel kimlik bilgileri kullanın. Home Assistant'ta MQTT entegrasyonunu Settings → Devices and services altında yapılandırın; broker host'unu, port 8883'ü, YOUR_USERNAME ve YOUR_PASSWORD değerlerini girin ve gelişmiş seçeneklerde TLS'i etkinleştirin. Node-RED'de mqtt-broker yapılandırma node'unda TLS etkin ve farklı bir client ID ile aynı host ve portu ayarlayın. Node-RED MQTT rehberi yapılandırma node'unu ele alır; bulut hizmetleri için bir iş akışı aracını da tartıyorsanız Node-RED vs n8n karşılaştırması okumaya değer.

Neden Eklenti Broker'ı Yerine Bulut Broker Kullanmalı?

Home Assistant OS yerel bir Mosquitto eklentisi sunar ve her şeyin tek bir ağda olduğu tek bir ev için bu tamamen makuldür. Bir bulut MQTT broker, cihazlar birkaç farklı yerde bulunduğunda (bir yazlık, başka bir arsadaki sera, bir akrabanın dairesi), mesajlaşma katmanını kapatmadan Home Assistant kutusunu yeniden başlatmak veya yeniden kurmak istediğinizde ya da router'ınızda port açmak istemediğinizde cazip hale gelir. ConnectMQ gibi yönetilen bir broker'a TLS üzerinden her yerden erişilebilir; portalı canlı bir topic gezgini ve eşik uyarı kuralları içerir, bu da Home Assistant ve Node-RED'in gerçekte ne yayınladığını kontrol etmek için kullanışlıdır. IoT MQTT broker nasıl seçilir rehberimiz ödünleşimleri adım adım ele alır.

Öneri

  • Hedefiniz çoğunlukla tüketici cihazlarından oluşan, aile dostu bir arayüze ve basit kurallara sahip bir akıllı evse Home Assistant ile başlayın.
  • Otomasyonlarınız ağır mantık, alışılmadık protokoller, veritabanları veya ev dışı ekipmanlar içeriyorsa Node-RED ile başlayın.
  • Home Assistant otomasyonlarınız şablon içinde şablon gerektirmeye başladığında, tek bir MQTT broker üzerinden bağlı ikisini birden kullanın. Her aracın en iyi olduğu kararların sahibi olmasına izin verin.

Home Assistant ve Node-RED'i ConnectMQ'ya Bağlayın

app.connectmq.com adresinde kredi kartı gerektirmeden ücretsiz bir Serverless broker oluşturun, üretilen kullanıcı adı, parola ve client ID'yi kopyalayın ve hem Home Assistant'ı hem de Node-RED'i port 8883 üzerinden TLS ile ona yönlendirin. Her araca kendi kimlik bilgilerini veya client ID'sini verin; böylece evinizdeki tek bir kutuya bağlı olmayan, paylaşılan bir mesajlaşma omurganız olur.

Sık Sorulan Sorular

Node-RED, Home Assistant otomasyonlarından daha mı iyi?

Hiçbiri kesin olarak daha iyi değildir. Home Assistant otomasyonları basit, entity tabanlı kurallar için daha kolaydır ve iz ile geçmiş bilgisiyle gelir; Node-RED ise karmaşık mantığı, veri dönüşümünü ve ev dışı protokolleri daha rahat ele alır.

Home Assistant ve Node-RED aynı MQTT broker'ı kullanabilir mi?

Evet. Her ikisi de standart MQTT istemcileridir. Her birine benzersiz bir client ID verin, durum ve komutlar için topic dalları üzerinde anlaşın ve her cihazı yalnızca birinin kontrol ettiğinden emin olun.

Node-RED'i Home Assistant ile kullanmak için Node-RED eklentisine ihtiyacım var mı?

Hayır. Eklenti Home Assistant OS'ta kullanışlıdır, ancak Node-RED her yerde çalışabilir ve Home Assistant ile paylaşılan bir MQTT broker veya Home Assistant websocket node'ları üzerinden konuşabilir.

Tipik bir akıllı ev kaç MQTT bağlantısına ihtiyaç duyar?

Cihaz veya gateway başına bir bağlantı, ayrıca Home Assistant, Node-RED ve Zigbee2MQTT gibi köprülerin her biri için birer bağlantı. Birçok ev, ücretsiz ConnectMQ Serverless planının 25 bağlantısına sığar.

İlgili yazılar

ISA-95 Topic'leriyle Node-RED OPC UA İstemcisinden MQTT'ye

Bir PLC veya simülasyon sunucusundaki OPC UA değişkenlerine node-red-contrib-opcua ile abone olun, node ID'lerini ISA-95 tarzı MQTT topic'lerine eşleyin ve değerleri kalite bilgisi ve zaman damgalarıyla yayınlayın.

8 dk okuma

Tüm yazılar →

Özel MQTT broker’ınız birkaç tık uzağınızda

Hesabınızı oluşturun, broker kimlik bilgilerinizi alın ve ilk cihazınızı bağlayın — kurulacak, yamalanacak ya da ölçeklendirilecek sunucu yok.