Inicio/Monitores de Energía/Monitorización de Consumo Eléctrico con Raspberry Pi y Home Assistant: Guía Completa para Principiantes
Monitores de Energía

Monitorización de Consumo Eléctrico con Raspberry Pi y Home Assistant: Guía Completa para Principiantes

Alex R.Escrito por: Alex R.
Fecha: 27 Jul 2026
Lectura de 10 min
Monitorización de Consumo Eléctrico con Raspberry Pi y Home Assistant: Guía Completa para Principiantes

La monitorización del consumo eléctrico se ha convertido en una necesidad para hogares inteligentes que buscan eficiencia energética y ahorro económico. Con una Raspberry Pi y Home Assistant, puedes construir un sistema de monitorización completo, económico y personalizable. Esta guía te llevará desde cero hasta tener tu propio panel de consumo en tiempo real, con explicaciones detalladas de cada paso, los componentes necesarios y las mejores prácticas para evitar errores comunes. Al final, podrás tomar decisiones informadas para reducir tu factura de la luz y contribuir al cuidado del medio ambiente.

Introducción a la Monitorización de Consumo Eléctrico

El consumo eléctrico en los hogares representa una parte significativa de los gastos mensuales. Sin embargo, la mayoría de las personas no tienen una visión clara de qué electrodomésticos consumen más energía o en qué momentos del día se produce el pico de demanda. La monitorización energética permite desglosar el consumo por circuitos o dispositivos, identificar ineficiencias y ajustar hábitos para ahorrar dinero. Con el auge del Internet de las Cosas (IoT) y las plataformas de domótica como Home Assistant, es posible implementar soluciones de monitorización de forma sencilla y con un presupuesto reducido.

Home Assistant es un software de automatización del hogar de código abierto que se ejecuta en una Raspberry Pi. Su flexibilidad permite integrar una amplia variedad de sensores, incluyendo medidores de consumo eléctrico. Al combinar una Raspberry Pi con un sensor de corriente no invasivo, como el SCT-013, y un convertidor analógico-digital, puedes medir el consumo total de tu hogar o de circuitos específicos. Los datos se visualizan en paneles personalizables, se almacenan para análisis histórico y se pueden usar para activar automatizaciones, como apagar luces cuando no hay nadie en casa.

En esta guía, asumiremos que tienes conocimientos básicos de electrónica y Linux, pero explicaremos cada paso con suficiente detalle para que un principiante pueda seguirlo. Cubriremos desde la selección de componentes hasta la integración con Home Assistant, pasando por la calibración y la resolución de problemas típicos. Al final, tendrás un sistema funcional que te mostrará tu consumo en tiempo real y te ayudará a tomar decisiones para ahorrar energía.

Componentes Necesarios y Consideraciones Técnicas

Antes de comenzar, es importante reunir los componentes adecuados. La elección de los mismos dependerá de si deseas medir el consumo total del hogar o de circuitos individuales, así como de tu presupuesto y habilidades técnicas. A continuación, describimos los elementos esenciales y algunas alternativas.

Raspberry Pi: El Corazón del Sistema

Cualquier modelo de Raspberry Pi es suficiente para ejecutar Home Assistant y procesar los datos de los sensores. Los modelos recomendados son Raspberry Pi 3B+, 4B o 5, ya que ofrecen suficiente potencia y conectividad. La Raspberry Pi Zero W también puede funcionar, pero su rendimiento puede ser limitado si se añaden muchas integraciones. Es importante usar una tarjeta microSD de alta velocidad (Clase 10 o superior) y una fuente de alimentación estable de al menos 2.5A para evitar reinicios inesperados.

Sensor de Corriente No Invasivo

El sensor más común para proyectos de monitorización es el SCT-013, un transformador de corriente de tipo pinza que se coloca alrededor del cable de fase del cuadro eléctrico sin necesidad de cortar el cable. Mide la corriente alterna (AC) y proporciona una señal analógica proporcional a la corriente que circula. Existen versiones con salida de voltaje (SCT-013-030, SCT-013-050, etc.) y con salida de corriente (SCT-013-000). Para este proyecto, recomendamos el SCT-013-030, que mide hasta 30A y tiene salida de voltaje (0-1V), lo que simplifica la conexión al ADC.

Atención / Advertencia

Trabajar con el cuadro eléctrico implica riesgos de descarga eléctrica. Si no tienes experiencia, contrata a un electricista profesional para realizar las conexiones. La pinza del sensor debe colocarse solo alrededor del cable de fase (generalmente marrón o negro), nunca alrededor del cable de neutro o tierra. Asegúrate de que el cuadro esté apagado (desconecta el interruptor general) antes de manipular cualquier cable.

Convertidor Analógico-Digital (ADC)

La Raspberry Pi no tiene entradas analógicas, por lo que necesitamos un ADC para leer la señal del sensor. El más popular es el MCP3008, un ADC de 8 canales y 10 bits que se comunica por SPI. Alternativamente, se puede usar el ADS1115, que ofrece 16 bits de resolución y comunicación I2C, proporcionando mayor precisión. Para este proyecto, usaremos el MCP3008 por su bajo costo y facilidad de uso.

