Difference between revisions of "PAB"

From wiki.netio-products.com
Jump to navigation Jump to search
(Created page with "The PAB (... Blocks) define sets of conditions for monitored quantities (current, voltage, S0 pulses etc.). Based on these conditions, various rules can be set. Rules can perf...")
 
 
(29 intermediate revisions by 3 users not shown)
Line 1: Line 1:
The PAB (... Blocks) define sets of conditions for monitored quantities (current, voltage, S0 pulses etc.). Based on these conditions, various rules can be set. Rules can perform actions such as sending alarm to the Cloud service, restarting outputs, etc.
+
The PAB (Power Analysis Block) is set of Condition & Rules (CR). It's set of most common functions available for NETIO devices. Based on each '''Condition''', subsequent [https://wiki.netio-products.com/index.php?title=Rules '''Rules'''] can be executed.  
The PAB output is also available for use in selected protocols.
+
User friendly examples are prepared as [https://wiki.netio-products.com/index.php?title=Rules_Complete_Examples '''CRxx Conditions & Rules - examples''']
  
Existují dva typy PAB:
 
1) RANGE - vyhodnocení typu ANO/NE (true/false) 
 
2) ZONE - vyhodnocení pomocí stanovených intervalů 
 
Každý typ používá specifické proměnné a jsou podrobně popsané níže. 
 
  
PAB mohou pracovat s uvedenými veličinami:
+
The '''Rules''' can be triggered based on a '''Condition''' - analysis of the state of one or more variables:
  * Proud: OUTPUTS/1/CURRENT **[mA]**
+
* Current [mA]
  * Příkon: OUTPUTS/8/LOAD **[W]**
+
* Energy [Wh]
  * Energie: OUTPUTS/4/POWER **[Wh]**
+
* Load [W]
  * Stav výstupu č. 1: OUTPUTS/1/STATE **[int 0/1]**
+
* Power Factor
Obecná struktura pro definici proměnné je: `<vstup/výstup>/ID/<sledovaná hodnota>`
+
* S0 pulses
  
## PAB typu RANGE 
+
Rules can then perform several actions described in section [https://wiki.netio-products.com/index.php?title=Rules '''Rules'''].
Typ PAB s vyhodnocením ve stylu true/false. Pokud se sledovaná hodnota nachází v zadaném intervalu po dobu určenou v proměnné `timeHysteresis`, dojde k vyhodnocení PAB jako `true`. V opačném případě nabývá hodnoty `false`.
+
Every PAB is internally evaluated as having a discrete state which can be used as an input to a Rule mentioned above. State value is different for each type of PAB (described below). This state is also available in JSON protocol and therefore can be read externally.
  
### Struktura 
+
There are two types of PABs available: '''RANGE''' & '''ZONES'''. Each type has different states and configuration options.
| Proměnná | Hodnoty | Popis |
 
| ------ | ------ | ------ |
 
| type | RANGE | Typ PAB |
 
| source | OUTPUTS/**x**/(LOAD/CURRENT/POWER) <br> INPUTS/**x**/STATE |  Měřená hodnota, kterou sledujeme. **x** udává číslo vstupu/výstupu.|
 
| timeHysteresis | int | [s] Časový interval, ve kterém se musí nacházet sledovaná hodnota. Př.: Pokud je hystereze rovná 5, musí se sledovaná hodnota nacházet v definovaném intervalu alespoň 5s. Až následně dojde k jejímu vyhodnoceí. |
 
| lowerBound | int |  spodní hranice sledované hodnoty |
 
| upperBound | int |  horní hranice sledované hodnoty |
 
  
## PAB typu ZONE 
 
Typ PAB s vyhodnocením dle jednotlivých zón (1 a více).
 
Zóny se rozdělují s pomocí hodnot zadaných v proměnné `thresholds` následujícím způsobem: Pokud se sledovaná hodnota nachází v zadaném intervalu po dobu určenou v proměnné `timeHysteresis`, vyhodnotí se PAB jako číslo (integer) rovné pořadí intervalu. Při dvou zadaných intervalech tak může být hodnota PAB 0, 1 nebo 2.
 
  
### Struktura 
+
= RANGE =
| Proměnná | Hodnoty | Popis |
+
True/False-based evaluation. Detects whether a monitored value lies in specified interval (range) for a period of time. PAB evaluates to <code>TRUE</code> or <code>FALSE</code>.
| ------ | ------ | ------ |
+
Interval is specified by lower <code>lowerBound</code> and upper <code>upperBound</code> boundaries. PAB evaluates to <code>TRUE</code> if a variable defined in <code>source</code> lies within for a period of time defined in <code>timeHysteresis</code>.
| type | ZONE | typ PAB |
 
| source | OUTPUTS/**x**/(LOAD/CURRENT/POWER) <br> INPUTS/**x**/STATE |  Měřená hodnota, kterou sledujeme. **x** udává číslo vstupu/výstupu.|
 
| timeHysteresis | int | [s] Časový interval, ve kterém se musí nacházet sledovaná hodnota. Př.: Pokud je hystereze rovná 5, musí se sledovaná hodnota nacházet v definovaném intervalu (intervalech) alespoň 5s. Až následně dojde k jejímu vyhodnoceí. |
 
| thresholds | list[int] |  seznam spodních hranic intervalů pro přechod mezi zónami
 
  
## Příklady
+
== Configuration Structure ==
Podmínka se vyhodnotí jako **true** okamžítě, jakmile se hodnota proudu objeví mezi 100 a 200 mA.
+
{| class="wikitable"
```
+
|-
 +
! Variable
 +
! Value
 +
! Description
 +
|-
 +
| type
 +
| RANGE
 +
| PAB type
 +
|-
 +
| source
 +
| OUTPUTS/'''x'''/(LOAD/CURRENT/POWER)
 +
| The monitored variable. '''x''' indicates input / output number.
 +
|-
 +
| timeHysteresis
 +
| int
 +
| [s] Monitored value must be present in defined interval for amount of time defined here.
 +
 
 +
Eg: If the time hysteresis is equal to 5, monitored value must be within a defined interval for at least 5s. Only then it will be evaluated.
 +
|-
 +
| lowerBound
 +
| int
 +
| lower bound of the monitored value
 +
|-
 +
| upperBound
 +
| int
 +
| upper bound of the monitored value
 +
|}
 +
 
 +
== Examples ==
 +
 
 +
=== Immediate evaluation ===
 +
PAB evaluates to <code>TRUE</code> immediately as Output 1 '''Current''' value appears '''between 100 and 200 mA'''
 +
<nowiki>
 
{
 
{
 
   "type": "RANGE",
 
   "type": "RANGE",
Line 47: Line 61:
 
   "upperBound": 200,
 
   "upperBound": 200,
 
   "timeHysteresis": 0
 
   "timeHysteresis": 0
 +
}</nowiki>
 +
 +
=== Evaluation with delay ===
 +
PAB evaluates to <code>TRUE</code> when Output 1 '''Load''' is '''between 200 and 300 Watts for 5s'''.
  
}
+
  <nowiki>
```  
 
Podmínka se vyhodnotí jako **true** v případě, že se hodnota proudu bude nacházet mezi 100 a 200 mA po dobu 5s.
 
```
 
 
{
 
{
 
   "type": "RANGE",
 
   "type": "RANGE",
 
   "source": "OUTPUTS/1/CURRENT",
 
   "source": "OUTPUTS/1/CURRENT",
   "lowerBound": 100,
+
   "lowerBound": 200,
   "upperBound": 200,
+
   "upperBound": 300,
 
   "timeHysteresis": 5
 
   "timeHysteresis": 5
 +
}</nowiki>
 +
 +
= ZONES =
 +
Opposed from a previous type, ZONE-type PAB detects, whether a monitored variable finds itself in a specified zone. State of PAB indicates what zone number (index) is the measured variable currently in. Zones are defined by their <code>thresholds</code> (lower bounds) and there must be at least one threshold specified.
 +
Monitored value must be present in a defined interval for period of time defined in <code>timeHysteresis</code>.
 +
 +
== Structure ==
 +
{| class="wikitable"
 +
|-
 +
! Variable
 +
! Value
 +
! Description
 +
|-
 +
| type
 +
| ZONES
 +
| PAB type
 +
|-
 +
| source
 +
| OUTPUTS/'''x'''/(LOAD/CURRENT/POWER)
 +
| The monitored variable. '''x''' indicates input / output number.
 +
|-
 +
| timeHysteresis
 +
| int
 +
| '''[s]''' Monitored value must be present in defined interval for amount of time defined here.
 +
 +
Eg: If the time hysteresis is equal to 5, monitored value must be within a defined interval for at least 5s. Only then it will be evaluated.
 +
|-
 +
| thresholds
 +
| list of integers
 +
| lower-bounds of individual zones intervals
 +
|}
 +
 +
== Examples ==
 +
 +
PAB is evaluated according to the specified zones when the Output 2 '''Current''' value is in one of the zones for 10s.
 +
Zone numbers are as following:
 +
* '''0''': 0 - 49 mA
 +
* '''1''': 50 - 99 mA
 +
* '''2''': 100 - 149 mA
 +
* '''3''': 150 - 199 mA
 +
* '''4''': 200+ mA
  
}
+
Eg: If the Current value is 130mA for at least 10s, PAB is evaluated as 2.
``` 
 
  
Podmínka se vyhodnotí dle stanovených zón v případě, že se hodnota proudu bude nacházet v jedné ze zón po dobu 10s.  
+
  <nowiki>
Př.: Pokud bude proud 130mA po dobu alespoň 10s, vyhodnotí se podmínka jako 2 (číslo zóny).
 
```
 
 
{
 
{
 
   "type": "ZONES",
 
   "type": "ZONES",
Line 75: Line 128:
 
   ],
 
   ],
 
   "timeHysteresis": 10
 
   "timeHysteresis": 10
 +
}</nowiki>
 +
 +
= DAYLIGHT (sunrise / sunset) <sup><code>FW 4.0.0+</code></sup> =
 +
Enables launching actions based on sunrise / sunset of current place.
 +
 +
== Structure ==
 +
{| class="wikitable"
 +
|-
 +
! Variable
 +
! Value
 +
! Description
 +
|-
 +
| type
 +
| DAYLIGHT
 +
| PAB type
 +
|-
 +
| longitude
 +
| str "14.4129433E" OR int -73.8390597
 +
| East/West coordinates
 +
|-
 +
| latitude
 +
| str "50.0058144N" OR int -16.5237353
 +
| North/South coordinates
 +
|-
 +
| altitude
 +
| Number of meters above sea level
 +
| 8848
 +
|-
 +
| sunriseDelay
 +
| int [min]
 +
| Delay of PAB activation/deactivation to sunrise
 +
|-
 +
| sunsetDelay
 +
| int [min]
 +
| Delay of PAB activation/deactivation to sunset
 +
|}
 +
 +
== Examples ==
 +
 +
=== PAB ===
 +
 +
<nowiki>
 +
{
 +
  "type": "DAYLIGHT",
 +
  "longitude": "14.4129433E",
 +
  "latitude": "50.0058144N",
 +
  "altitude": 247,
 +
  "sunriseDelay": 240,
 +
  "sunsetDelay": -180
 
}
 
}
```
+
</nowiki>
  
## Otázky / Připomínky
+
or
* Digital inputs - states?
+
 
 +
<nowiki>
 +
{
 +
  "type": "DAYLIGHT",
 +
  "longitude": -16.5237353,
 +
  "latitude": 28.4162475,
 +
  "altitude": 247,
 +
  "sunriseDelay": 240,
 +
  "sunsetDelay": -180
 +
}
 +
</nowiki>

Latest revision as of 00:53, 14 August 2023

The PAB (Power Analysis Block) is set of Condition & Rules (CR). It's set of most common functions available for NETIO devices. Based on each Condition, subsequent Rules can be executed. User friendly examples are prepared as CRxx Conditions & Rules - examples


The Rules can be triggered based on a Condition - analysis of the state of one or more variables:

  • Current [mA]
  • Energy [Wh]
  • Load [W]
  • Power Factor
  • S0 pulses

Rules can then perform several actions described in section Rules. Every PAB is internally evaluated as having a discrete state which can be used as an input to a Rule mentioned above. State value is different for each type of PAB (described below). This state is also available in JSON protocol and therefore can be read externally.

There are two types of PABs available: RANGE & ZONES. Each type has different states and configuration options.


RANGE

True/False-based evaluation. Detects whether a monitored value lies in specified interval (range) for a period of time. PAB evaluates to TRUE or FALSE. Interval is specified by lower lowerBound and upper upperBound boundaries. PAB evaluates to TRUE if a variable defined in source lies within for a period of time defined in timeHysteresis.

Configuration Structure

Variable Value Description
type RANGE PAB type
source OUTPUTS/x/(LOAD/CURRENT/POWER) The monitored variable. x indicates input / output number.
timeHysteresis int [s] Monitored value must be present in defined interval for amount of time defined here.

Eg: If the time hysteresis is equal to 5, monitored value must be within a defined interval for at least 5s. Only then it will be evaluated.

lowerBound int lower bound of the monitored value
upperBound int upper bound of the monitored value

Examples

Immediate evaluation

PAB evaluates to TRUE immediately as Output 1 Current value appears between 100 and 200 mA

{
  "type": "RANGE",
  "source": "OUTPUTS/1/CURRENT",
  "lowerBound": 100,
  "upperBound": 200,
  "timeHysteresis": 0
}

Evaluation with delay

PAB evaluates to TRUE when Output 1 Load is between 200 and 300 Watts for 5s.

{
  "type": "RANGE",
  "source": "OUTPUTS/1/CURRENT",
  "lowerBound": 200,
  "upperBound": 300,
  "timeHysteresis": 5
}

ZONES

Opposed from a previous type, ZONE-type PAB detects, whether a monitored variable finds itself in a specified zone. State of PAB indicates what zone number (index) is the measured variable currently in. Zones are defined by their thresholds (lower bounds) and there must be at least one threshold specified. Monitored value must be present in a defined interval for period of time defined in timeHysteresis.

Structure

Variable Value Description
type ZONES PAB type
source OUTPUTS/x/(LOAD/CURRENT/POWER) The monitored variable. x indicates input / output number.
timeHysteresis int [s] Monitored value must be present in defined interval for amount of time defined here.

Eg: If the time hysteresis is equal to 5, monitored value must be within a defined interval for at least 5s. Only then it will be evaluated.

thresholds list of integers lower-bounds of individual zones intervals

Examples

PAB is evaluated according to the specified zones when the Output 2 Current value is in one of the zones for 10s. Zone numbers are as following:

  • 0: 0 - 49 mA
  • 1: 50 - 99 mA
  • 2: 100 - 149 mA
  • 3: 150 - 199 mA
  • 4: 200+ mA

Eg: If the Current value is 130mA for at least 10s, PAB is evaluated as 2.

{
  "type": "ZONES",
  "source": "OUTPUTS/2/CURRENT",
  "thresholds": [
    50,
    100,
    150,
    200
  ],
  "timeHysteresis": 10
}

DAYLIGHT (sunrise / sunset) FW 4.0.0+

Enables launching actions based on sunrise / sunset of current place.

Structure

Variable Value Description
type DAYLIGHT PAB type
longitude str "14.4129433E" OR int -73.8390597 East/West coordinates
latitude str "50.0058144N" OR int -16.5237353 North/South coordinates
altitude Number of meters above sea level 8848
sunriseDelay int [min] Delay of PAB activation/deactivation to sunrise
sunsetDelay int [min] Delay of PAB activation/deactivation to sunset

Examples

PAB

{
  "type": "DAYLIGHT",
  "longitude": "14.4129433E",
  "latitude": "50.0058144N",
  "altitude": 247,
  "sunriseDelay": 240,
  "sunsetDelay": -180
}

or

{
  "type": "DAYLIGHT",
  "longitude": -16.5237353,
  "latitude": 28.4162475,
  "altitude": 247,
  "sunriseDelay": 240,
  "sunsetDelay": -180
}