datadis_python.models.consumption module
Modelos de datos para consumos.
Este módulo define los modelos de datos para los consumos energéticos.
- class datadis_python.models.consumption.ConsumptionData(*, cups, date, time, consumptionKWh, obtainMethod, surplusEnergyKWh=None, generationEnergyKWh=None, selfConsumptionEnergyKWh=None)[fuente]
Bases:
BaseModelModelo Pydantic para datos de consumo energético de Datadis.
Representa una medición de consumo eléctrico proveniente de los contadores inteligentes de las distribuidoras eléctricas españolas. Los datos incluyen tanto consumo tradicional como información de autoconsumo y generación para instalaciones con paneles solares u otras fuentes de energía renovable.
- Características principales:
Validación automática: Todos los campos se validan con Pydantic
Compatibilidad de alias: Soporta tanto nombres Python como nombres API
Datos de autoconsumo: Información completa para instalaciones fotovoltaicas
Granularidad temporal: Mediciones horarias o cuarto-horarias según disponibilidad
Métodos de obtención: Distingue entre mediciones reales y estimadas
- Tipos de mediciones soportadas:
Consumo tradicional: Energía consumida de la red eléctrica
Autoconsumo: Energía generada y consumida localmente (sin pasar por la red)
Excedentes/Vertidos: Energía generada y vendida a la red eléctrica
Generación total: Energía total producida por la instalación renovable
- Métodos de obtención de datos:
«Real»: Medición directa del contador inteligente
«Estimada»: Estimación basada en patrones históricos o interpolación
«Provisional»: Datos preliminares pendientes de validación final
Ejemplo
Uso básico del modelo:
from datadis_python.models.consumption import ConsumptionData # Datos típicos de consumo sin autoconsumo consumption_basic = ConsumptionData( cups="ES001234567890123456AB", date="2024/12/15", time="14:00", consumptionKWh=2.45, obtainMethod="Real" ) print(f"Consumo: {consumption_basic.consumption_kwh} kWh") print(f"Método: {consumption_basic.obtain_method}")
Datos de instalación con autoconsumo fotovoltaico:
# Instalación con paneles solares consumption_solar = ConsumptionData( cups="ES001234567890123456AB", date="2024/07/20", time="13:00", # Hora de máxima producción solar consumptionKWh=0.25, # Poca energía de la red obtainMethod="Real", surplusEnergyKWh=3.20, # Excedente vendido a la red generationEnergyKWh=5.80, # Generación total de paneles selfConsumptionEnergyKWh=2.60 # Autoconsumo directo ) # Verificar balance energético total_consumption = (consumption_solar.consumption_kwh + consumption_solar.self_consumption_energy_kwh) print(f"Consumo total real: {total_consumption} kWh") print(f"Excedente vendido: {consumption_solar.surplus_energy_kwh} kWh")
Validación automática con alias:
# Usando nombres de la API (camelCase) data_api = { "cups": "ES001234567890123456AB", "date": "2024/12/15", "time": "10:30", "consumptionKWh": 1.85, # Nombre API "obtainMethod": "Estimada" } consumption = ConsumptionData(**data_api) print(f"Consumo: {consumption.consumption_kwh}") # Acceso Python
- Parámetros:
cups (str) – Código CUPS del punto de suministro. Identificador único de 22 caracteres que identifica de forma inequívoca el punto de conexión a la red eléctrica
date (str) – Fecha de la medición en formato YYYY/MM/DD. Corresponde al día de la lectura del contador, en zona horaria española (CET/CEST)
time (str) – Hora de la medición en formato HH:MM (24h). Para mediciones horarias normalmente :00, para cuarto-horarias :00, :15, :30, :45
consumption_kwh (float) – Energía activa consumida desde la red eléctrica en kWh. Representa la energía que el usuario ha tomado de la red durante el período de medición
obtain_method (str) – Método de obtención de los datos. Valores posibles: «Real» (medición directa), «Estimada» (cálculo), «Provisional»
surplus_energy_kwh (Optional[float]) – Energía excedentaria vertida a la red en kWh. Solo aplica para instalaciones de autoconsumo con excedentes. Representa la energía generada localmente y vendida/cedida a la red
generation_energy_kwh (Optional[float]) – Energía total generada por la instalación renovable en kWh. Suma del autoconsumo directo más los excedentes vertidos. Solo aplica para instalaciones con generación propia
self_consumption_energy_kwh (Optional[float]) – Energía autoconsumida directamente en kWh. Energía generada localmente y consumida sin pasar por la red. Solo aplica para instalaciones de autoconsumo
consumptionKWh (float)
obtainMethod (str)
surplusEnergyKWh (float | None)
generationEnergyKWh (float | None)
selfConsumptionEnergyKWh (float | None)
- Muestra:
ValidationError – Si algún campo no cumple las validaciones de Pydantic (tipos incorrectos, valores nulos en campos obligatorios, etc.)
Nota
Para instalaciones con autoconsumo, se cumple la ecuación:
generation_energy_kwh = self_consumption_energy_kwh + surplus_energy_kwhVer también
ConsumptionResponse- Respuesta estructurada de la API V2SimpleDatadisClientV1.get_consumption()- Obtener datos V1SimpleDatadisClientV2.get_consumption()- Obtener datos V2
- model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].