<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.larnitech.com/index.php?action=history&amp;feed=atom&amp;title=Formatted_virtual%2Fen</id>
	<title>Formatted virtual/en - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.larnitech.com/index.php?action=history&amp;feed=atom&amp;title=Formatted_virtual%2Fen"/>
	<link rel="alternate" type="text/html" href="https://wiki.larnitech.com/index.php?title=Formatted_virtual/en&amp;action=history"/>
	<updated>2026-05-05T16:29:45Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.11</generator>
	<entry>
		<id>https://wiki.larnitech.com/index.php?title=Formatted_virtual/en&amp;diff=9609&amp;oldid=prev</id>
		<title>FuzzyBot: Updating to match new version of source page</title>
		<link rel="alternate" type="text/html" href="https://wiki.larnitech.com/index.php?title=Formatted_virtual/en&amp;diff=9609&amp;oldid=prev"/>
		<updated>2022-01-26T13:13:04Z</updated>

		<summary type="html">&lt;p&gt;Updating to match new version of source page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
===Example of description in XML===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;lt;item addr=&amp;quot;100:245&amp;quot; back-rgba=&amp;quot;0xff7100ff&amp;quot; iw-=&amp;quot;1&amp;quot; length=&amp;quot;5&amp;quot; name=&amp;quot;aa&amp;quot; prf=&amp;quot;prf('A: %d\10B: %ds dhjhfg hdfj dfhdfh', device(100, 247).status(0) $ 7, status(1))&amp;quot; sub-type=&amp;quot;prf&amp;quot; text-rgb=&amp;quot;0xffffff&amp;quot; title-rgb=&amp;quot;0xff00&amp;quot; type=&amp;quot;virtual&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
!Name!!type and variety!!Description&lt;br /&gt;
|-&lt;br /&gt;
|iw||number;&amp;lt;br&amp;gt;1, 2, 3..||The width of text field&lt;br /&gt;
|-&lt;br /&gt;
|back-rgba||number;&amp;lt;br&amp;gt;0xRRGGBBAA||Text field background setting. RR – red saturation, 0..0хFF; GG – green saturation, 0..0xFF; BB – blue saturation, 0..0xFF; AA – background saturation, 0..0xFF&lt;br /&gt;
|-&lt;br /&gt;
|text-rgb||number;&amp;lt;br&amp;gt;0xRRGGBB||Text colour setting. RR – red saturation, 0..0хFF; GG – green saturation, 0..0xFF; BB – blue saturation, 0..0xFF.&lt;br /&gt;
|-&lt;br /&gt;
|title-rgb||number;&amp;lt;br&amp;gt;0xRRGGBB	||RR – red saturation, 0..0хFF; GG – green saturation, 0..0xFF; BB – blue saturation, 0..0xFF	&lt;br /&gt;
|-&lt;br /&gt;
|prf||string;||Device status description.&amp;lt;br&amp;gt;Status is formatted as sprintf.&amp;lt;br&amp;gt;Status size should not exceed 256 bytes.&amp;lt;br&amp;gt;Only specified data is stored in the device, the text is not kept in the status. Detailed &amp;lt;br&amp;gt;description is below.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===prf attribute description===&lt;br /&gt;
&lt;br /&gt;
prf=&amp;quot;prf('TEXT %[flags][wigth][.precision]type', STATUS)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*TEXT – unchangeable text to be displayed;&lt;br /&gt;
*flags, wigth, precision, type – status formatting description, see sprintf.&lt;br /&gt;
*STATUS – status description&lt;br /&gt;
**id() – device id, u16&lt;br /&gt;
**subId() – device subId, u8&lt;br /&gt;
**addr() – device address, u32&lt;br /&gt;
**addrString() – device address textually&lt;br /&gt;
**statusStringHex() – device status string as hexadecimal notation&lt;br /&gt;
**statusString() – string with the device status&lt;br /&gt;
**statusString(u32 byteOffset = 0) – string with the device status with byteOffset offset&lt;br /&gt;
**statusString(u32 byteOffset=0, u32 len=0) – string with the device status with byteOffset offset and length len&lt;br /&gt;
**status() – device status, i8&lt;br /&gt;
**status(u32 byteOffset = 0) – device status with byteOffset offset, i8&lt;br /&gt;
**statusU() – device status, u8&lt;br /&gt;
**statusBit1Count() – number of status bit(?)&lt;br /&gt;
**statusRgb() – RGB status, 0xRRGGBB&lt;br /&gt;
**statusU16(u32 byteOffset=0) – device status, u16&lt;br /&gt;
**statusU32(u32 byteOffset=0) – device status, u32&lt;br /&gt;
**statusBit(u32 byteOffset=0, u32 bitOffset=0) – state of status bit with bitOffset offset, with byteOffset byte offset,&lt;br /&gt;
**statusBit(u32 bitOffset=0) – state of status bit with bitOffset offset&lt;br /&gt;
**statusBits(u32 byteOffset=0, u32 bitOffset=0, u32 len=0) – len bit status starting from bitOffset of byteOffset byte&lt;br /&gt;
**statusBits(u32 bitOffset=0, u32 len=0) – len bit status starting from bitOffset&lt;br /&gt;
**statusFloat() – status fractional (status/250)&lt;br /&gt;
**statusFloat() – status unsigned fractional (status/250)&lt;br /&gt;
**statusFloat2(u32 byteOffset=0) – status fractional (status/256)&lt;br /&gt;
**statusFloat2U(u32 byteOffset=0) – status unsigned fractional (status/256) with byteOffset offset&lt;br /&gt;
**statusFloat(u32 byteOffset=0) – status fractional (status/250) with byteOffset offset&lt;br /&gt;
**statusLevel() – level (for example, dimmer)&lt;br /&gt;
**statusFloatString() – string with status fractional (status/250)&lt;br /&gt;
**statusFloatString(u32 byteOffset = 0) – string with status fractional (status/250) with byteOffset offset&lt;br /&gt;
**statusFloatString2() – string with status fractional (status/256)&lt;br /&gt;
**statusFloatString2(u32 byteOffset=0) – string with status fractional (status/256) with byteOffset offset&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible to specify the conditions, for example:&lt;br /&gt;
&lt;br /&gt;
prf=&amp;quot; prf('Text%s', status(0)?'Yes':'No')&lt;br /&gt;
&lt;br /&gt;
if status(0) is true &amp;quot;Text Yes&amp;quot; will be displayed, otherwise &amp;quot;Text No&amp;quot; appears&lt;br /&gt;
&lt;br /&gt;
Or receive the devices status. For example, there is a curtain 343:22 and a lamp 299:1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
prf=&amp;quot;string a[] ={'Closed', 'Open', 'Is closing', 'Is opening'};  prf('Curtain%s\10Data %d \10Status: %s\10 String%s',a[device(343:22)-&amp;gt;status(0)], status(0), (device(299:21)-&amp;gt;status(0) $7)?'On':'Off',statusString(1))&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Status setting for such an element is the following: setStatus(299:201,{134,&amp;quot;Text&amp;quot;});&lt;br /&gt;
&lt;br /&gt;
After status setting in the text field the following will be displayed:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Curtain is opening&lt;br /&gt;
Data 134&lt;br /&gt;
Status On&lt;br /&gt;
String Text&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Curtain&amp;quot; will depend on curtain status,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Status&amp;quot; will be &amp;quot;Off&amp;quot; if 0 byte with mask of 7 status 299:21 equals to zero, otherwise &amp;quot;Status&amp;quot; will be &amp;quot;On&amp;quot;&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>
	</entry>
</feed>