Этот виджет предназначен для отображения числовых данных в виде кольца, полукольца или сегментного кольца. Виджет основан на библиотеке angular-gauge

<div style="style1" class="class1">
<canvas></canvas>
</div>
Этот виджет может принимать status сообщения. Можно отправить любой атрибут из config для переконфигурации виджета “на лету”.
Например: { "style1" : "display:none;" } или { "descr" : "NO DATA" }
Виджет отображает descr (если задано) и status. Данные из status передаются в виджет как целое или число с десятичной точкой.
По умолчанию виджет ожидает число от 0 до 100 и заполняет цветом часть кольца в соответствии с полученными данными.
widgetConfig - JSON string, необязательный. Содержит дополнительные параметры:
type - string, необязательный. Тип виджета, может принимать 3 значения: full - полное кольцо (по умолчанию), semi - полукольцо и arc - неполное кольцо.
size - number, необязательный. Размер виджета в пикселях (без px). Размер может быть автоматически уменьшен, если виджет не помещется в доступную ширину. Например: 150.
thick - number, необязательный. Толщина кольца в пикселях (без px). По умолчанию 2.
cap - string, необязательный. Форма полукольца, может принимать значения: round - закругленная (по умолчанию) и butt - прямоугольная.
append - string, необязательный. Текст, выводимый после значения status. Обычно используется для указания единиц измерения, например % или км/ч.
prepend - string, необязательный. Текст, выводимый до значения status.
color - string, необязательный. HTML цвет заливки кольца, например #ffaaaa.
textColor - string, необязательный. HTML цвет текста, например #ff5555.
backgroundColor - string, необязательный. HTML цвет незаполненной области, например rgba(255,255,255, 0.8).
maximum - number, необязательный. Максимальное предполагаемое значение status, по умолчанию 100, например 200.
id - integer, обязательный. Уникальный идентификатор сенсора в устройстве. Используется в том числе и для сортировки виджетов на экране
page - string, необязательный. название страницы (группы виджетов), например kitchen. Используется для разделения виджетов на группы, когда вы не хотите, чтобы все отображалось “кучей” на одном экране.
pageId - integer, необязательный. Идентификатор страницы. Используется в том числе и для сортировки страниц. Всегда должен быть больше нуля, 0 зарезервирован для страницы “Все”. Например: 1 или 7.
pageTopic - string, необязательный. IoT Manager будет публиковать значение pageId в топик prefix + pageTopic после каждого клика на ярлык страницы в панели управления. Для системной страницы “Все”, у которой pageId = 0, в топик prefix+"/page" будет отправлен 0, если хотя бы одна другая страница содержит свойство pageTopic. Если Вы хотите получать эти сообщения на своих устройствах, то Вы должны подписаться на этот топик. Например, если pageTopic="/page" и prefix = "/IoTmanager" тогда IoT Manager будет публиковать значение pageId в топик /IoTmanager/page.
class1 - string, необязательный. HTML класс для элемента div верхнего уровня. Вы можете использовать стандартные классы цветов, классы полей, другие полезные классы и классы Bootstrap3 col-xs и col-xm для отображжения виджетов в несколько колонок, например: item no-border
style1 - string, необязательный. HTML стиль для элемента div верхнего уровня. Вы можете использовать любой стандартный стиль HTML5, например: padding-top:5px;padding-bottom:10px;border-bottom:dotted 1px
class2 - string, необязательный. HTML класс для элемента div 2 уровня (для большинства виджетов это descr). Вы можете использовать стандартные классы цветов, классы полей, другие полезные классы и классы Bootstrap3 col-xs и col-xm для отображжения виджетов в несколько колонок, например: assertive text-center
style2 - string, необязательный. HTML стиль для элемента div 2 уровня (для большинства виджетов это descr). Вы можете использовать любой стандартный стиль HTML5, например: font-size:20px;font-weight:bold;
class3 - string, необязательный. HTML класс для элемента div 3 уровня. Вы можете использовать стандартные классы цветов, классы полей, другие полезные классы и классы Bootstrap3 col-xs и col-xm для отображжения виджетов в несколько колонок, например: text-center
style3 - string, необязательный. HTML стиль для элемента div 3 уровня. Вы можете использовать любой стандартный стиль HTML5, например: padding-top:5px;padding-bottom:5px;
topic - string, обязательный. Топик брокера. Первая часть топика /IoTmanager (может быть изменен в настройках приложения начиная с версии 1.5.0). Этот префик нужен чтобы можно было разделять все сообщения на группы и не принимать сообщения, предназначенные другим проектам. Топик сенсора должен быть уникальным (если будет у двух виджетов один топик, то оба виджета будут работать синхронно). Пример: /IoTmanager/device01/sensor01.
Большинство виджетов могут получать “сообщение о состоянии” с помощью status сообщения. Состояние сенсора мобильное приложение определяет по данным в топике статуса /IoTmanager/device01/sensor01/status для отображения данных виджетом. Устройство должно отпралять сообщение status в формате JSON строки, например: {status:100}. Т.е. сообщение статуса - это показания датчика или состояние переключателя 0 или 1. Для комбинированных сенсоров типа DHT-11/DHT-22, которые выдают два разных параметра (температуру и влажность) нужно делать два разных виджета и в приложении они будут работать как два независимых датчика. Для трехосевого гироскопа, соответственно потребуется использовать три виджета и т.д.
Большинство виджетов можно отобразить или скрыть в любое время: отправьте конфиг, содержащий только id виджета для его отключения. Например: { "id":"5" } или полный конфиг для его отображения в приложении.
user - string, необязательный. Если эта опция присутствует в config, то IoT Manager сравнивает имя пользователя брокера и поле user. Если они совпадают, то config обрабатывается далее, если нет, то пропускается.
users - string, необязательный. Список пользователей, разделенных пробелаами. Если эта опция присутствует в config, то IoT Manager ищет имя пользователя брокера в строке users. Если имя пользователя присутствует в списке, то config обрабатывается далее, если нет, то пропускается.
Эти дополнительные поля не предназначены для управлением контроля доступа. Для усуществления контроля доступа на уровне пользователей используйте стандартные возможности брокера - ACL.
uuid - string, необязательный. Если данная опция присутствует, то сообщение будет обрабатываться только устройством с указанным UUID.
minWidth - integer, необязательный. Если присутствует, то парсер сравнивает ширину экрана устройства и значение minWidth. Если device_width >= minWidth, то config обрабатывается далее, если нет, то пропускается.
maxWidth - integer, необязательный. Если присутствует, то парсер сравнивает ширину экрана устройства и значение maxWidth. Если device_width <= maxWidth, то config обрабатывается далее, если нет, то пропускается.
Обычно, сообщение status содержит только значение виджета, например: { status: 50 } или { status: "50" }.
Но, в некоторых случаях возможно, что вы захотите использовать дополнительное информирование пользователя:
vibrate - включает вибрацию при приеме данного сообщения, например: { status: 50, vibrate: 100 }, где 100 - время вибрации в миллисекундах.
toast - отображает кратковременное всплывающее сообщение, так называемый toast, при получении сообщения, например: { status: 50, toast: "Alert!" }, где Alert! - отображаемое сообщение.
toastLong - - отображает более продолжительное всплывающее сообщение, так называемый toastLong, при получении сообщения, например: { status: 50, toastLong: "Alert!" }, где Alert! - отображаемое сообщение.
beep - звуковой сигнал при получении сообщения, например: { status: 50, beep: 1 }, где 1 - количество звуковых сигналов.
speech - string, текст для голосового синтезатора, например: { status: 50, speech: 'hello'}
rate - float, от 0 до 1 скорость, например: { status: 50, speech: 'hello', rate: 0.7 }
locale - string, язык, например: { status: 50, speech: 'hello', rate: 0.7, locale: 'fr-FR' }. Если язык не задан, то используется en-US. Русский и украинский языки не поддерживается.
{
"id" : 1,
"widget" : "gauge",
"topic" : prefix + "/" + deviceID + "/gauge1"
}
{
"id" : 1,
"widget" : "gauge",
"topic" : prefix + "/" + deviceID + "/gauge1",
class1 : "text-center col-xs-6 no-padding-left no-padding-right",
}
{
"id" : 1,
"widget" : "gauge",
"topic" : prefix + "/" + deviceID + "/gauge1",
"class1" : "text-center col-xs-4 no-padding-left no-padding-right",
}
{
"id" : 1,
"widget" : "gauge",
"topic" : prefix + "/" + deviceID + "/gauge1",
"descr" : "Pressure",
"widgetConfig" : {
"type" : "arch",
"thick" : 12,
"append" : "Pa",
"color" : "#ffaaaa",
"textColor" : "#ff5555",
"backgroundColor": "rgba(255,255,255, 0.8)"
}
}
{
"id" : 1,
"widget" : "gauge",
"topic" : prefix + "/" + deviceID + "/gauge1",
"class1" : "item no-border no-padding text-center",
"descr" : "maxValue 200",
"widgetConfig" : {
"type" : "semi",
"size" : 300,
"thick" : 20,
"maximum": 200,
"color" : "#11c1f3",
"backgroundColor": "rgba(0,0,0, 0.2)"
}
}