forked from tasmota/docs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
705 lines (679 loc) · 127 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
<!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" href=../_media/favicon.ico><meta name=generator content="mkdocs-1.1, mkdocs-material-5.0.0rc4"><title>Home Assistant - Tasmota</title><link rel=stylesheet href=../assets/stylesheets/main.c1451e9e.min.css><link rel=stylesheet href=../assets/stylesheets/palette.4444686e.min.css><meta name=theme-color content=#2196f3><link href=https://fonts.gstatic.com rel=preconnect crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Barlow:300,400,400i,700%7CRoboto+Mono&display=fallback"><style>body,input{font-family:"Barlow",-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono",SFMono-Regular,Consolas,Menlo,monospace}</style><link rel="preconnect dns-prefetch" href=https://www.google-analytics.com><script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-140681905-2","auto"),ga("set","anonymizeIp",!0),ga("send","pageview"),document.addEventListener("DOMContentLoaded",function(){document.forms.search&&document.forms.search.query.addEventListener("blur",function(){if(this.value){var e=document.location.pathname;ga("send","pageview",e+"?q="+this.value)}})}),document.addEventListener("DOMContentSwitch",function(){ga("send","pageview")})</script><script async src=https://www.google-analytics.com/analytics.js></script></head> <body dir=ltr data-md-color-primary=blue data-md-color-accent=indigo> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#home-assistant class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header-nav md-grid" aria-label=Header> <a href=.. title=Tasmota class="md-header-nav__button md-logo" aria-label=Tasmota> <img src=../_media/logo.svg alt=logo> </a> <label class="md-header-nav__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d=M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z /></svg> </label> <div class=md-header-nav__title data-md-component=header-title> <div class=md-header-nav__ellipsis> <span class="md-header-nav__topic md-ellipsis"> Tasmota </span> <span class="md-header-nav__topic md-ellipsis"> Home Assistant </span> </div> </div> <label class="md-header-nav__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query data-md-state=active> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d=M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z /></svg> </label> <button type=reset class="md-search__icon md-icon" aria-label=Clear data-md-component=search-reset tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d=M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z /></svg> </button> </form> <div class=md-search__output> <div class=md-search__scrollwrap data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Type to start searching </div> <ol class=md-search-result__list></ol> </div> </div> </div> </div> </div> <div class=md-header-nav__source> <a href=https://github.com/arendst/tasmota/ title="Go to repository" class=md-source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 448 512"><path d="M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg> </div> <div class=md-source__repository> arendst/tasmota </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class="md-tabs md-tabs--active" aria-label=Tabs data-md-component=tabs> <div class="md-tabs__inner md-grid"> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../Scripting-Language/ class=md-tabs__link> Features </a> </li> <li class=md-tabs__item> <a href=../Alexa/ class="md-tabs__link md-tabs__link--active"> Smart Home Integrations </a> </li> <li class=md-tabs__item> <a href=../Displays/ class=md-tabs__link> Peripherals </a> </li> <li class=md-tabs__item> <a href=../Configuration-Procedure-for-New-Devices/ class=md-tabs__link> Supported Devices </a> </li> <li class=md-tabs__item> <a href=../FAQ/ class=md-tabs__link> Help </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=.. title=Tasmota class="md-nav__button md-logo" aria-label=Tasmota> <img src=../_media/logo.svg alt=logo> </a> Tasmota </label> <div class=md-nav__source> <a href=https://github.com/arendst/tasmota/ title="Go to repository" class=md-source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 448 512"><path d="M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg> </div> <div class=md-source__repository> arendst/tasmota </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=.. title=Home class=md-nav__link> Home </a> </li> <li class=md-nav__item> <a href=../About/ title=About class=md-nav__link> About </a> </li> <li class=md-nav__item> <a href=../Getting-Started/ title="Getting Started" class=md-nav__link> Getting Started </a> </li> <li class=md-nav__item> <a href=../Upgrading/ title=Upgrading class=md-nav__link> Upgrading </a> </li> <li class=md-nav__item> <a href=../MQTT/ title=MQTT class=md-nav__link> MQTT </a> </li> <li class=md-nav__item> <a href=../Commands/ title=Commands class=md-nav__link> Commands </a> </li> <li class=md-nav__item> <a href=../Templates/ title=Templates class=md-nav__link> Templates </a> </li> <li class=md-nav__item> <a href=../Components/ title=Components class=md-nav__link> Components </a> </li> <li class=md-nav__item> <a href=../Modules/ title=Modules class=md-nav__link> Modules </a> </li> <li class=md-nav__item> <a href=../Rules/ title=Rules class=md-nav__link> Rules </a> </li> <li class=md-nav__item> <a href=../Timers/ title=Timers class=md-nav__link> Timers </a> </li> <li class=md-nav__item> <a href=../Lights/ title=Lights class=md-nav__link> Lights </a> </li> <li class=md-nav__item> <a href=../Buttons-and-Switches/ title="Buttons and Switches" class=md-nav__link> Buttons and Switches </a> </li> <li class=md-nav__item> <a href=../Supported-Peripherals/ title=Peripherals class=md-nav__link> Peripherals </a> </li> <li class=md-nav__item> <a href=../TuyaMCU/ title=TuyaMCU class=md-nav__link> TuyaMCU </a> </li> <li class=md-nav__item> <a href=../Device-groups.md title=None class=md-nav__link> None </a> </li> <li class=md-nav__item> <a href=../Blinds-and-Shutters/ title="Blinds and Shutters" class=md-nav__link> Blinds and Shutters </a> </li> <li class=md-nav__item> <a href=../Shutter-and-Steppers/ title="Shutter and Steppers" class=md-nav__link> Shutter and Steppers </a> </li> <li class=md-nav__item> <a href=../Tasmota-IR/ title="IR Communication" class=md-nav__link> IR Communication </a> </li> <li class=md-nav__item> <a href=../WebUI/ title=WebUI class=md-nav__link> WebUI </a> </li> <li class=md-nav__item> <a href=../Compile-your-build/ title=Compiling class=md-nav__link> Compiling </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle=nav-22 type=checkbox id=nav-22> <label class=md-nav__link for=nav-22> Features <span class="md-nav__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d=M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z /></svg> </span> </label> <nav class=md-nav aria-label=Features data-md-level=1> <label class=md-nav__title for=nav-22> <span class="md-nav__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d=M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z /></svg> </span> Features </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../Scripting-Language/ title=Scripting class=md-nav__link> Scripting </a> </li> <li class=md-nav__item> <a href=../Bluetooth/ title=Bluetooth class=md-nav__link> Bluetooth </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle=nav-22-3 type=checkbox id=nav-22-3> <label class=md-nav__link for=nav-22-3> Zigbee <span class="md-nav__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d=M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z /></svg> </span> </label> <nav class=md-nav aria-label=Zigbee data-md-level=2> <label class=md-nav__title for=nav-22-3> <span class="md-nav__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d=M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z /></svg> </span> Zigbee </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../Zigbee/ title=Zigbee class=md-nav__link> Zigbee </a> </li> <li class=md-nav__item> <a href=../Zigbee-Internals/ title="Zigbee internals" class=md-nav__link> Zigbee internals </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../TasmotaSlave/ title=TasmotaSlave class=md-nav__link> TasmotaSlave </a> </li> <li class=md-nav__item> <a href=../DeepSleep/ title=DeepSleep class=md-nav__link> DeepSleep </a> </li> <li class=md-nav__item> <a href=../PWM-dimmer-switch/ title="PWM Dimmer" class=md-nav__link> PWM Dimmer </a> </li> <li class=md-nav__item> <a href=../Buzzer/ title=Buzzer class=md-nav__link> Buzzer </a> </li> <li class=md-nav__item> <a href=../Dynamic-Sleep/ title="Dynamic Sleep" class=md-nav__link> Dynamic Sleep </a> </li> <li class=md-nav__item> <a href=../GPS-NTP-server/ title="GPS NTP server" class=md-nav__link> GPS NTP server </a> </li> <li class=md-nav__item> <a href=../I2CDevices/ title="I2C Devices" class=md-nav__link> I2C Devices </a> </li> <li class=md-nav__item> <a href=../Smart-Meter-Interface/ title="Smart Meter Interface" class=md-nav__link> Smart Meter Interface </a> </li> <li class=md-nav__item> <a href=../PIR-Motion-Sensors/ title="PIR Motion Sensors" class=md-nav__link> PIR Motion Sensors </a> </li> <li class=md-nav__item> <a href=../Power-Monitoring-Calibration/ title="Power Monitoring Calibration" class=md-nav__link> Power Monitoring Calibration </a> </li> <li class=md-nav__item> <a href=../Subscribe-%26-Unsubscribe/ title="Subscribe & Unsubscribe" class=md-nav__link> Subscribe & Unsubscribe </a> </li> <li class=md-nav__item> <a href=../TLS/ title="SSL/TLS on Tasmota" class=md-nav__link> SSL/TLS on Tasmota </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle=nav-23 type=checkbox id=nav-23 checked> <label class=md-nav__link for=nav-23> Smart Home Integrations <span class="md-nav__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d=M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z /></svg> </span> </label> <nav class=md-nav aria-label="Smart Home Integrations" data-md-level=1> <label class=md-nav__title for=nav-23> <span class="md-nav__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d=M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z /></svg> </span> Smart Home Integrations </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../Alexa/ title=Alexa class=md-nav__link> Alexa </a> </li> <li class=md-nav__item> <a href=../AWS-IoT/ title="AWS IoT" class=md-nav__link> AWS IoT </a> </li> <li class=md-nav__item> <a href=../Domoticz/ title=Domoticz class=md-nav__link> Domoticz </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" data-md-toggle=toc type=checkbox id=__toc> <a href=./ title="Home Assistant" class="md-nav__link md-nav__link--active"> Home Assistant </a> </li> <li class=md-nav__item> <a href=../Homebridge/ title=Homebridge class=md-nav__link> Homebridge </a> </li> <li class=md-nav__item> <a href=../HomeSeer/ title=HomeSeer class=md-nav__link> HomeSeer </a> </li> <li class=md-nav__item> <a href=../IP-Symcon/ title="IP Symcon" class=md-nav__link> IP Symcon </a> </li> <li class=md-nav__item> <a href=../KNX/ title=KNX class=md-nav__link> KNX </a> </li> <li class=md-nav__item> <a href=../NodeRed/ title=NodeRed class=md-nav__link> NodeRed </a> </li> <li class=md-nav__item> <a href=../nymea/ title=nymea class=md-nav__link> nymea </a> </li> <li class=md-nav__item> <a href=../OctoPrint.md title=None class=md-nav__link> None </a> </li> <li class=md-nav__item> <a href=../openHAB/ title=openHAB class=md-nav__link> openHAB </a> </li> <li class=md-nav__item> <a href=../otto/ title=Otto class=md-nav__link> Otto </a> </li> <li class=md-nav__item> <a href=https://github.com/arendst/Tasmota/issues/3769 title=IOBroker class=md-nav__link> IOBroker </a> </li> <li class=md-nav__item> <a href=https://github.com/tim-hellhake/tasmota-adapter title="Mozilla WebThings Adapter" class=md-nav__link> Mozilla WebThings Adapter </a> </li> <li class=md-nav__item> <a href=https://github.com/BrettSheleski/SmartThingsPublic/blob/master/devicetypes/brettsheleski/sonoff-tasmota.src/readme.md title=SmartThings class=md-nav__link> SmartThings </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle=nav-24 type=checkbox id=nav-24> <label class=md-nav__link for=nav-24> Peripherals <span class="md-nav__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d=M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z /></svg> </span> </label> <nav class=md-nav aria-label=Peripherals data-md-level=1> <label class=md-nav__title for=nav-24> <span class="md-nav__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d=M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z /></svg> </span> Peripherals </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle=nav-24-1 type=checkbox id=nav-24-1> <label class=md-nav__link for=nav-24-1> Displays <span class="md-nav__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d=M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z /></svg> </span> </label> <nav class=md-nav aria-label=Displays data-md-level=2> <label class=md-nav__title for=nav-24-1> <span class="md-nav__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d=M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z /></svg> </span> Displays </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../Displays/ title=Displays class=md-nav__link> Displays </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../A4988-Stepper-Motor-Controller/ title="A4988 stepper motor controller" class=md-nav__link> A4988 stepper motor controller </a> </li> <li class=md-nav__item> <a href=../AM2301/ title="AM2301 temperature and humidity sensor" class=md-nav__link> AM2301 temperature and humidity sensor </a> </li> <li class=md-nav__item> <a href=../APDS-9960/ title="APDS 9960" class=md-nav__link> APDS 9960 </a> </li> <li class=md-nav__item> <a href=../AZ-7798/ title="AZ 7798" class=md-nav__link> AZ 7798 </a> </li> <li class=md-nav__item> <a href=../BH1750/ title=BH1750 class=md-nav__link> BH1750 </a> </li> <li class=md-nav__item> <a href=../BME280/ title=None class=md-nav__link> None </a> </li> <li class=md-nav__item> <a href=../BME680/ title=BME680 class=md-nav__link> BME680 </a> </li> <li class=md-nav__item> <a href=../BME280/ title="BMP280 pressure sensor" class=md-nav__link> BMP280 pressure sensor </a> </li> <li class=md-nav__item> <a href=../CC2530/ title=CC2530 class=md-nav__link> CC2530 </a> </li> <li class=md-nav__item> <a href=../Moisture-Sensor-and-Chirp%21-Sensor/ title="Chirp! moisture sensor" class=md-nav__link> Chirp! moisture sensor </a> </li> <li class=md-nav__item> <a href=../DHT11/ title=DHT11 class=md-nav__link> DHT11 </a> </li> <li class=md-nav__item> <a href=../DS18x20/ title=DS18x20 class=md-nav__link> DS18x20 </a> </li> <li class=md-nav__item> <a href=../DS3231/ title=DS3231 class=md-nav__link> DS3231 </a> </li> <li class=md-nav__item> <a href=../HM-10/ title="HM 10" class=md-nav__link> HM 10 </a> </li> <li class=md-nav__item> <a href=../HM-17/ title="HM 17" class=md-nav__link> HM 17 </a> </li> <li class=md-nav__item> <a href=../HC-SR04/ title="HC SR04" class=md-nav__link> HC SR04 </a> </li> <li class=md-nav__item> <a href=../Honeywell-HIH/ title="Honeywell HIH" class=md-nav__link> Honeywell HIH </a> </li> <li class=md-nav__item> <a href=../IR-Remote/ title="IR Remote" class=md-nav__link> IR Remote </a> </li> <li class=md-nav__item> <a href=../LM75AD/ title=LM75AD class=md-nav__link> LM75AD </a> </li> <li class=md-nav__item> <a href=../MCP230xx/ title=MCP230xx class=md-nav__link> MCP230xx </a> </li> <li class=md-nav__item> <a href=../MGC3130/ title=MGC3130 class=md-nav__link> MGC3130 </a> </li> <li class=md-nav__item> <a href=../MH-Z19B/ title="MH Z19B" class=md-nav__link> MH Z19B </a> </li> <li class=md-nav__item> <a href=../MLX90614/ title=MLX90614 class=md-nav__link> MLX90614 </a> </li> <li class=md-nav__item> <a href=../MPR121/ title="MPR121 I2C Proximity Capacitive Touch Sensor Controller" class=md-nav__link> MPR121 I<sup>2</sup>C Proximity Capacitive Touch Sensor Controller </a> </li> <li class=md-nav__item> <a href=../MPU-6050/ title="MPU 6050" class=md-nav__link> MPU 6050 </a> </li> <li class=md-nav__item> <a href=../NRF24L01/ title=NRF24L01 class=md-nav__link> NRF24L01 </a> </li> <li class=md-nav__item> <a href=../P1-Smart-Meter/ title="Kaifa MA105C Energy Meter" class=md-nav__link> Kaifa MA105C Energy Meter </a> </li> <li class=md-nav__item> <a href=../PAJ7620/ title=PAJ7620 class=md-nav__link> PAJ7620 </a> </li> <li class=md-nav__item> <a href=../PCA9685/ title=PCA9685 class=md-nav__link> PCA9685 </a> </li> <li class=md-nav__item> <a href=../PN532/ title=PN532 class=md-nav__link> PN532 </a> </li> <li class=md-nav__item> <a href=../PZEM-0XX/ title="PZEM 0XX" class=md-nav__link> PZEM 0XX </a> </li> <li class=md-nav__item> <a href=../RCWL-0516/ title="RCWL 0516" class=md-nav__link> RCWL 0516 </a> </li> <li class=md-nav__item> <a href=../RDM6300/ title=RDM6300 class=md-nav__link> RDM6300 </a> </li> <li class=md-nav__item> <a href=../SDS011/ title=SDS011 class=md-nav__link> SDS011 </a> </li> <li class=md-nav__item> <a href=../SHT30/ title=SHT30 class=md-nav__link> SHT30 </a> </li> <li class=md-nav__item> <a href=../TX2x/ title=TX2x class=md-nav__link> TX2x </a> </li> <li class=md-nav__item> <a href=../TSL2561/ title=TSL2561 class=md-nav__link> TSL2561 </a> </li> <li class=md-nav__item> <a href=../VEML6070/ title=VEML6070 class=md-nav__link> VEML6070 </a> </li> <li class=md-nav__item> <a href=../VL53L0x/ title=VL53L0x class=md-nav__link> VL53L0x </a> </li> <li class=md-nav__item> <a href=../WS2812B-RGB-Shield/ title="WS2812B RGB Shield" class=md-nav__link> WS2812B RGB Shield </a> </li> <li class=md-nav__item> <a href=../WS2812B-and-WS2813/ title="WS2812B and WS2813" class=md-nav__link> WS2812B and WS2813 </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle=nav-25 type=checkbox id=nav-25> <label class=md-nav__link for=nav-25> Supported Devices <span class="md-nav__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d=M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z /></svg> </span> </label> <nav class=md-nav aria-label="Supported Devices" data-md-level=1> <label class=md-nav__title for=nav-25> <span class="md-nav__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d=M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z /></svg> </span> Supported Devices </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../Configuration-Procedure-for-New-Devices/ title="Configuring unknown devices" class=md-nav__link> Configuring unknown devices </a> </li> <li class=md-nav__item> <a href="https://templates.blakadder.com/ " target='_blank""' title="All Supported Devices" class=md-nav__link> All Supported Devices </a> </li> <li class=md-nav__item> <a href=../Supported-Modules/ title="Supported Modules" class=md-nav__link> Supported Modules </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle=nav-26 type=checkbox id=nav-26> <label class=md-nav__link for=nav-26> Help <span class="md-nav__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d=M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z /></svg> </span> </label> <nav class=md-nav aria-label=Help data-md-level=1> <label class=md-nav__title for=nav-26> <span class="md-nav__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d=M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z /></svg> </span> Help </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../FAQ/ title=FAQ class=md-nav__link> FAQ </a> </li> <li class=md-nav__item> <a href=../Troubleshooting/ title=Troubleshooting class=md-nav__link> Troubleshooting </a> </li> <li class=md-nav__item> <a href=../Device-Recovery/ title="Device Recovery" class=md-nav__link> Device Recovery </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../Contributing/ title=Contributing class=md-nav__link> Contributing </a> </li> <li class=md-nav__item> <a href="//discord.gg/Ks2Kzd4 " target='_blank""' title="Discord Community" class=md-nav__link> Discord Community </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> </nav> </div> </div> </div> <div class=md-content> <article class="md-content__inner md-typeset"> <a href=https://github.com/tasmota/docs/blob/master/docs/Home-Assistant.md title="Edit this page" class="md-content__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"/></svg> </a> <h1 id=home-assistant>Home Assistant<a class=headerlink href=#home-assistant title="Permanent link">~</a></h1> <p><a href=https://home-assistant.io/ >Home Assistant</a> (Hass) is an open source home automation solution that puts local control and privacy first.</p> <p>Tasmota communicates with Home Assistant using MQTT. Before going any further, make sure MQTT is <a href=https://www.home-assistant.io/docs/mqtt/broker>properly set up in Home Assistant</a> and <a href=../MQTT/ >in Tasmota</a>. </p> <p>First, test if the two can communicate. </p> <p>In Home Assistant web UI go to <strong>Developer Tools - MQTT</strong>. Subscribe to <code>tele/topic%/STATE</code> and click <strong>START LISTENING</strong>. You should see a JSON response from your device.</p> <p>To test control of a relay or light, as <strong>Publish a packet topic</strong> enter <code>cmnd/%topic%/POWER</code> with payload <code>toggle</code>. When you click <strong>PUBLISH</strong> your device should switch state and a JSON response will be visible in <strong>Listen to a topic</strong> window.</p> <p><img alt src="_media/hass1.png ':size=150'.md"> <img alt src="_media/hass2.png ':size=150'.md"></p> <h1 id=adding-devices>Adding Devices<a class=headerlink href=#adding-devices title="Permanent link">~</a></h1> <p>Home Assistant has two avenues of adding Tasmota devices: 1. Using MQTT discovery 2. Adding by editing configuration.yaml </p> <blockquote> <p>[!NOTE] After every change to the configuration file you'll need to restart Home Assistant to make it aware of the changes.</p> </blockquote> <p>If you don't want to use MQTT discovery, skip to <a href=#configurationyaml-editing>Manual Config</a> </p> <h2 id=automatic-discovery>Automatic Discovery<a class=headerlink href=#automatic-discovery title="Permanent link">~</a></h2> <p>Home Assistant has a feature called <a href=https://www.home-assistant.io/docs/mqtt/discovery/ >MQTT discovery</a>. With MQTT discovery no user interaction or configuration file editing is needed to add new devices in Home Assistant.</p> <p>Automatic discovery is currently supported for</p> <!-- tabs:start --> <h4><strong>Relays</strong></h4> <p>Announced to Home Assistant as <a href=https://www.home-assistant.io/integrations/switch.mqtt/ >MQTT Switch</a>.</p> <p>To make a relay discovered as "light" in Home Assistant use command <a href=../Commands/#setoption30><code>SetOption30 1</code></a> </p> <p><em>Alternatively you can configure it manually using <a href=https://www.home-assistant.io/components/light.switch/ >Light Switch</a> integration.</em></p> <h4><strong>Lights</strong></h4> <p>Announced to Home Assistant as <a href=https://www.home-assistant.io/integrations/light.mqtt/ >MQTT Light</a>.</p> <h4><strong>Dimmers</strong></h4> <p>Announced to Home Assistant as <a href=https://www.home-assistant.io/integrations/light.mqtt/ >MQTT Light</a> with a single channel used for dimming.</p> <h4><strong>Buttons</strong></h4> <p>Announced to Home Assistant as <a href=https://www.home-assistant.io/docs/automation/trigger/ >Automation Trigger</a>.</p> <p>To have buttons discovered <code>ButtonTopic</code> must be set to <code>1</code> or to a custom name and it will automatically start to listen and publish using <code>/stat/%topic%/BUTTON<x></code> topic.</p> <p>When using <code>ButtonTopic 1</code> the only possible trigger will be <code>HOLD</code> (SetOption1 or SetOption11 must be enabled).<br> When using <code>ButtonTopic</code> with a custom name all the possible combination enabled by SetOption1, SetOption11 and Setoption13 will be possible.</p> <p><code>SwitchMode</code> default for buttons and switches is <code>Switchmode 0</code> (TOGGLE). To change the behavior, <a href=../Commands/#switchmode><code>SwitchMode</code></a> must be changed (the Button must be configured as Switch to have effect). For example setting up a switch to <code>SwitchMode 1</code> (follow) will create a switch with ON and OFF payloads.</p> <blockquote> <p>[!WARNING] When a Button is set to a different topic than <code>0</code> is not possible to use <code>Button#State</code> as a trigger for rules.</p> </blockquote> <h4><strong>Switches</strong></h4> <p>Announced to Home Assistant as <a href=https://www.home-assistant.io/integrations/binary_sensor.mqtt/ >MQTT Binary Sensor</a> and/or as a <a href=https://www.home-assistant.io/docs/automation/trigger/ >Automation Trigger</a>.</p> <p>To have switches discovered <code>SwitchTopic</code> must be set to a custom name and it will automatically start to listen and publish using <code>/stat/%topic%/SWITCH<x></code> topic.</p> <p>Depending by the <code>SwitchMode</code>used, a switch can be a Trigger (<code>TOGGLE</code>or <code>HOLD</code>), a Binary Sensor (<code>ON</code>/<code>OFF</code>) or both at the same time.</p> <p>Example:<br> When using with <code>SwitchMode 0</code> Tasmota will create just one Trigger for <code>TOGGLE</code>.<br> When using with <code>SwitchMode 1</code> Tasmota will create a <code>Binary Sensor</code> with <code>ON</code> and <code>OFF</code> Payloads.<br> When using with <code>Switchmode 5</code> Tasmota will create a <code>Binary Sensor</code> with <code>ON</code> and <code>OFF</code> Payloads and a Trigger for <code>TOGGLE</code> </p> <p>All switchmodes are supported with the exception of SwitchMode11 and SwitchMode12 able to generate just a <code>TOGGLE</code> trigger.</p> <blockquote> <p>[!WARNING] When a Switch is set to a different topic than <code>0</code> is not possible to use <code>Switch#State</code> as a trigger for rules.</p> </blockquote> <!-- tabs:end --> <p>Types of devices not listed above (fans, covers, etc) require <a href=#fans>manual configuration</a></p> <h3 id=enabling>Enabling<a class=headerlink href=#enabling title="Permanent link">~</a></h3> <p>For a Tasmota device to be automatically discovered by Home Assistant you need to enable MQTT discovery with command:</p> <div class=codehilite><pre><span></span><code><span class=go>SetOption19 1</span>
</code></pre></div> <blockquote> <p>[!NOTE] Discovery is not built in to tasmota lite. Use the full version for discovery.</p> </blockquote> <p>After the automatic discovery feature is enabled a retained MQTT message starting with topic "homeassistant/" is sent to the broker. That message contains your device configuration which will be picked up and used by Home Assistant to automatically add your device.</p> <p>Enabling discovery will automatically change some SetOptions to suit the new configuration:</p> <p><strong><code>SetOption4</code> to <code>0</code></strong> <br> Return MQTT response always as <code>RESULT</code> and not as %COMMAND% topic</p> <p><strong><code>SetOption17</code> to <code>1</code></strong> Show Color as a comma-separated decimal string instead of hexadecimal</p> <p><strong><code>SetOption59</code> to <code>1</code></strong> Send <code>tele/%topic%/STATE</code> in addition to <code>stat/%topic%/RESULT</code> for commands <code>State</code>, <code>Power</code> and any command causing a light to be turned on.</p> <blockquote> <p>[!NOTE] For every change you made on your device configuration you will need a reboot or use <code>SetOption19 1</code> again to see the changes under Home Assistant.</p> </blockquote> <div class="admonition warning"> <p class=admonition-title>Warning</p> <p>Please be advised that not all sensors can be correctly rendered under Home Assistant. In those cases a fallback function will be used to create a generic sensor.</p> </div> <h3 id=disabling>Disabling<a class=headerlink href=#disabling title="Permanent link">~</a></h3> <p>To disable MQTT discovery and remove the retained message, execute <code>SetOption19 0</code>.<br> The "homeassistant/" topic is removed from Home Assistant and MQTT broker. </p> <h3 id=finalizing-setup>Finalizing Setup<a class=headerlink href=#finalizing-setup title="Permanent link">~</a></h3> <p>All automatically discovered entities will show up under:<br> <strong>Configuration -> Integrations -> Configured -> MQTT</strong> </p> <p>The entities are grouped by hardware, example for a Sonoff Basic:</p> <p><img alt=image src=https://user-images.githubusercontent.com/7702766/67961116-082b2b80-fbda-11e9-8552-ce2bd85d2a3f.png title=":size=80"></p> <p>By clicking on one of the entities, and then on the cog wheel, name in Home Assistant and <code>entity_id</code> can be customized:</p> <p><img alt=image src=https://user-images.githubusercontent.com/14281572/50020005-f4cc9d00-ffd4-11e8-9881-b04ed6e85468.png title=":size=80"> <img alt=image src=https://user-images.githubusercontent.com/14281572/50020040-09109a00-ffd5-11e8-8026-74293753783a.png title=":size=80"></p> <p>For every device discovered with <code>SetOption19</code> an informative sensor will be created automatically:</p> <p><img alt=image src=https://user-images.githubusercontent.com/7702766/67965278-88ed2600-fbe0-11e9-9de5-29ecd2c78fac.png title=":size=80"></p> <p><a href=https://home-assistant.io/ >Home Assistant</a> (Hass) is an open-source home automation platform running on Python 3.</p> <h2 id=configurationyaml-editing>configuration.yaml editing<a class=headerlink href=#configurationyaml-editing title="Permanent link">~</a></h2> <p>The advantage of manually configuring a device is that you maintain control of all aspects of the configuration.</p> <p>Home Assistant <a href=https://www.home-assistant.io/docs/configuration/ >configuration</a> is done by editing the <code>configuration.yaml</code> file.</p> <blockquote> <p>[!DANGER] All the configurations are just examples. <br> You need to be familiar with Home Assistant's configuration structure and procedures. <br> Straight copy paste of the given examples into configuration.yaml will not work for you. </p> </blockquote> <p>If you are using a localized (non-english) version be sure to check the correct spelling and cases for values: * 'payload_available' * 'payload_not_available' * 'payload_on' * 'payload_off'</p> <div class="admonition tip"> <p class=admonition-title>Tip</p> <p>If you want the power states to be persistent in Tasmota and Home Assistant set <code>PowerRetain 1</code> instead of using <code>retain: true</code> in Home Assistant</p> </div> <h3 id=switches>Switches<a class=headerlink href=#switches title="Permanent link">~</a></h3> <p>Add in Home Assistant using the <a href=https://www.home-assistant.io/components/switch.mqtt/ >MQTT Switch</a> integration.</p> <p><strong>Required Commands</strong> <br> <code>SetOption59 1</code> - enables sending of tele/%topic%/STATE on POWER and light related commands</p> <!-- tabs:start --> <h4><strong>Single Switch</strong></h4> <div class=codehilite><pre><span></span><code><span class=nt>switch</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Tasmota</span><span class=nv> </span><span class=s>Switch"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"stat/tasmota/RESULT"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>"{{</span><span class=nv> </span><span class=s>value_json.POWER</span><span class=nv> </span><span class=s>}}"</span>
<span class=nt>command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/POWER"</span>
<span class=nt>payload_on</span><span class=p>:</span> <span class=s>"ON"</span>
<span class=nt>payload_off</span><span class=p>:</span> <span class=s>"OFF"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/LWT"</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>retain</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">false</span>
</code></pre></div> <h4><strong>Multiple Switches</strong></h4> <p>When a device has more than one relay you need to create a new switch for each relay. For each relay use corresponding POWER\<x> (POWER1, POWER2, etc) or if <a href=../Commands/#setoption26>SetOption26</a> is enabled)</p> <div class=codehilite><pre><span></span><code><span class=nt>switch</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Tasmota</span><span class=nv> </span><span class=s>Switch</span><span class=nv> </span><span class=s>1"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"stat/tasmota/RESULT"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>"{{</span><span class=nv> </span><span class=s>value_json.POWER1</span><span class=nv> </span><span class=s>}}"</span>
<span class=nt>command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/POWER1"</span>
<span class=nt>payload_on</span><span class=p>:</span> <span class=s>"ON"</span>
<span class=nt>payload_off</span><span class=p>:</span> <span class=s>"OFF"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/LWT"</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>retain</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">false</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Tasmota</span><span class=nv> </span><span class=s>Switch</span><span class=nv> </span><span class=s>2"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"stat/tasmota/RESULT"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>"{{</span><span class=nv> </span><span class=s>value_json.POWER2</span><span class=nv> </span><span class=s>}}"</span>
<span class=nt>command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/POWER2"</span>
<span class=nt>payload_on</span><span class=p>:</span> <span class=s>"ON"</span>
<span class=nt>payload_off</span><span class=p>:</span> <span class=s>"OFF"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/LWT"</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>retain</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">false</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Tasmota</span><span class=nv> </span><span class=s>Switch</span><span class=nv> </span><span class=s>3"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"stat/tasmota/RESULT"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>"{{</span><span class=nv> </span><span class=s>value_json.POWER3</span><span class=nv> </span><span class=s>}}"</span>
<span class=nt>command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/POWER3"</span>
<span class=nt>payload_on</span><span class=p>:</span> <span class=s>"ON"</span>
<span class=nt>payload_off</span><span class=p>:</span> <span class=s>"OFF"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/LWT"</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>retain</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">false</span>
</code></pre></div> <h4><strong>Dimmer</strong></h4> <p>Used for dimmers and dimmable lights (single channel lights).</p> <div class=codehilite><pre><span></span><code><span class=nt>light</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Dimmer"</span>
<span class=nt>command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/POWER"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/STATE"</span>
<span class=nt>state_value_template</span><span class=p>:</span> <span class=s>"{{value_json.POWER}}"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/LWT"</span>
<span class=nt>brightness_command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/Dimmer"</span>
<span class=nt>brightness_state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/STATE"</span>
<span class=nt>brightness_scale</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">100</span>
<span class=nt>on_command_type</span><span class=p>:</span> <span class=s>"brightness"</span>
<span class=nt>brightness_value_template</span><span class=p>:</span> <span class=s>"{{value_json.Dimmer}}"</span>
<span class=nt>payload_on</span><span class=p>:</span> <span class=s>"ON"</span>
<span class=nt>payload_off</span><span class=p>:</span> <span class=s>"OFF"</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>retain</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">false</span>
</code></pre></div> <!-- tabs:end --> <div class="admonition tip"> <p class=admonition-title>Tip</p> <p>If you are using your device to control a light, you may want to use <a href=https://www.home-assistant.io/components/light.mqtt/ ><code>MQTT Light</code></a> integration instead. </p> </div> <p>Simply replace <code>switch:</code> with <code>light:</code> in the configuration keeping everything else the same.</p> <h3 id=lights>Lights<a class=headerlink href=#lights title="Permanent link">~</a></h3> <p>Add in Home Assistant using the <a href=https://www.home-assistant.io/components/light.mqtt/ >MQTT Light</a> integration.</p> <p><strong>Required Commands</strong> <br> <code>SetOption17 1</code> - enables decimal colors\ <code>SetOption59 1</code> - enables sending of tele/%topic%/STATE on POWER and light related commands</p> <p><strong>Optional Commands</strong> <br> <code>Fade on</code> - makes transitions smoother <br> <code>Speed 5</code> - sets transition speed <!-- tabs:start --></p> <h4><strong>Dimming</strong></h4> <p>Used for dimmers and dimmable lights (single channel lights).</p> <div class=codehilite><pre><span></span><code><span class=nt>light</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Dimmer"</span>
<span class=nt>command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/POWER"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/STATE"</span>
<span class=nt>state_value_template</span><span class=p>:</span> <span class=s>"{{value_json.POWER}}"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/LWT"</span>
<span class=nt>brightness_command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/Dimmer"</span>
<span class=nt>brightness_state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/STATE"</span>
<span class=nt>brightness_scale</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">100</span>
<span class=nt>on_command_type</span><span class=p>:</span> <span class=s>"brightness"</span>
<span class=nt>brightness_value_template</span><span class=p>:</span> <span class=s>"{{value_json.Dimmer}}"</span>
<span class=nt>payload_on</span><span class=p>:</span> <span class=s>"ON"</span>
<span class=nt>payload_off</span><span class=p>:</span> <span class=s>"OFF"</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>retain</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">false</span>
</code></pre></div> <h4><strong>RGB Light</strong></h4> <div class=codehilite><pre><span></span><code><span class=nt>light</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"RGB</span><span class=nv> </span><span class=s>Light"</span>
<span class=nt>command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/POWER"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/STATE"</span>
<span class=nt>state_value_template</span><span class=p>:</span> <span class=s>"{{value_json.POWER}}"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/LWT"</span>
<span class=nt>brightness_command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/Dimmer"</span>
<span class=nt>brightness_state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/STATE"</span>
<span class=nt>brightness_scale</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">100</span>
<span class=nt>on_command_type</span><span class=p>:</span> <span class=s>"brightness"</span>
<span class=nt>brightness_value_template</span><span class=p>:</span> <span class=s>"{{value_json.Dimmer}}"</span>
<span class=nt>rgb_command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/Color2"</span>
<span class=nt>rgb_state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/STATE"</span>
<span class=nt>rgb_value_template</span><span class=p>:</span> <span class=s>"{{value_json.Color.split(',')[0:3]|join(',')}}"</span>
<span class=nt>effect_command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/Scheme"</span>
<span class=nt>effect_state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/STATE"</span>
<span class=nt>effect_value_template</span><span class=p>:</span> <span class=s>"{{value_json.Scheme}}"</span>
<span class=nt>effect_list</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">0</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">2</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">3</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">4</span>
<span class=nt>payload_on</span><span class=p>:</span> <span class=s>"ON"</span>
<span class=nt>payload_off</span><span class=p>:</span> <span class=s>"OFF"</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>retain</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">false</span>
</code></pre></div> <h4><strong>RGB+W Light</strong></h4> <div class=codehilite><pre><span></span><code><span class=nt>light</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"RGB+W</span><span class=nv> </span><span class=s>Light"</span>
<span class=nt>command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/POWER"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/STATE"</span>
<span class=nt>state_value_template</span><span class=p>:</span> <span class=s>"{{value_json.POWER}}"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/LWT"</span>
<span class=nt>brightness_command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/Dimmer"</span>
<span class=nt>brightness_state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/STATE"</span>
<span class=nt>brightness_scale</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">100</span>
<span class=nt>on_command_type</span><span class=p>:</span> <span class=s>"brightness"</span>
<span class=nt>brightness_value_template</span><span class=p>:</span> <span class=s>"{{value_json.Dimmer}}"</span>
<span class=nt>white_value_state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/STATE"</span>
<span class=nt>white_value_command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/White"</span>
<span class=nt>white_value_scale</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">100</span>
<span class=nt>white_value_template</span><span class=p>:</span> <span class=s>"{{</span><span class=nv> </span><span class=s>value_json.Channel[3]</span><span class=nv> </span><span class=s>}}"</span>
<span class=nt>rgb_command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/Color2"</span>
<span class=nt>rgb_state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/STATE"</span>
<span class=nt>rgb_value_template</span><span class=p>:</span> <span class=s>"{{value_json.Color.split(',')[0:3]|join(',')}}"</span>
<span class=nt>effect_command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/Scheme"</span>
<span class=nt>effect_state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/STATE"</span>
<span class=nt>effect_value_template</span><span class=p>:</span> <span class=s>"{{value_json.Scheme}}"</span>
<span class=nt>effect_list</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">0</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">2</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">3</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">4</span>
<span class=nt>payload_on</span><span class=p>:</span> <span class=s>"ON"</span>
<span class=nt>payload_off</span><span class=p>:</span> <span class=s>"OFF"</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>retain</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">false</span>
</code></pre></div> <h4><strong>RGB+CCT Light</strong></h4> <p>Also known as RGBWW or 5 channel lights</p> <div class=codehilite><pre><span></span><code><span class=nt>light</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"RGBCCT</span><span class=nv> </span><span class=s>Light"</span>
<span class=nt>command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/POWER"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/STATE"</span>
<span class=nt>state_value_template</span><span class=p>:</span> <span class=s>"{{value_json.POWER}}"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/LWT"</span>
<span class=nt>brightness_command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/Dimmer"</span>
<span class=nt>brightness_state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/STATE"</span>
<span class=nt>brightness_scale</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">100</span>
<span class=nt>on_command_type</span><span class=p>:</span> <span class=s>"brightness"</span>
<span class=nt>brightness_value_template</span><span class=p>:</span> <span class=s>"{{value_json.Dimmer}}"</span>
<span class=nt>color_temp_command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/CT"</span>
<span class=nt>color_temp_state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/STATE"</span>
<span class=nt>color_temp_value_template</span><span class=p>:</span> <span class=s>"{{value_json.CT}}"</span>
<span class=nt>rgb_command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/Color2"</span>
<span class=nt>rgb_state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/STATE"</span>
<span class=nt>rgb_value_template</span><span class=p>:</span> <span class=s>"{{value_json.Color.split(',')[0:3]|join(',')}}"</span>
<span class=nt>effect_command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/Scheme"</span>
<span class=nt>effect_state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/STATE"</span>
<span class=nt>effect_value_template</span><span class=p>:</span> <span class=s>"{{value_json.Scheme}}"</span>
<span class=nt>effect_list</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">0</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">2</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">3</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">4</span>
<span class=nt>payload_on</span><span class=p>:</span> <span class=s>"ON"</span>
<span class=nt>payload_off</span><span class=p>:</span> <span class=s>"OFF"</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>retain</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">false</span>
</code></pre></div> <h4><strong>Addressable LED</strong></h4> <p>Applies only to <a href=../WS2812B-and-WS2813/ >WS281x</a> lights. </p> <div class=codehilite><pre><span></span><code><span class=nt>light</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Addressable</span><span class=nv> </span><span class=s>LED"</span>
<span class=nt>command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/POWER"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"stat/tasmota/STATE"</span>
<span class=nt>state_value_template</span><span class=p>:</span> <span class=s>"{{value_json.POWER}}"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/LWT"</span>
<span class=nt>brightness_command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/Dimmer"</span>
<span class=nt>brightness_state_topic</span><span class=p>:</span> <span class=s>"stat/tasmota/STATE"</span>
<span class=nt>brightness_scale</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">100</span>
<span class=nt>on_command_type</span><span class=p>:</span> <span class=s>"brightness"</span>
<span class=nt>brightness_value_template</span><span class=p>:</span> <span class=s>"{{value_json.Dimmer}}"</span>
<span class=nt>rgb_command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/Color2"</span>
<span class=nt>rgb_state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/STATE"</span>
<span class=nt>rgb_value_template</span><span class=p>:</span> <span class=s>"{{value_json.Color.split(',')[0:3]|join(',')}}"</span>
<span class=nt>effect_command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/Scheme"</span>
<span class=nt>effect_state_topic</span><span class=p>:</span> <span class=s>"stat/tasmota/STATE"</span>
<span class=nt>effect_value_template</span><span class=p>:</span> <span class=s>"{{value_json.Scheme}}"</span>
<span class=nt>effect_list</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">0</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">2</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">3</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">4</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">5</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">6</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">7</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">8</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">9</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">10</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">11</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">12</span>
<span class=nt>payload_on</span><span class=p>:</span> <span class=s>"ON"</span>
<span class=nt>payload_off</span><span class=p>:</span> <span class=s>"OFF"</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>retain</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">false</span>
</code></pre></div> <h4><strong>No SetOption17 RGB</strong></h4> <p>If you don't want to use <code>SetOption17 1</code> you can change <code>yaml rgb_value_template: "{{value_json.Color.split(',')[0:3]|join(',')}}"</code> to</p> <div class=codehilite><pre><span></span><code> <span class=nt>rgb_value_template</span><span class=p>:</span> <span class=s>"{%</span><span class=nv> </span><span class=s>if</span><span class=nv> </span><span class=s>value_json.Color</span><span class=nv> </span><span class=s>is</span><span class=nv> </span><span class=s>defined</span><span class=nv> </span><span class=s>%}{{</span><span class=nv> </span><span class=s>(value_json.Color[0:2]|int(base=16),value_json.Color[2:4]|int(base=16),value_json.Color[4:6]|int(base=16))</span><span class=nv> </span><span class=s>|</span><span class=nv> </span><span class=s>join(',')}}{%</span><span class=nv> </span><span class=s>endif</span><span class=nv> </span><span class=s>%}"</span>
</code></pre></div> <!-- tabs:end --> <h3 id=sensors>Sensors<a class=headerlink href=#sensors title="Permanent link">~</a></h3> <p>Add in Home Assistant using the <a href=https://www.home-assistant.io/components/sensor.mqtt/ >MQTT Sensor</a> integration.</p> <p>A sensor will send its data in set intervals defined by <a href=../Commands/#teleperiod><code>TelePeriod</code></a> (default every 5 minutes).</p> <!-- tabs:start --> <h4><strong>Temperature</strong></h4> <p>Check your sensor name in Tasmota and change accordingly. This example uses the DHT22 sensor.</p> <div class=codehilite><pre><span></span><code><span class=nt>sensor</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Tasmota</span><span class=nv> </span><span class=s>Temperature"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/SENSOR"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>"{{</span><span class=nv> </span><span class=s>value_json['DHT22'].Temperature</span><span class=nv> </span><span class=s>}}"</span>
<span class=nt>unit_of_measurement</span><span class=p>:</span> <span class=s>"°C"</span> <span class=c1># "F" if using Fahrenheit</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/LWT"</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class=nt>device_class</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">temperature</span>
</code></pre></div> <h4><strong>Humidity</strong></h4> <p>Check your sensor name in Tasmota and change accordingly. This example uses the DHT22 sensor.</p> <div class=codehilite><pre><span></span><code><span class=nt>sensor</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Tasmota</span><span class=nv> </span><span class=s>Humidity"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/SENSOR"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>"{{</span><span class=nv> </span><span class=s>value_json['DHT22'].Humidity</span><span class=nv> </span><span class=s>}}"</span>
<span class=nt>unit_of_measurement</span><span class=p>:</span> <span class=s>"%"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/LWT"</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class=nt>device_class</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">humidity</span>
</code></pre></div> <!-- THIS LOOKS COMPLETELY UNNECCESSARY AND JUST CONFUSING TO A NEW USER
#### Manual updates
If you poll your sensor for data using `Status 10` command it would result in a message like this:
<div class="codehilite"><pre><span></span><code><span class="err">stat/tasmota/STATUS10 {"StatusSNS":{"Time":"2017-02-11T18:06:05", "DHT22":{"Temperature":"21.8", "Humidity":"48.0"}}}</span>
</code></pre></div>
Home Assistant configuration would then need to be:
<div class="codehilite"><pre><span></span><code><span class="c1"># Example configuration.yaml entry</span>
<span class="nt">sensor</span><span class="p">:</span>
<span class="p p-Indicator">-</span> <span class="nt">platform</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class="nt">name</span><span class="p">:</span> <span class="s">"Stat</span><span class="nv"> </span><span class="s">Temperature"</span>
<span class="nt">state_topic</span><span class="p">:</span> <span class="s">"stat/tasmota/STATUS10"</span>
<span class="nt">value_template</span><span class="p">:</span> <span class="s">"{{</span><span class="nv"> </span><span class="s">value_json.StatusSNS.DHT22.Temperature</span><span class="nv"> </span><span class="s">}}"</span>
<span class="nt">unit_of_measurement</span><span class="p">:</span> <span class="s">"°C"</span>
<span class="p p-Indicator">-</span> <span class="nt">platform</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class="nt">name</span><span class="p">:</span> <span class="s">"Stat</span><span class="nv"> </span><span class="s">Humidity"</span>
<span class="nt">state_topic</span><span class="p">:</span> <span class="s">"stat/tasmota/STATUS10"</span>
<span class="nt">value_template</span><span class="p">:</span> <span class="s">"{{</span><span class="nv"> </span><span class="s">value_json.StatusSNS.DHT22.Humidity</span><span class="nv"> </span><span class="s">}}"</span>
<span class="nt">unit_of_measurement</span><span class="p">:</span> <span class="s">"%"</span>
</code></pre></div>
--> <h4><strong>Pressure</strong></h4> <p>Check your sensor name in Tasmota and change accordingly. This example uses the BMP280 sensor.</p> <div class=codehilite><pre><span></span><code><span class=nt>sensor</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Tasmota</span><span class=nv> </span><span class=s>Pressure"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/SENSOR"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>"{{</span><span class=nv> </span><span class=s>value_json.BMP280.Pressure</span><span class=nv> </span><span class=s>}}"</span>
<span class=nt>unit_of_measurement</span><span class=p>:</span> <span class=s>"hPa"</span>
<span class=nt>device_class</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">pressure</span>
</code></pre></div> <p>Change unit_of_measurement to <code>"mmHg"</code> if <a href=../Commands/#setoption24><code>SetOption24 1</code></a></p> <!-- Dead link and not default HA functionality
### Counter
The tasmota counter is volatile (not saved in case or reset/ reboot) due to flash wear.
Common use cases are a water meter that works with a pulse.
this custom component [counter](https://github.com/hhaim/hass/blob/master/custom_components/sensor/tasmota_counter.py)
can handle it.
<div class="codehilite"><pre><span></span><code><span class="p p-Indicator">-</span> <span class="nt">platform</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">tasmota_counter</span>
<span class="l l-Scalar l-Scalar-Plain">name</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">HASS_NAME</span>
<span class="l l-Scalar l-Scalar-Plain">s topic</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">TOPIC</span>
<span class="l l-Scalar l-Scalar-Plain">counter_id</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class="l l-Scalar l-Scalar-Plain">max_valid_diff</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">2000</span>
<span class="l l-Scalar l-Scalar-Plain">unit_of_measurement</span><span class="p p-Indicator">:</span> <span class="s">'l'</span>
<span class="nt">icon</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">mdi:water-pump</span>
<span class="nt">expire_after</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">300</span>
<span class="nt">value_template</span><span class="p">:</span> <span class="s">"{{</span><span class="nv"> </span><span class="s">(4885</span><span class="nv"> </span><span class="s">+</span><span class="nv"> </span><span class="s">(value))|int</span><span class="nv"> </span><span class="s">}}"</span>
<span class="err">```</span> <span class="l l-Scalar l-Scalar-Plain">--></span>
<span class="c1">#### **Wi-Fi Signal Quality**</span>
<span class="l l-Scalar l-Scalar-Plain">Monitor the relative Wi-Fi signal quality of a device.</span>
<span class="err">```</span><span class="l l-Scalar l-Scalar-Plain">yaml</span>
<span class="nt">sensor</span><span class="p">:</span>
<span class="p p-Indicator">-</span> <span class="nt">platform</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class="nt">name</span><span class="p">:</span> <span class="s">"Tasmota</span><span class="nv"> </span><span class="s">Wi-Fi</span><span class="nv"> </span><span class="s">Quality"</span>
<span class="nt">state_topic</span><span class="p">:</span> <span class="s">"tele/tasmota/STATE"</span>
<span class="nt">unit_of_measurement</span><span class="p">:</span> <span class="s">"%"</span>
<span class="nt">value_template</span><span class="p">:</span> <span class="s">"{{value_json['Wifi'].RSSI</span><span class="nv"> </span><span class="s">}}"</span>
<span class="nt">availability_topic</span><span class="p">:</span> <span class="s">"tele/tasmota/LWT"</span>
<span class="nt">payload_available</span><span class="p">:</span> <span class="s">"Online"</span>
<span class="nt">payload_not_available</span><span class="p">:</span> <span class="s">"Offline"</span>
<span class="nt">device_class</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">signal_strength</span>
</code></pre></div>
<!-- tabs:end --> <h3 id=power-monitoring>Power Monitoring<a class=headerlink href=#power-monitoring title="Permanent link">~</a></h3> <p><img alt="Example of Lovelace UI" src=/docs_media/hax_pow1.png style=margin:5px;float:right;width:10em></p> <p>Add in Home Assistant using the <a href=https://www.home-assistant.io/components/sensor.mqtt/ >MQTT Sensor</a> integration.</p> <p>Power monitoring sensors will send their data in set intervals defined by <a href=../Commands/#teleperiod><code>TelePeriod</code></a> (default every 5 minutes).</p> <p>To get all the data in Home Assistant requires multiple sensors which you can later group to your liking in <a href=https://www.home-assistant.io/lovelace/ >Lovelace UI</a></p> <!-- tabs:start --> <h4><strong>Power Monitoring</strong></h4> <div class=codehilite><pre><span></span><code><span class=nt>sensor</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Energy</span><span class=nv> </span><span class=s>Today"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/SENSOR"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>'{{</span><span class=nv> </span><span class=s>value_json["ENERGY"]["Today"]</span><span class=nv> </span><span class=s>}}'</span>
<span class=nt>unit_of_measurement</span><span class=p>:</span> <span class=s>"kWh"</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Power"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/SENSOR"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>'{{</span><span class=nv> </span><span class=s>value_json["ENERGY"]["Power"]</span><span class=nv> </span><span class=s>}}'</span>
<span class=nt>unit_of_measurement</span><span class=p>:</span> <span class=s>"W"</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Voltage"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/SENSOR"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>'{{</span><span class=nv> </span><span class=s>value_json["ENERGY"]["Voltage"]</span><span class=nv> </span><span class=s>}}'</span>
<span class=nt>unit_of_measurement</span><span class=p>:</span> <span class=s>"V"</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Current"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/SENSOR"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>'{{</span><span class=nv> </span><span class=s>value_json["ENERGY"]["Current"]</span><span class=nv> </span><span class=s>}}'</span>
<span class=nt>unit_of_measurement</span><span class=p>:</span> <span class=s>"A"</span>
</code></pre></div> <div class="admonition tip"> <p class=admonition-title>Tip</p> <p>For additional sensors use "Total";"Yesterday";"Period","ApparentPower","ReactivePower";"Factor" in <code>value_template</code> string</p> </div> <!-- AGAIN WITH THIS MANUAL UPDATE MALARKEY
#### Manual updates
The manual message retrieved with command ``Status 8`` or ``cmnd/pow1/status 8`` will show:
<div class="codehilite"><pre><span></span><code><span class="err">stat/pow1/STATUS8 = {"StatusPWR":{"Yesterday":0.002, "Today":0.002, "Power":4, "Factor":0.37, "Voltage":227, "Current":0.056}}</span>
</code></pre></div>
The HA configuration for Power Factor would then be:
<div class="codehilite"><pre><span></span><code><span class="c1"># Example configuration.yaml entry</span>
<span class="nt">sensor</span><span class="p">:</span>
<span class="p p-Indicator">-</span> <span class="nt">platform</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class="nt">name</span><span class="p">:</span> <span class="s">"Power</span><span class="nv"> </span><span class="s">Factor"</span>
<span class="nt">state_topic</span><span class="p">:</span> <span class="s">"stat/pow1/STATUS8"</span>
<span class="nt">value_template</span><span class="p">:</span> <span class="s">"{{</span><span class="nv"> </span><span class="s">value_json.StatusPWR.Factor</span><span class="nv"> </span><span class="s">}}"</span>
</code></pre></div>
--> <!-- tabs:end --> <p><a href="https://www.youtube.com/watch?v=ktHQrhAF8VQ">Video tutorial</a> on a power monitoring plug setup by Digiblur</p> <h3 id=binary-sensors>Binary Sensors<a class=headerlink href=#binary-sensors title="Permanent link">~</a></h3> <p>Add in Home Assistant using the <a href=https://www.home-assistant.io/components/binary_sensor.mqtt/ >MQTT Binary Sensor</a> integration. <!-- tabs:start --></p> <h4><strong>PIR Sensor</strong></h4> <p>Used for a configured <a href=../PIR-Motion-Sensors/ >PIR Sensor</a> and requires this rule:</p> <p><strong>Required Commands</strong></p> <div class=codehilite><pre><span></span><code><span class=go>Rule1 on Switch1#State=1 do Publish stat/hall/MOTION ON endon on Switch1#State=1 do Publish stat/hall/MOTION OFF endon</span>
<span class=go>Rule1 1</span>
</code></pre></div> <div class=codehilite><pre><span></span><code><span class=nt>binary_sensor</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Tasmota</span><span class=nv> </span><span class=s>Motion</span><span class=nv> </span><span class=s>Sensor"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"stat/tasmota/MOTION"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/LWT"</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class=nt>device_class</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">motion</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
</code></pre></div> <h4><strong>Door Sensor</strong></h4> <p>Requires a reed switch configured in Tasmota.</p> <p><strong>Required Commands</strong></p> <div class=codehilite><pre><span></span><code><span class=go>Rule1 on Switch1#State=1 do Publish stat/hall/MOTION ON endon on Switch1#State=1 do Publish stat/hall/MOTION OFF endon</span>
<span class=go>Rule1 1</span>
</code></pre></div> <div class=codehilite><pre><span></span><code><span class=nt>binary_sensor</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Tasmota</span><span class=nv> </span><span class=s>Motion</span><span class=nv> </span><span class=s>Sensor"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"stat/tasmota/MOTION"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/LWT"</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class=nt>device_class</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">door</span> <span class=c1># also: window, garage_door or opening</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
</code></pre></div> <h4><strong>RF Bridge</strong></h4> <p>An RF door sensor configured with an RF receiver in Tasmota.</p> <div class=codehilite><pre><span></span><code><span class=nt>binary_sensor</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"RF</span><span class=nv> </span><span class=s>bridge</span><span class=nv> </span><span class=s>rfkey"</span>
<span class=nt>payload_on</span><span class=p>:</span> <span class=s>"1"</span>
<span class=nt>payload_off</span><span class=p>:</span> <span class=s>"0"</span>
<span class=nt>device_class</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">opening</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/RESULT"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>'{{</span><span class=nv> </span><span class=s>value_json.RfReceived.RfKey</span><span class=nv> </span><span class=s>}}'</span>
</code></pre></div> <!-- tabs:end --> <h3 id=fans>Fans<a class=headerlink href=#fans title="Permanent link">~</a></h3> <p>Add in Home Assistant using the <a href=https://www.home-assistant.io/components/fan.mqtt/ >MQTT Fan</a> integration.</p> <!-- tabs:start --> <h4><strong>Fan</strong></h4> <p>Derived from <a href=https://github.com/arendst/Tasmota/issues/2839>#2839</a> by @kbickar and @finity69x2</p> <div class=codehilite><pre><span></span><code><span class=c1># Example configuration.yaml entry</span>
<span class=nt>fan</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class="l l-Scalar l-Scalar-Plain">name</span><span class="p p-Indicator">:</span> <span class=s>"Tasmota</span><span class=nv> </span><span class=s>Fan"</span>
<span class=nt>command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/FanSpeed"</span>
<span class=nt>speed_command_topic</span><span class=p>:</span> <span class=s>"cmnd/tasmota/FanSpeed"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"stat/tasmota/RESULT"</span>
<span class=nt>speed_state_topic</span><span class=p>:</span> <span class=s>"stat/tasmota/RESULT"</span>
<span class=nt>state_value_template</span><span class=p>:</span> <span class="p p-Indicator">></span>
<span class=no>{% if value_json.FanSpeed is defined %}</span>
<span class=no>{% if value_json.FanSpeed == 0 -%}0{%- elif value_json.FanSpeed > 0 -%}4{%- endif %}</span>
<span class=no>{% else %}</span>
<span class=no>{% if states.fan.tasmota.state == 'off' -%}0{%- elif states.fan.tasmota.state == 'on' -%}4{%- endif %}</span>
<span class=no>{% endif %}</span>
<span class=nt>speed_value_template</span><span class=p>:</span> <span class=s>"{{</span><span class=nv> </span><span class=s>value_json.FanSpeed</span><span class=nv> </span><span class=s>}}"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">tele/tasmota/LWT</span>
<span class=nt>payload_off</span><span class=p>:</span> <span class=s>"0"</span>
<span class=nt>payload_on</span><span class=p>:</span> <span class=s>"4"</span>
<span class=nt>payload_low_speed</span><span class=p>:</span> <span class=s>"1"</span>
<span class=nt>payload_medium_speed</span><span class=p>:</span> <span class=s>"2"</span>
<span class=nt>payload_high_speed</span><span class=p>:</span> <span class=s>"3"</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">Online</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">Offline</span>
<span class=nt>speeds</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">off</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">low</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">medium</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">high</span>
</code></pre></div> <!-- tabs:end --> <h3 id=device-specific>Device Specific<a class=headerlink href=#device-specific title="Permanent link">~</a></h3> <!-- tabs:start --> <h4><strong>iFan02</strong></h4> <p>Combination of configs found in issue <a href=https://github.com/arendst/Tasmota/issues/2839>#2839</a> and Home Assistant forum thread <a href=https://community.home-assistant.io/t/sonoff-ifan02-tasmota-mqtt-fan/64083>Sonoff IFan02 (Tasmota) MQTT Fan</a>.</p> <div class=codehilite><pre><span></span><code><span class=nt>fan</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Pat</span><span class=nv> </span><span class=s>Ceiling</span><span class=nv> </span><span class=s>Fan"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"stat/ifan02/RESULT"</span>
<span class=nt>speed_state_topic</span><span class=p>:</span> <span class=s>"stat/ifan02/RESULT"</span>
<span class=nt>state_value_template</span><span class=p>:</span> <span class="p p-Indicator">></span>
<span class=no>{% if value_json.FanSpeed is defined %}</span>
<span class=no>{% if value_json.FanSpeed == 0 -%}0{%- elif value_json.FanSpeed > 0 -%}2{%- endif %}</span>
<span class=no>{% else %}</span>
<span class=no>{% if states.fan.pat_ceiling_fan.state == 'off' -%}0{%- elif states.fan.pat_ceiling_fan.state == 'on' -%}2{%- endif %}</span>
<span class=no>{% endif %}</span>
<span class=nt>speed_value_template</span><span class=p>:</span> <span class=s>"{{</span><span class=nv> </span><span class=s>value_json.FanSpeed</span><span class=nv> </span><span class=s>}}"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">tele/ifan02/LWT</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">Online</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">Offline</span>
<span class=nt>speed_command_topic</span><span class=p>:</span> <span class=s>"cmnd/ifan02/FanSpeed"</span>
<span class=nt>payload_low_speed</span><span class=p>:</span> <span class=s>"1"</span>
<span class=nt>payload_medium_speed</span><span class=p>:</span> <span class=s>"2"</span>
<span class=nt>payload_high_speed</span><span class=p>:</span> <span class=s>"3"</span>
<span class=nt>command_topic</span><span class=p>:</span> <span class=s>"cmnd/ifan02/FanSpeed"</span>
<span class=nt>payload_off</span><span class=p>:</span> <span class=s>"0"</span>
<span class=nt>payload_on</span><span class=p>:</span> <span class=s>"2"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>retain</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">false</span>
<span class=nt>speeds</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">low</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">medium</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">high</span>
<span class=nt>light</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Pat</span><span class=nv> </span><span class=s>Ceiling</span><span class=nv> </span><span class=s>Light"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/ifan02/STATE"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>"{{</span><span class=nv> </span><span class=s>value_json.POWER</span><span class=nv> </span><span class=s>}}"</span>
<span class=nt>command_topic</span><span class=p>:</span> <span class=s>"cmnd/ifan02/POWER"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/ifan02/LWT"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>payload_on</span><span class=p>:</span> <span class=s>"ON"</span>
<span class=nt>payload_off</span><span class=p>:</span> <span class=s>"OFF"</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class=nt>retain</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">false</span>
</code></pre></div> <h4><strong>Sonoff S31</strong></h4> <p>Configure the device as Sonoff S31, and run:\ <code>SetOption4 1</code> <br> <code>SetOption59 1</code></p> <div class=codehilite><pre><span></span><code><span class=nt>switch</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"s31</span><span class=nv> </span><span class=s>power"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/s31/STATE"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>"{{</span><span class=nv> </span><span class=s>value_json.POWER</span><span class=nv> </span><span class=s>}}"</span>
<span class=nt>command_topic</span><span class=p>:</span> <span class=s>"cmnd/s31/POWER"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/s31/LWT"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>payload_on</span><span class=p>:</span> <span class=s>"ON"</span>
<span class=nt>payload_off</span><span class=p>:</span> <span class=s>"OFF"</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class=nt>retain</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">false</span>
<span class=nt>sensor</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"s31</span><span class=nv> </span><span class=s>Voltage"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/s31/SENSOR"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>"{{</span><span class=nv> </span><span class=s>value_json['ENERGY'].Voltage</span><span class=nv> </span><span class=s>}}"</span>
<span class=nt>unit_of_measurement</span><span class=p>:</span> <span class=s>"V"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/s31/LWT"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"s31</span><span class=nv> </span><span class=s>Current"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/s31/SENSOR"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>"{{</span><span class=nv> </span><span class=s>value_json['ENERGY'].Current</span><span class=nv> </span><span class=s>|</span><span class=nv> </span><span class=s>round(2)</span><span class=nv> </span><span class=s>}}"</span>
<span class=nt>unit_of_measurement</span><span class=p>:</span> <span class=s>"A"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/s31/LWT"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"s31</span><span class=nv> </span><span class=s>Power"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/s31/SENSOR"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>"{{</span><span class=nv> </span><span class=s>value_json['ENERGY'].Power</span><span class=nv> </span><span class=s>}}"</span>
<span class=nt>unit_of_measurement</span><span class=p>:</span> <span class=s>"W"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/s31/LWT"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class=nt>device_class</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">power</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"s31</span><span class=nv> </span><span class=s>Power</span><span class=nv> </span><span class=s>Factor"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/s31/SENSOR"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>"{{</span><span class=nv> </span><span class=s>value_json['ENERGY'].Factor</span><span class=nv> </span><span class=s>}}"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/s31/LWT"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"s31</span><span class=nv> </span><span class=s>Energy</span><span class=nv> </span><span class=s>Today"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/s31/SENSOR"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>"{{</span><span class=nv> </span><span class=s>value_json['ENERGY'].Today</span><span class=nv> </span><span class=s>}}"</span>
<span class=nt>unit_of_measurement</span><span class=p>:</span> <span class=s>"kWh"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/s31/LWT"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"s31</span><span class=nv> </span><span class=s>Energy</span><span class=nv> </span><span class=s>Yesterday"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/s31/SENSOR"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>"{{</span><span class=nv> </span><span class=s>value_json['ENERGY'].Yesterday</span><span class=nv> </span><span class=s>}}"</span>
<span class=nt>unit_of_measurement</span><span class=p>:</span> <span class=s>"kWh"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/s31/LWT"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"s31</span><span class=nv> </span><span class=s>Energy</span><span class=nv> </span><span class=s>Total"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/s31/SENSOR"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>"{{</span><span class=nv> </span><span class=s>value_json['ENERGY'].Total</span><span class=nv> </span><span class=s>}}"</span>
<span class=nt>unit_of_measurement</span><span class=p>:</span> <span class=s>"kWh"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/s31/LWT"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
</code></pre></div> <!-- tabs:end --> <h3 id=zigbee-devices>Zigbee Devices<a class=headerlink href=#zigbee-devices title="Permanent link">~</a></h3> <!-- tabs:start --> <h4><strong>Dimmable Light</strong></h4> <p>This configuration is for a dimmable light reporting on <code>0xE1F9</code> using endpoint 1, cluster 8 for brightness. <code>ZbRead</code> part in the template is needed to always update the brightness values.</p> <div class=codehilite><pre><span></span><code><span class=c1># Example configuration.yaml entry</span>
<span class=nt>light</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>schema</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">template</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Fire</span><span class=nv> </span><span class=s>Light"</span>
<span class=nt>command_topic</span><span class=p>:</span> <span class=s>"cmnd/zigbee-gateway/Backlog"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/zigbee-gateway/SENSOR"</span>
<span class=nt>command_on_template</span><span class=p>:</span> <span class="p p-Indicator">></span>
<span class=no>{%- if brightness is defined -%}</span>
<span class=no>ZbSend { "device":"0xE1F9", "send":{"Dimmer":{{ brightness }} } }; ZbSend { "device":"0xE1F9", "send":{"Power":true} }; delay 20; ZbRead { "device":"0xE1F9", "endpoint":1, "cluster":8, "read":0 }</span>
<span class=no>{%- else -%}</span>
<span class=no>ZbSend { "device":"0xE1F9", "send":{"Power":true} }; delay 20; ZbRead { "device":"0xE1F9", "endpoint":1, "cluster":8, "read":0 }</span>
<span class=no>{%- endif -%}</span>
<span class=nt>command_off_template</span><span class=p>:</span> <span class=s>'ZbSend</span><span class=nv> </span><span class=s>{</span><span class=nv> </span><span class=s>"device":"0xE1F9",</span><span class=nv> </span><span class=s>"send":{"Power":false}</span><span class=nv> </span><span class=s>};</span><span class=nv> </span><span class=s>delay</span><span class=nv> </span><span class=s>20;</span><span class=nv> </span><span class=s>ZbRead</span><span class=nv> </span><span class=s>{</span><span class=nv> </span><span class=s>"device":"0xE1F9",</span><span class=nv> </span><span class=s>"endpoint":1,</span><span class=nv> </span><span class=s>"cluster":8,</span><span class=nv> </span><span class=s>"read":0</span><span class=nv> </span><span class=s>}'</span>
<span class=nt>state_template</span><span class=p>:</span> <span class="p p-Indicator">></span>
<span class=no>{% if value_json.ZbReceived is defined and value_json.ZbReceived['0xE1F9'] is defined and value_json.ZbReceived['0xE1F9'].Power is defined %}</span>
<span class=no>{% if value_json.ZbReceived['0xE1F9'].Power == true %}</span>
<span class=no>on</span>
<span class=no>{% else %}</span>
<span class=no>off</span>
<span class=no>{% endif %}</span>
<span class=no>{% else %}</span>
<span class=no>{{ states('light.fire_light') }}</span>
<span class=no>{% endif %}</span>
<span class=nt>brightness_template</span><span class=p>:</span> <span class="p p-Indicator">></span>
<span class=no>{%- if value_json.ZbReceived is defined and value_json.ZbReceived['0xE1F9'] is defined and value_json.ZbReceived['0xE1F9'].Dimmer is defined -%}</span>
<span class=no>{{ value_json['ZbReceived']['0xE1F9'].Dimmer | int }}</span>
<span class=no>{%- else -%}</span>
<span class=no>{{ state_attr('light.fire_light', 'brightness') | int }}</span>
<span class=no>{%- endif -%}</span>
</code></pre></div> <h4><strong>Water Leak Sensor</strong></h4> <p>This specific configuration is for Xiaomi Aqara Water Leak sensor reporting on <code>0x099F</code>.</p> <div class=codehilite><pre><span></span><code><span class=c1># Example configuration.yaml entry</span>
<span class=nt>binary_sensor</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Water</span><span class=nv> </span><span class=s>Leak"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/zigbee-gateway/SENSOR"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class="p p-Indicator">></span>
<span class=no>{%- if value_json.ZbReceived is defined and value_json.ZbReceived['0x099F'] is defined -%}</span>
<span class=no>{%- if value_json.ZbReceived['0x099F']['0500!00'] == '010000FF0000' -%}</span>
<span class=no>ON</span>
<span class=no>{% else %}</span>
<span class=no>OFF</span>
<span class=no>{% endif %}</span>
<span class=no>{% else %}</span>
<span class=no>{{ states('binary_sensor.water_leak') }}</span>
<span class=no>{% endif %}</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/zigbee-gateway/LWT"</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>device_class</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">moisture</span>
</code></pre></div> <h4><strong>Enable join switch</strong></h4> <div class=codehilite><pre><span></span><code><span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">Zigbee2Tasmota enable join</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"tele/zigbee/RESULT"</span>
<span class=nt>command_topic</span><span class=p>:</span> <span class=s>"cmnd/zigbee/ZbPermitJoin"</span>
<span class=nt>payload_on</span><span class=p>:</span> <span class=s>"1"</span>
<span class=nt>payload_off</span><span class=p>:</span> <span class=s>"0"</span>
<span class=nt>state_on</span><span class=p>:</span> <span class=s>"Enable</span><span class=nv> </span><span class=s>Pairing</span><span class=nv> </span><span class=s>mode</span><span class=nv> </span><span class=s>for</span><span class=nv> </span><span class=s>60</span><span class=nv> </span><span class=s>seconds"</span>
<span class=nt>state_off</span><span class=p>:</span> <span class=s>"off"</span>
<span class=nt>optimistic</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">false</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">1</span>
<span class=nt>retain</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">false</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>'{{value_json.ZbState.Message</span><span class=nv> </span><span class=s>}}'</span>
<span class=nt>icon</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mdi:zigbee</span>
</code></pre></div> <!-- tabs:end --> <h2 id=useful-automations>Useful Automations<a class=headerlink href=#useful-automations title="Permanent link">~</a></h2> <!-- tabs:start --> <h4><strong>Sync Power State</strong></h4> <p>When MQTT broker or Home Assistant is restarted, or there is a WiFi outage, Tasmota device state may not be synced with Home Assistant. Use this automation to get all your (auto discovered) devices in sync, including power state, <em>immediately</em> after Home Assistant is started.</p> <p>For autodiscovered devices:</p> <div class=codehilite><pre><span></span><code><span class=nt>automation</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>alias</span><span class=p>:</span> <span class=s>"Sync</span><span class=nv> </span><span class=s>Tasmota</span><span class=nv> </span><span class=s>states</span><span class=nv> </span><span class=s>on</span><span class=nv> </span><span class=s>start-up</span><span class=nv> </span><span class=s>-</span><span class=nv> </span><span class=s>autodiscovery"</span>
<span class=nt>initial_state</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">true</span>
<span class=nt>trigger</span><span class=p>:</span>
<span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">homeassistant</span>
<span class=nt>event</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">start</span>
<span class=nt>action</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>service</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt.publish</span>
<span class=nt>data</span><span class=p>:</span>
<span class=nt>topic</span><span class=p>:</span> <span class=s>"tasmotas/cmnd/state"</span>
<span class=nt>payload</span><span class=p>:</span> <span class=s>""</span>
</code></pre></div> <p>For manually configured devices:</p> <div class=codehilite><pre><span></span><code><span class=nt>automation</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>alias</span><span class=p>:</span> <span class=s>"Sync</span><span class=nv> </span><span class=s>Tasmota</span><span class=nv> </span><span class=s>states</span><span class=nv> </span><span class=s>on</span><span class=nv> </span><span class=s>start-up</span><span class=nv> </span><span class=s>-</span><span class=nv> </span><span class=s>manual</span><span class=nv> </span><span class=s>configuration"</span>
<span class=nt>initial_state</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">true</span>
<span class=nt>trigger</span><span class=p>:</span>
<span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">homeassistant</span>
<span class=nt>event</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">start</span>
<span class=nt>action</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>service</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt.publish</span>
<span class=nt>data</span><span class=p>:</span>
<span class=nt>topic</span><span class=p>:</span> <span class=s>"cmnd/tasmotas/state"</span>
<span class=nt>payload</span><span class=p>:</span> <span class=s>""</span>
</code></pre></div> <h4><strong>Report Firmware Version - Autodiscovery</strong></h4> <div class=codehilite><pre><span></span><code><span class=nt>automation</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>id</span><span class=p>:</span> <span class=s>'tasmota_firmware_installed'</span>
<span class=nt>alias</span><span class=p>:</span> <span class=s>"Tasmota</span><span class=nv> </span><span class=s>Firmware</span><span class=nv> </span><span class=s>Installed"</span>
<span class=nt>initial_state</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">true</span>
<span class=nt>trigger</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>event</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">start</span>
<span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">homeassistant</span>
<span class=nt>action</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>data</span><span class=p>:</span>
<span class=nt>payload</span><span class=p>:</span> <span class=s>'2'</span>
<span class=nt>topic</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">tasmotas/cmnd/status</span>
<span class=nt>service</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt.publish</span>
<span class=nt>initial_state</span><span class=p>:</span> <span class=s>'true'</span>
</code></pre></div> <p>Then you can make a sensor that detects the latest version of Tasmota and alerts you if there is an update. Autodiscovery only.</p> <p>configuration.yaml</p> <div class=codehilite><pre><span></span><code><span class=c1># Getting Firmware from JSON for Tasmota</span>
<span class=nt>sensor</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">rest</span>
<span class=nt>resource</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">https://api.github.com/repos/arendst/Tasmota/releases/latest</span>
<span class=nt>name</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">Sonoff Firmware Version Available</span>
<span class=nt>username</span><span class=p>:</span> <span class=kt>!secret</span> <span class="l l-Scalar l-Scalar-Plain">githubuser</span>
<span class=nt>password</span><span class=p>:</span> <span class=kt>!secret</span> <span class="l l-Scalar l-Scalar-Plain">githubpass</span>
<span class=nt>authentication</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">basic</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>'{{</span><span class=nv> </span><span class=s>value_json.tag_name</span><span class=nv> </span><span class=s>}}'</span>
<span class=nt>headers</span><span class=p>:</span>
<span class=nt>Accept</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">application/vnd.github.v3+json</span>
<span class=nt>Content-Type</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">application/json</span>
<span class=nt>User-Agent</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">Home Assistant REST sensor</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Coffee</span><span class=nv> </span><span class=s>Maker</span><span class=nv> </span><span class=s>Firmware"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"coffee/stat/STATUS2"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>'v{{</span><span class=nv> </span><span class=s>value_json.StatusFWR.Version</span><span class=nv> </span><span class=s>}}'</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Garage</span><span class=nv> </span><span class=s>Door</span><span class=nv> </span><span class=s>Firmware"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"garage/stat/STATUS2"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>'v{{</span><span class=nv> </span><span class=s>value_json.StatusFWR.Version</span><span class=nv> </span><span class=s>}}'</span>
<span class=nt>binary_sensor</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">template</span>
<span class=nt>sensors</span><span class=p>:</span>
<span class=nt>sonoff_update_available</span><span class=p>:</span>
<span class=nt>value_template</span><span class=p>:</span> <span class="p p-Indicator">>-</span>
<span class=no>{{ (states.sensor.tasmota_firmware_version_available.state > states.sensor.coffee_maker_firmware.state) or (states.sensor.tasmota_firmware_version_available.state > states.sensor.garage_door_firmware.state)</span>
<span class=no>}}</span>
</code></pre></div> <p>Note the above is for 2 switches.</p> <p>customize.yaml</p> <div class=codehilite><pre><span></span><code><span class=nt>binary_sensor.tasmota_update_available</span><span class=p>:</span>
<span class=nt>friendly_name</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">Update Available Tasmota</span>
<span class=nt>device_class</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">problem</span>
</code></pre></div> <p>Then it will show as an alert icon that you can show in Lovelace.</p> <h4><strong>Report Firmware Version - Manual</strong></h4> <p>Add a sensor like below for each Tasmota device whose firmware version you want to track.</p> <div class=codehilite><pre><span></span><code><span class=c1># Example configuration.yaml entry</span>
<span class=nt>sensor</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Tasmota"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>"stat/tasmota/STATUS2"</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>"{{value_json['StatusFWR'].Version</span><span class=nv> </span><span class=s>}}"</span>
<span class=nt>availability_topic</span><span class=p>:</span> <span class=s>"tele/tasmota/LWT"</span>
<span class=nt>payload_available</span><span class=p>:</span> <span class=s>"Online"</span>
<span class=nt>payload_not_available</span><span class=p>:</span> <span class=s>"Offline"</span>
<span class=nt>qos</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">0</span>
</code></pre></div> <p>Automation to have each device report firmware version on Home Assistant reboot. <em>You can manually trigger this automation from Home Assistant UI.</em></p> <div class=codehilite><pre><span></span><code><span class=nt>automation</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>alias</span><span class=p>:</span> <span class=s>"Tasmota</span><span class=nv> </span><span class=s>Firmware</span><span class=nv> </span><span class=s>Version</span><span class=nv> </span><span class=s>Check"</span>
<span class=nt>trigger</span><span class=p>:</span>
<span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">homeassistant</span>
<span class=nt>event</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">start</span>
<span class=nt>action</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>service</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt.publish</span>
<span class=nt>data</span><span class=p>:</span>
<span class=nt>topic</span><span class=p>:</span> <span class=s>"cmnd/tasmotas/STATUS"</span>
<span class=nt>payload</span><span class=p>:</span> <span class=s>"2"</span>
</code></pre></div> <h4><strong>New device IP Address</strong></h4> <p>Here is some code that will display the IP address of yout newly flashed device.</p> <p>The script:</p> <div class=codehilite><pre><span></span><code><span class=nt>script</span><span class=p>:</span>
<span class=nt>get_tasmota_ip</span><span class=p>:</span>
<span class=nt>alias</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">Get Tasmota New IP (tasmota)</span>
<span class=nt>sequence</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>data</span><span class=p>:</span>
<span class=nt>topic</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">cmnd/tasmota/ipaddress</span>
<span class=nt>service</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt.publish</span>
</code></pre></div> <p>The sensor:</p> <div class=codehilite><pre><span></span><code><span class=nt>sensor</span><span class=p>:</span>
<span class="p p-Indicator">-</span> <span class=nt>platform</span><span class=p>:</span> <span class="l l-Scalar l-Scalar-Plain">mqtt</span>
<span class=nt>name</span><span class=p>:</span> <span class=s>"Tasmota</span><span class=nv> </span><span class=s>IP"</span>
<span class=nt>state_topic</span><span class=p>:</span> <span class=s>'stat/tasmota/RESULT'</span>
<span class=nt>value_template</span><span class=p>:</span> <span class=s>"{{</span><span class=nv> </span><span class=s>value_json.IPAddress1.split('</span><span class=nv> </span><span class=s>')[1].replace('(','').replace(')','')</span><span class=nv> </span><span class=s>}}"</span>
</code></pre></div> <p>Restart HA and plug in your newly flashed device. Click <code>EXECUTE</code> (in the new group) and the "Tasmota IP" sensor will display the IP address. After finding out the new IP don't forget to change the topic of the new device to a unique one.</p> <!-- tabs:end --> <div class="admonition tip"> <p class=admonition-title>Tip</p> <p>If you want all your devices to switch to autodiscovery method go through Developer tools - MQTT by publishing to grouptopic <code>cmnd/tasmotas/SetOption19</code> with payload <code>1</code></p> </div> <p><img alt src=https://cdn.pbrd.co/images/HY47i1b.jpg></p> </article> </div> </div> </main> <footer class=md-footer> <div class=md-footer-nav> <nav class="md-footer-nav__inner md-grid" aria-label=Footer> <a href=../Domoticz/ title=Domoticz class="md-footer-nav__link md-footer-nav__link--prev" rel=prev> <div class="md-footer-nav__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d=M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z /></svg> </div> <div class=md-footer-nav__title> <div class=md-ellipsis> <span class=md-footer-nav__direction> Previous </span> Domoticz </div> </div> </a> <a href=../Homebridge/ title=Homebridge class="md-footer-nav__link md-footer-nav__link--next" rel=next> <div class=md-footer-nav__title> <div class=md-ellipsis> <span class=md-footer-nav__direction> Next </span> Homebridge </div> </div> <div class="md-footer-nav__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d=M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z /></svg> </div> </a> </nav> </div> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-footer-copyright> made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-footer-social> <a href=https://discord.gg/Ks2Kzd4 target=_blank rel=noopener title=discord.gg class=md-footer-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 448 512"><path d="M297.216 243.2c0 15.616-11.52 28.416-26.112 28.416-14.336 0-26.112-12.8-26.112-28.416s11.52-28.416 26.112-28.416c14.592 0 26.112 12.8 26.112 28.416zm-119.552-28.416c-14.592 0-26.112 12.8-26.112 28.416s11.776 28.416 26.112 28.416c14.592 0 26.112-12.8 26.112-28.416.256-15.616-11.52-28.416-26.112-28.416zM448 52.736V512c-64.494-56.994-43.868-38.128-118.784-107.776l13.568 47.36H52.48C23.552 451.584 0 428.032 0 398.848V52.736C0 23.552 23.552 0 52.48 0h343.04C424.448 0 448 23.552 448 52.736zm-72.96 242.688c0-82.432-36.864-149.248-36.864-149.248-36.864-27.648-71.936-26.88-71.936-26.88l-3.584 4.096c43.52 13.312 63.744 32.512 63.744 32.512-60.811-33.329-132.244-33.335-191.232-7.424-9.472 4.352-15.104 7.424-15.104 7.424s21.248-20.224 67.328-33.536l-2.56-3.072s-35.072-.768-71.936 26.88c0 0-36.864 66.816-36.864 149.248 0 0 21.504 37.12 78.08 38.912 0 0 9.472-11.52 17.152-21.248-32.512-9.728-44.8-30.208-44.8-30.208 3.766 2.636 9.976 6.053 10.496 6.4 43.21 24.198 104.588 32.126 159.744 8.96 8.96-3.328 18.944-8.192 29.44-15.104 0 0-12.8 20.992-46.336 30.464 7.68 9.728 16.896 20.736 16.896 20.736 56.576-1.792 78.336-38.912 78.336-38.912z"/></svg> </a> <a href=https://t.me/tasmota target=_blank rel=noopener title=t.me class=md-footer-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z"/></svg> </a> <a href=https://github.com/tasmota target=_blank rel=noopener title=github.com class=md-footer-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 480 512"><path d="M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"/></svg> </a> </div> </div> </div> </footer> </div> <script src=../assets/javascripts/vendor.23350dc5.min.js></script> <script src=../assets/javascripts/bundle.36a8f969.min.js></script><script id=__lang type=application/json>{"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents"}</script> <script>
app = initialize({
base: "..",
features: ["tabs"],
search: Object.assign({
worker: "../assets/javascripts/worker/search.3bc815f0.min.js"
}, typeof search !== "undefined" && search)
})
</script> </body> </html>