Tasmota + ESP + Node-RED

 


Youtube'da izleyin..

Tasmota, ESP (esp8266 veya esp32) çipi içeren kartlar veya cihazlar için yazılmış çok yetenekli ve açık kaynaklı bir firmware'dir yani bu çipe yüklenebilen küçük bir yazılımdır. Web arayüzünden bütün ayarları yapılabilmektedir. Bu firmware sayesinde Arduino IDE'ye veya arduino C++ programlamaya ihtiyaç kalmamaktadır. Bu yazıdaki çalışmayı NodeMCU diye bilinen 4MB flash hafızaya sahip, esp8266 çip içeren kart ile yaptım. ESP çipler wi-fi ağa ve dolayısı ile internete kolayca bağlabilen, modele göre değişen sayıda GPIO yani giriş, çıkış pinleri bulunan çiplerdir. Ev otomasyonu işlerinde sıklıkla kullanılırlar.
Esp8266 çipini içerdiğinden, Tasmota, NodeMCU dışında piyasadaki Sonoff (akıllı röle, akıllı priz, akıllı ampul vs.) ve benzeri cihazlara da atılabiliyor. Bunun için 3.3V usb-seri çevirici ve 4 tane jumper kablo gerekiyor.. Video'da Tasmota’nın Sonoff 220V röle’ye nasıl yüklendiğini anlatılıyor. Ama satın almadan araştırmak lazım çünkü her Sonoff cihaz modeli, ESP çipi içermiyor. Tasmota, Sonoff dışında farklı markalara da yüklenebiliyor, hangi cihazlara yüklenebildiğini linkteki siteden kontrol edebilirsiniz. Sonoff cihazı normalde cep telefonu ile kullanmak için telefona eWeLink isimli bir uygulama kuruluyor, siz Sonoff prize bağlı evdeki lambayı yakmak istediğinizde, uygulama üzerinden isteğiniz, nerede olduğu bilinmeyen server'a gidiyor, oradan evdeki wi-fi üzerinden Sonoff'a bilgi geliyor ve içindeki röle çekiyor. 
Tasmota yüklenmiş bir Sonoff bu ticari yazılımdan kurtulmuş, özgürleşmiş oluyor. Tasmota ile Sonoff sadece lokal ağda yani internete çıkmadan, eve gittiğinizde çalışabiliyor. 
Not: Evde Node-RED sunucunuz varsa örneğin ofisten evdeki bir cihazı kontrol edebilirsiniz. Bunun için örneğin WhatsApp benzeri olan Node-RED Telegram kütüphanesi kullanılabilir. Node-RED’in mini pc içinde veya Virtualbox içinde bulunan linux üzerine kurulumunu bir önceki yazıda anlatmıştım.

Tasmota ilk olarak Sonoff cihazlar için yazılmış daha sonra kapsamını genişletmiştir. Bu nedenle örneğin Tasmota yüklenmiş NodeMCU'ya 1 led, 1 buton bağladığınızda, buton'a tıkladığınızda (fiziksel olarak veya web arayüzünden) led yanacaktır, tekrar tıklayınca led sönecektir, yani bunun için bir program yazmaya gerek kalmamaktadır, Sonoff prizin normal çalışması zaten bu şekildedir.


NodeMCU'ya Tasmota yazılımını atmak için usb-seri çeviriciye ihtiyaç yok, zaten kart üzerinde bu çevirici ve USB girişi var. Bilgisayara daha önce kurmadıysanız önce usb driver'ı kurmanız gerekiyor. Firmware aktarmak için Tasmotizer isminde bir program da var ama standart olan Tasmota’yı kuracaksanız bu programa gerek kalmıyor.. Google Chrome'da adres satırına 
https://tasmota.github.io/install/ yazdığınızda resimdeki görüntü sizi karşılıyor. Türkçe menü olsun isterseniz Tasmota TR 'ı seçip CONNECT'e tıklıyoruz. Eğer NodeMCU (esp8266) değil de ESP32 içeren bir modül aldıysanız Tasmota32 firmware seçmeniz gerekir. CONNECT'e tıklamadan önce cihazı usb kablo ile pc'ye takmanız, ve usb sürücüyü kurmuş olmanız gerekir. Açılan pencerede COM portu seçip Bağlan, install tasmota, Erase device kutucuğunu işaretleyerek Next butonlarına basıyoruz. Installation complete! mesajı gelince Next e tıklayıp, wi-fi network ismimizi seçiyoruz, wi-fi parolayı giriyoruz, Connect'e tıklıyoruz.. Device connected to network! mesajı gelince Visit device'a tıklıyoruz ve aşağıdaki tasmota web arayüzü karşımıza çıkıyor..

