IoT Otomasyon

Tasmota MQTT Ayarları: Host, Topic ve Full Topic Yapılandırması ile Akıllı Priz Kontrolü

Tasmota'nın MQTT host, client, topic ve full topic ayarlarını web arayüzünden veya konsoldan yapın; ardından akıllı prizi broker.connectmq.com üzerinden kontrol edip telemetrisini okuyun.

Tasmota yazılımıyla çalışan ve bir broker'a tasmota mqtt mesajları gönderen akıllı priz
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

Tasmota MQTT desteği, ucuz bir ESP8266 veya ESP32 akıllı prizi herhangi bir betikten, panodan ya da ev otomasyon sisteminden açıp kapatabileceğiniz ve izleyebileceğiniz bir cihaza dönüştürür. Bu eğitimde MQTT host, client ID, topic ve full topic ayarlarını yapacak, ardından broker.connectmq.com adresindeki herkese açık test broker üzerinden bir prizi kontrol edip enerji telemetrisini okuyacaksınız.

Tasmota MQTT'yi Nasıl Kullanır?

Tasmota, ESP tabanlı cihazlar için açık kaynaklı bir yazılımdır (firmware). Kutudan çıktığı haliyle bir web arayüzü sunar, ancak asıl gücü MQTT'dir: konsola yazabildiğiniz her komut bir MQTT mesajı olarak da gönderilebilir ve her durum değişikliği ile sensör okuması geri yayınlanır. Bu da bir Tasmota prizini Node-RED, Home Assistant, openHAB veya kendi kodunuzda birinci sınıf bir bileşen haline getirir.

Tasmota her topic'i üç parçadan oluşturur:

  • Prefix (önek) - gönderdiğiniz komutlar için cmnd, yanıtlar ve durum değişiklikleri için stat, periyodik telemetri ve erişilebilirlik için tele.
  • Topic - plug1 gibi kısa ve benzersiz bir cihaz adı.
  • Full topic - bunları birleştiren bir şablon; varsayılan değeri %prefix%/%topic%/.

Varsayılan full topic ile cmnd/plug1/POWER adresine bir komut gönderdiğinizde cihaz stat/plug1/RESULT ve stat/plug1/POWER üzerinden yanıt verir; telemetri ise tele/plug1/STATE ve tele/plug1/SENSOR topic'lerine gider. Tasmota MQTT komutları kopya kâğıdı en kullanışlı komutları ayrıntılı olarak listeler.

Neye İhtiyacınız Var?

  • Hâlihazırda Tasmota çalıştıran (13 veya daha yeni sürüm önerilir) ve Wi-Fi ağınıza bağlı bir cihaz.
  • Web arayüzünü açabilmeniz için cihazın IP adresi.
  • mosquitto_pub ve mosquitto_sub kurulu bir bilgisayar ya da portaldaki ConnectMQ web istemcisi gibi herhangi bir MQTT istemcisi.

Adım 1: Benzersiz Adlar Seçin

broker.connectmq.com adresindeki ücretsiz herkese açık MQTT broker herkes tarafından ortak kullanılır ve oraya yayınlanan her şeyi herkes okuyabilir. Tasmota'yı yapılandırmadan önce şunları belirleyin:

  • rastgele bir kimlik, örneğin t7x2pk,
  • tasmota-t7x2pk gibi bir client ID,
  • plug1 gibi bir topic,
  • mesajlarınızı kendi önekiniz altında tutan bir full topic: connectmq/demo/t7x2pk/%prefix%/%topic%/.

Ortaya çıkan topic'ler altı seviye derinliğindedir (connectmq/demo/t7x2pk/cmnd/plug1/POWER) ve herkese açık broker'ın sekiz seviyelik sınırı içinde kalır.

Adım 2: Tasmota MQTT'yi Web Arayüzünden Yapılandırın

Cihazın IP adresini tarayıcıda açın ve Configuration, ardından Configure MQTT menüsüne gidin. Şu alanları doldurun:

Alan Herkese açık test için değer Üretim ortamı için değer
Host broker.connectmq.com broker host adresiniz
Port 1883 1883 veya TLS destekli derlemeyle 8883
Client tasmota-t7x2pk YOUR_CLIENT_ID
User boş bırakın YOUR_USERNAME
Password boş bırakın YOUR_PASSWORD
Topic plug1 plug1
Full Topic connectmq/demo/t7x2pk/%prefix%/%topic%/ home/%prefix%/%topic%/

Save düğmesine tıklayın. Tasmota yeniden başlar ve bağlanır. Configure Other sayfasında MQTT onay kutusu işaretli değilse etkinleştirin; standart derlemelerde MQTT varsayılan olarak açıktır, ancak bazı şablonlar onu devre dışı bırakır.

Adım 3: Veya Tasmota MQTT'yi Konsoldan Yapılandırın

