Sensores y unidades

RBgrid mide a través de dos capas:

  • Sensores: los canales físicos que el hub puede ver. En un hub v1.1.x son los canales de los módulos I²C rbAmp: una entrada de tensión y uno o más canales de corriente por módulo. No hay ADC integrado; los módulos miden y el hub los lee por I²C.
  • Unidades: los puntos de medición que crea al vincular un canal. Una unidad tiene identidad, nombre, función, estadísticas e historial propios. Mover una unidad a otro canal (rebind) conserva su id, su nombre, su historial y su ranura de historial.

No necesita escribir código para añadir un sensor o una unidad. Los canales aparecen solos cuando se conecta un módulo; convierte un canal en unidad desde la aplicación web o la API REST en tiempo de ejecución.

Sensores: los canales físicos

Se listan todos los canales de un módulo conectado, estén o no en uso. Un canal que no está vinculado a una unidad está simplemente free: no produce datos, no se suma y no genera alertas. Un módulo puede usarse con cualquier subconjunto de sus canales, en cualquier orden.

Cada canal lleva:

  • ch_label: el canal tal como está impreso en la carcasa del módulo: I0, I1, … para los canales de corriente (numerados desde 0), V para la entrada de tensión del módulo, y L1–L3 en un módulo que reconoce fases.
  • Modelo de CT: para un canal de corriente, el modelo de transformador de corriente en uso (ct_code / ct_name legible, por ejemplo SCT-013-050, 50 A; ct_name se omite cuando el modelo es desconocido) y los límites del módulo para él. En la aplicación es el Current sensor del punto. En un módulo que admite una pinza CT a elegir, usted configura el modelo (véase Choosing the CT model más abajo); en un módulo cuyo CT viene emparejado de fábrica con el canal, el modelo está fijado.
  • Estado de corrección: si el módulo ha aplicado su corrección para el modelo de CT elegido. Si no lo ha hecho (readings not corrected), la interfaz muestra un aviso y el motivo (el canal no está calibrado · su ganancia no coincide con el modelo de CT · el módulo no conoce este modelo de CT). Hasta que se aplique la corrección, las lecturas pueden diferir de las reales.

Los módulos en sí vienen de la configuración de módulos del hub; un módulo en la dirección por defecto (0x50) se encuentra sin ninguna configuración (véase Get started). Las familias de módulos rbAmp, su composición de canales y su gama de CT se documentan junto con los módulos: véase la rbAmp module docs.

Unidades: los puntos de medición

Una unidad se crea vinculando un canal a un punto. Lleva:

Campo Qué es
unit_id la identidad de la unidad (un id hexadecimal de 4 dígitos, por ejemplo 0006, 0100)
point un slug estable que usan los sistemas externos (MQTT, API)
name / short_name nombres para mostrar
role la función del circuito: DEVICE_LOAD, ZONE_LOAD, CIRCUIT_BREAKER, RENEWABLE_SOURCE, STORAGE_SYSTEM, EV_CHARGING, HEATING_COOLING, SMART_APPLIANCE, y las funciones de suministro MAIN_SUPPLY y ALTERNATIVE_SUPPLY
location dónde está el circuito
stat_class se mantiene por compatibilidad; la aplicación envía siempre 1HOUR, y es el valor por defecto si lo omite. No decide si una unidad guarda historial (véase Statistics).
rated_power_w / max_current_a los valores nominales del circuito (para el suministro principal: la potencia contratada y el interruptor general)
phase a qué línea pertenece el canal (véase Phase más abajo)

En la aplicación las funciones se llaman Appliance, Load, Breaker, Generation, Storage, Charging station, Heating/cooling, Smart appliance, y para las funciones de suministro, Grid input y Backup input.

Dos unidades son de suministro especiales: el suministro principal (la conexión a la red) y un suministro alternativo opcional (generación propia). La aplicación nunca ofrece las funciones de suministro al vincular y no permite cambiarlas, y el hub bloquea ambas: una modificación que toque cualquiera de las dos funciones de suministro se rechaza (HTTP 409). Llevan el seguimiento económico del emplazamiento. El bus de tensión (la entrada V del módulo) y la entrada principal no pueden borrarse.

Configurar en tiempo de ejecución: aplicación web o REST

Todo se configura en el hub en marcha. Nada se establece en código C.

Aplicación web: Points → Free sensors → Bind convierte un canal libre en una unidad; los campos de la unidad se editan en sus ajustes.

REST: las mismas operaciones están disponibles por HTTP:

Operación Endpoint
Listar los canales físicos GET /api/v1/sensors (abierto salvo que haya un token de lectura)
Vincular un canal → nueva unidad POST /api/v1/units
Cambiar los parámetros de una unidad (en vivo) POST /api/v1/units/{id}
Mover una unidad a otro canal POST /api/v1/units/{id}/rebind
Cambiar el slug de una unidad POST /api/v1/units/{id}/rename
Eliminar una unidad DELETE /api/v1/units/{id}

Las operaciones de escritura usan el admin token del hub cuando hay uno configurado: configúrelo con POST /api/system/token y envíelo en las escrituras; es recomendable. Mientras no configure un token, las escrituras están abiertas en la red local.