Anasayfa görüntüsü

İlk önce NodeMCU kartını Tasmota'ya tanıtmak için Konfigürasyon a ardından en üstteki Modül Ayarlarını Değiştir e tıklıyoruz. Önce Modül türü olarak Generic(18) seçip, Kaydet'e tıklıyoruz. Cihaz kapanıp açılacaktır. Aşağıdaki resimde görüldüğü gibi diğer ayarları yapıp, Kaydet'e tıklıyoruz. 



Şemada görüldüğü gibi Button yerine push buton, Relay yerine Ledleri, Switch yerine de varsa on/off anahtar yoksa buton bağlayabilirsiniz.


D5, D7 butonları ledleri yakacak ("Anasayfa görüntüsü" isimli resimde gözüken Toggle 1 ve Toggle 2), D6 daki anahtar ise örneğin kapıya bağlanan manyetik kontağı temsil etsin. Kapı açıldığında bize bilgi verecek, yani aslında sensör olarak çalışacak..

Cihaz her kapanıp açıldığında ip adresi değişecek ve arayıp bulmanız gerekecektir. Bunun önüne geçmek için hemen Konsol butonuna tıklayıp, ipaddress1 192.168.1.237 (sizdeki cihazın Google Chrome adres satırındaki ip adresi neyse, onu yazabilirsiniz) komutu ardından enter tuşu ile ip'yi sabitliyoruz. Sizdeki görüntü resimdeki gibi olmayacaktır, bendeki ayarları yaptıktan sonra aynı olacaktır. Tasmota, Node-RED'e ihtiyacı olmadan "Anasayfa görüntüsü" resminde gördüğünüz gibi web tarayıcıdan Toggle 1 ve Toggle 2 ile 2 led'i veya 2 220V lambayı kapatıp açabilmektedir. 3.3V çıkışı olan NodeMCU ile 220V lambayı kontrol etmek için araya dc girişli bir SSR veya röle kartı benzeri bir ara devre koymanız gerekir. Toggle sayısı artabilir ben ayarlarda 2 adet relay yani röle tanımladığımdan böyle gözüküyor.. Hazır Konsol'a girmişken bir kaç gerekli komut öğrenelim..

poweronstate komutu verip enter a basın, değerin 3 olduğunu göreceksiniz. Bu komut cihazın elektriği gidip geldiğinde led'lerin durumunu ayarlar, değer 3 olduğundan elektrik kesilmeden önce led yanık durumdaysa elektrik geldiğinde de yanacaktır. Ben bunu 0 yaptım ki elektrik geri geldiğinde led kapalı kalsın. Yani :
poweronstate 0 

time komutunu girince saatin yanlış olduğunu göreceksiniz. Ayarlamak için :
timezone +3 girdikten sonra tekrar time komutunu verin, düzelmiş olacaktır. Saati internetten çektiğinden saniye şaşmaz.

teleperiod komutuna 300 sn. olarak cevap gelecektir. Yani 5 dakikada bir cihaz bir takım bilgileri yayınlayacaktır, bu bilgileri bu komutu verince göreceksiniz. Bu periyodik raporlama durumunu aşağıdaki komut ile kapatabiliriz :
teleperiod 0

Cihazı yeniden başlatmak için aşağıdaki komutu veriyoruz, örneğin ip adresi değişiminden sonra vermek gerekiyor. USB den çıkarıp tekrar bağlamak da bazen çözüm olacaktır.
restart 1

Konsol görüntüsü

