Bu Tasmota MQTT komutları kopya kâğıdı, Tasmota cihazlarını herhangi bir MQTT istemcisinden açıp kapatmak, sorgulamak ve ince ayar yapmak için her gün kullanacağınız topic'leri ve komutları bir araya getirir. cmnd, stat ve tele öneklerinin birbiriyle nasıl çalıştığını, her komutun hangi payload'ı beklediğini ve bunları bir terminalden, bir betikten veya ConnectMQ web istemcisinden nasıl göndereceğinizi öğreneceksiniz.
Tasmota MQTT Topic'leri Nasıl Oluşturulur?
Her Tasmota topic'i, varsayılan değeri %prefix%/%topic%/ olan Full Topic şablonunu izler. Komut adı en sona eklenir. Topic değeri plug1 olan bir cihaz için:
| Önek | Yön | Örnek topic | Amaç |
|---|---|---|---|
cmnd |
Sizden cihaza | cmnd/plug1/POWER |
Komut gönderme |
stat |
Cihazdan size | stat/plug1/RESULT |
Bir komuta verilen JSON yanıtı |
stat |
Cihazdan size | stat/plug1/POWER |
Her değişiklikten sonra düz güç durumu |
tele |
Cihazdan size | tele/plug1/STATE |
Periyodik durum (çalışma süresi, Wi-Fi, güç) |
tele |
Cihazdan size | tele/plug1/SENSOR |
Periyodik sensör ve enerji okumaları |
tele |
Cihazdan size | tele/plug1/LWT |
Online / Offline, retained Last Will |
İki kural hataların çoğunu önler. Birincisi, komutlar her zaman cmnd önekine gider; stat önekine yayın yapmak hiçbir şey yapmaz. İkincisi, bir komut topic'ine gönderilen boş payload, mevcut değeri değiştirmeden sorgular.
Full Topic'iniz bir önek ekliyorsa, örneğin home/%prefix%/%topic%/, bu sayfadaki her topic o öneki alır: home/cmnd/plug1/POWER. Cihazda MQTT'yi henüz kurmadıysanız Tasmota MQTT kurulum rehberiyle başlayın.
Tasmota MQTT Komutlarını Göndermek
Bu sayfadaki her komutu üç şekilde gönderebilirsiniz.
Terminalden mosquitto istemcileriyle. Ücretsiz herkese açık MQTT broker üzerinde Full Topic'inizde connectmq/demo/k4w9ra/%prefix%/%topic%/ gibi benzersiz bir önek kullanın:
mosquitto_pub -h broker.connectmq.com -p 1883 -i cli-k4w9ra \
-t 'connectmq/demo/k4w9ra/cmnd/plug1/POWER' -m 'ON'
ConnectMQ web istemcisinden. Portalda tarayıcı içi MQTT istemcisini açın, home/stat/plug1/# topic'ine abone olun, ardından home/cmnd/plug1/POWER topic'ine TOGGLE payload'ı ile yayın yapın. Canlı topic gezgini RESULT yanıtını orijinal durum topic'inin yanında gösterir.
Koddan. Herhangi bir MQTT kütüphanesi işinizi görür; işte paho-mqtt 2.x ile Python:
import paho.mqtt.client as mqtt
PREFIX = "connectmq/demo/k4w9ra"
client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="py-k4w9ra")
client.connect("broker.connectmq.com", 1883, keepalive=30)
client.loop_start()
info = client.publish(f"{PREFIX}/cmnd/plug1/POWER", "TOGGLE", qos=1)
info.wait_for_publish()
client.loop_stop()
client.disconnect()
Güç ve Röle Komutları
| Komut | Payload | Etki |
|---|---|---|
POWER |
ON, OFF, TOGGLE |
1. röleyi açar/kapatır |
POWER |
boş | 1. röleyi sorgular |
POWER2 ... POWER8 |
aynı | Çok kanallı cihazlar, her röle için bir tane |
POWER0 |
ON, OFF |
Tüm röleleri aynı anda açar/kapatır |
POWER |
BLINK, BLINKOFF |
Yanıp sönmeyi başlatır veya durdurur |
PowerOnState |
0-5 |
Elektrik geldikten sonraki röle durumu: 0 kapalı, 1 açık, 2 tersine çevir, 3 son kaydedilen (varsayılan) |
PulseTime1 |
0-64900 |
Otomatik kapanma zamanlayıcısı: 1-111 arası 0,1 sn adımlarla, 111 üzerinde saniye için 100 çıkarın |
PowerRetain |
0 / 1 |
stat/.../POWER mesajını retained olarak yayınlar |
PulseTime, "N dakika çalış" anahtarı oluşturmanın güvenli yoludur. Örneğin PulseTime1 400, arada ağ bağlantısı kopsa bile röleyi açıldıktan 300 saniye sonra kapatır.
PowerRetain 1, cihazdan sonra başlayan panolar için kullanışlıdır; çünkü son güç durumu abone olunur olunmaz iletilir. Komut topic'lerini retained yapmayın; retained bir cmnd/.../POWER ON mesajı, her yeniden bağlantıdan sonra röleyi tekrar açar.
Telemetri ve Durum Komutları
| Komut | Payload | Etki |
|---|---|---|
TelePeriod |
10-3600 |
tele/STATE ve tele/SENSOR mesajları arasındaki saniye (varsayılan 300) |
TelePeriod |
boş | Aralığı sorgular veya anında bir telemetri mesajı gönderilmesini sağlar |
Status |
0 |
Tüm durum bilgilerini tek yanıtta verir |
Status |
2 |
Yazılım sürümü ve derleme |
Status |
5 |
Ağ: IP, ağ geçidi, MAC |
Status |
6 |
MQTT host, port, client ve kullanıcı |
Status |
8 |
Güncel sensör okumaları |
Status |
11 |
tele/STATE gibi güncel durum |
SensorRetain |
0 / 1 |
tele/SENSOR mesajını retained olarak yayınlar |
Status yanıtları numaraya bağlı olarak stat/<topic>/STATUS, STATUS2 gibi topic'lere gelir. Kısa TelePeriod değerleri test sırasında işe yarar, ancak her 10 saniyede bir rapor veren birkaç yüz cihaz ciddi bir yük oluşturur. Panonuza hâlâ hizmet eden en yavaş aralığı seçin.
Işık ve Dimmer Komutları
| Komut | Payload | Etki |
|---|---|---|
Dimmer |
0-100 |
Yüzde olarak parlaklık |
Color |
FF8800 veya 255,136,0 |
RGB renk |
CT |
153-500 |
Mired cinsinden renk sıcaklığı (soğuktan sıcağa) |
HSBColor |
30,100,80 |
Ton, doygunluk, parlaklık |
Fade |
0 / 1 |
Yumuşak geçişleri açar veya kapatır |
Speed |
1-40 |
Geçiş hızı |
Yapılandırma Komutları
| Komut | Örnek payload | Notlar |
|---|---|---|
Topic |
plug1 |
Cihaz topic'i; yeniden başlatmayı tetikler |
FullTopic |
home/%prefix%/%topic%/ |
Topic şablonu; yeniden başlatmayı tetikler |
GroupTopic1 |
kitchen |
Cihazın komut için dinlediği ek topic |
MqttHost / MqttPort |
broker.connectmq.com / 8883 |
Broker adresi |
MqttUser / MqttPassword |
YOUR_USERNAME |
Temizlemek için 0 kullanın |
MqttClient |
YOUR_CLIENT_ID |
Broker başına benzersiz olmalıdır |
SetOption103 |
1 |
TLS içeren derlemelerde TLS |
SetOption19 |
0 / 1 |
Home Assistant'taki Tasmota entegrasyonu için 0, eski MQTT discovery için 1 |
Timezone |
99 veya +02:00 |
99 yaz saati kurallarını kullanır |
Grup topic'leri toplu kontrolü kolaylaştırır: GroupTopic1 kitchen ayarlı her cihaz cmnd/kitchen/POWER OFF mesajına tepki verir. Yerleşik varsayılan grup topic'i tasmotas'tır. Cihazlarınız bir broker'ı başkalarıyla paylaşıyorsa bunu benzersiz bir değerle değiştirin; aksi takdirde başıboş bir cmnd/tasmotas/... mesajı cihazlarınıza ulaşabilir.
Şifreli bağlantıların kendine özgü gereksinimleri vardır; bunlar Tasmota MQTT TLS rehberinde ele alınır.
Bakım Komutları
| Komut | Payload | Etki |
|---|---|---|
Restart |
1 |
Yeniden başlatır |
Upgrade |
1 |
OtaUrl üzerinden OTA yükseltmesini başlatır |
OtaUrl |
URL | Yükseltmeler için yazılım kaynağı |
WebServer |
0, 1, 2 |
Devre dışı, kullanıcı modu, yönetici modu |
WebPassword |
metin | Web arayüzünü korur |
Reset |
1 |
Fabrika ayarlarına sıfırlar, dikkatli kullanın |
Backlog ile Birden Fazla Komut Çalıştırmak
Backlog, noktalı virgülle ayrılmış bir komut listesini çalıştırır; bunu MQTT üzerinden de gönderebilirsiniz:
mosquitto_pub -h broker.connectmq.com -p 1883 -i cli-k4w9ra \
-t 'connectmq/demo/k4w9ra/cmnd/plug1/Backlog' \
-m 'Power ON; Delay 50; Power OFF'
Delay 0,1 saniyelik birimler kullanır; dolayısıyla Delay 50 beş saniye bekler. Backlog, her cihazın web arayüzünü tek tek ziyaret etmeden tüm bir yapılandırmayı cihaz filosuna göndermenin en temiz yoludur.
Kurallar: Cihazda Tetiklenen Komutlar
Kurallar (rules), bir cihazın herhangi bir sunucu olmadan tepki vermesini sağlar. Klasik bir örnek, röle değiştiğinde özel bir mesaj yayınlar:
Rule1 ON Power1#State DO Publish home/events/plug1 {"power":"%value%"} ENDON
Rule1 1
Bir kuraldan çalışan Publish, istediğiniz herhangi bir topic'e gönderim yapar; bu, başka bir sistem belirli bir format beklediğinde işe yarar.
Hızlı Başvuru Kontrol Listesi
- Komutları
cmnd/<topic>/<Command>adresine gönderin; yanıtlarıstat/<topic>/RESULTüzerinden okuyun. - Boş payload "kapat" değil, "sorgula" anlamına gelir.
- Erişilebilirlik için
tele/<topic>/LWTtopic'ini izleyin. - Panolar ihtiyaç duyuyorsa durum topic'lerini retained yapın; komutları asla retained yapmayın.
- Paylaşılan broker'larda benzersiz client ID, topic ve grup topic'leri kullanın.
Tasmota Cihazlarınızı ConnectMQ Üzerinde Çalıştırın
Herkese açık broker'da test yapmak sorun değildir, ancak özel bir broker yabancıları rölelerinizden uzak tutar. ConnectMQ'nun barındırılan MQTT broker hizmeti her cihaza kendi kimlik bilgilerini, yanıtları kontrol etmek için canlı bir topic gezginini ve ESP32 derlemeleri için 8883 portunda TLS sunar. app.connectmq.com adresinde kredi kartı gerekmeden ücretsiz bir Serverless broker oluşturun ve proje fikirleri için IoT otomasyon rehberine göz atın.
Sık Sorulan Sorular
Tasmota'da cmnd, stat ve tele arasındaki fark nedir?
cmnd komut gönderdiğiniz yerdir, stat yanıtları ve durum değişikliklerini taşır, tele ise periyodik telemetriyi ve Online/Offline erişilebilirlik mesajını taşır.
Bir Tasmota cihazının durumunu değiştirmeden nasıl kontrol ederim?
Komut topic'ine, örneğin cmnd/plug1/POWER adresine boş bir payload yayınlayın. Cihaz stat/plug1/RESULT üzerinden yanıt verir.
Birden fazla Tasmota komutunu tek bir MQTT mesajıyla nasıl gönderirim?
Komutları noktalı virgülle ayırarak cmnd/<topic>/Backlog adresine yayınlayın; örneğin Power ON; Delay 50; Power OFF.
Tasmota komutlarım neden yok sayılıyor?
Genellikle topic yanlıştır: komutlar cmnd önekini kullanmalı ve ek önekler ile büyük/küçük harf dahil cihazın Full Topic'iyle birebir eşleşmelidir.