Por ejemplo, vincular un canal:

http
POST /api/v1/units
{
  "sensor": { "iface": "i2c", "bus": 0, "module": 0, "ch": 1 },
  "name": "Kitchen", "point": "kitchen",
  "role": "ZONE_LOAD", "stat_class": "1HOUR", "location": "ground floor"
}

La respuesta devuelve el nuevo unit_id. Los nuevos ids se asignan desde 0100 en adelante. Renombrar un punto retira el slug antiguo, para que un sistema externo no tome sin avisar otro punto bajo la misma clave.

Borrar (o desvincular) una unidad elimina su historial guardado de forma definitiva; su canal vuelve a quedar libre. El ID de un punto eliminado puede reutilizarse a propósito: la aplicación lo ofrece al vincular (Bind with the previous ID). El hub entonces empieza el historial desde cero, pero Home Assistant y MQTT continúan la serie antigua como un único punto.

Parámetros como name, role, phase, rated_power_w, max_current_a y el modelo de CT se cambian en vivo con el endpoint de parches y se guardan al reiniciar. La referencia completa de campos está en la units & sensors API.

Elegir el modelo de CT

En un canal cuyo módulo admite una pinza CT a elegir (serie SCT), configure el modelo de CT con la pinza que realmente está instalada: el Current sensor del punto en sus ajustes, o ct_code mediante el endpoint de parches. El modelo se escribe en el módulo junto con su calibración de tipo, y queda ligado a la identidad de ese módulo, así que otro módulo en la misma ranura conserva su propio modelo guardado.

Cámbielo solo si está instalada realmente una pinza distinta. Escribir el modelo sustituye la calibración de fábrica del canal, y esa calibración no puede restaurarse. En un canal emparejado de fábrica (serie CT) el modelo está fijado: el hub rechaza el cambio. En un módulo sin calibrar no puede elegirse el modelo.

Fase

phase indica a qué línea de suministro pertenece un canal. En un suministro monofásico todos los canales usan el valor por defecto (1P / L1). Se admiten suministros monofásicos y trifásicos. La potencia y la energía monofásicas están validadas en hardware. La potencia y la energía trifásicas también se comprueban en hardware, con las tres entradas de tensión en una misma fase de banco; una red trifásica real de 120° no ha estado en el banco. Una entrada trifásica es un STD-U3I3, y en su tarjeta de módulo elige si la entrada se mide como un punto con las fases compensadas o como un punto por fase, cada fase con su propia importación y exportación. Los sistemas de suministro validados en su hub figuran en GET /api/v1/schema → enums.grid_system_validated.

phase es solo una etiqueta. El hub nunca multiplica ni divide los valores de una unidad por el número de fases: una unidad con un transformador de corriente informa de lo que lleva ese único conductor, sea cual sea su phase. Una unidad configurada en 3 phases en una carga trifásica es la energía medida de una pata: no la divida ni multiplique por tres.

Estadísticas

Cada unidad mantiene datos de 3 segundos y de 15 minutos solo en RAM; no tienen historial guardado. El historial guardado empieza al nivel horario: el hub guarda registros horarios en su propia flash, que sobreviven a un reinicio, y a partir de ellos construye días, semanas, meses y años. Es igual para todas las unidades, sea cual sea su stat_class. Se guarda historial de hasta 12 unidades; las unidades a partir de la decimotercera muestran solo valores en vivo. Una unidad añadida mientras el hub está en marcha empieza su historial tras el siguiente reinicio. Los totales de energía acumulada de por vida se guardan aparte del historial.

Cuando un canal está cerca de su límite

Un punto marca su estado en su tarjeta del Overview, en Load lines, en la tabla de puntos y en Needs attention; la página del punto muestra una alerta:

  • clipping: la corriente ha alcanzado el punto de recorte del sensor (su corriente de escala completa, que está por encima de su valor nominal). Por encima de él la lectura queda subcontada, y el módulo no puede detectarlo por sí solo. Los ajustes del punto también avisan con antelación cuando el interruptor de la línea está por encima del límite del sensor, y las filas del historial anotan el recorte.
  • sensor limit: la corriente está cerca de la corriente de recorte del sensor: el hub lo marca a aproximadamente el 90 % de esa corriente. En las pinzas SCT-013, la corriente de recorte es aproximadamente el 116 % del valor nominal (58 A en un SCT-013-050), así que el aviso llega en torno al 104 % del valor nominal (52 A). Hasta la corriente de recorte, las lecturas son correctas. Los sensores propios de los módulos STD no llevan estas marcas; leen correctamente hasta aproximadamente el 130 % de su valor nominal.
  • Un CT invertido en un módulo BASIC: el punto muestra sensor reversed — not metered. Un módulo BASIC mide solo el flujo directo, así que la carga no se mide hasta que gire la pinza.

El registro de eventos recibe una línea cuando cambia el estado: "near its limit", "clipping" o "back within range". Solo clipping marca el registro de la hora (una marca de calidad por sobrerrango); "near its limit" aparece solo en el registro. Véase The Overview y Points para ver dónde aparecen estos avisos.