Ik heb hele goede ervaringen met de Tasmota firmware op mijn Sonoff S20 en Shelly devices. Aangezien Tasmota gebruikt maakt van een ESP8266, moet deze dus ook op een NodeMCU ESP8266 bordje gebruikt kunnen worden. Ik heb dat eens uitgeprobeerd en dat werkt inderdaad heel handig en snel. In deze blog leg ik uit hoe ik dit hebt gedaan.
Ten eerste heb je natuurlijk een NodeMcu ESP8266 (CH340/CP2102) bordje nodig die voor je voor een paar Euro bij AliExpress kunt vinden.
Download nu de juiste Tasmota firmware en flash deze met behulp van ESPEasy. Ik gebruik de ‘sonoff.bin’ firmware. Deze flash je als volgt:
-
- Plaats de ‘sonoff.bin’ file in de bin directory waar je ESPEasy hebt uitgepakt
- Sluit je NodeMCU ESP8266 bordje aan via je USB poort op je Windows PC
- Start ESPEasy en kies de COM poort en je firmware versie. Vink verder [x] Force DOUT aan
- Druk de [Flash ESP Easy FW] knop rechtsonder en wacht
Na ongeveer 1 minuut zal je NodeMCU ESP8266 bordje geflasht zijn. Je NodeMCU ESP8266 bordje zal default eerst als Access-Point opstarten waarmee je via Wifi kunt verbinden. Vervolgens kun je het NodeMCU ESP8266 bordje benaderen op IP-adres 192.168.4.1. Verbind met dit netwerk en stel je SSID en wachtwoord van je Wifi netwerk in.
Nu moeten we nog Tasmota configureren. Verander in de configuratie de module in ‘Generic (0)’
Ik heb nu als testje een Relay aangesloten op GPIO14:
Als je het NodeMCU bordje wilt gebruiken als een pulse-schakelaar om bijvoorbeeld je garage te openen/sluiten moet je een rule aanmaken in Tasmota in het ‘Console’ scherm:
rule on power1#state=1 do backlog Delay 1; power1 Off endon rule 1
Deze rule zorgt ervoor dat indien het relay wordt aangezet er een delay van 0.1 seconden is gevolgd door het weer uitzetten van het relay. Op deze manier genereer je dus een puls.
Vervolgens heb ik nog mijn gegevens ingevuld voor mijn MQTT server.
Om het NodeMCU ESP8266 bordje met Tasmota firmware automatisch te detecteren in Domoticz moet je optie 19 in het ‘Console’ scherm van Tasmota aanzetten in combinatie met de Domoticz MQTT Discovery plugin:
SetOption19 On
Eventueel kun je met curl ook je relay via http: aanspreken met de volgende commando’s:
http://<ip-adres>/cm?cmnd=power%20On http://<ip-adres>/cm?cmnd=power%20Off
Aangezien de GPIO pinnen voor allerlei types wordt ondersteund met Tasmota zijn de mogelijkheden nu legio. Kijk vooral eens op de Wiki van Tasmota voor ideeën.
Hallo Henri,
Allereerst dank voor je interessante en nuttige blog.
Mijn Vraag:
In bovenstaand artikel, en meerdere betreffende artikelen op je blog aangaande Tasmota en sonoff en de tasmota firmware, stell jij “Vervolgens kun je het NodeMCU ESP8266 bordje benaderen op IP-adres 192.168.4.1. Verbind met dit netwerk en stel je SSID en wachtwoord van je Wifi netwerk in.”
Hieruit begrijp ik dat standaard de “firmware” ingesteld staat op IP adres 192.168.4.1, daar mijn netwerk op 192.168.1.XXX is geconfigureerd valt er weinig in te stellen qua WiFi. Deze netwerken zullen elkaar nooit gaan vinden. ik zal dus mijn laptop moeten instellen op 192.168.4.2 bv om de ESP8266 te kunnen configureren, maar dan?? ik zie geen optie om een ander IP adres in te stellen.
Wat uiteraard wel mogelijk moet zijn, anders zouden er ook nooit 2 devices in het netwerk kunnen bestaan met hetzelfde IP adres.
Wat zie ik over het hoofd?
Groet en dank
Frank
Je ziet over het hoofd dat de NodeMCU eerst initieel als een Access Point (AP) staat ingesteld die zijn eigen netwerk aanbiedt. Als jij dus met je laptop verbind met dit Access Point dan is deze verbinding in de 192.168.4.x range. Als je dan op je URL gaat naar 192.168.4.1 dan krijg je vervolgens de vraag om de SSID en wachtwoord van je eigen Wifi Netwerk in te vullen. Vervolgens zal de NodeMCU rebooten en verbinding maken met je eigen WiFi netwerk en dan dus de IP-range van jouw WiFi netwerk overnemen (aannemend dat je DHCP server in je netwerk hebt).
Hallo Henri,
Dank voor je antwoord, de procedure is mij nu duidelijk. Ben alleen benieuwd hoe de firmware kan weten wat mijn IP range is aan de hand van alleen mijn SSID en wachtwoord. We gaan het zien ik hoop vanavond een momentje te vinden om e.a. te flashen en te proberen.
ps: Inderdaad DHCP is aanwezig.
Groet
Frank
Hallo Henri,
Alles Is mij nu geheel duidelijk. Ik had zeker al een jaar geleden een NodeMCU V3 besteld. Nooit iets mee gedaan, tot nu toe dan. De tasmoto.bin geflashed en alles ingesteld zoals jij aangaf. nu Domoticz nog voorzien van MQTT.
Groet Frank
Succes Frank en veel plezier ermee. Met Tasmato kun je aantal hele leuke dingen doen in combinatie met je NodeMCU.
Hallo Henri,
Alles werkt naar behoren. Tasmota.bin geflashed en een BME280 (Temp/Humidity/Pressure) i2c sensor aangesloten. En alles komt keurig binnen via MQTT in Domoticz. Nu zou ik graag een illuminatie (lux) sensor willen aansluiten. De reeds aanwezige (meegecompileerde) sensoren heb ik niet maar wel een MAX44009, Deze sensor is niet meegecompileerd maar staat wel in my_user_config.h en tasmota_post.h als zijnde
//define USE_MAX44009 // Enable MAX44009 Ambient Light sensor (I2C addresses 0x4A and 0x4B) (+0k8 code)
er is ook een xsns_41_max44009.ino file beschikbaar in de directory dus ik denk ik haal de // remark weg voor define USE_MAX44009 en compileer het geheel en de definitie van de sensor wordt meegecompileerd. De bin file is pakweg 4K groter. Maar wat ik ook probeer de MAX44009 verschijnt nergens, en ik weet zeker dat de sensor niet defect is. in een arduino opzet werkt ie perfect.
Wederom, enig idee wat ik over het hoofd zie, ik heb het hele internet doorzocht aan documentatie maar nergens staat een adequaat antwoord hoe een sensor toe te voegen welke niet is meegecompileerd.
Groet
Frank
Heb je commentaar (\\) ook weggehaald voor ‘Enable MAX44009’?
Dank voor het reageren en jawel in beide files my_user_config.h en tasmota_post.h.
Hallo Henri,
Ik ontvang in de logfile (Domoticz) de volgende boodschap:
Error: MQTT: Failed to start, return code: 14 (Check IP/Port).
Ik weet eerlijk gezegd ook niet welk IP-adres ik moet invullen in de Tasmota MQTT-configuratie, waarschijnlijk heb jij wel een antwoord?
Bij voorbaat dank, Frans
Je vult hier het IP adres in van het device waar je je MQTT Broker (in mijn geval Mosquitto) op hebt geinstalleerd. Zie ook mijn blog over Sonoff S20 waar ik een en ander uitleg.