power 1 veya power1 1 yazınca led1 yanacaktır. power2 1 yazınca led2 yanacaktır. Söndürme komutunu da tahmin edebilirsiniz sanırım, power2 0

Backlog komutu ile birden fazla komut aynı satıra yazılabiliyor :
Backlog Power1 1; Delay 5; Power1 0

D6 ya bağlı anahtar veya butona basınca ledlerden biri yanacaktır. Fakat biz böyle çalışmasını istemiyoruz. Ledleri D5 ve D7 deki butonlar zaten kontrol ediyor. D6 yı tasmota menüsünde Switch3 olarak tanımlamıştık, o yüzden diğer butonlar gibi davranmıyor, basılı olduğu sürece led yanıyor dikkat ettiyseniz. Switch3 ü led'ten ayırmak için Konsol'da bu komutu girin :
switchmode3 15

Bu ve benzeri tüm komutları ve açıklamalarını tasmota web sitesinde görebilirsiniz. Artık D6 daki anahtar, ledi rahatsız etmeyecektir. Anahtarın konumunu değiştirince, Switch3'ün durumu aşağıdaki gibi gözükecektir.
SENSOR = {"Time":"2022-09-21T12:55:40","Switch3":"ON"}

Konsol'a gelen mesajları Node-RED ile okuyabilmemiz için, Konfigürasyon altında  MQTT'yi Ayarlarını Değiştir olarak yanlış çevirilmiş butona basıyoruz. Node-RED kullanmayacaksak, Diğer Ayarları Değiştir butonuna basıp MQTT'yi pasif hale getirmemiz gerekir. 


En üstteki kutuya Node-RED ip adresini yazıyoruz. Birde Başlık olarak Türkçe'ye çavirilmiş Topic (konu) kutusuna tasmota_mutfak yazdık. Node-RED açılmadıysa ve MQTT açık durumdaysa aşağıdaki gibi mesajlar Konsol'a gelecektir.
Connect failed to 192.168.1.153:1883, rc -2. Retry in 120 sec

Konuyla ilgisi yok ama Konfigürasyon içinde Zamanlayıcı Ayarları butonuna tıklayınca aşağıdaki menü ekranı çıkıyor.


Resime göre ayar yaparsak her salı saat 15:45 te Relay1 yani led1 yanacaktır.. Zamanlayıcı 1 tanımlandı, 2 ye de off yani kapatma, söndürme ayarı yapılabilir.

Node-RED konusuna geçmeden önce rules yani kurallardan bahsetmek isterim. Konsol'da tanımlanan kurallar sayesinde basit otomasyon senaryoları gerçekleştirilebiliyor. 3 tane rule1, rule2 ve rule3 diye kural tanımlayabiliyorsunuz, ama herbiri 1000 karaktere kadar tren gibi uzayabilir.. Örneğin :

Rule2 on wifi#connected do RuleTimer1 5 endon on Rules#Timer=1 do Backlog RuleTimer2 10;power2 1 endon on Rules#Timer=2 do power2 0 endon

Rule2 1

Rule2 "

Rule2 1, kuralı aktif hale getirmek için gerekiyor.  Rule2 " kuralı silmek için kullanılıyor. Türkçesi şöyle; NodeMCU wifi ağa bağlandığında, RuleTimer1 5 sn. olarak çalışacak, 5 sn. dolunca yani Rules#Timer=1 olduğunda RuleTimer2 10 sn. olarak çalışmaya başlayacak ve power2 yani led2 yanacak, 10 sn. dolduğunda led2 sönecek.. Denemek için USB kabloyu çekin ve geri takın.. Linkte bir arkadaş 27 kadar rule yazmış, incelemek isterseniz.. Mesela, Switch3, manyetik kontak ise ona bağlı bir kural ile kapı açılınca ışık 10 sn. yansın sönsün gibi senaryolar, Node-RED'e gerek kalmadan Tasmota yüklü NodeMCU içinde kolayca gerçekleştirilebiliyor.

MQTT haberleşme için Mosquitto kurmadıysanız, Node-RED kütüphanesi olarak 
node-red-contrib-aedes node'unu Manage Palette ile install edelim. Önceki yazıları okuduysanız node-red-dashboard node'u önceden kurmuş olmalısınız. Aşağıdaki flow'u import edebilirsiniz :


