{"id":7860,"date":"2022-03-22T17:29:30","date_gmt":"2022-03-22T16:29:30","guid":{"rendered":"http:\/\/documentation-wp.hub.av.priv\/aurora-vision-apis\/user-guide\/status-management\/"},"modified":"2022-06-04T17:10:47","modified_gmt":"2022-06-04T16:10:47","slug":"status-management","status":"publish","type":"page","link":"http:\/\/documentation-wp.hub.av.priv\/es\/aurora-vision-apis\/user-guide\/status-management\/","title":{"rendered":"Gesti\u00f3n Estado Error"},"content":{"rendered":"\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Cualquier entidad registrada en Aurora Vision se caracteriza por un <code>Status<\/code> que permite identificar la presencia de eventos de error activos.<\/p>\n\n\n\n<p>Aurora Vision es capaz de evaluar el estado de una planta, y en consecuencia de todas las entidades registradas en ella, solo si la planta est\u00e1 correctamente asociada a un perfil de evaluaci\u00f3n de errores. Cualquier planta registrada en una cartera se asignar\u00e1 autom\u00e1ticamente al perfil de error predeterminado creado por Aurora Vision; sin embargo, el administrador de una cartera siempre tiene la posibilidad de crear diferentes perfiles de error de forma personalizada y estos \u00faltimos pueden asociarse a diferentes plantas. En \u00faltima instancia, por lo tanto, puede haber plantas que tengan diferentes evaluaciones porque est\u00e1n asociadas con diferentes perfiles de error.<\/p>\n\n\n\n<p>Dividiremos este cap\u00edtulo en varias p\u00e1ginas para proporcionar una visi\u00f3n completa y coherente de c\u00f3mo funciona el control de errores: <\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<ul><li>En <strong>P\u00e1gina<\/strong> <strong>2<\/strong> analizaremos la estructura del perfil de error predeterminado y las categor\u00edas que contiene;<\/li><li>En <strong>P\u00e1gina<\/strong> <strong>3<\/strong> analizaremos las principales categor\u00edas de error existentes en Aurora Vision, brindando una visi\u00f3n general;<\/li><li>En <strong>P\u00e1gina<\/strong> <strong>4<\/strong> analizaremos las API que permiten evaluar el estado y los eventos de error de diferentes entidades de niveles jer\u00e1rquicos;<\/li><\/ul>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<!--nextpage-->\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2>Estructura General de los Perfiles de Error<\/h2>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Para brindar mayor claridad, analizaremos el perfil de error predeterminado que crea Aurora Vision para cada portfolio (<em>que no se puede editar<\/em> ).<\/p>\n\n\n\n<p>En Aurora Vision, un perfil de error siempre se identifica con un <strong>Nombre<\/strong>, un <strong>Acr\u00f3nimo<\/strong> y un <strong>Creador<\/strong> y contiene dentro de \u00e9l una serie de <strong>Categor\u00edas de Error<\/strong> las cuales tienen como finalidad evaluar la presencia de eventos de error para las plantas a las que se les asigna el perfil generando as\u00ed la activaci\u00f3n de eventos<code> Profile<\/code> :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/AV_error_profiles-2-1024x408.jpg\" alt=\"\" class=\"wp-image-7082\" width=\"1024\" height=\"408\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/AV_error_profiles-2-1024x408.jpg 1024w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/AV_error_profiles-2-300x119.jpg 300w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/AV_error_profiles-2-768x306.jpg 768w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/AV_error_profiles-2.jpg 1236w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>El administrador de un portfolio, seg\u00fan sus necesidades y las plantas a las que debe asociar el perfil de error, tiene total libertad para crear perfiles de error y a\u00f1adir categor\u00edas de error espec\u00edficas dentro del mismo y tambi\u00e9n puede decidir los par\u00e1metros de evaluaci\u00f3n para cada uno de los categor\u00edas de error.<\/p>\n\n\n\n<p>Hay 4 par\u00e1metros principales que se pueden editar:<\/p>\n\n\n\n<ul><li><strong>Tiempo Transcurrido<\/strong>: indica el tiempo que debe transcurrir antes de que Aurora Vision, una vez detectado el error, lo levante para mostrarlo como activo a los niveles jer\u00e1rquicos correspondientes. El valor m\u00ednimo que se puede asignar, para evitar la activaci\u00f3n de falsos errores, es de 15 minutos;<\/li><li><strong>Evaluaci\u00f3n<\/strong>: indica la ventana de tiempo en la que Aurora Vision evaluar\u00e1 la presencia o ausencia de errores relacionados con esa categor\u00eda en particular, de acuerdo con los par\u00e1metros establecidos. Se pueden elegir diferentes ventanas de tiempo, pero se debe tener en cuenta que fuera de la ventana definida Aurora Vision no evaluar\u00e1 esa categor\u00eda de error espec\u00edfica perteneciente a ese perfil de error;<\/li><li><strong>Gravedad<\/strong>:indica la gravedad del error, que se asigna uno a uno con el <code>Status<\/code> de la entidad jer\u00e1rquica afectada por el error. Hay 4 niveles de gravedad: <code>INFO <\/code>(<em>evento informativo<\/em> ), <code>LOW <\/code>(<em>evento de baja gravedad<\/em> ), <code>MEDIUM <\/code>(<em>evento de gravedad media<\/em> ), <code>HIGH <\/code>(<em>evento de gravedad alta<\/em> );<\/li><li><strong>Umbral<\/strong>: el evento de error se activa solo si se supera el umbral indicado. Este par\u00e1metro no est\u00e1 presente para todas las categor\u00edas de errores (<em>para obtener m\u00e1s detalles, consulte la P\u00e1gina 3<\/em> ).<\/li><\/ul>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Por ejemplo, el error <code>Power Off<\/code> (<code>PWROFF<\/code>) se compone de los siguientes par\u00e1metros:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"120\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/AV_error_profiles_PWROFF-1024x120.jpg\" alt=\"\" class=\"wp-image-7120\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/AV_error_profiles_PWROFF-1024x120.jpg 1024w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/AV_error_profiles_PWROFF-300x35.jpg 300w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/AV_error_profiles_PWROFF-768x90.jpg 768w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/AV_error_profiles_PWROFF.jpg 1103w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul><li><strong>Elapsed Time<\/strong>: 8 hours<\/li><li><strong>Evaluation<\/strong>: During Daylight &#8211; 2 hours after sunrise and before sunset<\/li><li><strong>Severity<\/strong>: MEDIUM<\/li><li><strong>Threshold<\/strong>: 100 W\/m<sup>2<\/sup><\/li><\/ul>\n\n\n\n<p>Esto significa que Aurora Vision evaluar\u00e1 la presencia de un evento de error <code>PWROFF <\/code>solo durante el d\u00eda, dos horas despu\u00e9s del amanecer y dos horas antes del atardecer; activar\u00e1 el error solo si el umbral supera los 100 W\/m<sup>2<\/sup> y lo har\u00e1 8 horas despu\u00e9s de la detecci\u00f3n, llevando el <code>Status <\/code>de las entidades jer\u00e1rquicas afectadas a <code>MEDIUM<\/code>, de acuerdo con la severidad configurada.<\/p>\n\n\n\n<p>Los perfiles de error siempre se asignan a las plantas y, en consecuencia, el <code>Status <\/code>de una entidad solo puede cambiar a partir de este nivel jer\u00e1rquico; sin embargo, hay categor\u00edas de error evaluadas solo a Plant level (<code>LVL 3<\/code>) y\/o a the Logger level (<code>LVL 4<\/code>) y\/o a Device level (<code>LVL 5<\/code>). Cuando se identifica y activa un error en un determinado nivel jer\u00e1rquico, se propaga a todas las entidades jer\u00e1rquicamente superiores (<em><em>desde el nivel de planta en adelante<\/em><\/em> ) y esto significa que el <code>Status <\/code>de estas entidades se cambia uniformemente.<\/p>\n\n\n\n<p>Veamos un ejemplo:<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns alignwide\">\n<div class=\"wp-elements-1 wp-block-column has-text-color has-background has-link-color\" style=\"background-color:#eeeeee;color:#000000;padding-top:2em;padding-right:2em;padding-bottom:2em;padding-left:2em\">\n<h2 class=\"has-medium-font-size\" id=\"single\">Propagaci\u00f3n Jer\u00e1rquica del Estado de Entidades<\/h2>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Tomemos como ejemplo una parte del esquema jer\u00e1rquico del cap\u00edtulo \u00abEstructura jer\u00e1rquica\u00bb y supongamos que la <strong>Plant 1<\/strong> ha sido asignada al perfil de error por defecto:<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"515\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/hierarchy_truncated-2-1024x515.png\" alt=\"\" class=\"wp-image-7374\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/hierarchy_truncated-2-1024x515.png 1024w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/hierarchy_truncated-2-300x151.png 300w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/hierarchy_truncated-2-768x386.png 768w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/hierarchy_truncated-2.png 1396w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><br>Para <strong>Inverter 1<\/strong>, en un momento determinado, se activ\u00f3 un error <code>PWROFF<\/code> ; esto significa que su <code>Status <\/code>ha pasado de <code>NORMAL <\/code>(<em>sin errores<\/em> ) a <code>MEDIUM<\/code> (<em>seg\u00fan el gravedad asignada por el perfil predeterminado al error PWROFF <\/em>).<br>Sin embargo, <strong>Inverter 1<\/strong> es parte de una jerarqu\u00eda que, si se subes, se compone de <strong>Logger 1<\/strong> y <strong>Plant 1<\/strong>.<br>En consecuencia, recordando que se asigna un perfil de error a partir del nivel de jerarqu\u00eda de la planta, el <code>Status <\/code>de <strong>Logger 1<\/strong> y <strong>Plant 1<\/strong> tambi\u00e9n ha pasado de <code>NORMAL <\/code>a <code>MEDIUM<\/code>.<\/p>\n<\/div>\n<\/div>\n\n\n\n<p>El ejemplo anterior nos hace entender que un resumen evaluaci\u00f3n de la presencia\/ausencia de errores se puede realizar directamente en el nivel jer\u00e1rquico de la planta. Habr\u00e1 m\u00e1s detalles disponibles en la <strong>P\u00e1gina 4<\/strong>, donde analizaremos un ejemplo concreto de la API <code>GET Plant Status<\/code>.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<!--nextpage-->\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2>Descripci\u00f3n de Categor\u00edas de Errores<\/h2>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>La activaci\u00f3n de un error, perteneciente a cualquier categor\u00eda definida en un Perfil de Error, puede depender de la presencia\/ausencia de datos y\/o eventos fuente. Por lo tanto, los eventos de error de <code>Profile<\/code> se pueden activar cuando se detectan condiciones espec\u00edficas en los datos o cuando un dispositivo comunica a Aurora Vision la identificaci\u00f3n de un evento de error de <code>Source<\/code> (<em>es decir un error de m\u00e1quina identificado por un dispositivo y enviado a Aurora Vision, que lo modelar\u00e1 en funci\u00f3n del dispositivo que lo envi\u00f3<\/em>) que se encuentra en una de las categor\u00edas de error de perfil.<\/p>\n\n\n\n<p>Las siguientes son las categor\u00edas de errores cuya evaluaci\u00f3n depende de condiciones espec\u00edficas detectadas en los datos (<em>disponible solo en Ingl\u00e9s<\/em>):<\/p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><strong>Category Error<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><strong>Description<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><strong>Default Status<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><strong> <\/strong><strong>Hierarchical Evaluation<\/strong><\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><code>NOTCOM<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">One or more devices have been correctly registered on Aurora Vision, but they haven&#8217;t communicated yet.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><code>INFO<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">Plant Level<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><code>LOGCOM<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">Aurora Vision&#8217;s has not received any data from the inverter (<em>or logger<\/em>) for the configured timeout. Devices events will not be evaluated until communication with Aurora Vision is re-established.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><code>HIGH<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">Logger\/Device Level<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><code>DEVCOM<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">The device (<em>e.g. meter, weather station, battery&#8230;<\/em>) has not communicated with the inverter (<em>or logger<\/em>) for the configured timeout. Device events will not be evaluated until device communication is re-established.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><code>MEDIUM<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">Device Level<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><code>PWROFF<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">The inverter has not produced power for the Elapsed Time duration, while irradiance remains above the Irradiance Threshold. If the plant does not have a functioning irradiance sensor, only the Elapsed Time will be used to trigger this event.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><code>MEDIUM<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">Device Level<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><code>STROFF<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">A String Off State has been detected on this string. No current was produced by the string over a period of time when the average current output of all strings at the plant was above the threshold value.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><code>MEDIUM<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">Device Level<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><code>STRLOW<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">A String Low State has been detected for the string. The current produced by the string was low, compared to the average current output of all strings at the plant, over a period of time when the average was above the threshold value.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><code>MEDIUM<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">Device Level<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><code>SUBOFF<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">An OFF state has been detected for the sub-array. No current was produced over a period of time when the average current output, of all sub-arrays on the combiner, was above the threshold value.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><code>MEDIUM<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">Device Level<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><code>PR-RNG<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">An Out-of-Range state has been detected. The Performance Ratio of the plant was detected out of range for a configured timeout.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\"><code>LOW<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-center\">Plant Level<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\"\/>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Todas las dem\u00e1s categor\u00edas de errores se eval\u00faan en funci\u00f3n de la presencia de eventos de origen comunicados directamente por el dispositivo a Aurora Vision. Independientemente del tipo de evaluaci\u00f3n realizada, la activaci\u00f3n de un error de perfil siempre est\u00e1 sujeta a las reglas establecidas para la categor\u00eda de error espec\u00edfica definida en el perfil de error.<\/p>\n\n\n\n<p>Puede descargar el Excel<sup>TM<\/sup> file de todas las categor\u00edas de errores, con su descripci\u00f3n, a continuaci\u00f3n:<\/p>\n\n\n\n<div class=\"wp-block-columns alignwide has-background\" style=\"background-color:#ffe97d\">\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<p class=\"has-text-align-left\"><strong>Aurora Vision Error Categories &#8211; Description File<\/strong><br>\u00daltima Actualizaci\u00f3n: 05\/05\/2022<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center\">\n<div class=\"wp-container-2 wp-block-buttons\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-100 is-style-fill\"><a class=\"wp-block-button__link\" href=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/AV_error_categories_REV2022.05.05.xlsx\" style=\"border-radius:0px\" target=\"_blank\" rel=\"noreferrer noopener\" download=\"AV_error_categories_REV2022.05.05.xlsx\">\u2b73\u00a0\u00a0\u00a0Download Excel File<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<!--nextpage-->\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2>Estado de Entidades y Evaluaci\u00f3n de Eventos de Error<\/h2>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Como se mencion\u00f3 en la <strong>P\u00e1gina<\/strong> <strong>2<\/strong>,los perfiles de error siempre se asignan a las plantas y, en consecuencia, el <code>Status <\/code>de una entidad solo puede cambiar a partir de este nivel jer\u00e1rquico. Cuando se identifica y activa un evento de error en un determinado nivel jer\u00e1rquico, se propaga a todas las entidades jer\u00e1rquicamente superiores (<em>desde el nivel de planta en adelante<\/em>) y esto significa que el <code>Status <\/code>de estas entidades cambia uniformemente; este comportamiento se identifica como el principio de propagaci\u00f3n de estado jer\u00e1rquico.<\/p>\n\n\n\n<p>La API <code>GET Status<\/code> API permite obtener el <code>Status <\/code>ode una <code>Plant<\/code>, <code>Logger<\/code> y\/o <code>Device <\/code>(<em>dependiendo del nivel jer\u00e1rquico y de la suite<\/em>).<br>La peculiaridad de esta API es su respuesta din\u00e1mica: siempre devuelve la explosi\u00f3n de todas las entidades jer\u00e1rquicamente inferiores cuyo <code>Status<\/code> es diferente de <code>NORMAL<\/code>, lo que indica cu\u00e1les se ven afectados por eventos de error activos (<span style=\"text-decoration: underline;\">pero no el tipo de error de evento real<\/span>).<\/p>\n\n\n\n<p>omemos el siguiente esquema jer\u00e1rquico como ejemplo y supongamos que queremos verificar el <code>Status <\/code>de la <strong>Plant 1<\/strong>, para comprender si puede haber alg\u00fan evento de error activo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"515\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/hierarchy_truncated-3-1024x515.png\" alt=\"\" class=\"wp-image-7382\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/hierarchy_truncated-3-1024x515.png 1024w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/hierarchy_truncated-3-300x151.png 300w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/hierarchy_truncated-3-768x386.png 768w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/hierarchy_truncated-3.png 1396w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>En el nivel jer\u00e1rquico de la planta, llamemos a la API <code>GET Plant Status<\/code> :<\/p>\n\n\n\n<p><code>https:\/\/api.auroravision.net\/api\/rest\/v1\/plant\/{entityID}\/status<\/code><\/p>\n\n\n\n<p>Si no hay un evento de error activo, obtendremos una respuesta en la que el <code>Status <\/code>de <strong>Plant 1<\/strong> ser\u00e1 igual a <code>NORM <\/code>(que es equivalente a <code>NORMAL<\/code>):<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/plant_status_NORMAL-1.png\" alt=\"\" class=\"wp-image-7350\" width=\"256\" height=\"138\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/plant_status_NORMAL-1.png 512w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/plant_status_NORMAL-1-300x162.png 300w\" sizes=\"(max-width: 256px) 100vw, 256px\" \/><\/figure>\n\n\n\n<p>Si existe al menos un evento de error activo, significa que al menos uno de los dispositivos registrados en la <strong>Plant 1<\/strong>, que por tanto son hijos jer\u00e1rquicos de esta \u00faltima, tiene asociado un evento de error activo; en este caso, la respuesta de la API se adapta din\u00e1micamente explotando el <code>Status <\/code>de la <strong>Plant 1<\/strong> pero tambi\u00e9n de todas aquellas entidades secundarias jer\u00e1rquicas cuyo <code>Status <\/code>es diferente de <code>NORM<\/code>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/plant_status_exploded-2.png\" alt=\"\" class=\"wp-image-7390\" width=\"440\" height=\"428\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/plant_status_exploded-2.png 880w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/plant_status_exploded-2-300x292.png 300w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/plant_status_exploded-2-768x747.png 768w\" sizes=\"(max-width: 440px) 100vw, 440px\" \/><\/figure>\n\n\n\n<p>Podemos ver como la respuesta ahora est\u00e1 m\u00e1s estructurada y como el Status de la <strong>Plant 1<\/strong> ahora es igual a <code>MEDIUM<\/code>, s\u00edntoma de que alg\u00fan evento de error est\u00e1 activo para algunos entidades de menor nivel jer\u00e1rquico. Este evento de error est\u00e1 activo para <strong>Inverter 1<\/strong>, porque la API nos proporciona una respuesta ampliada para todos los niveles jer\u00e1rquicos que van desde <strong>Plant 1<\/strong> (<code>LVL 3<\/code>) al <strong>Inverter 1<\/strong> (<code>LVL 5<\/code>). Por lo tanto, el <code>Status <\/code>de las tres entidades es igual a <code>MEDIUM<\/code>, debido al principio de propagaci\u00f3n jer\u00e1rquica que mencionamos en la parte superior de la p\u00e1gina.<\/p>\n\n\n\n<p>El principio de manejar una respuesta din\u00e1mica por una API <code>GET Status<\/code> tambi\u00e9n est\u00e1 presente en los niveles jer\u00e1rquicos m\u00e1s bajos.<br>Si para el ejemplo anterior vamos a llamar al<code> GET Logger Status<\/code>, la respuesta devuelta ser\u00e1:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/logger_status_exploded-1.png\" alt=\"\" class=\"wp-image-7493\" width=\"427\" height=\"293\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/logger_status_exploded-1.png 854w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/logger_status_exploded-1-300x206.png 300w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/04\/logger_status_exploded-1-768x527.png 768w\" sizes=\"(max-width: 427px) 100vw, 427px\" \/><\/figure>\n\n\n\n<p>Podemos ver como la respuesta tiene exactamente la misma estructura que la obtenida con la API <code>GET Plant Status<\/code> , donde tanto <strong>Logger 1<\/strong> como <strong>Inverter 1<\/strong> tienen su <code>Status <\/code>igual a <code>MEDIUM<\/code>. La \u00fanica diferencia es la presencia de un nivel jer\u00e1rquico menos (<em>porque tenemos recursos espec\u00edficos de un nivel jer\u00e1rquico m\u00e1s bajo<\/em>).<\/p>\n\n\n\n<p>Por lo tanto, hemos visto c\u00f3mo se aplica el principio de propagaci\u00f3n jer\u00e1rquica: cualquier dispositivo que tenga un evento de error activo, que provoque que su <code>Status <\/code>sea diferente de <code>NORMAL<\/code>, cambia simult\u00e1neamente el <code>Status <\/code>de todas las entidades jer\u00e1rquicamente superiores (<em>desde el nivel de planta en adelante<\/em>). Esto permite discriminar inmediatamente la presencia o ausencia de errores simplemente explotando la API <code>GET Plant Status<\/code>.<\/p>\n\n\n\n<p>Obviamente, una vez que hemos comprobado la presencia de eventos de error, nos interesa saber cu\u00e1les son esos eventos de error. Para ello podemos utilizar la API <code>GET Events <\/code>que permite obtener los eventos de error de una <code>Plant<\/code>, <code>Logger<\/code> y\/o <code>Device <\/code>(<em>dependiendo del nivel jer\u00e1rquico que nos interese<\/em>) con filtrado avanzado en: categor\u00eda, tipo, estado y ocurrencia.<\/p>\n\n\n\n<p>Echemos un vistazo a la solicitud de API completa y luego divid\u00e1mosla para analizarla en detalle:<\/p>\n\n\n\n<p><code>https:\/\/api.auroravision.net\/api\/rest\/v1\/{plant,logger,device}\/{entityID}\/events?eventsKind={Profile,Source}&amp;eventsType={eventsType}&amp;eventsState={ALL,ACTIVE,CLOSED}&amp;eventsOccurrence={H24,D7,D30}&amp;page={pageNumber}<\/code><\/p>\n\n\n\n<p>El <code>path<\/code>, que le permite apuntar a los recursos deseados, siempre requiere el <code>{entityID}<\/code> y, seg\u00fan el nivel jer\u00e1rquico y la suite en la que se encuentre, puede ser un <code>Plant<\/code>, <code>Logger<\/code> o <code>Device<\/code> EID:<\/p>\n\n\n\n<p><code>https:\/\/api.auroravision.net\/api\/rest\/v1\/{plant,logger,device}\/{entityID}\/events<\/code><\/p>\n\n\n\n<p>La API siempre requiere el par\u00e1metro de consulta <code>{eventsKind}<\/code> para discriminar el tipo de eventos de error a llamar.<br>Este par\u00e1metro puede tener dos valores diferentes:<\/p>\n\n\n\n<ul><li><code>Profile<\/code>: permite obtener eventos de error tipo perfil, es decir, aquellos que son activados por Aurora Vision en base al perfil de error, con sus reglas configuradas, asociado a la planta considerada (<em>o para uno de los dispositivos jer\u00e1rquicamente hijos de este \u00faltimo<\/em>)<\/li><li><code>Source<\/code>: permite obtener eventos de error de tipo fuente, es decir, errores de m\u00e1quina identificados por un dispositivo y que luego se comunican a Aurora Vision (<em>que los modela en funci\u00f3n del dispositivo que los envi\u00f3<\/em>)<\/li><\/ul>\n\n\n\n<p>Dijimos anteriormente que la activaci\u00f3n de un error, perteneciente a cualquier categor\u00eda definida en un Perfil de Error, puede depender de la presencia\/ausencia de datos y\/o eventos fuente. Los eventos de error de <code>Profile <\/code>se pueden activar cuando se dan condiciones espec\u00edficas se detectan en los datos o cuando un dispositivo comunica a Aurora Vision la identificaci\u00f3n de un evento de error <code>Source <\/code>que cae en una de las categor\u00edas de error de perfil. Teniendo en cuenta que los eventos de origen son m\u00e1s dif\u00edciles de entender que los de perfil, porque est\u00e1n compuestos por abreviaturas que pueden variar de un dispositivo a otro, y que Aurora Vision gestiona impl\u00edcitamente el modelado de estos eventos en categor\u00edas de error para activar el error de perfil correcto. evento, es recomendable siempre filtrar la API de la siguiente manera:<\/p>\n\n\n\n<p><code>https:\/\/api.auroravision.net\/api\/rest\/v1\/{plant,logger,device}\/{entityID}\/events?eventsKind=Profile<\/code><\/p>\n\n\n\n<p>Aunque el resto de los <code>queryParameters <\/code>no son necesarios para obtener una respuesta, cuando se trabaja con eventos de error siempre es \u00fatil poder filtrar tipo, ocurrencia y estado:<\/p>\n\n\n\n<ul><li><code>eventsType<\/code>: permite filtrar el tipo de eventos de error de perfil; solo se puede filtrar un tipo de evento de error a la vez (para obtener una tabla completa sobre los tipos de eventos de error, consulte la <strong>P\u00e1gina<\/strong> <strong>4<\/strong>). Si no se inserta en la API, se devolver\u00e1n todos los tipos de eventos;<\/li><li><code>eventsOccurrence<\/code>: permite filtrar la ocurrencia de eventos de error; los valores aceptados son <code>24H<\/code>, para una ventana de tiempo de 24 horas, <code>7D<\/code>, para una ventana de tiempo de 7 d\u00edas, o <code>30D<\/code>, para una ventana de tiempo de 30 d\u00edas. Si no se inserta en la API, se devolver\u00e1n todos los eventos que cubren la vida \u00fatil de la planta;<\/li><li><code>eventsState<\/code>: permite filtrar el estado de los eventos de error; los valores aceptados son <code>ACTIVE<\/code>, para eventos activos que por tanto no tuvieron una singularidad temporal de cierre, <code>CLOSED<\/code>, para eventos cerrados, o <code>ALL<\/code>, para solicitar eventos activos y cerrados al mismo tiempo. Si no se inserta en la API, se devolver\u00e1n todos los eventos activos y cerrados;<\/li><\/ul>\n\n\n\n<p>En este punto, tenemos todas las herramientas para comprender qu\u00e9 eventos de error est\u00e1n activos para <strong>Plant 1<\/strong>:<\/p>\n\n\n\n<p><code>https:\/\/api.auroravision.net\/api\/rest\/v1\/plant\/12345678\/events?eventsKind=Profile&amp;eventsOccurrence=24H&amp;eventsState=ACTIVE<\/code><\/p>\n\n\n\n<p>Nos ubicamos en el nivel jer\u00e1rquico <code>planta<\/code>, ingresando el EID de Plant 1 (<code>12345678<\/code>), solicitando eventos de error <code>ACTIVE <\/code>en las \u00faltimas <code>24H<\/code>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" src=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/05\/error_events_response_active-862x1024.png\" alt=\"\" class=\"wp-image-7601\" width=\"431\" height=\"512\" srcset=\"http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/05\/error_events_response_active-862x1024.png 862w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/05\/error_events_response_active-253x300.png 253w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/05\/error_events_response_active-768x912.png 768w, http:\/\/documentation-wp.hub.av.priv\/wp-content\/uploads\/2022\/05\/error_events_response_active.png 896w\" sizes=\"(max-width: 431px) 100vw, 431px\" \/><\/figure>\n\n\n\n<p>Podemos ver en la respuesta que dos eventos de error de tipo de perfil est\u00e1n activos: un <code>DEVCOM <\/code>para <strong>Inverter 1<\/strong> y un <code>LOGCOM <\/code>para <strong>Logger 1<\/strong>. Los dos eventos de error se activan en momentos diferentes y, en referencia a las definiciones, podemos suponer que <strong>Inverter 1<\/strong> dej\u00f3 de enviar datos al <strong>Logger 1<\/strong> en <code>eventStart<\/code>; este \u00faltimo todav\u00eda se comunicaba correctamente con Aurora Vision, pero posteriormente dej\u00f3 de hacerlo en <code>eventStart<\/code>.<\/p>\n\n\n\n<p>El principio de propagaci\u00f3n jer\u00e1rquica de estados tambi\u00e9n es v\u00e1lido para este tipo de API, confirmando as\u00ed que cuando se identifica y activa un evento de error en un determinado nivel jer\u00e1rquico, se propaga a todas las entidades jer\u00e1rquicamente superiores; esto significa que un evento de error que afecta a un dispositivo tambi\u00e9n se muestra a nivel jer\u00e1rquico de la planta, como podemos percibir claramente en el ejemplo anterior.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Cualquier entidad registrada en Aurora Vision se caracteriza por un Status que permite identificar la presencia de eventos de error activos. Aurora Vision es capaz de evaluar el estado de una planta, y en consecuencia de todas las entidades registradas en ella, solo si la planta est\u00e1 correctamente asociada a un perfil de evaluaci\u00f3n de [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":1797,"menu_order":10,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"http:\/\/documentation-wp.hub.av.priv\/es\/wp-json\/wp\/v2\/pages\/7860"}],"collection":[{"href":"http:\/\/documentation-wp.hub.av.priv\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/documentation-wp.hub.av.priv\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/documentation-wp.hub.av.priv\/es\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/documentation-wp.hub.av.priv\/es\/wp-json\/wp\/v2\/comments?post=7860"}],"version-history":[{"count":95,"href":"http:\/\/documentation-wp.hub.av.priv\/es\/wp-json\/wp\/v2\/pages\/7860\/revisions"}],"predecessor-version":[{"id":10412,"href":"http:\/\/documentation-wp.hub.av.priv\/es\/wp-json\/wp\/v2\/pages\/7860\/revisions\/10412"}],"up":[{"embeddable":true,"href":"http:\/\/documentation-wp.hub.av.priv\/es\/wp-json\/wp\/v2\/pages\/1797"}],"wp:attachment":[{"href":"http:\/\/documentation-wp.hub.av.priv\/es\/wp-json\/wp\/v2\/media?parent=7860"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}