El árbol de activos indica qué contiene qué. Las relaciones dicen más: qué controlador gestiona una bomba, qué bomba alimenta un depósito, qué cámara vigila una puerta. Una relación enlaza dos extremos, cada uno un activo o un dispositivo, con un tipo y una dirección.
Tipos de relación
| Tipo | Se lee como | Ejemplo |
|---|---|---|
| Contains | de un activo a un dispositivo | Room 1 contains Sensor 4. Esta es la ubicación del dispositivo. |
| Manages | A gestiona B | Un controlador gestiona una bomba |
| Feeds | A alimenta a B | Pump 2 feeds Tank 1; un SAI alimenta un sitio |
| Monitors | A monitorea B | Una cámara monitorea una puerta |
| Propio | según lo definas | BACKS_UP, SERVES, METERS |
Tus tipos propios tienen de 1 a 32 caracteres: una letra al principio, luego letras, dígitos y _. Se guardan en mayúsculas.
Reglas:
- Una relación va en una dirección: de un extremo al otro. «Pump 2 feeds Tank 1» no es lo mismo que «Tank 1 feeds Pump 2».
- Una relación necesita dos extremos distintos: «A relation needs two different ends.»
- La misma relación (mismos extremos, mismo tipo) existe solo una vez: «Esta relación ya existe.»
- Contains solo va de un activo a un dispositivo, y es la ubicación del dispositivo: una por dispositivo. Defínela con la ubicación, no como relación. Consulta Colocar dispositivos.
- Un activo dentro de otro activo nunca es una relación: muévelo en su lugar («Un activo dentro de otro activo se define moviéndolo, no con una relación CONTAINS.»).
- Una relación puede llevar hasta 20 claves (4 KiB) de información adicional, por ejemplo el tamaño de una tubería.
Ver relaciones
Abre un activo en Sitios y activos. La sección Relaciones del panel lateral muestra las relaciones hacia y desde el activo:
| Columna | Muestra |
|---|---|
| Relación | El tipo |
| Desde | El primer extremo, Activo o Dispositivo, con su nombre |
| Hasta | El otro extremo |
Usa Buscar relaciones para encontrar una, y Eliminar relación para borrarla (necesitas Gestionar relaciones y ubicación de dispositivos). «No relations.» significa que no hay ninguna.
Crear relaciones
Las relaciones distintas de las ubicaciones se crean a través de la API:
POST /tenant/<tenantId>/api/iot/relations
{ "fromType": "DEVICE", "fromId": "<pump id>", "toType": "DEVICE", "toId": "<tank id>", "type": "FEEDS" }
Los extremos son ASSET o DEVICE. Enuméralas con GET /api/iot/relations?entityType=DEVICE&entityId=<id> (en ambos sentidos) y bórralas con DELETE /api/iot/relations/<relationId>. Consulta API de sitios y activos. Algunas soluciones preparadas crean sus relaciones al instalarlas, por ejemplo un SAI que alimenta un sitio remoto.
Al eliminar un activo se terminan sus relaciones. Un dispositivo es distinto: un dispositivo que está ubicado o tiene alguna relación no puede eliminarse («The device is still in use by 1 asset placement or relation (iot_asset).»). Elimina primero su ubicación y sus relaciones.
Usar relaciones en paneles
Un parámetro de panel puede elegir sus entidades Relacionadas con otro parámetro o entidad: por ejemplo «los dispositivos que gestiona un controlador», o «cada dispositivo bajo este sitio» mediante Contains. Eliges el tipo de relación, la dirección y cuántos niveles seguir (de 1 a 10). Consulta Fuentes de datos y parámetros.
La plantilla Sites usa esto para ofrecer los dispositivos de un sitio en su selector Device: sigue Contains desde el sitio hacia abajo, hasta 10 niveles.
Usar relaciones en flujos
El bloque Related data añade datos de activos y dispositivos relacionados a un mensaje:
| Ajuste | Significado |
|---|---|
| dirección | desde el dispositivo del mensaje (lo que gestiona, sus hijos) o hasta él (sus padres, quién lo gestiona) |
| tipos de relación | por defecto Contains; cualquier tipo, o ninguno para cualquiera |
| profundidad | de 1 a 8 niveles |
| tipo de entidad, tipos, perfiles | conservar solo activos, solo dispositivos, activos de algunos tipos, dispositivos de algunos perfiles |
| datos | atributos, últimos valores (dispositivos) o campos (nombre, tipo, código, …) |
En los flujos, el árbol de activos cuenta como relaciones Contains de cada padre a sus hijos, y una ubicación es Contains del activo al dispositivo. Así, hasta, Contains, 3 niveles, solo último nivel, tipo SITE encuentra el sitio de un dispositivo tres niveles arriba. Consulta Bloques de datos IoT.
Ejemplos
| Objetivo | Relaciones |
|---|---|
| Mostrar las bombas de un depósito en la página del depósito | Bomba Feeds Depósito; un parámetro «relacionado con el depósito, dirección hasta, tipo Feeds» |
| Añadir la tarifa del sitio a cada lectura de contador | Contadores ubicados bajo el sitio; atributo del sitio tariff; bloque Related data hacia el sitio |
| Saber qué cámara vigila un sensor de puerta | Cámara Monitors sensor de puerta |
| Un controlador con sus sensores | Controlador Manages cada sensor |

