Paso 1: Telegraf lee vía Modbus TCP
Telegraf tiene un plugin de entrada Modbus. Por cada contador crea un bloque con su dirección de dispositivo. El ejemplo lee importada y exportada de un contador de electricidad con dirección de dispositivo 9:
[[inputs.modbus]]
name = "m_center"
controller = "tcp://192.168.1.50:502"
slave_id = 9
timeout = "5s"
interval = "15m"
holding_registers = [
{ name = "importada_total", byte_order = "ABCD", data_type = "FLOAT32-IEEE", scale = 1.0, address = [999, 1000] },
{ name = "exportada_total", byte_order = "ABCD", data_type = "FLOAT32-IEEE", scale = 1.0, address = [1149, 1150] },
]
[inputs.modbus.tags]
contador = "vivienda_1"
Telegraf cuenta las direcciones desde 0, el manual desde 1: el registro 1000 pasa a ser 999. El orden de bytes ABCD corresponde a big endian con la palabra alta primero, tal como entrega el M-Center. La sintaxis de las opciones cambia entre versiones de Telegraf; vale la documentación del plugin de su versión.
Alternativa: Telegraf lee vía MQTT
Con la licencia MQTT, Telegraf se suscribe a los topics del M-Center con el plugin inputs.mqtt_consumer:
<prefijo>/emu/mcenter/<MAC>/meterreading/+/byobis/#
Cómo interpreta Telegraf los mensajes se define con data_format. Por eso, observe antes el contenido de los mensajes con un cliente MQTT.
Paso 2: InfluxDB y Grafana
- En Telegraf, dirigir la salida a InfluxDB (
outputs.influxdb_v2con URL, token, organización y bucket). - En Grafana, añadir InfluxDB como fuente de datos.
- Crear un panel y consultar la medición. Para consumos por día o por mes, calcule la diferencia de la lectura en la ventana de tiempo.
Las lecturas solo suben. Por eso un diagrama de barras con el consumo diario suele decir más que la curva de la lectura.