Struggling to setup my first Tasmota device and MQTT
-
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.
-
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.
@toggledbits said in Struggling to setup my first Tasmota device and MQTT:
include:
- tasmota_generic_relay
- tasmota_sensor_temperature_humidityThanks, now MSR reads the reactor.yaml file as it shows me the Vera controllers etc. But I am seeing this alert now:
"controller "Mosquitto" (undefined mqtt) could not be loaded at startup due to error. See the log."
I looked in the reactor.log and all its rotations but could not see any mention of MQTT.
I also checked the reactor.yaml file on that website and it says its valid.
i then changed this "interface: MQTTController" to this "implementation: MQTTController" and restarted and now I can see the MQTT Controller again under Entities.
I then waited like 10 minutes to see if any new "fan_controller" devices would appear ? And nothing does. Searching the logs again for "mqtt" there are no search matches. Also cannot see a mqtt-topics.log file in the logs folder.
If I run this command on the MSR / MQTT Broker box.
mosquitto_sub -v -t 'tele/fan_controller/#' -t 'stat/fan_controller/#'Eventually some data from the ESP / Tasmota comes in:
tele/fan_controller/LWT Online tele/fan_controller/STATE {"Time":"2026-02-15T11:59:06","Uptime":"0T14:12:43","UptimeSec":51163,"Heap":120,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":3,"Berry":{"HeapUsed":4,"Objects":50},"POWER":"OFF","Wifi":{"AP":1,"SSId":"ASUS_86_2G","BSSId":"04:D9:F5:74:C5:E0","Channel":10,"Mode":"HT40","RSSI":98,"Signal":-51,"LinkCount":2,"Downtime":"0T00:00:04"},"Hostname":"fan-controller-7192","IPAddress":"192.168.0.49"} tele/fan_controller/SENSOR {"Time":"2026-02-15T11:59:06","AM2301":{"Temperature":15.6,"Humidity":62.1,"DewPoint":8.4},"TempUnit":"C"}I see data for the temp sensor and I assume "POWER":"OFF" is the Relay / Switch state, as it is currently off.
-
MQTT Explorer is good for troubleshooting to make sure your data is actually getting to the broker IME
C
-
Reading the help page it shows this example config. I don't know what this channel number does? I didn't see a setting for setting a channel number in the Tasmota web UI. However I see there is a "channel" I saw in the data stream in the terminal mine mentioned channel 10. So I tried adding that also into my config.
EDIT: Current Control Channel: 10 appears to be the current 2.4GHZ WIFI channel of my router, its set to AUTO so that channel will change or "channel" in the reactor.yaml something different?
config: source: "mqtt://127.0.0.1:1883/" entities: shelly1_stairway: name: "Stairway Light" topic: shelly1_43DFD2 include: shelly_relay channel: 0- 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: 1 # relay number on the device include: - tasmota_generic_relay - tasmota_sensor_temperature_humidity channel: 10Didn't help however adding Channel still no new entities appearing.
Just seen this also:
"notably Tasmota, do not have MQTT retain on by default (a poor choice for IoT devices, IMO). On Tasmota devices, you can turn it on by using the PowerRetain on, SwitchRetain on, SensorRetain on and StateRetain on commands in the Tasmota console."
I will run those commands now.
-
A.I. just been telling me how to control the Tasmota with HTTP commands can turn on / off the relay now via HTTP if need be. This commands shows everything about the Tasmota device.
http://192.168.0.49/cm?cmnd=Status%200{"Status":{"Module":1,"DeviceName":"Tasmota","FriendlyName":["Tasmota"],"Topic":"fan_controller","ButtonTopic":"0","Power":"0","PowerLock":"0","PowerOnState":3,"LedState":1,"LedMask":"FFFF","SaveData":1,"SaveState":1,"SwitchTopic":"0","SwitchMode":[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],"ButtonRetain":0,"SwitchRetain":1,"SensorRetain":1,"PowerRetain":1,"InfoRetain":0,"StateRetain":1,"StatusRetain":0},"StatusPRM":{"Baudrate":115200,"SerialConfig":"8N1","GroupTopic":"tasmotas","OtaUrl":"http://ota.tasmota.com/tasmota32/release/tasmota32.bin","RestartReason":"Software reset CPU","Uptime":"0T15:23:32","StartupUTC":"2026-02-14T20:46:23","Sleep":50,"CfgHolder":4617,"BootCount":8,"BCResetTime":"2026-02-14T20:26:13","SaveCount":48},"StatusFWR":{"Version":"15.2.0(release-tasmota32)","BuildDateTime":"2025-12-12T10:58:29","Core":"3.3.4","SDK":"5.3.4.251205","CpuFrequency":160,"Hardware":"ESP32-D0WD-V3 v3.0","CR":"430/699"},"StatusLOG":{"SerialLog":2,"WebLog":2,"MqttLog":0,"FileLog":0,"SysLog":0,"LogHost":"","LogPort":514,"SSId":["ASUS_86_2G",""],"TelePeriod":60,"Resolution":"558180C0","SetOption":["000082AB","2805C80000000600003C5A0A192800000000","00000080","00006000","00004080","00000000"]},"StatusMEM":{"ProgramSize":2086,"Free":793,"Heap":112,"StackLowMark":3,"PsrMax":0,"PsrFree":0,"ProgramFlashSize":4096,"FlashSize":4096,"FlashChipId":"16405E","FlashFrequency":80,"FlashMode":"DIO","Features":["0809","9F9AD7DF","0015A001","B7F7BFCF","05DA9BC4","E0360DC7","480840D2","20200000","D4BC482D","810A80F1","00000814"],"Drivers":"1,2,!3,!4,!5,7,!8,9,10,11,12,!14,!16,!17,!20,!21,!24,26,!27,29,!34,!35,38,50,52,!59,!60,62,!63,!66,!67,!68,!73,!75,82,!86,!87,!88,!91,!121","Sensors":"1,2,3,5,6,7,8,9,10,11,12,13,14,15,17,18,19,20,21,22,26,31,34,37,39,40,42,43,45,51,52,55,56,58,59,64,66,67,74,85,92,95,98,103,105,109,127","I2CDriver":"7,8,9,10,11,12,13,14,15,17,18,20,24,29,31,36,41,42,44,46,48,58,62,65,69,76,77,82,89"},"StatusNET":{"Hostname":"fan-controller-7192","IPAddress":"192.168.0.49","Gateway":"192.168.0.1","Subnetmask":"255.255.255.0","DNSServer1":"192.168.0.1","DNSServer2":"0.0.0.0","Mac":"7C:87:CE:2D:3C:18","IP6Global":"","IP6Local":"fe80::7e87:ceff:fe2d:3c18%st1","Ethernet":{"Hostname":"","IPAddress":"0.0.0.0","Gateway":"0.0.0.0","Subnetmask":"0.0.0.0","DNSServer1":"192.168.0.1","DNSServer2":"0.0.0.0","Mac":"00:00:00:00:00:00","IP6Global":"","IP6Local":""},"Webserver":2,"HTTP_API":1,"WifiConfig":4,"WifiPower":16.0},"StatusMQT":{"MqttHost":"192.168.0.4","MqttPort":1883,"MqttClientMask":"DVES_%06X","MqttClient":"DVES_2D3C18","MqttUser":"DVES_USER","MqttCount":3,"MqttTLS":0,"MAX_PACKET_SIZE":1200,"KEEPALIVE":30,"SOCKET_TIMEOUT":4},"StatusTIM":{"UTC":"2026-02-15T12:09:55Z","Local":"2026-02-15T13:09:55","StartDST":"2026-03-29T02:00:00","EndDST":"2026-10-25T03:00:00","Timezone":"+01:00","Sunrise":"07:58","Sunset":"18:10"},"StatusSNS":{"Time":"2026-02-15T13:09:55","AM2301":{"Temperature":15.0,"Humidity":62.2,"DewPoint":7.8},"TempUnit":"C"},"StatusSTS":{"Time":"2026-02-15T13:09:55","Uptime":"0T15:23:32","UptimeSec":55412,"Heap":112,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":3,"Berry":{"HeapUsed":4,"Objects":50},"POWER":"OFF","Wifi":{"AP":1,"SSId":"ASUS_86_2G","BSSId":"04:D9:F5:74:C5:E0","Channel":10,"Mode":"HT40","RSSI":100,"Signal":-48,"LinkCount":2,"Downtime":"0T00:00:04"},"Hostname":"fan-controller-7192","IPAddress":"192.168.0.49"}} -
When asking AI, be sure to send the docs, the exact page. It will be more precise. All that said, here's my config
controllers: - id: mqtt name: MQTT enabled: true implementation: MQTTController config: # omitted... entities: # dehum tasmota_dehumidifier: name: "Dehum - sensors" include: tasmota_sensor_temperature_humidity topic: "tasmota-dehum" source: SI7021 tasmota_dehumidifier_switch: name: "Dehum - switch" include: tasmota_generic_relay topic: "tasmota-dehum" unit: ""You could probably consolidate them, but I prefer to have the switch and the sensors separated: it's easier to start and to manage them.
In you case, as per the post,
topic: "tasmota-dehum" should betopic: "fan_controller", whilesourceshould beAM2301`.











