Add command `SetOption114 1`

Add command ``SetOption114 1`` to detach Swiches from Relays and enable MQTT action state for all the SwitchModes
This commit is contained in:
Theo Arends 2020-11-03 14:34:02 +01:00
parent dfd6080d96
commit 54f9532919
7 changed files with 21 additions and 15 deletions

View File

@ -142,6 +142,7 @@
| USE_EZOORP | - | - | - | - | - | - | - | | USE_EZOORP | - | - | - | - | - | - | - |
| USE_EZOPH | - | - | - | - | - | - | - | | USE_EZOPH | - | - | - | - | - | - | - |
| USE_EZOPRS | - | - | - | - | - | - | - | | USE_EZOPRS | - | - | - | - | - | - | - |
| USE_EZORGB | - | - | - | - | - | - | - |
| USE_EZORTD | - | - | - | - | - | - | - | | USE_EZORTD | - | - | - | - | - | - | - |
| | | | | | | | | | | | | | | | | |
| Feature or Sensor | minimal | lite | tasmota | knx | sensors | ir | display | Remarks | Feature or Sensor | minimal | lite | tasmota | knx | sensors | ir | display | Remarks

View File

@ -10,11 +10,13 @@ All notable changes to this project will be documented in this file.
- Support for EZO PRS sensors by Christopher Tremblay (#9659) - Support for EZO PRS sensors by Christopher Tremblay (#9659)
- Support for EZO FLO sensors by Christopher Tremblay (#9697) - Support for EZO FLO sensors by Christopher Tremblay (#9697)
- Support for EZO DO sensors by Christopher Tremblay (#9707) - Support for EZO DO sensors by Christopher Tremblay (#9707)
- Support for EZO RGB sensors by Christopher Tremblay (#9723)
- Zigbee reduce battery drain (#9642) - Zigbee reduce battery drain (#9642)
- Zigbee command ``ZbMap`` to describe Zigbee topology (#9651) - Zigbee command ``ZbMap`` to describe Zigbee topology (#9651)
- Zigbee command ``ZbOccupancy`` to configure the time-out for PIR - Zigbee command ``ZbOccupancy`` to configure the time-out for PIR
- Command ``Gpios 255`` to show all possible GPIO configurations - Command ``Gpios 255`` to show all possible GPIO configurations
- Command ``SwitchText`` to change JSON switch names by barbudor (#9691) - Command ``SwitchText`` to change JSON switch names by barbudor (#9691)
- Command ``SetOption114 1`` to detach Swiches from Relays and enable MQTT action state for all the SwitchModes
- HM10 Beacon support and refactoring by Christian Baars (#9702) - HM10 Beacon support and refactoring by Christian Baars (#9702)
### Changed ### Changed

View File

@ -61,9 +61,10 @@ The attached binaries can also be downloaded from http://ota.tasmota.com/tasmota
### Added ### Added
- Command ``Gpios 255`` to show all possible GPIO configurations - Command ``Gpios 255`` to show all possible GPIO configurations
- Command ``NoDelay`` for immediate backlog command execution by Erik Montnemery (#9544) - Command ``NoDelay`` for immediate backlog command execution by Erik Montnemery (#9544)
- Command ``SwitchMode 15`` sending only MQTT message on switch change (#9593)
- Command ``ShutterChange`` to increment change position (#9594) - Command ``ShutterChange`` to increment change position (#9594)
- Command ``SwitchMode 15`` sending only MQTT message on switch change (#9593)
- Command ``SetOption113 1`` to set dimmer low on rotary dial after power off - Command ``SetOption113 1`` to set dimmer low on rotary dial after power off
- Command ``SetOption114 1`` to detach Swiches from Relays and enable MQTT action state for all the SwitchModes
- Command ``SwitchText`` to change JSON switch names by barbudor (#9691) - Command ``SwitchText`` to change JSON switch names by barbudor (#9691)
- Zigbee command ``ZbData`` for better support of device specific data - Zigbee command ``ZbData`` for better support of device specific data
- Zigbee command ``ZbOccupancy`` to configure the time-out for PIR - Zigbee command ``ZbOccupancy`` to configure the time-out for PIR

View File

@ -652,7 +652,9 @@ void ResponseAppendFeatures(void)
#if defined(USE_I2C) && defined(USE_EZODO) #if defined(USE_I2C) && defined(USE_EZODO)
feature7 |= 0x00000100; feature7 |= 0x00000100;
#endif #endif
// feature7 |= 0x00000200; #if defined(USE_I2C) && defined(USE_EZORGB)
feature7 |= 0x00000200;
#endif
// feature7 |= 0x00000400; // feature7 |= 0x00000400;
// feature7 |= 0x00000800; // feature7 |= 0x00000800;

View File

@ -238,13 +238,13 @@ void SwitchHandler(uint8_t mode)
{ {
if (TasmotaGlobal.uptime < 4) { return; } // Block GPIO for 4 seconds after poweron to workaround Wemos D1 / Obi RTS circuit if (TasmotaGlobal.uptime < 4) { return; } // Block GPIO for 4 seconds after poweron to workaround Wemos D1 / Obi RTS circuit
uint16_t loops_per_second = 1000 / Settings.switch_debounce; uint32_t loops_per_second = 1000 / Settings.switch_debounce;
for (uint32_t i = 0; i < MAX_SWITCHES; i++) { for (uint32_t i = 0; i < MAX_SWITCHES; i++) {
if (PinUsed(GPIO_SWT1, i) || (mode)) { if (PinUsed(GPIO_SWT1, i) || (mode)) {
uint8_t button = Switch.virtual_state[i]; uint32_t button = Switch.virtual_state[i];
uint8_t switchflag = POWER_TOGGLE +1; uint32_t switchflag = POWER_TOGGLE +1;
uint8_t MqttAction = POWER_NONE; uint32_t MqttAction = POWER_NONE;
if (Switch.hold_timer[i] & (((Settings.switchmode[i] == PUSHHOLDMULTI) | (Settings.switchmode[i] == PUSHHOLDMULTI_INV)) ? SM_TIMER_MASK: SM_NO_TIMER_MASK)) { if (Switch.hold_timer[i] & (((Settings.switchmode[i] == PUSHHOLDMULTI) | (Settings.switchmode[i] == PUSHHOLDMULTI_INV)) ? SM_TIMER_MASK: SM_NO_TIMER_MASK)) {
Switch.hold_timer[i]--; Switch.hold_timer[i]--;
@ -424,7 +424,7 @@ void SwitchHandler(uint8_t mode)
} }
} else { MqttAction = switchflag; } } else { MqttAction = switchflag; }
} }
if (MqttAction != POWER_NONE && Settings.flag5.mqtt_switches) { if ((MqttAction != POWER_NONE) && Settings.flag5.mqtt_switches) {
MqttSwitchTopic(i +1, MqttAction); // SetOption114 (0) - Detach Swiches from relays and enable MQTT action state for all the SwitchModes MqttSwitchTopic(i +1, MqttAction); // SetOption114 (0) - Detach Swiches from relays and enable MQTT action state for all the SwitchModes
MqttAction = POWER_NONE; MqttAction = POWER_NONE;
} }
@ -447,8 +447,7 @@ void MqttSwitchTopic(uint32_t switch_id, uint32_t MqttAction) {
} }
} }
void SwitchLoop(void) void SwitchLoop(void) {
{
if (Switch.present) { if (Switch.present) {
if (TimeReached(Switch.debounce)) { if (TimeReached(Switch.debounce)) {
SetNextTimeInterval(Switch.debounce, Settings.switch_debounce); SetNextTimeInterval(Switch.debounce, Settings.switch_debounce);

View File

@ -168,7 +168,8 @@ a_setoption = [[
"Use friendly name in zigbee topic (use with SetOption89)", "Use friendly name in zigbee topic (use with SetOption89)",
"Set dimmer low on rotary dial after power off" "Set dimmer low on rotary dial after power off"
],[ ],[
"","","","", "Detach Swiches from Relays and enable MQTT action state for all the SwitchModes",
"","","",
"","","","", "","","","",
"","","","", "","","","",
"","","","", "","","","",
@ -235,7 +236,7 @@ a_features = [[
],[ ],[
"USE_EZOORP","USE_EZORTD","USE_EZOHUM","USE_EZOEC", "USE_EZOORP","USE_EZORTD","USE_EZOHUM","USE_EZOEC",
"USE_EZOCO2","USE_EZOO2","USE_EZOPRS","USE_EZOFLO", "USE_EZOCO2","USE_EZOO2","USE_EZOPRS","USE_EZOFLO",
"USE_EZODO","","","", "USE_EZODO","USE_EZORGB","","",
"","","","", "","","","",
"","","","", "","","","",
"","","","", "","","","",