Konsol (Ana Menü, ardından Console) daha hızlıdır ve betiklenebilir. Backlog birden fazla komutu tek seferde çalıştırır ve cihaz yalnızca en sonda bir kez yeniden başlar:

Backlog MqttHost broker.connectmq.com; MqttPort 1883; MqttClient tasmota-t7x2pk; MqttUser 0; MqttPassword 0; Topic plug1; FullTopic connectmq/demo/t7x2pk/%prefix%/%topic%/

MqttUser 0 ve MqttPassword 0, varsayılan DVES_USER / DVES_PASS değerlerini temizler; böylece cihaz anonim olarak bağlanır. Yeniden başlatmanın ardından konsol günlüğünde MQT: Connected benzeri bir satır ve onu izleyen Online LWT mesajı görünmelidir.

Adım 4: Cihazı İzleyin

Önekinizin altındaki her şeye abone olun:

mosquitto_sub -h broker.connectmq.com -p 1883 -i watch-t7x2pk \
  -t 'connectmq/demo/t7x2pk/#' -v

Birkaç saniye içinde şuna benzer bir çıktı görürsünüz:

connectmq/demo/t7x2pk/tele/plug1/LWT Online
connectmq/demo/t7x2pk/cmnd/plug1/POWER (null)
connectmq/demo/t7x2pk/tele/plug1/INFO1 {"Info1":{"Module":"Generic","Version":"14.2.0(release-tasmota)",...}}
connectmq/demo/t7x2pk/tele/plug1/STATE {"Time":"2026-10-16T10:12:03","Uptime":"0T00:00:15","POWER":"OFF",...}

LWT topic'i retained olarak tutulur ve aynı zamanda cihazın Last Will mesajıdır; bu nedenle priz elektriği veya Wi-Fi bağlantısını kaybettiğinde değeri Offline olur. Erişilebilirliği izlemek için takip etmeniz gereken topic budur.

Adım 5: Akıllı Prizi MQTT ile Kontrol Edin

Komutları cmnd önekine gönderin:

# Aç
mosquitto_pub -h broker.connectmq.com -p 1883 -i send-t7x2pk \
  -t 'connectmq/demo/t7x2pk/cmnd/plug1/POWER' -m 'ON'

# Durumu tersine çevir
mosquitto_pub -h broker.connectmq.com -p 1883 -i send-t7x2pk \
  -t 'connectmq/demo/t7x2pk/cmnd/plug1/POWER' -m 'TOGGLE'

# Mevcut durumu sorgula (boş payload)
mosquitto_pub -h broker.connectmq.com -p 1883 -i send-t7x2pk \
  -t 'connectmq/demo/t7x2pk/cmnd/plug1/POWER' -n

Her biri {"POWER":"ON"} içeriğiyle stat/plug1/RESULT ve ON içeriğiyle stat/plug1/POWER mesajı üretir. Enerji ölçümü yapan prizler ayrıca gerilim, akım ve güç değerleriyle tele/plug1/SENSOR yayınlar; varsayılan olarak her 300 saniyede bir. Test sırasında bunu hızlandırmak için:

mosquitto_pub -h broker.connectmq.com -p 1883 -i send-t7x2pk \
  -t 'connectmq/demo/t7x2pk/cmnd/plug1/TelePeriod' -m '30'

TelePeriod 10 ile 3600 saniye arasında değer kabul eder. Herkese açık broker'da makul tutun; orada istemci başına saniyede 10 mesaj sınırı vardır ve 30 saniyede bir mesaj gönderen bir priz bu sınırın çok altında kalır.

Bir prizin elektrik kesintisinden sonra bilinen bir durumda geri gelmesi gerekiyorsa PowerOnState ayarını da yapın: PowerOnState 0 prizi kapalı tutar, 1 açar, varsayılan 3 ise son kaydedilen durumu geri yükler. Retained durum topic'leriyle birleştiğinde bu, prizin davranışını her pano için öngörülebilir kılar.

Tasmota MQTT Verisini Kodda Okumak

Aşağıda güç okumalarını ve erişilebilirlik durumunu yazdıran küçük bir Python dinleyicisi (paho-mqtt 2.x) bulunuyor:

import json
import paho.mqtt.client as mqtt

PREFIX = "connectmq/demo/t7x2pk"

def on_connect(client, userdata, flags, reason_code, properties):
    client.subscribe(f"{PREFIX}/tele/plug1/SENSOR")
    client.subscribe(f"{PREFIX}/tele/plug1/LWT")
    client.subscribe(f"{PREFIX}/stat/plug1/POWER")

def on_message(client, userdata, msg):
    text = msg.payload.decode()
    if msg.topic.endswith("/SENSOR"):
        energy = json.loads(text).get("ENERGY", {})
        print("power W:", energy.get("Power"), "today kWh:", energy.get("Today"))
    else:
        print(msg.topic, text)