[{"id":"010e87977ed01b2d","type":"tab","label":"Flow 1","disabled":false,"info":"","env":[]},{"id":"f7a53dbee7bf6df0","type":"aedes broker","z":"010e87977ed01b2d","name":"","mqtt_port":1883,"mqtt_ws_bind":"port","mqtt_ws_port":"","mqtt_ws_path":"","cert":"","key":"","certname":"","keyname":"","dburl":"","usetls":false,"credentials":{},"x":190,"y":140,"wires":[[],[]]},{"id":"359b93caf6b7b058","type":"mqtt in","z":"010e87977ed01b2d","name":"","topic":"stat/tasmota_mutfak/POWER1","qos":"2","datatype":"auto-detect","broker":"d4b2b23f5d246e57","nl":false,"rap":true,"rh":0,"inputs":0,"x":230,"y":200,"wires":[["64a2e83ec624206a","457892fbfbc485ba"]]},{"id":"64a2e83ec624206a","type":"debug","z":"010e87977ed01b2d","name":"debug 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":680,"y":200,"wires":[]},{"id":"c8fa72dd715be8d1","type":"mqtt out","z":"010e87977ed01b2d","name":"","topic":"cmnd/tasmota_mutfak/POWER1","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"d4b2b23f5d246e57","x":610,"y":360,"wires":[]},{"id":"6548761dedb66b1a","type":"inject","z":"010e87977ed01b2d","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"1","payloadType":"num","x":190,"y":340,"wires":[["c8fa72dd715be8d1"]]},{"id":"3b063e3ff1b8a716","type":"inject","z":"010e87977ed01b2d","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"0","payloadType":"num","x":190,"y":380,"wires":[["c8fa72dd715be8d1"]]},{"id":"be7effd59bccde75","type":"mqtt in","z":"010e87977ed01b2d","name":"","topic":"tele/tasmota_mutfak/SENSOR","qos":"2","datatype":"auto-detect","broker":"d4b2b23f5d246e57","nl":false,"rap":true,"rh":0,"inputs":0,"x":240,"y":640,"wires":[["0b576ffdbda8ec5b"]]},{"id":"6cd69c07581a36fc","type":"inject","z":"010e87977ed01b2d","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"300","payloadType":"num","x":190,"y":800,"wires":[["2bc648ebf2bfa6a5"]]},{"id":"2bc648ebf2bfa6a5","type":"mqtt out","z":"010e87977ed01b2d","name":"","topic":"cmnd/tasmota_mutfak/TelePeriod","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"d4b2b23f5d246e57","x":540,"y":800,"wires":[]},{"id":"ea29a58c427b0d8f","type":"mqtt in","z":"010e87977ed01b2d","name":"","topic":"stat/tasmota_mutfak/POWER2","qos":"2","datatype":"auto-detect","broker":"d4b2b23f5d246e57","nl":false,"rap":true,"rh":0,"inputs":0,"x":230,"y":260,"wires":[["8ee4b61e09c03400","9e01dfc3df634d17"]]},{"id":"8ee4b61e09c03400","type":"debug","z":"010e87977ed01b2d","name":"debug 5","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":680,"y":300,"wires":[]},{"id":"4688d3437374903e","type":"mqtt out","z":"010e87977ed01b2d","name":"","topic":"cmnd/tasmota_mutfak/POWER2","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"d4b2b23f5d246e57","x":610,"y":520,"wires":[]},{"id":"8966fcd1f34c2f6d","type":"inject","z":"010e87977ed01b2d","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"1","payloadType":"num","x":190,"y":500,"wires":[["4688d3437374903e"]]},{"id":"8b0831acaf514e50","type":"inject","z":"010e87977ed01b2d","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"0","payloadType":"num","x":190,"y":540,"wires":[["4688d3437374903e"]]},{"id":"f8608d9578faa045","type":"mqtt in","z":"010e87977ed01b2d","name":"","topic":"tele/tasmota_mutfak/LWT","qos":"2","datatype":"auto-detect","broker":"d4b2b23f5d246e57","nl":false,"rap":true,"rh":0,"inputs":0,"x":230,"y":700,"wires":[["8fc75ff1369bbef4","c2884d45b81ef093"]]},{"id":"8fc75ff1369bbef4","type":"debug","z":"010e87977ed01b2d","name":"LWT","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":670,"y":700,"wires":[]},{"id":"457892fbfbc485ba","type":"change","z":"010e87977ed01b2d","name":"","rules":[{"t":"set","p":"renk","pt":"msg","to":"(msg.payload=\"ON\")?\"green\":\"red\"","tot":"jsonata"},{"t":"set","p":"payload","pt":"msg","to":"(msg.payload=\"ON\")?\"TRUE\":\"FALSE\"","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":160,"wires":[["97a9e244aa4c17e5"]]},{"id":"97a9e244aa4c17e5","type":"ui_text","z":"010e87977ed01b2d","group":"3fc912cb8c8de962","order":2,"width":0,"height":0,"name":"","label":"LED 1","format":"<font color={{msg.renk}}>{{msg.payload}}","layout":"row-spread","className":"","x":890,"y":160,"wires":[]},{"id":"ab08b5f835206eea","type":"ui_switch","z":"010e87977ed01b2d","name":"","label":"Buton 1","tooltip":"","group":"3fc912cb8c8de962","order":4,"width":0,"height":0,"passthru":true,"decouple":"false","topic":"topic","topicType":"msg","style":"","onvalue":"1","onvalueType":"num","onicon":"","oncolor":"","offvalue":"0","offvalueType":"num","officon":"","offcolor":"","animate":false,"className":"","x":180,"y":420,"wires":[["c8fa72dd715be8d1"]]},{"id":"9e01dfc3df634d17","type":"change","z":"010e87977ed01b2d","name":"","rules":[{"t":"set","p":"renk","pt":"msg","to":"(msg.payload=\"ON\")?\"green\":\"red\"","tot":"jsonata"},{"t":"set","p":"payload","pt":"msg","to":"(msg.payload=\"ON\")?\"TRUE\":\"FALSE\"","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":260,"wires":[["5bf252e3922cc0c0"]]},{"id":"5bf252e3922cc0c0","type":"ui_text","z":"010e87977ed01b2d","group":"3fc912cb8c8de962","order":3,"width":0,"height":0,"name":"","label":"LED 2","format":"<font color={{msg.renk}}>{{msg.payload}}","layout":"row-spread","className":"","x":890,"y":260,"wires":[]},{"id":"8726c1f7a06931dc","type":"ui_switch","z":"010e87977ed01b2d","name":"","label":"Buton 2","tooltip":"","group":"3fc912cb8c8de962","order":5,"width":0,"height":0,"passthru":true,"decouple":"false","topic":"topic","topicType":"msg","style":"","onvalue":"1","onvalueType":"num","onicon":"","oncolor":"","offvalue":"0","offvalueType":"num","officon":"","offcolor":"","animate":false,"className":"","x":180,"y":580,"wires":[["4688d3437374903e"]]},{"id":"401c78495eb7f417","type":"ui_text","z":"010e87977ed01b2d","group":"3fc912cb8c8de962","order":1,"width":0,"height":0,"name":"","label":"NodeMCU status :","format":"<font color={{msg.renk}}>{{msg.payload}}","layout":"row-spread","className":"","x":710,"y":740,"wires":[]},{"id":"c2884d45b81ef093","type":"change","z":"010e87977ed01b2d","name":"","rules":[{"t":"set","p":"renk","pt":"msg","to":"green","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":510,"y":740,"wires":[["401c78495eb7f417"]]},{"id":"3477e7ae772809e2","type":"debug","z":"010e87977ed01b2d","name":"debug 6","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":860,"y":640,"wires":[]},{"id":"0b576ffdbda8ec5b","type":"function","z":"010e87977ed01b2d","name":"function 2","func":"msg.payload=msg.payload.Switch3\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":500,"y":640,"wires":[["d1cf0fbdd97dc7da"]]},{"id":"d1cf0fbdd97dc7da","type":"change","z":"010e87977ed01b2d","name":"","rules":[{"t":"set","p":"renk","pt":"msg","to":"(msg.payload=\"ON\")?\"green\":\"red\"","tot":"jsonata"},{"t":"set","p":"payload","pt":"msg","to":"(msg.payload=\"ON\")?\"TRUE\":\"FALSE\"","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":680,"y":640,"wires":[["3477e7ae772809e2","3d23595ea6998613"]]},{"id":"3d23595ea6998613","type":"ui_text","z":"010e87977ed01b2d","group":"3fc912cb8c8de962","order":3,"width":0,"height":0,"name":"","label":"SENSOR Switch3","format":"<font color={{msg.renk}}>{{msg.payload}}","layout":"row-spread","className":"","x":890,"y":680,"wires":[]},{"id":"d4b2b23f5d246e57","type":"mqtt-broker","name":"","broker":"localhost","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""},{"id":"3fc912cb8c8de962","type":"ui_group","name":"NodeMCU","tab":"c16e08aed00ce109","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"c16e08aed00ce109","type":"ui_tab","name":"Home","icon":"dashboard","disabled":false,"hidden":false}]



Aşağıdaki flow'u elde edeceksiniz.. 


Node-RED web arayüzü olarak, cep telefonu veya bilgisayardaki web tarayıcıdan node-red_ip_adresi:1880/ui adresine girince aşağıdaki menü çıkacaktır.. Node-RED'i Virtualbox'a kurduysanız localhost:1880/ui adres satırına girmelisiniz.

Node-RED User Interface


Switch3 den gelen sensör bilgisi bu şekilde geliyordu..


İçinde aşağıdaki kodlar yazan function2 node'u ile sadece Switch3'ün değerini bu şekilde alabiliyoruz..


Function node'u içine javascript kod yazılabiliyor, bunun içinde internette biraz araştırma gerekebiliyor. Gayet kolaymış bu şekilde, ama bunu öğrenmeden önce başka yöntem bulmuştum. Split node kullandım, ayırıcı olarak virgül kullanarak Time ve Switch3 için ayrı ayrı 2 mesaj oluştu. Daha sonra Split çıkışını aşağıdaki function node'a bağladım, böylece Time için bilgi uzun olduğundan, sadece "ON" "OFF" bilgilerinin geçmesine izin vermiş oldum..


return null; mesajı öldürüyor. Yani bir çözümü farklı şekillerde oluşturabilirsiniz..

Örneğin led2'yi aşağıdaki şekillerde yakıp söndürebiliriz :
  • Tasmota web arayüzünde Toggle butonu ile (telefon veya pc web tarayıcıdan)
  • Tasmota Konsol'dan komut vererek
  • Breadboard üzerinde butona basarak
  • Node-RED User Interface üzerinden (telefon veya pc web tarayıcıdan) 
  • Tarayıcı adres satırına : http://192.168.1.237/cm?cmnd=Power2%20On yazarak (http request). http://192.168.1.237/cm?cmnd=Status%208 yazarsak geriye Switch3 durumu döner, burada %20 boşluk karakteridir.
  • Node-RED MQTT komutu ile
  • Node-RED HTTP request komutu ile
  • Tasmota içinde zamanlayıcı ayarları veya rule yazarak
  • NodeMCU seri port'u Konsol gibi çalışabiliyor, buradan sonunda satır sonu karakteri ile power2 1 komutunu yollarsak da led yanacaktır.

HTTP request ile Switch3 durumunu, request yollayınca alabiliyoruz, fakat MQTT ile anında alabiliyoruz.. MQTT haberleşme için Node-RED kurulumuna ihtiyacımız var.. HTTP request için Node-RED kurulumu şart değil, birden fazla NodeMCU, websend komutu ile birbirlerine HTTP request yollayabilirler..

Yorumlar

Bu blogdaki popüler yayınlar

VBA - Mscomm (seri port) ile veri loglama

RJ45 2 - Novexx barkod yazıcıya, S7-1200 plc ile etiket yazdırma

PC_SIMU V3 ile S7-1200 simülasyonu