1,970 bytes added
, 09:03, 23 August 2021
===Example of description in XML===
<syntaxhighlight lang="xml" line>
<item addr="333:132" name="sensor" type="virtual" sub-type="sensor" dim="%" length="2"/>
<item addr="333:145" name="Text" type="virtual" sub-type="text" length="0"/>
</syntaxhighlight>
===Parameters===
{|class="wikitable"
!Name!!type and variety!!description
|sub-type||enum||sensor – virtual sensor<br><br>text – virtual sensor of text type (UTF8), length is to be equal to 0<br>long-text – virtual field of text type (UTF8), length is to be equal to 0<br>Devices that need script to track the status (see the example below the table):<br>lamp, dimer-lamp, rgb-lamp, jalousie, gate, gate120, jalousie120<br>prf – with formatted set of status, the description isbelow
|length*||number||status size, bytes<br>0 – dynamic size (obvious for the elements of "sub-type=text" type)
|dim||symbol||Symbol added to the end of virtual sensor value (for example, % or С)
|}
<nowiki>*</nowiki> – required fields
===Example of virtual device "lamp"===
<syntaxhighlight lang="xml" line>
<item addr="142:99" length="1" name="Lamp" sub-type="lamp" type="virtual"/>
</syntaxhighlight>
The processing of pressing in the script
<syntaxhighlight lang="cpp" line>
u8 state = 0;
V-ID/142:99 {
if (opt(0)==0xff){//pressing the element in the interface
if (state==0) state = 1;
else state = 0;
setStatus(142:99,state);//for correct displaying in the interface
}
}
</syntaxhighlight>
Example of virtual device "dimmable lamp":
<item addr="142:99" length="2" name="Lamp" sub-type="dimer-lamp" type="virtual"/>
The script processing of stroke
u8 state[2] = {0,0};
V-ID/142:99
{
if (opt(0)==0xff){
if (state[0]==0) state[0] = 1;
else state[0] = 0;
}else (opt(0)==0xfe){
state[0]=state[0];
}else {
state[0]=opt(0);
}
if(opt(1)==0xfe){
state[1]=state[1];
}else {
state[1]=opt(1);
}
setStatus(142:99,state);
}