Struggling to setup my first Tasmota device and MQTT
-
Hi
Trying to create my first Tasmota device on an ESP board. I flashed it OK setup the GPIO pins and pointed it to an new MQTT broker running on the same Linux Debian box as MSR. I followed these instructions here to install a MQTT Controller in MSR, which I can now see under Entities. My topic on the Tasmota setup I called "fan_controller" I don't see any new device coming into MSR however.
My ESP has an DHT22 Temp sensor attached and a Single Channel Relay to control a Fan and I also have a local touch button connected to the ESP board.
If I run this command in terminal on the Debian box I do see some data from the ESP / Tasmota device.
mosquitto_sub -h localhost -t "#" -vtele/fan_controller/LWT Online tasmota/discovery/7C87CE2F4CE0/config {"ip":"192.168.0.46","dn":"Tasmota","fn":["Tasmota",null,null,null,null,null,null,null],"hn":"fan-controller-3296","mac":"7C87CE2F4CE0","md":"ESP32-DevKit","ty":0,"if":0,"cam":0,"ofln":"Offline","onln":"Online","state":["OFF","ON","TOGGLE","HOLD"],"sw":"15.2.0","t":"fan_controller","ft":"%prefix%/%topic%/","tp":["cmnd","stat","tele"],"rl":[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"swc":[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"swn":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"btn":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"so":{"4":0,"11":0,"13":0,"17":0,"20":0,"30":0,"68":0,"73":0,"82":0,"114":0,"117":0},"lk":0,"lt_st":0,"bat":0,"dslp":0,"sho":[],"sht":[],"ver":1} tasmota/discovery/7C87CE2F4CE0/sensors {"sn":{"Time":"2026-02-14T17:25:50","AM2301":{"Temperature":14.2,"Humidity":56.7,"DewPoint":5.7},"TempUnit":"C"},"ver":1} reactor/mqtt/LWT onlineIn my Reactor.yaml file I added this:
- id: mqtt name: MQTT enabled: true implementation: MQTTController config: source: "mqtt://127.0.0.1:1883" tasmota_discovery: true192.168.0.4 is the MSR / MQTT Broker Debian box.
Probably a bad idea but I then asked A.I. what the problem might be and it was telling me I needed to change my reactor.yaml file and change
implementation: MQTTControllertoclass: MQTTControllerand it also told me to add these two lines at the top of the reactor.yaml filesystem: extension_path: /home/stuart/reactor/extI don't know if it made that up or read it somewhere, I could not see any reference to it. Anyway MSR didn't want to load the MQTT Controller into Entities when I changed it to "class" instead of "implementation".
In my file system it looks like this:
I am not sure what I am missing?
Thanks.
EDIT: The A.I. also told me to run a command to change the IP from 127.0.0.1 to 0.0.0.0 perhaps that was a mistake.
Here is what IP and port it seems to be listening on:
sudo ss -tlnp | grep mosquitto LISTEN 0 100 0.0.0.0:1883 0.0.0.0:* users:(("mosquitto",pid=23713,fd=5))Here is what the A.I. said when I asked it why we changed it from 127.0.0.1 to 0.0.0.0
"1. The Broker (Mosquitto) at 0.0.0.0
Think of 0.0.0.0 as "Listen to everyone."Because Mosquitto is set to 0.0.0.0, it is listening for messages from both the internal system (the HP Thin Client itself) and external devices (your ESP32 fan controller).
If it were set to 127.0.0.1, it would be "deaf" to your ESP32.
- Reactor at 127.0.0.1
Think of 127.0.0.1 as "Talking to myself."
Since Multi-System Reactor and Mosquitto are both living on the same HP Thin Client, Reactor doesn't need to go out onto the Wi-Fi to find the broker. It just looks internally.
Using 127.0.0.1 (localhost) is faster and more secure because that traffic never even leaves the computer's CPU.
So, no, it is not a problem! Reactor talks to the broker internally (127.0.0.1), and the ESP32 talks to the broker externally (192.168.0.4). They meet in the middle inside the Mosquitto database.""
- Reactor at 127.0.0.1
-
Hi
Trying to create my first Tasmota device on an ESP board. I flashed it OK setup the GPIO pins and pointed it to an new MQTT broker running on the same Linux Debian box as MSR. I followed these instructions here to install a MQTT Controller in MSR, which I can now see under Entities. My topic on the Tasmota setup I called "fan_controller" I don't see any new device coming into MSR however.
My ESP has an DHT22 Temp sensor attached and a Single Channel Relay to control a Fan and I also have a local touch button connected to the ESP board.
If I run this command in terminal on the Debian box I do see some data from the ESP / Tasmota device.
mosquitto_sub -h localhost -t "#" -vtele/fan_controller/LWT Online tasmota/discovery/7C87CE2F4CE0/config {"ip":"192.168.0.46","dn":"Tasmota","fn":["Tasmota",null,null,null,null,null,null,null],"hn":"fan-controller-3296","mac":"7C87CE2F4CE0","md":"ESP32-DevKit","ty":0,"if":0,"cam":0,"ofln":"Offline","onln":"Online","state":["OFF","ON","TOGGLE","HOLD"],"sw":"15.2.0","t":"fan_controller","ft":"%prefix%/%topic%/","tp":["cmnd","stat","tele"],"rl":[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"swc":[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"swn":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"btn":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"so":{"4":0,"11":0,"13":0,"17":0,"20":0,"30":0,"68":0,"73":0,"82":0,"114":0,"117":0},"lk":0,"lt_st":0,"bat":0,"dslp":0,"sho":[],"sht":[],"ver":1} tasmota/discovery/7C87CE2F4CE0/sensors {"sn":{"Time":"2026-02-14T17:25:50","AM2301":{"Temperature":14.2,"Humidity":56.7,"DewPoint":5.7},"TempUnit":"C"},"ver":1} reactor/mqtt/LWT onlineIn my Reactor.yaml file I added this:
- id: mqtt name: MQTT enabled: true implementation: MQTTController config: source: "mqtt://127.0.0.1:1883" tasmota_discovery: true192.168.0.4 is the MSR / MQTT Broker Debian box.
Probably a bad idea but I then asked A.I. what the problem might be and it was telling me I needed to change my reactor.yaml file and change
implementation: MQTTControllertoclass: MQTTControllerand it also told me to add these two lines at the top of the reactor.yaml filesystem: extension_path: /home/stuart/reactor/extI don't know if it made that up or read it somewhere, I could not see any reference to it. Anyway MSR didn't want to load the MQTT Controller into Entities when I changed it to "class" instead of "implementation".
In my file system it looks like this:
I am not sure what I am missing?
Thanks.
EDIT: The A.I. also told me to run a command to change the IP from 127.0.0.1 to 0.0.0.0 perhaps that was a mistake.
Here is what IP and port it seems to be listening on:
sudo ss -tlnp | grep mosquitto LISTEN 0 100 0.0.0.0:1883 0.0.0.0:* users:(("mosquitto",pid=23713,fd=5))Here is what the A.I. said when I asked it why we changed it from 127.0.0.1 to 0.0.0.0
"1. The Broker (Mosquitto) at 0.0.0.0
Think of 0.0.0.0 as "Listen to everyone."Because Mosquitto is set to 0.0.0.0, it is listening for messages from both the internal system (the HP Thin Client itself) and external devices (your ESP32 fan controller).
If it were set to 127.0.0.1, it would be "deaf" to your ESP32.
- Reactor at 127.0.0.1
Think of 127.0.0.1 as "Talking to myself."
Since Multi-System Reactor and Mosquitto are both living on the same HP Thin Client, Reactor doesn't need to go out onto the Wi-Fi to find the broker. It just looks internally.
Using 127.0.0.1 (localhost) is faster and more secure because that traffic never even leaves the computer's CPU.
So, no, it is not a problem! Reactor talks to the broker internally (127.0.0.1), and the ESP32 talks to the broker externally (192.168.0.4). They meet in the middle inside the Mosquitto database.""
@cw-kid By the numbers:
tasmota_discoveryis not a thing in Reactor, so that won't work.- The AI-recommended use of 0.0.0.0 for the host IP address of your MQTT broker (mosquitto) is correct and recommended.
implementation: MQTTControlleris the correct usage (classis deprecated).- You should use the 127.0.0.1 (aka loopback) address for the MQTTController's
sourceconfiguration inreactor.yamlwhenever the MQTT broker (i.e. mosquitto) is running on the same host as Reactor; otherwise, use the LAN interface address (192.168.0.4 in your case). system:andextension_pathare also not a thing in Reactor configuration (another AI fantasy fact).- All ESP32s and other MQTT clients should use the LAN address for the MQTT host (192.168.0.4 as shown in your image; that's correct).
You need to use one of the available templates for Tasmota described in the MQTTController documentation or create a configuration of your own. The latter may be necessary for your configuration, but we need more info. Please show more of the Tasmota device configuration (screen shots), so we can help you with that.
Until then, just choose the simple included switch/relay configuration template to get things working (i.e. so you can see that Reactor sees the device and may be able to control it).
# In the controllers section of reactor.yaml: - id: mqtt enabled: true implementation: MQTTController name: Mosquitto config: source: mqtt://127.0.0.1:1883/ log_topics: ['tele','stat','tasmota'] # only for testing, disable when not in use (makes big log file) entities: tasmota_fan_controller: name: "Tasmota Fan Controller" topic: fan_controller # matches topic configured in Tasmota unit: 0 # relay number on the device include: - tasmota_generic_relay - tasmota_sensor_temperature_humidityThis may be all you need. Try it and see what happens. Don't forget to look at the logs when things aren't working as expected. And look at the
mqtt-topics.logfile to see what data you are getting (post a nice snippet of it here, along with everything else requested, if the device isn't working in Reactor). - Reactor at 127.0.0.1
-
Knew A.I. just dreams some things up out of thin air! I have removed the stuff it suggested to add to the reactor.yaml file.
I have this now as my MQTT Controller section:
- id: mqtt enabled: true interface: MQTTController name: Mosquitto config: source: 'mqtt://127.0.0.1:1883' log_topics: ['tele','stat','tasmota'] # only for testing, disable when not in use (makes big log file) entities: tasmota_fan_controller: name: "Tasmota Fan Controller" topic: fan_controller # matches topic configured in Tasmota unit: 0 # relay number on the device include: tasmota_generic_relay include: tasmota_sensor_temperature_humidityHowever MSR is not loading it now, it says "The Reactor configuration in "/home/stuart/reactor/config/reactor.yaml" could not be read; the system has started with an empty configuration." I guess there is something wrong with the formatting somewhere. Seems very picky if it loads the config file or not after I have edited it etc.
I have used "interface: MQTTController" and not "implementation: MQTTController" correct ?
@toggledbits said in Struggling to setup my first Tasmota device and MQTT:
Please show more of the Tasmota device configuration (screen shots), so we can help you with that.
Some more details:
Hardware:
ESP32-WROOM-32
Chip Information -
XX5R69
Silabs CP2102
DCL00X
2108+Computer Fan is 12V with external DC power supply
Relay (SRD-05VDC-SL-C) (Single Channel)
TTP223B Touch Sensor
DHT22 Temperature Humidity SensorI used one of these expansion boards what the ESP32 board sits into, as it gives you more pins to connect multiple sensor etc. Like it gives you more pins for the 3.3V and 5V for example.
Pinout:
TTP223B Touch Sensor (Signal Wire) -> GPIO_IN:4 (Input)
Relay (SRD-05VDC-SL-C) (Signal Wire) -> GPIO_OUT:27 (Output)
DHT22 Temperature Humidity Sensor (Signal Wire) -> GPIO:5There is an "Information" button in the Tasmota device webpage that also shows a lot of device info if you want that also?
Thanks.
-
The formatting in the reator.yaml file looks OK ? I am using notepad ++
But anytime I try to add the new MQTT Controller section and restart MSR it doesn't load the config. if I remove that new section. save and restart MSR then it does load the config as I see my other Vera controllers then in Entities.
-
Sorry, my bad, change the
includesection to look like this (I'll fix the example above as well):include: - tasmota_generic_relay - tasmota_sensor_temperature_humidityAlso, you can use yamllint.com to sanity-check your entire config file.










