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:
- 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.
- Ayrı topic dalları. Cihazlar durumu
.../<device>/statealtında yayınlar ve komutları.../<device>/setaltı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. - 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.
- 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.
- 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.