Componentes Adicionales

Necesitarás una placa de pruebas (breadboard), cables jumper, resistencias (por ejemplo, 10kΩ para pull-up en SPI) y, opcionalmente, un divisor de tensión si el sensor requiere un rango diferente. También es recomendable usar una fuente de alimentación externa para el sensor si se requiere mayor precisión, aunque en la mayoría de los casos la alimentación de 3.3V de la Raspberry Pi es suficiente.

Conexión del Hardware Paso a Paso

Una vez que tengas todos los componentes, es hora de realizar las conexiones. Sigue estos pasos con cuidado y verifica cada conexión antes de encender el sistema.

Paso 1: Conectar el ADC MCP3008 a la Raspberry Pi

El MCP3008 tiene 16 pines. Las conexiones principales son:

  • VDD y VREF:

    Conectar a 3.3V de la Raspberry Pi (pin 1).

  • AGND y DGND:

    Conectar a GND (pin 6 de la Raspberry Pi).

  • CS (Chip Select):

    Pin 10 del MCP3008 a GPIO 8 (pin 24) de la Raspberry Pi.

  • MOSI:

    Pin 11 del MCP3008 a GPIO 10 (pin 19) de la Raspberry Pi.

  • MISO:

    Pin 12 del MCP3008 a GPIO 9 (pin 21) de la Raspberry Pi.

  • SCLK:

    Pin 13 del MCP3008 a GPIO 11 (pin 23) de la Raspberry Pi.

Además, conecta una resistencia de 10kΩ entre CS y 3.3V para pull-up, aunque no siempre es necesario. El canal 0 del MCP3008 (pin 1 del ADC) se usará para la señal del sensor.

Paso 2: Conectar el Sensor SCT-013 al ADC

El SCT-013-030 tiene un conector jack de 3.5 mm con tres cables: uno para la señal (generalmente blanco), otro para tierra (negro) y otro para la referencia (blindaje). Conecta el cable de señal al canal 0 del MCP3008 (pin 1). Conecta el cable de tierra a GND. El cable de blindaje también se conecta a GND. Si tu sensor tiene salida de corriente (SCT-013-000), necesitarás una resistencia de carga (por ejemplo, 22Ω) entre la señal y GND para convertir la corriente en voltaje. En nuestro caso, con el SCT-013-030, la salida es de 0-1V, que es directamente compatible con el ADC.

Paso 3: Colocar la Pinza en el Cuadro Eléctrico

Apaga el interruptor general del cuadro eléctrico. Abre la tapa del cuadro y localiza el cable de fase que alimenta toda la casa (o el circuito que deseas monitorizar). La pinza del sensor se coloca alrededor de ese cable. Asegúrate de que la pinza esté completamente cerrada y que no haya espacios. Vuelve a cerrar el cuadro y restablece la alimentación. Ten cuidado de no tocar partes metálicas expuestas.

Configuración del Software en Raspberry Pi

Con el hardware conectado, pasamos a la configuración del software. Asumimos que ya tienes instalado Home Assistant en tu Raspberry Pi. Si no es así, puedes seguir la guía oficial de instalación (Home Assistant OS es la opción más sencilla).

Habilitar SPI en la Raspberry Pi

El MCP3008 se comunica por SPI, por lo que debemos habilitar esta interfaz. Conéctate a la Raspberry Pi por SSH o a través de la consola de Home Assistant (Add-on: Terminal & SSH). Ejecuta:

sudo raspi-config

Ve a "Interface Options" > "SPI" > "Yes" para habilitarlo. Luego reinicia la Raspberry Pi. Verifica que SPI esté activo con:

ls /dev/spi*

Deberías ver dispositivos como /dev/spidev0.0 y /dev/spidev0.1.

Instalar el Add-on de MQTT (Opcional pero Recomendado)

Aunque podemos leer el ADC directamente desde Home Assistant usando una integración personalizada, es más flexible usar un broker MQTT y un script Python que publique los datos. Instala el add-on "Mosquitto broker" desde la tienda de add-ons de Home Assistant. Configúralo con usuario y contraseña (por ejemplo, usuario: ha, contraseña: tu_contraseña).

Escribir el Script de Lectura del ADC

Crea un script Python que lea el valor del ADC, calcule la potencia y publique en MQTT. Conéctate por SSH y crea un archivo, por ejemplo, /home/pi/lectura_energia.py:

import spidev
import paho.mqtt.client as mqtt
import time
import math

# Configuración SPI
spi = spidev.SpiDev()
spi.open(0, 0)
spi.max_speed_hz = 1350000

# Configuración MQTT
mqtt_server = "localhost"
mqtt_port = 1883
mqtt_user = "ha"
mqtt_password = "tu_contraseña"
mqtt_topic = "home/consumo"

# Calibración: factor de escala (ajustar según sensor)
# SCT-013-030: 30A / 1V => 30A por cada 1V, pero el ADC da 1023 cuentas para 3.3V
# Voltaje en el pin = (valor_leido / 1023) * 3.3
# Corriente = Voltaje * 30 (para SCT-013-030)
# Potencia = Corriente * 230 (tensión de red en España)
factor_corriente = 30.0 / 1.0  # A/V
tension_red = 230.0  # Voltios

