Commit Graph

686 Commits

Author SHA1 Message Date
Theo Arends 542eca3154 Global fix http(s) connect issues 2023-04-03 16:12:29 +02:00
Theo Arends 6b2efa16dc Fix ESP32 WebQuery and WebGetConfig 2023-04-03 14:55:47 +02:00
stefanbode efa7ae492e
Fix webpage, when ESP32 driver used (#18305)
* Fix to enable ESP32 shutter

* required changes for dual operation with ESP32 shutter

* fix

* Fix missing information on webpage
2023-04-01 14:53:01 +02:00
stefanbode d8f9a920ce
refactoring shutterbuttons completed (#18303)
* added support to set tilt with the shutterposition

Documentation will be changed.
OLD: shutterposition <position>
NEW: shutterposition <position>(optional)/<tilt>

e.g. shutterposition 50,-90

* refactoring of shutterbuttons completed

moved away from bitmatrix to struct Typedef to enable further development and functionality.
Added support to define tiltposition with shutterbuttons
2023-03-31 09:46:36 +02:00
Theo Arends 3cbe3dbf8b Create xdrv_27_esp32_shutter.ino 2023-03-29 15:58:46 +02:00
Theo Arends 2630c8e097 Delete xdrv_27_ESP32_shutter.ino 2023-03-29 15:58:26 +02:00
stefanbode 5c14a3169b
Shutter esp32 support up to 16 shutters (#18295)
* Updates to support ESP32 shutter compiler option

* New ESP32 shutter driver

* Update xdrv_27_ESP32_shutter.ino

* Update xdrv_27_shutter.ino

* Update support_command.ino

* Update xdrv_27_shutter.ino

Fix compile error

* Update xdrv_27_ESP32_shutter.ino

Fix compile error

* Update xdrv_27_shutter.ino

Fix compile error

---------

Co-authored-by: Theo Arends <11044339+arendst@users.noreply.github.com>
2023-03-29 15:43:19 +02:00
Theo Arends b321fab868 Refactor PCF8574 driver 2023-03-27 15:42:40 +02:00
s-hadinger 2afa863e54
Berry fix `light.set()` (#18268) 2023-03-26 15:59:18 +02:00
Theo Arends 0f08a07658 Fix PCF8574 input mode (#18232) 2023-03-26 15:05:16 +02:00
Theo Arends 215c9cc30f Simplify base modes 2023-03-26 11:39:30 +02:00
Theo Arends ebe308acfc refactor button/switch code 2023-03-25 18:15:24 +01:00
Theo Arends 4645af038c Add BASE 2 for absolute relays 2023-03-25 17:50:23 +01:00
Theo Arends 1e1c536a50 Consolidate Energy Column Gui 2023-03-25 15:16:06 +01:00
Theo Arends 9ae7b86efc Save some bytes 2023-03-25 11:59:42 +01:00
Theo Arends 56b3fbe917 Add MCP23xxx absolute buttons and switches 2023-03-24 18:00:24 +01:00
Theo Arends 938399e086 Add absolute button/switch support
Add absolute button/switch support (#18232)
2023-03-24 17:20:28 +01:00
stegerfa 0081022543
fixes building the sensor names in case of multiple channel thermostat function (#18248)
now it will follow SetOption64 (hyphen vs underscore)
hyphen is the standard - underscore the much safer option in my cases
as many user user underscore the mistake was not detected till now

Co-authored-by: Fabian Steger <git@fabian-steger.de>
2023-03-24 14:54:23 +01:00
SteWers ab03654e02
[Thermostat] Enhancement publishing of control method (#18235)
Enhancement publishing of control method. Independent, if hybrid mode is used or not.
2023-03-22 10:41:53 +01:00
s-hadinger a36edadc0f
Berry fix `tasmota.get_power(index)` (#18237) 2023-03-21 22:30:50 +01:00
Jeroen a68bc49cab
Added option to output TCP requested modbus data to MQTT (#18231)
https://github.com/arendst/Tasmota/discussions/17369

Co-authored-by: JeroenSt <nospam@nospam.org>
2023-03-21 09:39:32 +01:00
Jeroen fbbb4eaf84
Fix for issue: https://github.com/arendst/Tasmota/issues/18088 (#18228)
Co-authored-by: JeroenSt <nospam@nospam.org>
2023-03-20 21:26:38 +01:00
gemu daa64f098c
Scripter update (#18226)
* fix failure with negative values in >D

* Create Powerwall.h
2023-03-20 12:13:36 +01:00
Barbudor 948a82d75e
Add virtual Buttons & Switches in Digtian driver (#18223)
* add support for virtual buttons or switches

* remove DINGTIAN key from SENSOR when using buttons-switches
2023-03-19 20:19:48 +01:00
Theo Arends 115105bf7c Consolidate energy messages 2023-03-18 18:26:43 +01:00
Theo Arends 9a3a479c4f Reduce heap fragmentation 2023-03-17 21:17:53 +01:00
Theo Arends 54a2688cbf Bump v12.4.0.3
- Bump v12.4.0.3
- Refactor energy monitoring reducing stack usage and solve inherent exceptions and watchdogs (#18164)
2023-03-17 21:05:51 +01:00
stefanbode d0f4637611
Fix #18198 (#18204)
* Fix #18198

Fix wrong movement with tilt if additional endstop defined

* simplify
2023-03-16 14:38:04 +01:00
Paul Blacknell 52227b0294
add: controller control method added to MQTT and Web UI (#18189) 2023-03-14 12:32:36 +01:00
Theo Arends bda32739a8 Support for reset settings on filesystem 2023-03-13 15:41:21 +01:00
s-hadinger 0bc48d16c2
Berry add `web_get_arg` event to drivers when `FUNC_WEB_GET_ARG` event is processed (#18175) 2023-03-12 19:01:08 +01:00
Gabriele Lauricella 7f64b6e04b
Enhanced TM1650 with 7-Segment commands like TM1637 (#18109)
* Enhanced TM1650 with 7-Segment commands like TM1637

* Fix point for display type 2
2023-03-12 09:22:40 +01:00
s-hadinger 34bf941cd2
Berry add `webclient` `collect_headers()` and `set_headers` (#18166) 2023-03-11 21:46:08 +01:00
s-hadinger 4aa9aebae3
Berry add `wc.set_follow_redirects(bool)` (#18165) 2023-03-11 19:48:39 +01:00
Theo Arends c74c92baed Add wifi current channel to GUI info screen (#18153) 2023-03-11 17:20:56 +01:00
Theo Arends 8a3546e5c4 Fix ESP32 energy period
Fix ESP32 energy period shows kWh value instead of Wh regression from v12.3.1.5 (#15856)
2023-03-11 17:01:43 +01:00
Theo Arends 2b89b7a134 Fix init order of device drivers (#18124) 2023-03-11 15:52:02 +01:00
Christian Baars 52d341f87c
TFL: bugfix uninitialized pointer, some cleanups (#18161)
Co-authored-by: Christian Baars <christianbaars@MacBook-Pro-von-Christian.local>
2023-03-11 10:55:57 +01:00
benderl d25ef165b9
remove absolute url (#18148)
Co-authored-by: Lutz Bender <lutz@lutz-bender.de>
2023-03-10 15:04:13 +01:00
s-hadinger d7d23c7b9a
Zigbee send Tuya 'magic spell' to unlock devices when pairing (#18144) 2023-03-09 21:34:32 +01:00
s-hadinger 513b0fece1
Berry tasmota.cmd() can mute logs (#18143) 2023-03-09 21:29:18 +01:00
s-hadinger ba1475f8cd
Berry refactor rule matcher (#18138) 2023-03-09 08:48:41 +01:00
s-hadinger 77c654fcdc
Fix parameter for `wire.endtransmission()` (#18131) 2023-03-07 19:01:42 +01:00
s-hadinger 6bd73fc883
Refactored Berry rule engine and support for arrays (#18121) 2023-03-05 21:50:32 +01:00
Christian Baars 83f039cdf7
Berry: add tensorflow lite for microcontrollers (#18119)
Co-authored-by: Christian Baars <christianbaars@MacBook-Pro-von-Christian.local>
2023-03-05 16:46:18 +01:00
Barbudor 0f9bece011
fix topic comparison (#18114) 2023-03-05 07:52:30 +01:00
Barbudor 0dc39e0470
Tariff command variant to force tariff - take 2 (#18112)
* tariff command variant to force tariff

* move to Settings + add esp8266

* added tariff-forced to changelog
2023-03-04 21:58:03 +01:00
Theo Arends ccdab295e7 Refactor PCF8574 driver 2023-03-04 15:06:52 +01:00
Barbudor 6b016eb860
tariff command variant to force tariff (#18102) 2023-03-03 18:43:26 +01:00
Theo Arends 747ebae670 Add support for multiple PCF8574 as switch/button/relay 2023-03-03 17:40:27 +01:00
Theo Arends cb988edba8 Prep PCF8574 virtual switch/button/relay 2023-03-03 16:54:57 +01:00
Theo Arends 2e5501e9ab Add support for multiple MCP23008 as switch/button/relay 2023-03-03 10:44:35 +01:00
Theo Arends 453f0abad1 Revert "Update changelogs"
This reverts commit d07d4b06c9.
2023-03-03 10:31:31 +01:00
Theo Arends d07d4b06c9 Update changelogs
- Add MCP23008 virtual switch/button/relay support
2023-03-03 10:28:22 +01:00
Barbudor edb2fad6c1
Tuya sequence fix (#18085)
* no additional command while waiting for response

* send wifi state 4 when mqtt is disabled
2023-03-03 08:42:27 +01:00
Theo Arends a72bbbe30a Add interrupt control to MCP23xxx driver
- Add interrupt control to MCP23xxx driver
- Enable ADE7880 in tasmota32.bin
2023-03-02 11:24:54 +01:00
Theo Arends 3cd8839b6d Fix ESP8266 compilation 2023-03-01 17:59:22 +01:00
Theo Arends 159d1ae312 Breaking change Shelly Pro 4PM
- Add support for multiple MCP23017/MCP23S17 as switch/button/relay
- Breaking change Shelly Pro 4PM using standard MCP23xxx driver
2023-03-01 16:52:34 +01:00
Theo Arends 9f30836854 Add support for multiple MCP23017 as switch/button/relay 2023-03-01 10:12:47 +01:00
Theo Arends 10cc10742f Extent virtual switch/button/relay support
Extent virtual switch/button/relay support using MCP23017. Can be used along side of current MCP23017 sensor driver,
2023-02-28 17:54:43 +01:00
Theo Arends 5cdd9791f4 Fix invalid apparent and reactive power 2023-02-28 10:17:30 +01:00
Barbudor 39fd0cb0c4
add lt and gt signs is missing (#18064) 2023-02-27 16:33:31 +01:00
Theo Arends e927e3307e Add DevicesPresent limit check
- Increase supported relays and buttons to 32
2023-02-25 16:44:04 +01:00
gemu 0aaa616881
support for double and intergers (#18039) 2023-02-25 09:58:47 +01:00
Theo Arends 3ce011c2ce Attempt to stabilize Shelly Pro 4PM values 2023-02-20 18:02:43 +01:00
Theo Arends 692e9090c8 Attempt to stabilize Shelly Pro 4PM values 2023-02-20 11:31:12 +01:00
AleXSR700 2d83c335bc
Update xdrv_79_esp32_ble.ino (#17990)
Increase maximum length of Alias as the short MaxAlias is not in line with name length and limits the user (e.g. if sensors have room names as appendix like "_master_bathroom").
2023-02-20 10:51:44 +01:00
s-hadinger dcbf50a918
Matter automatic ifdefs (#18002) 2023-02-19 22:25:29 +01:00
Theo Arends a994c71de4 Refactor device_present calculation 2023-02-19 15:28:20 +01:00
Theo Arends 4c59b5b8d1 Fix Energytotals cannot be set to negative values
Fix Energytotals cannot be set to negative values (#17965)
2023-02-17 10:53:07 +01:00
Theo Arends e1b11a6fe7 Fix Tuya Exception 3 (#17941) 2023-02-15 16:33:29 +01:00
Theo Arends 31f5b79bf8 Fix adding virtual switches 2023-02-15 11:06:53 +01:00
Theo Arends e0584b2157 Refactor switches and buttons
- Fix Tuya switches
2023-02-12 16:09:28 +01:00
Theo Arends ec56473631 Refactor XxxSet and XxxCal energy commands 2023-02-12 14:05:33 +01:00
Theo Arends dbffcac195 Shelly Pro 4PM reduce number of SPI updates 2023-02-12 12:19:02 +01:00
Theo Arends 5d3f2cc316 ESP8266 increase number of discovery relays 2023-02-09 16:02:06 +01:00
Theo Arends 8cbb62d8c9 Simplify virtual buttons/switches 2023-02-09 14:46:54 +01:00
Theo Arends d029d8bcbc Fix Shelly Pro 4PM switch states 2023-02-08 17:08:13 +01:00
Theo Arends f76d7ee8cf Tune TM1638 key/leds 2023-02-06 18:07:05 +01:00
Theo Arends 055331d2ab Breaking change TM1638 button and led support
Breaking change TM1638 button and led support are handled as virtual switches and relays (#11031)
2023-02-06 15:57:27 +01:00
Theo Arends ce29bc38d7 Extent ESP8266 virtual button support 2023-02-06 12:03:32 +01:00
Theo Arends 9673cca8b0 Extent ESP8266 virtual switch support 2023-02-06 11:45:28 +01:00
Theo Arends 9517677fb2 Fix initial displaydimmer state 2023-02-05 16:54:25 +01:00
Theo Arends c699131103 Add Shelly Pro 4PM to lvgl binary 2023-02-05 16:22:18 +01:00
Theo Arends 8bc03bbc06 Bump version v12.3.1.6
- Add ESP32 preliminary support for Matter protocol, milestone 1 (commissioning) by Stephan Hadinger
- Add basic support for Shelly Pro 4PM
2023-02-05 14:29:42 +01:00
Theo Arends 9bf1bd93c0 Add some display safeguards fixing power issues at restart 2023-02-05 12:52:21 +01:00
Theo Arends 36b9e4ab78 Fix universal display driver too early power control 2023-02-04 18:24:21 +01:00
Theo Arends cfd34aa02c Fix Shelly Pro 4PM issues
- Fix random ADE7935 measurements
- Fix relay 1 toggle on restart
- Add Shelly Pro 4PM display.ini
2023-02-04 17:48:53 +01:00
s-hadinger a483991ba3
ESP32 preliminary support for Matter protocol, milestone 1 (commissioning) (#17871)
* ESP32 preliminary support for Matter protocol, milestone 1 (commissioning)

* Fix case
2023-02-04 00:00:21 +01:00
David Gwynne 052b5c2926
reset recv parser if it takes too long for the message to arrive. (#17845)
i have a tuyamcu based device that occasionally gets a flipped bit in
messages it receives from the muc. those usually show up as checksum
failures, but if the bit flips in the length field then we wait for
bytes that just arent going to arrive, so we don't get to the cksum
field for that test to fail. instead, add a timeout that the tick
checks, and reset the recv state machine on a timeout.

if the message that was corrupted was a dp update, we'll end up with
an inconsistent view of the state of the DPs. maybe we should send a
request for all datapoint values when this or a cksum failure happens?
2023-02-01 11:48:07 +01:00
s-hadinger 293ae8064d
Berry webserver raw content (#17844) 2023-01-31 23:23:52 +01:00
s-hadinger 5ea9a95660
Berry add `tasmota.locale()` (#17843) 2023-01-31 23:23:36 +01:00
Theo Arends db581b15c7 Add SetOption150
Add SetOption150 - (Energy) Force no voltage/frequency common allowing individual voltage channel calibration.
2023-01-31 22:30:50 +01:00
gemu ae8041140f
Webcam fix (#17840)
* Update xdrv_81_esp32_webcam.ino

* fix single picture fetch

* delay not needed
2023-01-31 22:22:28 +01:00
Jason2866 b8677ce0d6
revert PR Olimex fix (#17841) 2023-01-31 14:46:09 +01:00
Barbudor 3d39efaf4a
isTuya optionnal arg to validpin (#17835) 2023-01-30 22:35:38 +01:00
gemu f09a083777
Sml ams (#17828)
* sml ams crypto support

* add ams library

* fix crc names

* fix TLS dependency

* Update library.properties

* Update xsns_53_sml.ino
2023-01-30 15:03:46 +01:00
Theo Arends 9e9afe88f1 Fix ESP32 energy monitoring over 3 phases 2023-01-30 14:16:13 +01:00
Theo Arends 5b0ee76173 Fix ESP32 energy monitoring migration 2023-01-30 13:14:02 +01:00
Theo Arends db3fdc5118 Add ESP32 support for eigth energy phases/channels
- ESP32 support for eigth energy phases/channels
- ESP32 command ``EnergyCols 1..8`` to change number of GUI columns
- ESP32 command ``EnergyDisplay 1..3`` to change GUI column presentation
- support for SEN5X gas and air quality sensor by Tyeth Gundry (#17736)
2023-01-29 16:09:13 +01:00
s-hadinger 03815d827a
Berry energy_ctypes fixed accordingly (#17820) 2023-01-29 12:09:29 +01:00
s-hadinger b98b2838e8
Zigbee extend plug-in modifiers to 16 bits (#17817) 2023-01-29 10:46:06 +01:00
David Gwynne 9e522e8fa3
fix determination of the current weekday. (#17812)
the result of c logical expressions is 0 or 1, not the values of the
operands.
2023-01-29 07:58:20 +01:00
Theo Arends 76a1c00917 Add more energy verbosity at restart 2023-01-28 11:30:42 +01:00
Theo Arends e77154f406 Enable ESP32 energy driver 2023-01-28 11:03:14 +01:00
Barbudor 4dd97a9e82
non-breaking fix year in DS3231 (#17803) 2023-01-28 08:04:34 +01:00
Theo Arends 0b81236110 Prep ESP32 energy expansion 2023-01-27 16:41:55 +01:00
Theo Arends 5b977bf4e4 Merge branch 'development' into dev-energy 2023-01-27 16:00:44 +01:00
Theo Arends f6827590f3 Prep new energy driver 2023-01-27 15:53:40 +01:00
gemu 103e3f616a
refactoring and bug fixes (#17798) 2023-01-27 11:10:43 +01:00
Theo Arends 9f538e9986 Add ESP32 support for four channels 2023-01-26 17:27:49 +01:00
Theo Arends d70dbe979e Prep ESP32 energy for four+ phases 2023-01-26 15:26:10 +01:00
thkaiser 8d782caf15
Support ESPC3 and ESPS3 (#17791)
* Support ESPC3 and ESPS3

* remove debug comment

Co-authored-by: Jason2866 <24528715+Jason2866@users.noreply.github.com>
2023-01-26 09:58:59 +01:00
Theo Arends 2529759974 Prep energy for four+ phase support 2023-01-25 17:05:48 +01:00
Barbudor 973e4693c2
possibly fix sleep problem (#17786) 2023-01-25 08:36:14 +01:00
Theo Arends e891830545 Prep ESP32 energy 2023-01-24 16:54:03 +01:00
Theo Arends e81d59f658 Fix Shelly Pro 4PM initial button state 2023-01-24 16:34:24 +01:00
Theo Arends ecac466e23 Fix Shelly Pro 4PM power on reset 2023-01-24 12:04:30 +01:00
Barbudor 95dee75b0b
use dB value, not quality (#17777) 2023-01-24 08:55:44 +01:00
David Gwynne 1c39ff6cef
add tuyamcubr_web_sensor to do a simple display of the dp values. (#17776)
the format shows the type+dpid on the left hand side (eg, Bool1,
Value2, Enum3, etc), and the value with %u on the right hand side.
2023-01-24 08:55:28 +01:00
David Gwynne 36fd8358d6
TuyaMCUBr: support on/true/off/false/toggle in the tuyamcubool command. (#17775)
* support on/true/off/false/toggle in the tuyamcubool command.

i wanted a tasmotized wall switch to be able to blindly send "toggle" to
a fan/light and have it do the right thing. the dp value is kept by the
driver, so it can easily read, modify, and write it.

* "on"/"off"/"toggle" etc are parsed when XdrvMailbox is set up

so i don't have to do it, i just have to use the payload.
2023-01-24 08:54:19 +01:00
Barbudor db0532de5f
ds3231 temperature sensor (#17778) 2023-01-24 08:52:43 +01:00
Theo Arends 4297fa3f3e Add Shelly Pro 4 input interrupt support 2023-01-23 12:51:02 +01:00
Theo Arends 88dd5f7f50 Fix Shelly Pro 4PM auto reset 2023-01-22 16:41:25 +01:00
yvesdm3000 3f73d5a49d
Implement Zigbee tuya_time sync. (#17765) 2023-01-22 11:50:52 +01:00
gemu d38a0c799c
Epaper deep sleep support (#17766)
* allow descriptor reload

* restart reason rrsn, database rewrite

* support for deep sleep

* revert

* restart reason
2023-01-22 10:56:06 +01:00
Theo Arends c85003c67d Prep Shelly Pro 4PM 2023-01-21 14:30:35 +01:00
s-hadinger 0743b7d2b6
Berry add up flag to ``tasmota.wifi()`` and ``tasmota.eth()``, always return MAC (#17759) 2023-01-21 13:41:36 +01:00
Benjamin Nestler 498b0e55b8
Add tuya commands CMD_GET_NETWORK_STATUS and CMD_TEST_WIFI (#17745)
* Add tuya commands CMD_GET_NETWORK_STATUS  and CMD_TEST_WIFI

* Assuming that nobody uses the tuya test wifi ssid, the payload is hardcoded.
2023-01-20 13:20:03 +01:00
Jason2866 6b4171fef9
Shelly has label `fs_1` for spiffs (#17753)
* Shelly has label `fs_1` for spiffs
2023-01-20 13:19:38 +01:00
David Gwynne 51866026d5
TuyaMCUBr: Handle "Get local time" requests from the MCU (#17750)
* handle get local time requests from the MCU.

from what i can tell from the tuya serial communication protocol
documentation, we only have to send the time if MCU requests it. this is
unlike how TUYA_SET_TIME is implementing in xdrv_16, where if
USE_TUYA_TIME is enabled it will send unsolicited time updates every
minute as well as in response to a request from the MCU.

i couldn't find an easy to check flag to see if tasmota was synced to a
real clock, so this blindly tells the MCU that our time is valid and
copies it over, the same as xdrv_16.

the tuya doco also describes a "Get system time in GMT" request and
response structure which would be mostly a copy of this code if i knew
if and where tasmota keeps track of UTC/GMT.

lastly, i'm not convinced RtcTime.day_of_week is right. it's friday
here which should be 6 if you start counting sunday as 1, but i read 2

* local time sync is implemented, but not gmtime
2023-01-20 10:07:42 +01:00
s-hadinger 61be95841f
Berry crypto.EC_P256 ECDSA signature ASN.1 (#17740) 2023-01-18 20:50:01 +01:00
Barbudor d904e0aa7f
Tuya - WIFI_STRENGTH + Save check on MCU_CONF (#17724)
* adding response to command 36 Get Wifi Strength

* more logs

* poperly check and warn if Mode 2 provide bad GPIOs

* final test on gpio
2023-01-17 04:46:00 +01:00
s-hadinger 457f706d17
Berry ``crypto.EC_P256`` ECDSA signature (required by Matter protocol) (#17723) 2023-01-16 21:48:28 +01:00
Barbudor 2d1d49504b
fix free() too early (#17710) 2023-01-15 16:20:35 +01:00
Theo Arends e0b17af307 Fix first sensor in case GlobalTemp is set wrong
Fix first of two sensors in case GlobalTemp is set wrong (#17694)
2023-01-14 16:11:08 +01:00
Theo Arends f71465a182 Repurpose SO39 for import active bandwidth
Repurpose SO39 for import active bandwidth (#17659)
2023-01-14 15:39:54 +01:00
Theo Arends 6c04cf7076 Update xdrv_122_file_settings_demo.ino 2023-01-13 17:19:46 +01:00
Theo Arends 13c16fd37b Fix xdrv_122_file_settings_demo (#17692) 2023-01-13 17:19:14 +01:00
Theo Arends 1a9e86a6b3 Fix ESP32 safeboot propagating upload 2023-01-13 11:30:30 +01:00
Theo Arends 9f8c8efac1 Delete .xdrv_65_tuyamcubr.ino.swp 2023-01-08 17:37:23 +01:00
David Gwynne 17d68750d9
WIP Tuya MCU Bridge driver alternative to the TuyaMCU driver (#17626)
* WIP Tuya MCU Bridge driver alternative to the TuyaMCU driver

The main difference is this driver does not try and wire MCU data points
(Dps) into the tasmota power/light/etc controls. Instead each Dp ends up
being relayed directly to MQTT and the rules subsystem. If you want to
change the state of something wired up to the MCU, you send tuyamcu
specific commands to manipulate the Dp.

Each Dp gets a type and id specific topic that is sent to MQTT. eg, Dp
id 1 type bool looks like tele/%topic%/TUYAMCUBOOL1. To change state you
send a TuyaMCUBool1 command (ie, the command index value is used as the
DpId, which is nice and symmetrical) with the new value.

Currently Rules operate on TuyaMCU#TypeDpid things, eg, "rule1 on
TuyaMCU#Bool1 do power %value% endon" toggle the power on the tasmota
device when the state of the thing on the MCU changes too.

The most obviously missing stuff at the moment is:

- better relaying of the wifi/mqtt status to the MCU
- handling wifi reset requests from the MCU
- low power stuff?
- support for sending status updates and device info queries.
- restarting the tuya mcu state machine?
- restarting the rx state machine when no bytes are rxed for a period of
  time
- time sync

* shorten the log prefix to TYB (3 chars).

requested by arendst

* use the local definition for the SET_DP command.

reaching back to the existing tuyamcu code isnt reliable.

pointed out by arendst

* put the todo list in the code so it can be tracked

* check the wifi/mqtt state every second and update the mcu if it changes.

* fix rule processing when Dp state is changed from a cmnd.

rule processing was done as part of publishing the state, but publishing
the state when it was updated by a command only happened if So59 was
set. split rule processing out of publish and call them separately as
needed.

publish is now called from teleperiod, status updates from the MCU,
and from cmnds if so59 is set. rules are called from status updates from
the MCU and from cmnds.

Co-authored-by: David Gwynne <dlg@defeat.lan.animata.net>
2023-01-08 17:35:45 +01:00
Theo Arends 12d7651758 Fix shutter JSON responses 2023-01-08 14:35:09 +01:00
Theo Arends 95690ab1b9 Add recursive rule MQTT subscribe support (#16943) 2023-01-07 17:31:10 +01:00
Theo Arends dad059737d Change PID temperature update (#17636) 2023-01-07 16:11:30 +01:00
Theo Arends 2e7496a052 Keep webserver enabled on command ``upload`` 2023-01-07 15:37:52 +01:00
Theo Arends 0b3c237627 Change strtod() into CharToFloat() saving 8k code
Change strtod() into CharToFloat() saving 8k code
2023-01-06 15:28:44 +01:00
Theo Arends af733afbe5 Fix PID-Control parameter destruction
Fix PID-Control parameter destruction and replace all atof() by CharToFloat() saving 8k code size (#17618)
2023-01-06 14:58:19 +01:00
s-hadinger 33d6dbed3d
No IP address shown when in AP moode (#17599) (#17619) 2023-01-06 14:03:16 +01:00
Theo Arends 8275cb776e Fix rule mqtt subscribe payload size
Increase rule event buffer from 100 to 256 characters (#16943)
2023-01-05 15:02:55 +01:00