This is an old revision of the document!
Table of Contents
Application Programming Interface (API)
Direct loads control
man_load_set[i] | bit | R/W | Managed load state; 0=off, 1=on; i = 10..17 |
man_analog_out[i] | int | R/W | Analog output value in % i = 10 |
Timetable loads control
Writes 'Once' and/or 'Recurring' actions to in consumer timetables defining consumer's behavior at specific time intervals.
tt_load_set[i] | bit | R/W | 'Once' and 'Recurring' actions; i = 10..17 |
tt_analog_out[i] | int | R/W | Set analog output value in %; i = 10 |
Cloud Optimization (Consumers timetable)
Cloud optimization allows writes from Cloud/Edge to consumer timetables, changing consumer's behavior during specific time periods (e.g. Smart Grid functionality).
Following table and use cases below explain the usage of variables in different scenarios.
| Variables | Description |
|---|---|
dr_load_set[10..17] | Direct load control: 0=off, 1=on. |
timetable_cloud_once[0..7] | Enables executing 'Once' actions from Cloud: 1=enabled. |
timetable_cloud_recurring[0..7] | Enables executing 'Recurring' actions from Cloud: 1=enabled. |
timetable_cloud_analog[0] | Enables writing analog values from Cloud to timetable: 1=enabled. |
optimization_command[0..50] | cloud timetable optimization command: 1=set once action, 2=set recurring action, 3=set critical peak tariff, 4=set mask, 5=set analog. |
optimization_value[0..50] | timetable optimization value (depends of command): -1=clear/clear critical peak tariff, 0=set off/lo tariff, 1=set on/hi tariff, 2=set critical peak tariff, -100..100 set setpoint, -32768=auto). |
optimization_start[0..50] | cloud timetable optimization start time 'hhmmw': hh=hour, mm=minute, w=weekday (1..7, 1=monday). |
optimization_index[0..50] | timetable optimization index (0..8): 0=broadcast, 1=first consumer timetable, 8=last consumer timetable. |
optimization_time[0..50] | timetable optimization period [min.] (max 1440 minutes). |
Variable optimization_command triggers timetable manipulation process so make sure to set all other variables before.
Use cases
SCE01 Set once action
Consumer [3] has to be switched off on Wednesday at 16:45 and be in this state for 1 hour.
if ( timetable_cloud_once[3] ) { // 4. consumer (idx=3)
optimization_index[0] = 4; // 4. consumer (idx=3)
optimization_start[0] = 16453; // hh=16, mm=45, w=3
optimization_time[0] = 60; // 1 hour
optimization_value[0] = 0; // set off
optimization_command[0] = 1; // set once action
};
// Result:
// ^xxx
// |---|---|---|---|---|
// ... 14 15 16 17 18 19 ...
SCE02 Set recurring action
Consumer [7] has to be switched on every Monday@08:00 and switched off every Monday@21:00.
if ( timetable_cloud_once[7] ) { // 8. consumer (idx=7)
// action on
optimization_index[0] = 8; // 8. consumer (idx=7)
optimization_start[0] = 8001; // hh=08, mm=00, w=1
optimization_time[0] = 15; // only one action
optimization_value[0] = 1; // set on
optimization_command[0] = 2; // set recurring action
// action off
optimization_index[1] = 8; // 8. consumer (idx=7)
optimization_start[1] = 21001; // hh=21, mm=00, w=1
optimization_time[1] = 15; // only one action
optimization_value[1] = 2; // set off
optimization_command[1] = 2; // set recurring action
};
// Result:
// ^ ˇ
// |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
// ... 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...
SCE03 Set mask
Consumer [0] has to be switched on/off following this pattern:
Saturday
@11:15 on
@11:45 off
@12:00 on
@13:30 off
@13:45 on
@14:00 off
if ( timetable_cloud_once[0] ) { // 1. consumer (idx=0)
optimization_index[0] = 1; // 1. consumer (idx=0)
optimization_start[0] = 11156; // hh=11, mm=15, w=6
optimization_time[0] = 180; // from 11:15 to 14:00 + 15min = 180 minutes
optimization_value[0] = 1531; // mask: 2#010111111011
optimization_command[0] = 4; // set mask
};
// Result:
// lsb <-- msb
// 110111111010
//
// ^xˇ^xxxxxˇ^ˇ
// |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
// 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
SCE04 Set analog
Consumer [0] is the only consumer with analog output. Analog value range is 0..100%.
From Tuesday@14:00 until Tuesday@15:00 set output to 75%.
if ( timetable_cloud_analog[0] ) { // 1. consumer (idx=0)
optimization_index[0] = 1; // 1. consumer (idx=0)
optimization_start[0] = 14002; // hh=14, mm=00, w=2
optimization_time[0] = 60; // 60 minutes
optimization_value[0] = 75; // 75%
optimization_command[0] = 5; // set analog
};
// Result:
// ________________________________________________________----_____________________________________
//
// |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
// 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
SCE05 Set tariff
Set high tariff (HT) from 06:00 until 22:00, for Friday.
optimization_start[0] = 6005; // hh=06, mm=00, w=5 optimization_time[0] = 960; // only one action optimization_value[0] = 1; // hight tariff optimization_command[0] = 3; // set tariff // Result: // ________________________----------------------------------------------------------------_________ // // |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| // 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
SCE06 Delete actions from timetable
Clear actions made in SCE01.
if ( timetable_cloud_once[3] ) { // 4. consumer (idx=3)
optimization_index[0] = 4; // 4. consumer (idx=3)
optimization_start[0] = 16453; // hh=16, mm=45, w=3
optimization_time[0] = 60; // 1 hour
optimization_value[0] = -1; // clear
optimization_command[0] = 1; // set once action
};
// Result:
//
// |---|---|---|---|---|
// ... 14 15 16 17 18 19 ...
SCE07 Direct load control
immediate Consumer[7] switching on/off.
if ( timetable_cloud_once[7] ) { // 8. consumer (idx=7)
dr_load_set[17] = 1; // 8. consumer (idx=17)
};
// Result:
//
// load_status[17] == 1
