Difference between revisions of "Tutorial Rules"
Line 17: | Line 17: | ||
Also simple if ... else ... endif statements are possible, but nesting and Boolean logic are not supported. | Also simple if ... else ... endif statements are possible, but nesting and Boolean logic are not supported. | ||
− | Task values | + | Task values can be obtained in the same way as with the LCD and OLED template with [Device Name#Value Name] |
Timers can be used to time things. | Timers can be used to time things. | ||
Line 42: | Line 42: | ||
Example 3: | Example 3: | ||
− | On System#Boot do /When the ESP boots, do | + | On System#Boot do //When the ESP boots, do |
servo,1,12,0 | servo,1,12,0 | ||
− | timerSet,1,10 /Set Timer 1 for the next event in 10 seconds | + | timerSet,1,10 //Set Timer 1 for the next event in 10 seconds |
endon | endon | ||
− | On Rules#Timer=1 do /When Timer1 expires, do | + | On Rules#Timer=1 do //When Timer1 expires, do |
servo,1,12,30 | servo,1,12,30 | ||
− | timerSet,2,1 /Set Timer 2 for the next event in 1 second | + | timerSet,2,1 //Set Timer 2 for the next event in 1 second |
endon | endon | ||
− | On Rules#Timer=2 do /When Timer2 expires, do | + | On Rules#Timer=2 do //When Timer2 expires, do |
servo,1,12,0 | servo,1,12,0 | ||
− | timerSet,1,30 /Set Timer1 for the next event in 30 seconds | + | timerSet,1,30 //Set Timer1 for the next event in 30 seconds |
endon | endon | ||
Revision as of 16:47, 13 April 2016
Information on this page is based on preliminary development. Beware that functionality may be incomplete, not fully tested and subject to change. It may even be removed in future releases if it turns out be unstable or based on erroneous interpretation of the operation of third-party technology. At this stage, we provide the information to support development and testing.
Along with ESP Easy R086, a new experimental feature was enabled, named Rules. Rules can be used to create very simple flows to control devices on your ESP.
The syntax of a rule can be:
on <event>[=,<,>][value] do <action>
or
on <event>[=,<,>][value] do <action> <action> endon
Also simple if ... else ... endif statements are possible, but nesting and Boolean logic are not supported. Task values can be obtained in the same way as with the LCD and OLED template with [Device Name#Value Name] Timers can be used to time things.
Some exmples:
Example 1: On PIR#Switch do if [LDR#Light]<500 gpio,16,[PIR#Switch] endif endon
In other words: If the PIR switch is set and if the light value < 500, then set GPIO port 16 of the ESP.
Example 2: on SR04#range<100 do if [ldr#lux]<500 gpio,2,0 gpio,16,1 else gpio,2,1 gpio,16,0 endif endon
Example 3: On System#Boot do //When the ESP boots, do servo,1,12,0 timerSet,1,10 //Set Timer 1 for the next event in 10 seconds endon On Rules#Timer=1 do //When Timer1 expires, do servo,1,12,30 timerSet,2,1 //Set Timer 2 for the next event in 1 second endon On Rules#Timer=2 do //When Timer2 expires, do servo,1,12,0 timerSet,1,30 //Set Timer1 for the next event in 30 seconds endon
To enable rules, go to Tools/Advanced and check the Rules checkbox.
After clicking Submit, you will find a new page added. Here you can start experimenting with Rules:
The example above shows an experiment with a LED, connected via a resistor of 1k to GPIO12. To be able to read the state of the LED (on or off) a switch input is created with the same GPIO port:
After rebooting the ESP, the LED will start blinking 10 seconds on en 10 seconds off.
Enjoy.