Commit Graph

45 Commits

Author SHA1 Message Date
Theo Arends 22dbe597a2 Add MqttLog to my_user_config.h and status 3
Add MqttLog to my_user_config.h and status 3 (#6498)
2019-10-04 10:24:21 +02:00
Theo Arends aebe37c890 Fix PulseTime command responses
Fix PulseTime command responses
2019-10-03 13:11:43 +02:00
Theo Arends cbb3f9e0af Change command PulseTime JSON message
Change command PulseTime JSON message format and allow display of all pulsetimer information (#6519)
2019-10-03 10:02:57 +02:00
Theo Arends 8c34b9edbd Change command handling
* Change command SetOption43 to make it more general. Now supports PS_16_DZ driver too (#6547)
 * Change command handling by moving buffers up in chain solving MQTTlog support (#6524)
 * Change detection of non-MQTT commands by allowing non-space characters as delimiter (#6540)
2019-10-02 16:45:53 +02:00
Shantur Rathore f946ebaf7b Dimmer: Change SetOption43 (Dimmer Max) generic instead of Tuya only 2019-10-02 11:11:50 +01:00
gemu2015 6eb3c74689 scripter update 2019-09-30 10:25:02 +02:00
gemu2015 854b60ac7a Update support_command.ino 2019-09-24 08:51:09 +02:00
Theo Arends 1341db1392 Change JSON output format for some commands
Change JSON output format for commands Adc, Adcs, Modules, Gpio and Gpios from list to dictionary (#6407)
2019-09-12 14:19:44 +02:00
Theo Arends 3a0fce2503 Add command Gpios 255/All to show all available GPIO components
Add command Gpios 255/All to show all available GPIO components (#6407)
2019-09-12 12:32:33 +02:00
Laurent Dong 96098e4e09 Support If in Rules
The major features of IF statement are:
 - Support IF, ELSEIF, ELSE
 - Support not only comparison but also using logical expression as condition
 - Support run multiple commands
 - Support nested IF statement
 - All the commands run by IF statement will go to the BACKLOG!
 - No limit for logical operators, parenthesis and nested IF statement. Depends on your RAM!

Extended Backus-Naur Form of IF statement:
<if-statement> ::=
IF "(" <logical-expression> ")" <statement-list> {ELSEIF "(" <logical-expression> ")" <statement-list>} [ELSE <statement-list>] ENDIF
<logical-expression> :=
<comparison-expression> |
(<comparison-expression> | <logical-expression>) {(AND | OR) <logical-expression>} |
"(" <logical-expression ")" {(AND | OR) <logical expression>}
<comparison-expression> ::=
<math-expression> ("=" | "<" | ">" | "|" | "==" | "<=" | ">=" | "!=") <math-expression>
<statement-list> ::=
<statement> {";" <statement>}
<statement> ::=
<Sonoff-Tasmota-command> | <if-statement>

In English:
If statement support 3 format:
1. IF (<condition>) <statement-list> ENDIF
2. IF (<condition>) <statement-list> ELSE <statement-list> ENDIF
3. IF (<condition>) <statement-list> [ELSEIF (<condition>) <statement-list> ]* ELSE <statement-list> ENDIF

<condition> is a logical expression which can be:
1. A comparison expression for example:
   VAR1 >= 10
2. Multiple comparison expression with logical operator "AND" or "OR" between them. "AND" has higher priority than "OR". Fox example:
   UPTIME > 100 AND MEM1 == 1 OR MEM2 == 1
3. Parenthesis can be used to change the priority of logical expression. For example:
   UPTIME > 100 AND (MEM1 == 1 OR MEM2 == 1)

<statement-list> can be:
1. A Sonoff-Tasmota command. For example:
   ledpower on
2. A IF statement ("IF .... ENDIF")
3. Multiple Sonoff-Tasmota command or IF statement split with ";". For example:
   Power1 off; Ledpower on; if (mem1 == 0) Var1 Var1+1; mem1==1 endif; Delay 10; POWER1 on
4. Do not need to lead with "BACKLOG" for multiple commands.
2019-09-09 11:24:27 -04:00
Theo Arends 2fa583392a Change command Time 1/2/3 for legacy reason
Change command Time 1/2/3 to select JSON time format ISO, ISO + Epoch or Epoch for legacy reason
2019-09-06 15:46:40 +02:00
Theo Arends a01de9a9b2 Remove obsolete Tuya code
Remove obsolete Tuya code
2019-09-05 16:56:02 +02:00
Theo Arends db44b058e2 Add command Reset 99 to reset bootcount to zero
Add command Reset 99 to reset bootcount to zero (#684, #6351)
2019-09-05 12:32:28 +02:00
Theo Arends 282591a0b2 Bump version to 6.6.0.10
Redesign Tuya support by Shantur Rathore (#6353)
2019-09-05 10:41:08 +02:00
Shantur Rathore 982f0b9573 TuyaMCU: Rename Tuya Dimmer to Tuya MCU to make it more clear. 2019-09-04 17:29:45 +01:00
Theo Arends af1edb0cdb Add command Time 1/2/3 to select JSON time format ISO + Epoch, ISO or Epoch
* Add time to more events (#6337)
 * Add command Time 1/2/3 to select JSON time format ISO + Epoch, ISO or Epoch
2019-09-04 18:06:34 +02:00
Theo Arends f88e87cfde Refactor and document power control
Refactor and document power control
2019-09-04 12:20:04 +02:00
Theo Arends 34eed717fa Add command Power0 0/1/2/Off/On/Toggle to control all power outputs at once
Add command Power0 0/1/2/Off/On/Toggle to control all power outputs at once (#6340)
2019-09-03 23:04:49 +02:00
Stephan Hadinger ab5af7bf47 Add Full support of all protocols in IRremoteESP8266, to be used on dedicated-IR Tasmota version. Warning: +81k Flash when compiling with USE_IR_REMOTE_FULL 2019-08-28 22:01:01 +02:00
Theo Arends 9af67a5278 Bump version to 6.6.0.9
Change theoretical baudrate range to 300..19660500 bps in 300 increments (#6294)
2019-08-28 12:02:27 +02:00
Theo Arends b661c6a414 Fix baudrate calculation allowing max 30600 baud
Fix baudrate calculation allowing max 30600 baud (#6294)
2019-08-27 15:44:30 +02:00
Shantur Rathore 231a1ba137 Tuya Serial: Add support for power metering
Capable Tuya serial devices send power metering data over serial interface. User needs to identify the ids of all power metering functions and set as
SetOption44 -> Voltage
SetOption45 -> Current
SetOption46 -> Power
2019-08-27 10:50:34 +01:00
Shantur Rathore 579f68cf2f Tuya Dimmer: Add support for dimmers with max 24
New Tuya Dimmer has dim values from 0 to 24. Currently the code expects it to be 0-100 or 0-255.
With this change we move the flag to a param and use that to calculate correct dim percentage.

This change also makes sure to update settings on version upgrade.
2019-08-27 10:46:27 +01:00
Shantur Rathore 9fb804b426 Fix: Tuya Switches are detected as dimmers.
Tuya switches are detected as dimmers even after setting SetOption65 to 1.
Currently SetOption65 just hides the dimmer from Web UI for Tuya switches with SetOption65 to 1 but they are advertised as dimmer to HASS.
With this change we set light_type to LT_BASIC (on/off) instead of LT_SERIAL1 (dimmable) when option 65 is set.
2019-08-23 10:02:24 +01:00
Theo Arends 54364484fa Add Driver and Sensor info to status 4
* Add Driver and Sensor info to status 4
* Change WebSensor return information to show disabled state using exclamation mark
* Clean up debug code
2019-08-18 13:23:43 +02:00
Theo Arends 676c7867ca Refactor Sensors available
Refactor Sensors available
2019-08-16 18:30:45 +02:00
Theo Arends 26d331501b Add embedded sensor numbering to Status 4
Add embedded sensor numbering to Status 4
2019-08-16 17:48:05 +02:00
Theo Arends c61f2cc5ec Refactor WebSensor
Refactor WebSensor
2019-08-16 16:54:36 +02:00
Theo Arends 9746489380 Bump version to 6.6.0.5
* Add command WebSensor<sensor number> 0/1 to control display of sensor data in web GUI (#6085)
 * Change some table locations from RAM to Flash
2019-08-16 16:12:33 +02:00
Stephan Hadinger 8661a2ead6 Change ToHex to ToHex_P PROGMEM compatible 2019-08-13 19:53:12 +02:00
Theo Arends 2d0143623d Refactor commands by processing optional prefix
Refactor commands by processing optional prefix
2019-08-11 18:12:18 +02:00
Theo Arends 5f236561b1 Change ToHex default inbetween to no character
Change ToHex default inbetween to no character
2019-08-10 17:34:59 +02:00
Theo Arends a1a6590715 Make some log messages compile dependant
Make some log messages compile dependant
2019-08-08 17:51:49 +02:00
Theo Arends 8eb87a00d6 Extent feature list for future use
Extent feature list for future use
2019-08-07 12:56:32 +02:00
Stephan Hadinger 81ca44dba2 Add SetOption68 to enable multi-channel PWM instead of a single light (#6134) 2019-08-06 10:57:50 +02:00
Theo Arends e5ecffe4dd Refactor commands
Refactor commands
2019-08-03 13:01:34 +02:00
Theo Arends 714f938c05 Refactor energy commands
* Refactor energy commands
 * Add define USE_ENERGY_MARGIN_DETECTION to disable Energy Margin and Power Limit detection
 * Add define USE_ENERGY_POWER_LIMIT to disable Energy Power Limit detection while Energy Margin detection is active
2019-08-01 15:46:12 +02:00
Theo Arends 50e0de0dd5 Refactor Web commands
Refactor Web commands
2019-07-28 17:57:09 +02:00
Theo Arends 13a618634e Refactor MQTT commands
Refactor MQTT commands
2019-07-28 17:14:20 +02:00
Theo Arends 37b1c25881 Refactor core command structure
Refactor core command structure
2019-07-27 11:13:41 +02:00
Theo Arends ff909baa69 Refactor ADC commands
Refactor ADC commands
2019-07-26 10:43:30 +02:00
Theo Arends 9bcba3772e Refactor Counter commands
Refactor Counter commands
2019-07-26 10:21:36 +02:00
Theo Arends cc9d7bb8e9 Refactor MQTT pre-processing
Refactor MQTT pre-processing
2019-07-26 09:52:14 +02:00
Theo Arends c2413a2256 Housekeeping
Housekeeping
2019-07-24 13:09:42 +02:00
Theo Arends 398a72d128 Remove command code from sonoff.ino and introduce support_command.ino
Remove command code from sonoff.ino and introduce support_command.ino
2019-07-24 11:55:58 +02:00