# Вывод виртуального устройства в виджет / создание списка ошибок

**URL:** <https://support.wirenboard.com/t/vyvod-virtualnogo-ustrojstva-v-vidzhet-sozdanie-spiska-oshibok/20980>\
**Category:** Без категории\
**Created:** [July 11, 2024, 9:19am UTC](https://support.wirenboard.com/t/vyvod-virtualnogo-ustrojstva-v-vidzhet-sozdanie-spiska-oshibok/20980 "2024-07-11T09:19:25Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Al-x](https://avatars.discourse-cdn.com/v2/letter/a/cdc98d/32.png) [@Al-x](https://support.wirenboard.com/u/Al-x)\
**Post date:** [July 11, 2024, 9:19am UTC](https://support.wirenboard.com/t/vyvod-virtualnogo-ustrojstva-v-vidzhet-sozdanie-spiska-oshibok/20980/1 "2024-07-11T09:19:25Z")

</div>

Добрый день! Вопрос: можно ли продублировать всё виртуальное устройство в какую-либо пользовательскую панель, выводя его в качестве виджета? При чём речь идёт не о ручном добавлении каждого поля в созданный виджет, а именно автоматический вывод. Или подскажите, пожалуйста, иное тех. красивое решение под требуемую задачу.

Я хочу сделать страницу ошибок системы. Ошибок много, десятки, если не сотня наберутся. Поэтому создавать свой Alarm под каждую и потом смотреть весь список - где красные, а где не активные - не очень удобно. Во всяком случае пока это как запасной вариант с разбивкой по подблокам.

А вот чтобы сделать единый список - не плохо подходят команды API управления устройством. Т.е. я создаю виртуальное устройство из правил, и добавляю к нему нужное количество контролов, что-то типа:

> **Спойлер**
>
> var UIControls1Id = defineVirtualDevice(“UIControls1”, {  
> title:“Кнопки управления (общая группа)”,  
> cells: {  
> “Alarm1”: {  
> type:“alarm”,  
> value: true,  
> title: “Очень очень очень очень очень очень длинный текст”,  
> },  
> “Alarm2”: {  
> type:“alarm”,  
> value: true,  
> title: “Очень очень очень очень очень очень длинный текст”,  
> },  
> “Text1”: {  
> type:“text”,  
> value: “Test”,  
> readonly: false  
> },  
> “Switch1”: {  
> type:“switch”,  
> value: 0  
> },  
> “Value1”: {  
> type:“text”,  
> value: “1”,  
> enum: {“0” : {“ru” : “123”}, “1” : {“ru” : “456”}},  
> readonly: false  
> }  
> }  
> });
> 
> var Testi = 1;
> 
> defineRule(“UIControlsAlarms”, {
> 
> ```
> whenChanged: ["UIControls1/Switch1"],
> then: function (newValue, devName, cellName) {
> UIControls1Id.removeControl("Alarm" + Testi);
> Testi++;
> UIControls1Id.addControl("Alarm" + Testi, {type:"alarm", value: true, title: "Очень очень очень очень очень очень длинный текст"});
> }
> 
> ```
> 
> });

(Я пока только тестирую, так что на суть кода внимание не обращайте - потом всё будет красиво в цикле, автоматически. Может даже буду выводить текст с датой и временем срабатывания, и снятия неисправностей, и даже скорее всего сделаю раздел истории). В разделе устройств всё выводиться нормально - alarmы красиво удаляются и создаются новые.

Проблема только в том, что не понимаю можно ли это виртуальное устройство запихать в виджет на нужной мне странице в динамичеком режиме.

Функцию лог не предлагать. Она подходит программистам, для пользователя не очень красива и понятна.  
PS: смотрел SCADы - что-то понравившееся платное и не дешевое. Ещё не смотрел Home Assistant - может там есть красивые решения под данные задачи, не знаю. Пытался пока понять как можно сделать красивые интерфейсы и сложные алгоритмы средствами из коробки. Всё же как пользователь я бы хотел делать стандартными средствами, а по вопросам обращаться в тех поддержку, а не искать что там где у стороннего разработчика не работает.

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [July 11, 2024, 12:21pm UTC](https://support.wirenboard.com/t/vyvod-virtualnogo-ustrojstva-v-vidzhet-sozdanie-spiska-oshibok/20980/3 "2024-07-11T12:21:54Z")

</div>

Добрый день.  
Пока не очень понятно что называете “виджетами” Виртуальные устройства?

---

<div class="post-metadata">

**Author:** ![Al-x](https://avatars.discourse-cdn.com/v2/letter/a/cdc98d/32.png) [@Al-x](https://support.wirenboard.com/u/Al-x)\
**Post date:** [July 11, 2024, 12:43pm UTC](https://support.wirenboard.com/t/vyvod-virtualnogo-ustrojstva-v-vidzhet-sozdanie-spiska-oshibok/20980/4 "2024-07-11T12:43:02Z")

</div>

У вас в вебинтерфейсе есть вкладка устройств, где выводятся все устройства.

А есть виджеты на других страницах, которые может формировать пользователь, в том числе отображая там каналы устройств.

Вот отсюда и вопрос - как вывести устройство на другой странице вебинтерфейса, отображая сразу все его каналы.

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [July 11, 2024, 2:37pm UTC](https://support.wirenboard.com/t/vyvod-virtualnogo-ustrojstva-v-vidzhet-sozdanie-spiska-oshibok/20980/5 "2024-07-11T14:37:55Z")

</div>

Понял, не был уверен. Нет, именно автоматически, программно/динамически - виджеты не формируются.  
Как правило для такого используют все же СКАДы или тот же HA: [Logbook card - Home Assistant](https://www.home-assistant.io/dashboards/logbook/)

---

<div class="post-metadata">

**Author:** ![Al-x](https://avatars.discourse-cdn.com/v2/letter/a/cdc98d/32.png) [@Al-x](https://support.wirenboard.com/u/Al-x)\
**Post date:** [July 11, 2024, 2:54pm UTC](https://support.wirenboard.com/t/vyvod-virtualnogo-ustrojstva-v-vidzhet-sozdanie-spiska-oshibok/20980/6 "2024-07-11T14:54:25Z")

</div>

К сожалению, так и подозревал.

Но если говорить про расширение, то нужно АПИ для виджетов, и АПИ для таблиц. Ибо то, что я спрашивал - своего рода костыль под задачу, а вот таблицы, равно как виджеты через АПИ - уже достаточно широкого применения опция. Надеюсь в будущем что-то подобное появится.

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [July 11, 2024, 2:56pm UTC](https://support.wirenboard.com/t/vyvod-virtualnogo-ustrojstva-v-vidzhet-sozdanie-spiska-oshibok/20980/7 "2024-07-11T14:56:07Z")

</div>

Да, периодически такой запрос возникает. Но, пожалуй оптимально это можно решить только разрешив программно описвывать произвольный HTML код…

---

<div class="post-metadata">

**Author:** ![Al-x](https://avatars.discourse-cdn.com/v2/letter/a/cdc98d/32.png) [@Al-x](https://support.wirenboard.com/u/Al-x)\
**Post date:** [July 11, 2024, 3:01pm UTC](https://support.wirenboard.com/t/vyvod-virtualnogo-ustrojstva-v-vidzhet-sozdanie-spiska-oshibok/20980/8 "2024-07-11T15:01:08Z")

</div>

В принципе, тоже вариант. Правда есть минусы - не очень грамотные пользователи могут интерфейс сломать - где-то скобочку пропустят или тег и полстраницы слетит)))  
Хотя если честно конечно - всё-таки я перехожу со своего контроллера на ваш, чтобы больше самому эти страницы не писать, а использовать готовые инструменты))))) но тем не менее согласен, что вариант рабочий.

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [July 11, 2024, 3:03pm UTC](https://support.wirenboard.com/t/vyvod-virtualnogo-ustrojstva-v-vidzhet-sozdanie-spiska-oshibok/20980/9 "2024-07-11T15:03:36Z")

</div>

Также возможен вариант задать (несколько) текстовых полей в svg и при необходимости выводить в них. Можно “аналог” textbox сделать. Но пожалуй запишу в пожелания необходимость такого функционала.  
Кстати, RapidScada - она бесплатная, например.

---

<div class="post-metadata">

**Author:** ![Al-x](https://avatars.discourse-cdn.com/v2/letter/a/cdc98d/32.png) [@Al-x](https://support.wirenboard.com/u/Al-x)\
**Post date:** [July 11, 2024, 3:21pm UTC](https://support.wirenboard.com/t/vyvod-virtualnogo-ustrojstva-v-vidzhet-sozdanie-spiska-oshibok/20980/10 "2024-07-11T15:21:09Z")

</div>

В рапидскаде мне скриншоты не понравились (((( какие-то перегруженные страницы, столбики, и ради списка неисправностей того не стоит. Да, возможно она мне не понравилась, поэтому и не обратил внимание, но я не увидел примеров написания автоматизации на ней. Что-то более менее вменяемое я нашел в интерскаде - и движок скриптов, и картинки и графики более менее симпатичные, но ценник в 86тыс для автоматизации дома как-то слишком дорого. Я Пока сделаю на правилах, раскидав списки алармов по виджетам в тематических разделах, а в будущем может с HA подумаю. Ещё нужно будет думать как Алису сюда запрячь, поэтому может к НА и прийду. А может и у вас что появится к тому времени.