client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="py-t7x2pk")
client.on_connect = on_connect
client.on_message = on_message
client.connect("broker.connectmq.com", 1883, keepalive=60)
client.loop_forever()

Herkese Açık Broker'dan Üretim Ortamına Geçiş

Herkese açık broker denemeler içindir. Topic'i tahmin eden herkes prizinizi açıp kapatabilir; bu yüzden bir ısıtıcıyı veya sunucuyu besleyen bir priz asla orada kalmamalıdır. Kalıcı kurulum için:

  1. ConnectMQ portalında özel bir broker oluşturun ve üretilen kullanıcı adı, parola ve client ID değerlerini kopyalayın.
  2. Bunları Backlog MqttHost <host>; MqttUser YOUR_USERNAME; MqttPassword YOUR_PASSWORD; MqttClient YOUR_CLIENT_ID; FullTopic home/%prefix%/%topic%/ komutuyla ayarlayın.
  3. Derlemeniz destekliyorsa TLS kullanın. ESP32 tasmota32 derlemeleri destekler; çoğu ESP8266 derlemesi desteklemez. Tasmota MQTT TLS rehberi ayrıntıları adım adım anlatır.
  4. Her cihaza kendi kimlik bilgilerini ve client ID'sini verin, çünkü broker her client ID için yalnızca bir oturum kabul eder.

Barındırılan bir MQTT broker, evde sürekli çalışan bir Mosquitto kutusu tutma ihtiyacını ortadan kaldırır ve port yönlendirme yapmadan prize dışarıdan erişmenizi sağlar. Daha fazla akıllı ev yapı taşı için akıllı priz MQTT rehberine ve IoT otomasyon genel bakışına göz atın.

Tasmota MQTT Sorun Giderme

Belirti Olası neden Çözüm
Konsolda MQT: Connect failed ... rc -2 görünüyor Host'a ulaşılamıyor veya port yanlış MqttHost, DNS ve portu kontrol edin
rc 5 (yetkisiz) Yanlış kullanıcı/parola veya client ID Kimlik bilgilerini yeniden girin, MqttClient değerini kontrol edin
Bağlanıyor, sonra birkaç saniyede bir kopuyor Yinelenen client ID Her cihaza ve araca benzersiz bir ID verin
Önekinizin altında hiç mesaj yok Full topic'te yazım hatası Mevcut değeri yazdırmak için tek başına FullTopic çalıştırın
Komutlar yok sayılıyor cmnd yerine stat veya tele önekine gönderilmiş Komutlar her zaman cmnd önekine gider

Tasmota projesi her komutu ve ayarı resmi sitesinde, tasmota.github.io adresinde belgeler.

Tasmota Cihazlarını ConnectMQ ile Kontrol Edin

app.connectmq.com adresinde kredi kartı gerekmeden ücretsiz bir Serverless broker oluşturun, kimlik bilgilerini Configure MQTT sayfasına yapıştırın ve prizlerinizi portalın tarayıcı içi istemcisi ve canlı topic gezgini ile kontrol edin. ConnectMQ MQTT 3.1.1 ve 5.0'ı desteklediği için Tasmota herhangi bir özel ayar gerektirmeden bağlanır.

Sık Sorulan Sorular

Tasmota'da Topic ile Full Topic arasındaki fark nedir?

Topic, plug1 gibi kısa cihaz adıdır. Full Topic ise önek ve topic'ten tam topic'i oluşturan şablondur; örneğin home/%prefix%/%topic%/.

MQTT ayarlarını değiştirdikten sonra Tasmota neden yeniden başlıyor?

Tasmota MQTT host, port, kimlik bilgisi ve topic değişikliklerini yeniden başlayarak uygular. Backlog kullanmak birden fazla değişikliği tek bir yeniden başlatmada toplar.

Bir Tasmota cihazının durumunu değiştirmeden nasıl sorgularım?

Komut topic'ine, örneğin cmnd/plug1/POWER adresine boş bir payload yayınlayın. Cihaz mevcut durumunu stat/plug1/RESULT üzerinden bildirir.

Birçok Tasmota cihazını tek komutla kontrol edebilir miyim?

Evet. Her cihaz varsayılan olarak tasmotas adlı bir grup topic'ini de dinler; bu nedenle cmnd/tasmotas/POWER adresine gönderilen bir mesaj hepsine ulaşır. Broker'ı başkalarıyla paylaşıyorsanız bunu GroupTopic ile değiştirin.

İlgili yazılar

Zigbee2MQTT Kurulum Rehberi: Koordinatörden Panoya

Zigbee2MQTT'yi Docker ile kurun, koordinatörü ve MQTT bağlantısını yapılandırın, cihazları eşleştirip yeniden adlandırın, onları MQTT üzerinden kontrol edin ve durumlarını bir panoda görüntüleyin; önce ücretsiz herkese açık bir broker'da test edin.

7 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.