Difference between revisions of "EasyFormula"
Grovkillen (talk | contribs) |
Grovkillen (talk | contribs) |
||
(13 intermediate revisions by the same user not shown) | |||
Line 15: | Line 15: | ||
%value%/1000 | %value%/1000 | ||
+ | |||
+ | The same syntax can also be used in rules. | ||
== Arithmetic operations == | == Arithmetic operations == | ||
− | You can use the following operations in formulas: | + | You can use the following operations in formulas and rules: |
If %value% is 10 and the formula is '''%value%''<operation>''2''' | If %value% is 10 and the formula is '''%value%''<operation>''2''' | ||
Line 34: | Line 36: | ||
== Conversions == | == Conversions == | ||
− | You can convert integers into human readable information using these commands. | + | You can convert integers and floats into human readable information using these commands. '''These are not working in formulas''' since the output is a string and not a true float value. '''The intended use is in rules (''Publish'' command as an example) and displays etc.''' |
− | |||
− | |||
− | ''' | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | {| class="wikitable sortable" | |
− | + | |- | |
+ | ! From >>> To | ||
+ | ! Type | ||
+ | ! Syntax | ||
+ | ! Example | ||
+ | |- | ||
+ | | Deg >>> Bearing | ||
+ | | bearing/wind direction | ||
+ | | %c_w_dir%('''[TaskName#ValueName]''') | ||
+ | | '''%c_w_dir%(45)=<span style="color: blue>NE</span>''' (-359 to +360 is allowed) | ||
+ | |- | ||
− | + | | C >>> F | |
− | '''% | + | | Celsius to Fahrenheit |
+ | | %c_c2f%('''[TaskName#ValueName]''') | ||
+ | | '''%c_c2f%(32.0)=<span style="color: blue>89.6</span>''' | ||
+ | |- | ||
+ | | m/s >>> Beaufort | ||
+ | | wind speed/gust to Beaufort scale | ||
+ | | %c_ms2Bft%('''[TaskName#ValueName]''') | ||
+ | | '''%c_ms2Bft%(23.3)=<span style="color: blue>9</span>''' | ||
+ | |- | ||
− | + | | cm >>> ' " | |
− | '''% | + | | centimeter to imperial (feet) + inches |
+ | | %c_cm2imp%('''[TaskName#ValueName]''') | ||
+ | | '''%c_cm2imp%(200.2)=<span style="color: blue>5' 6.7"</span>'''<br>'''%c_cm2imp%(12)=<span style="color: blue>4.7"</span>''' | ||
+ | |- | ||
+ | | mm >>> ' " | ||
+ | | millimeter to imperial (feet) + inches | ||
+ | | %c_mm2imp%('''[TaskName#ValueName]''') | ||
+ | | '''%c_mm2imp%(200.0)=<span style="color: blue>7.87"</span>'''<br>'''%c_mm2imp%(12200)=<span style="color: blue>20' 0.3"</span>''' | ||
+ | |- | ||
− | + | | min >>> day | |
− | '''% | + | | minutes to days |
+ | | %c_m2day%('''%uptime%''') | ||
+ | | '''%c_m2day%(7860)=<span style="color: blue>4.46</span>''' | ||
+ | |- | ||
+ | | min >>> day hour | ||
+ | | minutes to days + hours | ||
+ | | %c_m2dh%('''%uptime%''') | ||
+ | | '''%c_m2dh%(7860)=<span style="color: blue>4d 11h</span>''' | ||
+ | |- | ||
− | + | | min >>> day hour min | |
− | '''%c_m2dhm%(3642)=2d 12h 42m''' | + | | minutes to days + hours + minutes |
+ | | %c_m2dhm%('''%uptime%''') | ||
+ | | '''%c_m2dhm%(3642)=<span style="color: blue>2d 12h 42m</span>''' | ||
+ | |- | ||
+ | | sec >>> day hour min sec | ||
+ | | seconds to days + hours + minutes + seconds | ||
+ | | %c_s2dhms%('''[TaskName#ValueName]''') | ||
+ | | '''%c_s2dhms%(1234567890)=<span style="color: blue>14d 6h 56m 8s</span>''' | ||
+ | |- | ||
− | + | |} | |
− |
Latest revision as of 16:10, 9 May 2018
ESP Easy can use a simple formula to change the sensor value before it is send to the Home Automation controller. (In most cases this is not needed and in most cases this can also be accomplished within the Home Automation software)
A few samples will be provided here. Remember that this is just a simple build-in 'calculator' with only the basic stuff like add, substract, multiply, devide.
When the sensorvalue has been read from the device, it is parsed through the formula function. The value is addressed as this:
%value%
So if you like to add a constant value of '2' to the sensorvalue, you would enter:
%value%+2
If you count in liters and need the value in cubic meters:
%value%/1000
The same syntax can also be used in rules.
Arithmetic operations
You can use the following operations in formulas and rules:
If %value% is 10 and the formula is %value%<operation>2
- Addition (+): 10+2=12
- Subtraction (−): 10-2=8
- Multiplication (*): 10*2=20
- Division (/): 10/2=5
- Exponent (^): 10^2=100
Square root etc.
Just for information, the square root can be exchanged for %value%^0.5 and cube root for %value%^0.3333.
Conversions
You can convert integers and floats into human readable information using these commands. These are not working in formulas since the output is a string and not a true float value. The intended use is in rules (Publish command as an example) and displays etc.
From >>> To | Type | Syntax | Example |
---|---|---|---|
Deg >>> Bearing | bearing/wind direction | %c_w_dir%([TaskName#ValueName]) | %c_w_dir%(45)=NE (-359 to +360 is allowed) |
C >>> F | Celsius to Fahrenheit | %c_c2f%([TaskName#ValueName]) | %c_c2f%(32.0)=89.6 |
m/s >>> Beaufort | wind speed/gust to Beaufort scale | %c_ms2Bft%([TaskName#ValueName]) | %c_ms2Bft%(23.3)=9 |
cm >>> ' " | centimeter to imperial (feet) + inches | %c_cm2imp%([TaskName#ValueName]) | %c_cm2imp%(200.2)=5' 6.7" %c_cm2imp%(12)=4.7" |
mm >>> ' " | millimeter to imperial (feet) + inches | %c_mm2imp%([TaskName#ValueName]) | %c_mm2imp%(200.0)=7.87" %c_mm2imp%(12200)=20' 0.3" |
min >>> day | minutes to days | %c_m2day%(%uptime%) | %c_m2day%(7860)=4.46 |
min >>> day hour | minutes to days + hours | %c_m2dh%(%uptime%) | %c_m2dh%(7860)=4d 11h |
min >>> day hour min | minutes to days + hours + minutes | %c_m2dhm%(%uptime%) | %c_m2dhm%(3642)=2d 12h 42m |
sec >>> day hour min sec | seconds to days + hours + minutes + seconds | %c_s2dhms%([TaskName#ValueName]) | %c_s2dhms%(1234567890)=14d 6h 56m 8s |