Struggling to setup my first Tasmota device and MQTT
-
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`. -
@cw_kid in your post here the configuration you posted is incorrect -- the indenting is invalid, and that will prevent anything from working for that entity.
Honestly, I can't at this stage really get a read on where you are. Between you jumping in with random AI changes and others commenting, your config is a moving target and I can't follow it. If you want my help, I will send you a link so you can upload your config and I can look at it and potentially fix it. Otherwise, I'll let you continue to learn on your own and seek help from others.
-
Clearly the problem is I don't know how to structure or write the required yaml code. Following @therealdb example above, I changed mine to this:
- id: mqtt name: Mosquitto enabled: true implementation: MQTTController config: entities: tasmota_fan_controller_temp: name: "Stairs Cupboard Temp" include: tasmota_sensor_temperature_humidity topic: "fan_controller" source: AM2301I could then finally see an Entity for it in MSR for the Temp sensor. But with no data values as yet its null.
That obviously only imported the DHT22 (AM230) Temp sensor part.
I then tried to add this to also include the 1 channel Relay part.
- id: mqtt name: Mosquitto enabled: true implementation: MQTTController config: entities: tasmota_fan_controller_temp: name: "Stairs Cupboard Temp" include: tasmota_sensor_temperature_humidity topic: "fan_controller" source: AM2301 tasmota_fan_controller_relay: name: "Stairs Cupboard Fan" include: tasmota_generic_relay topic: "fan_controller" source: unit: "1"The relay part seems to be working! I pressed the "Perform" button and was able to turn on and off the relay / fan OK.
Seems I didn't need a "Source:" for the relay portion, I left that blank as I didn't know what to put in there anyway.
So just not sure why I have no data from the Temp sensor currently.
-
Its working now, a wire came off the ESP board for the DHT22 which is why it was null. I connected the wire again and now I see data in MSR.
So this seems to be the now working yaml code:
- id: mqtt name: Mosquitto enabled: true implementation: MQTTController config: entities: tasmota_fan_controller_temp: name: "Stairs Cupboard Temp" include: tasmota_sensor_temperature_humidity topic: "fan_controller" source: AM2301 tasmota_fan_controller_relay: name: "Stairs Cupboard Fan" include: tasmota_generic_relay topic: "fan_controller" unit: "1"And I did just install MQTT Explorer so a screen shot of that:
Thanks for everyone help, I just needed a nudge in the right direction with the MSR yaml code.
-
-
Sweet everything appears to be working now, I created some virtual devices in Vera for the Temp and Humidity and some new MSR rules to push those values to them in Vera if they change.
Updated my Home Remote dashboard and I can see them on my phone now and also have a switch to turn the Fan on and off..
-
What else can I build! I have loads of spare ESP boards and sensors laying around the place, what I was using when trying out "EzloPi" but I am gonna switch to Tasmota / MSR and eventually Home Assistant when I retire my Vera Plus for Z-Wave duties.
@cw-kid I have them with lux, barometric, distance, and temp/humidity sensors, while also using a couple as Bluetooth bridges. in this regard, your fantasy is the real limit.
I've recently moved everything I could to ZWave, because it is better in terms of stability, but ATM there's no equivalent for fancy sensors, even if ZigBee has a denter offer.
-
Actually I do have one issue: power_switch.state=null
It seems MSR is not seeing what the state of the relay currently is? Which is causing me an issue now in a rule I am trying to create.
If I run this command in terminal on the MSR / MQTT broker box
:~mosquitto_sub -v -t 'tele/fan_controller/#' -t 'stat/fan_controller/#'I see this:
tele/fan_controller/LWT Online tele/fan_controller/STATE {"Time":"2026-02-16T18:38:48","Uptime":"0T03:13:09","UptimeSec":11589,"Heap":113,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Berry":{"HeapUsed":4,"Objects":50},"POWER":"OFF","Wifi":{"AP":1,"SSId":"ASUS_86_2G","BSSId":"04:D9:F5:74:C5:E0","Channel":3,"Mode":"HT40","RSSI":100,"Signal":-20,"LinkCount":1,"Downtime":"0T00:00:04"},"Hostname":"Stairs-Cupboard-Fan-ESP32","IPAddress":"192.168.0.49"} tele/fan_controller/SENSOR {"Time":"2026-02-16T18:38:48","AM2301":{"Temperature":21.2,"Humidity":47.9,"DewPoint":9.7},"TempUnit":"C"} stat/fan_controller/POWER OFFstat/fan_controller/POWER OFFWhich is correct, the fan is currently off.
So maybe the yaml code is not quite right if its not seeing the state of the relay.
I can turn on / off the relay however via MSR so it is talking to it somewhat.
This is what is in the reactor.yaml file currently.
- id: mqtt name: Mosquitto enabled: true implementation: MQTTController config: entities: tasmota_fan_controller_temp: name: "Stairs Cupboard Temp" include: tasmota_sensor_temperature_humidity topic: "fan_controller" source: AM2301 tasmota_fan_controller_relay: name: "Stairs Cupboard Fan" include: tasmota_generic_relay topic: "fan_controller" unit: "1" -
Looking at the HTTP output for everything from the Tasmota, I see these snippets.
"StatusSTS" - seems to contain the state of the relay e.g. "POWER":"ON"
"StatusSTS":{"Time":"2026-02-16T18:58:25","Uptime":"0T03:32:46","UptimeSec":12766,"Heap":106,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Berry":{"HeapUsed":4,"Objects":50},"POWER":"ON","Wifi":{"AP":1,"SSId":"ASUS_86_2G","BSSId":"04:D9:F5:74:C5:E0","Channel":3,"Mode":"HT40","RSSI":100,"Signal":-19,"LinkCount":1,"Downtime":"0T00:00:04"},"Hostname":"Stairs-Cupboard-Fan-ESP32","IPAddress":"192.168.0.49"}}Where as "StatusSNS" contains the Temp data.
"StatusSNS":{"Time":"2026-02-16T18:58:25","AM2301":{"Temperature":19.8,"Humidity":50.3,"DewPoint":9.1},"TempUnit":"C"},So it seems MSR doesn't know where to find the relay status / state currently? and I am not sure how to fix it.
As a guess I tried adding source "POWER" to the relay section of the yaml but didn't seem to work and bring in the "ON" or "OFF" value.
tasmota_fan_controller_relay: name: "Stairs Cupboard Fan" include: tasmota_generic_relay topic: "fan_controller" source: "POWER" unit: "1"I was poking around the file system to find these Tasmota default templates. I see this folder but its empty.
/home/stuart/reactor/config/mqtt_templatesI do see a file called tasmota.yaml however in this folder.
/home/stuart/reactor/ext/MQTTController/templatesEDIT: I just fixed it by changing unit: "1" to unit: "" in the reactor.yaml.
It now say "false" for power state in the Entites area. I thought I had to put a 1 in unit because in Tasmota somewhere, I saw the Relay was number 1. -
Tasmota has this inconsistency where if there's only one relay configured, it does not include the relay number; if more than one, then it adds it. There's no way for the template to know how many relays are configured, so you found the correct fix.