def read_adc(channel):
    if channel < 0 or channel > 7:
        return -1
    r = spi.xfer2([1, (8 + channel) << 4, 0])
    valor = ((r[1] & 3) << 8) + r[2]
    return valor

def calcular_potencia():
    # Leer varios valores y promediar para mayor estabilidad
    muestras = 100
    suma = 0
    for _ in range(muestras):
        valor = read_adc(0)
        suma += valor
        time.sleep(0.01)
    promedio = suma / muestras
    voltaje = (promedio / 1023.0) * 3.3
    corriente = voltaje * factor_corriente
    potencia = corriente * tension_red
    return potencia

client = mqtt.Client()
client.username_pw_set(mqtt_user, mqtt_password)
client.connect(mqtt_server, mqtt_port, 60)

while True:
    potencia = calcular_potencia()
    client.publish(mqtt_topic, f"{potencia:.2f}")
    time.sleep(5)  # Publicar cada 5 segundos

Ajusta el factor de corriente según tu sensor. Para el SCT-013-030, es 30 A/V. Si usas otro modelo, consulta su hoja de datos. Ejecuta el script con Python 3:

python3 /home/pi/lectura_energia.py

Si todo funciona, verás mensajes de publicación en MQTT. Puedes verificar con un suscriptor (por ejemplo, el add-on "MQTT Explorer" en Home Assistant).

Configurar Home Assistant para Recibir los Datos

En Home Assistant, ve a Configuración > Dispositivos y servicios > Integraciones. Añade la integración "MQTT". Introduce la dirección del broker (localhost), puerto 1883, y las credenciales. Luego, crea un sensor MQTT. Ve a Configuración > Dispositivos y servicios > Entidades > Crear entidad > Sensor MQTT. Configúralo:

  • Nombre:

    Consumo Eléctrico

  • Topic:

    home/consumo

  • Unidad de medida:

    W

  • Tipo de dispositivo:

    Potencia

Guarda la entidad. Ahora deberías ver el sensor en el panel de Home Assistant con el valor de consumo en vatios.

Visualización y Automatizaciones

Una vez que los datos fluyen, puedes crear un panel de visualización atractivo. Home Assistant permite crear dashboards personalizados con tarjetas. Por ejemplo, puedes añadir una tarjeta "Sensor" que muestre el consumo actual, o una tarjeta "Gauge" para una visualización tipo medidor. También puedes usar la tarjeta "History Graph" para ver la evolución a lo largo del tiempo.

Para crear automatizaciones, ve a Configuración > Automatizaciones. Por ejemplo, puedes crear una regla que envíe una notificación si el consumo supera los 3000W durante más de 5 minutos, o que apague un enchufe inteligente si el consumo es bajo durante la noche. Las posibilidades son infinitas.

Errores Comunes y Soluciones

Atención / Advertencia

A continuación, se presentan los errores más frecuentes al implementar este sistema y cómo solucionarlos.

El sensor no muestra datos o lecturas erráticas

Esto puede deberse a una mala conexión del ADC o del sensor. Verifica que todos los cables estén firmemente conectados. Comprueba que el SPI esté habilitado y que el script Python se ejecute sin errores. Si las lecturas son muy ruidosas, aumenta el número de muestras en el script o añade un condensador de filtro (por ejemplo, 10µF) entre la señal y GND.

La potencia calculada no coincide con la realidad

La calibración es crucial. El factor de corriente del sensor puede variar ligeramente. Para calibrar, usa una carga conocida (como un calentador de 2000W) y ajusta el factor_corriente en el script hasta que la lectura coincida. También asegúrate de que la tensión de red (tension_red) sea la correcta en tu país (230V en Europa, 120V en EE.UU.).

El script se detiene después de un tiempo

Puede deberse a un error de conexión MQTT o a un timeout. Añade un bloque try-except en el bucle para reconectar si es necesario. También puedes ejecutar el script como un servicio systemd para que se reinicie automáticamente.

Comparativa de Sensores y Alternativas

Existen varias opciones para medir el consumo eléctrico. A continuación, comparamos las más populares para que puedas elegir la que mejor se adapte a tus necesidades.

SensorTipoPrecisiónFacilidad de instalaciónCosto
SCT-013-030Pinza no invasivaMediaAltaBajo
Shelly EMPinza con WiFiAltaAltaMedio
IotawattPinza con WiFiAltaMediaAlto
PZEM-004TMódulo con displayAltaBaja (requiere corte de cable)Bajo

Para principiantes, el SCT-013-030 es la opción más equilibrada por su bajo costo y facilidad de instalación. Si buscas mayor precisión y no te importa gastar más, el Shelly EM es una excelente alternativa con integración directa en Home Assistant. El Iotawatt es ideal para monitorización avanzada con múltiples canales, pero su precio es elevado. El PZEM-004T requiere cortar el cable, lo que aumenta el riesgo y la complejidad.

Preguntas Frecuentes