Tasmota, ucuz ESP8266 ve ESP32 tabanlı akıllı prizleri, röleleri ve sensörleri düzgün çalışan MQTT cihazlarına dönüştürür. Bir broker'a yönlendirin, bir topic adı verin; cmnd/<topic>/… üzerinden komut kabul eder, sonuçları stat/<topic>/… üzerinden bildirir ve periyodik telemetriyi tele/<topic>/… üzerinden gönderir. Bu üç öneki kavradığınızda herhangi bir Tasmota cihazını herhangi bir MQTT istemcisinden kontrol edebilirsiniz.
Bu rehber broker bağlantısını yapılandırıyor, Topic ve FullTopic'i açıklıyor, her gün kullanacağınız komutları ve telemetriyi ele alıyor ve Home Assistant veya Node-RED'e bağlamadan önce her şeyi tarayıcıdan test ediyor.
Broker'ı yapılandırma
Cihazın web arayüzünü açın ve Configuration → Configure MQTT bölümüne gidin:
| Alan | Değer | Notlar |
|---|---|---|
| Host | broker.connectmq.com | Broker'ınızın hostname'i veya IP'si |
| Port | 1883 | 8883 yalnızca TLS destekli build'lerde (aşağıya bakın) |
| Client | tasmota-plug1 | Her cihaz için benzersiz olmalı; varsayılan DVES_%06X çip ID'sini kullanır |
| User / Password | broker kimlik bilgileriniz | Yalnızca kimlik doğrulamasız broker'larda boş bırakın |
| Topic | testmqtt-plug1 | Cihazın kısa adı |
| Full Topic | testmqtt/tasmota/%prefix%/%topic%/ | Tüm topic'lerin şablonu |
Kaydettiğinizde cihaz yeniden başlar. Aynısını Console üzerinden Backlog ile tek satırda da yapabilirsiniz; çok sayıda cihaz yapılandırırken oldukça işe yarar:
Backlog MqttHost broker.connectmq.com; MqttPort 1883; MqttUser username; MqttPassword password; MqttClient tasmota-plug1; Topic testmqtt-plug1; FullTopic testmqtt/tasmota/%prefix%/%topic%/MQTT'nin açık olduğundan emin olun (Configuration → Configure Other → MQTT enable veya SetOption3 1). Yeniden başlatmadan sonra konsol şunu yazdırmalıdır:
MQT: Attempting connection...
MQT: ConnectedBunun yerine MQT: Connect failed to broker.connectmq.com:1883, rc -2. Retry in 10 sec görüyorsanız cihaz TCP bağlantısı açamamıştır; rc 4 veya rc 5 kimlik bilgilerinin reddedildiği anlamına gelir. Tasmota bağlanmıyor rehberi tüm durumları ele alıyor.
Topic ve FullTopic
Tasmota her MQTT topic'ini FullTopic şablonundan üretir. Çalışma anında üç token değiştirilir:
%prefix%→cmnd,statveyateleolur.%topic%→ cihazın Topic'i olur (testmqtt-plug1).- Çipten türetilmiş adları tercih ederseniz
%hostname%ve%id%da kullanılabilir.
Varsayılan FullTopic %prefix%/%topic%/ ile kitchen adlı bir priz cmnd/kitchen/POWER kullanır. Paylaşımlı bir test broker'ında bu fazlasıyla genel kalır: sizin cmnd/kitchen/POWER topic'iniz başka herkesinkiyle çakışır. Yukarıdaki FullTopic her şeyin başına testmqtt/tasmota/ ekler; bu size ait bir isim alanı sağlar ve abonelikleri kolaylaştırır:
| Amaç | Bizim FullTopic ile topic |
|---|---|
| Komut gönderme | testmqtt/tasmota/cmnd/testmqtt-plug1/POWER |
| Komut sonucu | testmqtt/tasmota/stat/testmqtt-plug1/RESULT |
| Güncel güç durumu | testmqtt/tasmota/stat/testmqtt-plug1/POWER |
| Periyodik durum | testmqtt/tasmota/tele/testmqtt-plug1/STATE |
| Sensör okumaları | testmqtt/tasmota/tele/testmqtt-plug1/SENSOR |
| Online / Offline (LWT) | testmqtt/tasmota/tele/testmqtt-plug1/LWT |
Daha büyük bir kurulumda konuma veya işleve göre bir şema seçin ve ona bağlı kalın; akıllı ev topic tasarımı ölçeklenen kalıplar sunuyor.
Komutlar: cmnd ve stat
Her konsol komutu MQTT üzerinden gönderilebilir. Komut adı topic'in son seviyesi, argüman ise payload'dur:
# Aç
mosquitto_pub -h broker.connectmq.com -u "$MQTT_USER" -P "$MQTT_PASS" \
-t testmqtt/tasmota/cmnd/testmqtt-plug1/POWER -m ON
# Durum değiştir
mosquitto_pub -h broker.connectmq.com -u "$MQTT_USER" -P "$MQTT_PASS" \
-t testmqtt/tasmota/cmnd/testmqtt-plug1/POWER -m TOGGLE
# Durumu sorgula: boş payload hiçbir şeyi değiştirmeden sorar
mosquitto_pub -h broker.connectmq.com -u "$MQTT_USER" -P "$MQTT_PASS" \
-t testmqtt/tasmota/cmnd/testmqtt-plug1/POWER -nCihaz iki topic'te yanıt verir: {"POWER":"ON"} gibi bir JSON ile stat/testmqtt-plug1/RESULT ve düz ON değeriyle stat/testmqtt-plug1/POWER. Birden fazla röleli cihazlar POWER1, POWER2 vb. kullanır.
Sık kullanacağınız diğer komutlar:
| Komut | Payload | Etkisi |
|---|---|---|
Status | 0 | Tam durum dökümü, birkaç stat/.../STATUS* mesajıyla yanıtlanır |
Status | 6 | Yalnızca MQTT yapılandırması; FullTopic ve client ID'yi kontrol etmek için kullanışlı |
TelePeriod | 60 | Her 60 saniyede telemetri gönderir (10–3600) |
Dimmer | 0–100 | Kısılabilir ışıklarda parlaklık |
Restart | 1 | Cihazı yeniden başlatır |
Backlog | cmd1 arg; cmd2 arg | Birkaç komutu sırayla çalıştırır |
Backlog komutunu MQTT üzerinden de gönderebilirsiniz; bu sayede çok sayıda cihazın uzaktan yeniden yapılandırılması tek satırlık bir betiğe dönüşür. Daha fazla terminal kalıbı için mosquitto_pub ve mosquitto_sub örnekleri yazısına bakın.
Telemetri: tele
Her TelePeriod saniyede (varsayılan 300) Tasmota iki mesaj yayınlar:
{"Time":"2026-10-17T10:15:00","Uptime":"0T02:14:31","Heap":25,"POWER":"ON","Wifi":{"SSId":"home","RSSI":72,"Signal":-64}}{"Time":"2026-10-17T10:15:00","ENERGY":{"Total":3.214,"Yesterday":0.412,"Today":0.183,"Power":46,"Voltage":231,"Current":0.214}}Alanların tam listesi cihaz şablonuna ve bağlı sensörlere göre değişir. tele/.../LWT özeldir: Tasmota bağlandıktan sonra retained Online yayınlar ve Offline mesajını Last Will olarak kaydeder; böylece subscriber'lar cihazın erişilebilir olup olmadığını her zaman bilir.
Değerlere TelePeriod'un izin verdiğinden daha hızlı ihtiyacınız varsa, değişiklikte yayın yapmak için bir kural kullanın. Kurallar doğrudan cihaz üzerinde çalışır:
Rule1 ON Power1#State DO Publish testmqtt/tasmota/events/testmqtt-plug1 {"power":%value%} ENDON
Rule1 1Her şeyi tarayıcıdan test edin
- Online MQTT istemcisini açın ve
/mqttpath'i ile 8084 portundanbroker.connectmq.comadresine bağlanın. testmqtt/tasmota/#topic'ine subscribe olun. Retainedtele/testmqtt-plug1/LWT = Onlinemesajını hemen almalısınız.testmqtt/tasmota/cmnd/testmqtt-plug1/POWERtopic'ineTOGGLEyayınlayın. Röle tık sesi çıkarır;stat/.../RESULTvestat/.../POWERsaniyenin çok küçük bir bölümünde gelir.testmqtt/tasmota/cmnd/testmqtt-plug1/TelePeriodtopic'ine10yayınlayın vetele/.../STATEmesajının her on saniyede bir geldiğini izleyin. Ardından makul bir değere geri alın.- Cihazı prizden çekin. Keep alive zaman aşımından sonra broker
LWT = Offlineyayınlar.
Tasmota cihazınızı online istemcide izleyin
Bir abonelik hiçbir şey göstermiyorsa filtreyi topic matcher ile gerçek bir topic'e karşı kontrol edin. Eksik bir son segment veya FullTopic'teki yanlış önek sırası genellikle suçludur.
Retained mesajlar ve güç durumu
Tasmota varsayılan olarak stat mesajlarını retained yayınlamaz. Bir dashboard'un subscribe olur olmaz güncel duruma ihtiyacı varsa ya durumu sorgulayın (cmnd/.../POWER topic'ine boş payload) ya da stat/.../POWER retained olsun diye PowerRetain 1 ayarını açın.
Komutları asla retain bayrağıyla yayınlamayın. cmnd/.../POWER üzerindeki retained bir ON, cihaz her yeniden bağlandığında tekrar teslim edilir ve röle her elektrik veya Wi-Fi kesintisinden sonra kendiliğinden açılır. Böyle olursa aynı topic'e boş bir retained mesaj yayınlayarak temizleyin:
mosquitto_pub -h broker.connectmq.com -u "$MQTT_USER" -P "$MQTT_PASS" \
-t testmqtt/tasmota/cmnd/testmqtt-plug1/POWER -r -nRetain mekanizmasının nasıl çalıştığını MQTT retained mesajlar yazısında bulabilirsiniz.
TLS ve Home Assistant
TLS firmware build'ine bağlıdır. Birçok ESP32 build'i MQTT TLS desteği içerirken, ESP8266 build'lerinin çoğu USE_MQTT_TLS ile özel bir derleme gerektirir. TLS destekli bir build'de MqttPort 8883 ve SetOption103 1 ayarlayın, ardından build'inizin broker sertifikasını nasıl doğruladığını Tasmota TLS dokümantasyonundan kontrol edin. TLS'siz build'lerde 1883 portunda kalın ve güvenilir bir yerel ağ kullanın.
Home Assistant, Tasmota'nın kendi discovery mesajlarını okuyan Tasmota entegrasyonunu kullanır (varsayılan olarak SetOption19 0 ile açıktır). Home Assistant'ın MQTT entegrasyonunu aynı broker'a yönlendirin, cihazlar otomatik olarak görünür. Home Assistant tarafı Home Assistant MQTT yazısında anlatılıyor.
Önekler oturduğunda Tasmota'nın MQTT modeli basittir: komutlar cmnd üzerinden girer, yanıtlar stat üzerinden çıkar ve telemetri her TelePeriod'da tele üzerinden gelir. Her cihaza benzersiz bir client ID ve cihazlarınızı kendi isim alanında tutan bir FullTopic verin, komutları, telemetriyi ve LWT'yi online istemciden doğrulayın; üzerine kuracağınız her otomasyon öngörülebilir şekilde davranacaktır.
Sıkça sorulan sorular
Tasmota'da Topic ile FullTopic arasındaki fark nedir?
Topic, cihazın kısa adıdır; örneğin kitchen-plug. FullTopic ise her MQTT topic'ini bundan üreten şablondur; varsayılanı %prefix%/%topic%/ olup %prefix% cmnd, stat veya tele olur. Bir cihazı yeniden adlandırmak için Topic'i, tüm cihazları ortak bir isim alanına taşımak için FullTopic'i değiştirin.
Tasmota ne sıklıkla telemetri gönderir?
Her TelePeriod saniyede bir; varsayılan 300. TelePeriod komutuyla ayarlayın, örneğin TelePeriod 60. Sensör değerleri tele/<topic>/SENSOR, cihaz durumu ise tele/<topic>/STATE topic'ine gider.
Tasmota rölem neden yeniden başlatmadan sonra kendiliğinden açılıyor?
Genellikle bir cmnd topic'indeki retained mesaj yüzünden: broker, cihaz her yeniden bağlandığında onu tekrar teslim eder. O topic'e boş bir retained mesaj yayınlayarak temizleyin ve komutları asla retain bayrağıyla yayınlamayın.


