Commit Graph

574 Commits

Author SHA1 Message Date
Federico Leoni 2e0bf40d40
Update sonoff.ino 2019-10-24 13:44:00 -03:00
Theo Arends 90a161bec8 Add Mqtt Button and Switch status
Add Mqtt Button and Switch status (#6725)
2019-10-24 09:47:28 +02:00
Theo Arends 9868033654 Refactor string code 2019-10-22 17:29:21 +02:00
Shantur Rathore a567226415 Rules: Add TuyaMcuReceived#Data=<HexBytesReceived> rule and fix SerialReceived and SSerialRecieved rules 2019-10-21 17:24:03 +01:00
Theo Arends 84fe7b8e76 Bump version to 6.6.0.20
Add command SetOption65 0/1 to disable (1) fast power cycle detection fixing unwanted brownout trigger
2019-10-18 15:18:39 +02:00
Theo Arends 71a9fbcf65 Refactor FUNC_EVERY_SECOND 2019-10-18 12:47:22 +02:00
gemu2015 a42515160f preserve some stack size on FUNC_EVERY_SECOND 2019-10-18 10:57:06 +02:00
Theo Arends 60ffc96f15 Change PowerCycleTime form 10 to 8 seconds 2019-10-17 10:30:43 +02:00
Theo Arends 782563b3ae Add reset after four Quick Power Cycles
Add reset after four Quick Power Cycles (#6639)
2019-10-16 19:00:20 +02:00
Theo Arends f5b932a6d5 Make Sonoff Sc optional by define
Make Sonoff Sc optional by define (#6640)
2019-10-14 18:15:43 +02:00
Theo Arends 5527f424a0 Add deep sleep support
Add define USE_DEEPSLEEP and command DeepSleepTime 0 or 10..86400 (seconds) to enter deepsleep mode (#6638)
2019-10-14 16:12:59 +02:00
Theo Arends 0f72a93170 Add command SetOption34 0..255 to set backlog delay
Add command SetOption34 0..255 to set backlog delay. Default value is 200 (mSeconds) (#6562)
2019-10-09 17:52:52 +02:00
Theo Arends cfe301474a
Merge pull request #6562 from ljakob/development
process Backlog commands without minimum delay
2019-10-09 17:17:19 +02:00
Theo Arends 11048137ef Fix TuyaMcu, Armtronix and Ps16dz
Fix TuyaMcu, Armtronix and Ps16dz after Light redesign (#6599)
2019-10-09 16:55:15 +02:00
Theo Arends 019dc76740 Redesign light driver phase 1
Redesign light driver phase 1
2019-10-06 17:19:05 +02:00
Leif Jakob 5d60a43939 process Backlog commands without minimum delay 2019-10-04 12:46:31 +00:00
Theo Arends d7d0316769 Fix open/close to limits
Fix open/close to limits (#6516)
2019-09-30 19:27:54 +02:00
Theo Arends 7689534cf5 Refactor shutter support
Refactor shutter support (#6516)
2019-09-30 11:21:43 +02:00
Theo Arends e90f67bbbb Add driver JSON if available
Add driver JSON if available
2019-09-29 18:11:36 +02:00
Theo Arends e40475b563 Add initial support for shutters
Add initial support for shutters by Stefan Bode (#288)
2019-09-29 18:00:01 +02:00
Theo Arends 56b0f6efdc Fix interlocked relays turning off
Fix interlocked relays turning off (#6385)
2019-09-11 12:14:37 +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 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 138ed6def9 Refactoring
Refactoring
2019-09-04 12:58:37 +02:00
Theo Arends 1304252d08 Refactor sonoff.ino
Refactor sonoff.ino
2019-09-04 12:47:58 +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 41f76c5128 Add restore power state when limit is restored
Add restore power state when limit is restored (#6340)
2019-09-03 22:27:54 +02:00
Theo Arends 1478f1624a Add restore power state when limiit restored
Add restore power state when limiit restored (#6340)
2019-09-03 22:22:36 +02:00
Stephan Hadinger fce3de82c5 Move '#include user_config_override.h' in 'my_user_config.h'.
Allow user_config_override.h to change parameters like USE_MQTT_TLS.
2019-08-31 14:44:49 +02:00
gemu2015 78989faf81 scripter update
epoch, json export, web show
2019-08-31 10:10:16 +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
Shantur Rathore e9475592b3 Fix: Legacy Led1 doesn't power up with Relay1.
https://github.com/arendst/Sonoff-Tasmota/pull/6246 broke Legacy Led1 power up logic. Make sure the if statement matches the if statement before #6246
2019-08-19 21:04:27 +01:00
Theo Arends 38c6254833 Refactor light driver saving code space
Refactor light driver saving code  space
2019-08-17 13:17:30 +02:00
Theo Arends b9302d9ab9
Merge pull request #6246 from shantur/development
LedX should show power status even if there is no wifi or mqtt.
2019-08-17 11:56:45 +02:00
Shantur Rathore f4b7e422fc LedX should show power status even if there is no wifi or mqtt.
Fixes: https://github.com/arendst/Sonoff-Tasmota/issues/6244
2019-08-17 10:10:06 +01:00
Stephan Hadinger 859156c395 Fix #6247 2019-08-17 11:06:49 +02:00
Stephan Hadinger 4aeaff66aa Fix wrong telemetry message when SetOption68 1 (#6191) 2019-08-16 18:33:41 +02:00
Stephan Hadinger 8661a2ead6 Change ToHex to ToHex_P PROGMEM compatible 2019-08-13 19:53:12 +02:00
Theo Arends e2040b70de Refactor Sonoff Bridge
Refactor Sonoff Bridge
2019-08-13 16:10:47 +02:00
Theo Arends 72baffdf81 Refactor Counter and Dht code
Refactor Counter and Dht code
2019-08-13 14:52:46 +02:00
Theo Arends 23ec00a452 Add command Buzzer
Add command Buzzer with optional parameters <number of beeps>,<duration of beep in 100mS steps>,<duration of silence in 100mS steps> enabled when a buzzer is configured (#5988)
2019-08-12 17:18:08 +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 27efc08d2c Add define DEBUG_TASMOTA_CORE
Add define DEBUG_TASMOTA_CORE
2019-08-08 16:24:11 +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
Theo Arends afb39aa680 Add support for CHIRP soil moisture sensor by Christian Baars
Add support for CHIRP soil moisture sensor by Christian Baars
2019-08-07 12:08:13 +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
Stephan Hadinger c93a03f1d0 Add MqttCount metric to STATE (#6155) 2019-07-31 19:34:23 +02:00
Theo Arends fde53117d6 Space saving code optimization
Space saving code optimization
2019-07-27 18:37:56 +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