* add: update DEBUG_THERMOSTAT to only control the virtual switch
Also, debug output is still generated but end user can control this debug level 3
* add: debug output of main controller parameters when thermostat enabled
Also, add units for debug outputs added to make them more intelligible
* Update xdrv_39_thermostat.ino
* add: debug message when sensor is detected as not alive
fix: display thermostat number in debug messages
* add: log message prefix string for thermostat
* Update xdrv_39_thermostat.ino
fix: typos in comments
add: debug messages
* add: debug prefix for thermostat
* add: debug prefix added to output lines
* fix: comment typos and small grammatical changes for clarity
* add: debug prefix 'THE' added to debug output
* add: display PID status and key info on web output
* fix: remove extraneous comments that included unused code fragments
* add: local sensor handling improvements
add: define a local sensor name
add: define the local sensor measurement parameter
add: limit sensor not seen error message to every 60 seconds to avoid flooding the logs
add: include interval since which sensor data was last updated
fix: properly update the maximum interval time so missing sensor data is properly alerted
* Update xdrv_49_pid.ino
* add: update DEBUG_THERMOSTAT to only control the virtual switch
Also, debug output is still generated but end user can control this debug level 3
* add: debug output of main controller parameters when thermostat enabled
Also, add units for debug outputs added to make them more intelligible
* Update xdrv_39_thermostat.ino
* add: debug message when sensor is detected as not alive
fix: display thermostat number in debug messages
* add: log message prefix string for thermostat
* Update xdrv_39_thermostat.ino
fix: typos in comments
add: debug messages
* add: debug prefix for thermostat
* add: debug prefix added to output lines
* fix: comment typos and small grammatical changes for clarity
* add: debug prefix 'THE' added to debug output
* skip stop on hold if grouptopic
If shutterbutton is defined with a grouptopic send on HOLD, there is no stop on releasing the button. All shutters will move to defined position
* do not stop on hold release if group submitt
If mqtt broadcast is defined on hold then release the hold button will not anymore stop the local shutter. All shutter will move to defined position
* New LWT on deepsleep
To allow better integration into HA LWT topic will report details of sleep status:
16:54:04.388 MQT: hm/tele/ESP_3284D1/LWT =
{"Sleep":{"Time":"2023-07-17T16:55:03","Sleep":1689612844,"Wakeup":1689612903}}
* Revert LWT back to non JSON
Send DeelSleep on LWT
Send Deepsleep parameters on topic DeepSleep
* Setting default for batteryLevel
* Enable BatteryPercentSet
Changing the battery level e.g. by rule
* Added Battery % to status message
* added battery_level_percent
* Added battery % support in STATE message
* Enable setting battery level
101 is reserved for power-plug. No battery Level reported
* Setting default for battery Level
101 is reserved for power plug
0..100 normal battery values
* Revert back LWT to Offline
Removed "DeepSleep" LWT status until further decision is made. Current implementation is technical sufficient for HA to detect a battery powered device
* Added discovery message after deepsleep change
* Added discovery for battery and deepsleep
* Remove recursion into folders on Manage Files. May be enabled with UFILESYS_RECURSEFOLDERS_GUI. On Edit of a file, Save and Magane btuttons return to the folder containgint the file being edited. On delete file, UI returns to the folder that the deleted file was in.
* Make newfile put in in the current folder, and return to current folder on save of manage button.
* Add folderOnly and FileOnly functions to reduce code duplication.
Enable folder delete.
Enable folder listing to be aborted (x in browser)
Disbale ESP32 Download Task. Needs attention.
Allow folder create from newfile name.
This change will allow mqtt messages simpler by allowing something like
`publish cmnd/ir-bridge/IRHVAC {"Power": "On"}`.
The simpler format is required for working with mqtt clients like
iotMQTTPanel or similar on android.
Limitations:
- Requires full message be sent at-least once. I work around this with
a `system#boot` rule
- Gets messy with multiple devices. I have only one AC per room, and
this doesn't doesn't interfere with other IR devices.
TODO:
- [ ] Change the build flag `INCREMENTAL_IRAC`to a `SetOption`
- [ ] Persist `irac_prev_state` across reboots.
- [ ] Support multiple devices.
This reduces allocation to a single allocaiton, but also theroetically allows the Bytes object to grow if content-length was unset.
(cherry picked from commit 936477f5977dd1a4f899498cc7cc0baf05b34a89)
* remove unused variable
* Relocate SO92 implementation
This way, SO92 does not ignore SO106
* Relocate RGBWWTable implementation
This fixes a bug related to RGBWWTable and SO92.
Also, the code is tidier this way
* Cleanup: Reduce code duplication
* more consistent behaviour for SO92 and free_cw
---------
Co-authored-by: jonschz <jonschz@users.noreply.github.com>
* Add mutex to many camera functions.
* Allow stream to continue after wcinit command (and other commands which reconfigure).
* Adust retries on camera init, specifically log success if it retried.
Shorten messages to save rom.
I have seen fail of 0x103 and 0x20002 succeed on second try.
* IR: Added support for new A/C protocol fields
New fields introduced in IRremoteESP8266 v2.8.5:
1. Command (one of: [Control | Config | iFeel | Timer], default: Control) - allows to set IR command type (e.g. iFeel for no-beep ambient sensor report)
2. iFeel (boolean, default: false) - configures whether iFeel (ambient sensor temp. is used by the A/C unit)
3. SensorTemp - the ambient sensor temperature reading to send
Note:
- Fan setting via int is now 6-value (breaking change -> 6 is the new max)
* IR A/C: Model now pretty-printed to JSON
Model string is the default (falls back to int if n/a)
* IR A/C: Added separate JSON resp. per command type
* No change for "kControlCommand" (default/legacy).
* SensorReport/Timer/Config commands only contain relevant JSON nodes
Additionally:
Clock has time semantics (input: minutes, output: HH:MM), except for "config" mode,
where state.clock is used as ConfigKey and state.sleep is used as ConfigValue.
---------
Co-authored-by: Mateusz Bronk <2566147+mbronk@users.noreply.github.com>
* Update xdrv_68_zerocrossDimmer.ino
* Address IRAM issue report
removed some IRAM from ESP8266. Further improvement to ESP32 as soon as measurement is available.
* Added support for Dingtian Relay Board v3.6.10
* Output OE was never initialized
* Removed white spaces trying to fix language builds
* Fix for https://github.com/arendst/Tasmota/pull/18535#pullrequestreview-1406978097
* Fixed language builds
---------
Co-authored-by: JeroenSt <nospam@nospam.org>
* Enabled ZCDimmerSet for ESP8266
- Increased interrupts time to get stablity. Savedata issue is gone.
- Increased accuracy to trigger an on sinus curve.
- Enabled high resolution trigger ZCDimmerSet for ESP8266
* Update xdrv_68_zerocrossDimmer.ino
* Worked on ESP32 dimmer with Zero cross
Until now the ESP32 does not support zero-cross dimmer. I take a sneak how they did in in ESPhome and adapted the approach to TASMOTA. At the end it works that smooth that likely i will change ESP8266 either so we have a common code. Currently ESP8266 is not touched.
There is a minor issue with savedata == default. When changing the dimmer value the interrupts get stopped during write of the config data to flash.
* ESP8266 Dimmer added
Worked all so well and the code is much smaller. There is no need for reconfiguration on existing users. But there are settings not needed anymore. Will work on the documentation. Anyhow existing installations can upgrade without hickup
* Optimized endpoints at dimmer 0 and 100
* Removed debug stuff
* Fix Issue at dimmer = 0
* Small bugfix
* Final checked Version
* Update xsns_01_counter.ino
* Add missing func
* Update xsns_01_counter.ino
* Moved out of the house of counter and build my own one
* New ZeroCross Driver
* Update xdrv_91_zerocrossDimmer.ino
* evolving
* Delete xdrv_91_zerocrossDimmer.ino
* Add files via upload
* Changed drv number from 1 to 68
* Commit to merge
* fix setting migration issue
* next try to fix migration issue
@arendst: I saw you made also some changes to the xdrv122. I copied this and it looks like setting the crc32 was the root of the issue. You removed it and I do the same now. Looks much better.
* Ensure motorstoptime also on direct relay change
When relay is triggered with button or switches it did not take the motorstoptime into account
* Ensure motorstoptime also on direct relay change
When relay is triggered with button or switches it did not take the motorstoptime into account
* Ensure motorstoptime also on direct relay change
When relay is triggered with button or switches it did not take the motorstoptime into account
* 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
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>
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").
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?
- 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)
* 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.
* 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
* 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>