IotaWatt es un proyecto que surgió de un esfuerzo informal para producir un medidor de energía eléctrica versátil que fuera más fácil de configurar y usar. Al emplear el popular y potente chip nodeMCU ESP8266, tiene un entorno operativo con un enfoque modular para la recopilación, almacenamiento y la generación de informes de datos junto con un servidor web WiFi integrado. El firmware resultante, después de más de un año de desarrollo, es por tanto muy robusto. Los primeros esfuerzos se concentraron en el uso de placas y escudos en forma de kit con un mínimo de hardware personalizado. Eventualmente, se hizo evidente que se necesitaba una sola placa personalizada para proporcionar la plataforma necesaria para que el software fuera útil ( de hecho el diseño actual de hardware abierto se produce comercialmente).
Aunque los esquemas y el diseño de PCB están abiertos y disponibles en el proyecto Git, hay mucho más para hacer un producto comercial viable. IoTaWatt, Inc. es una entidad legal que se estableció en respuesta a la demanda de hardware de producción. El dispositivo básico, así como el equipo relacionado, se pueden comprar utilizando en su sitio web https://stuff.iotawatt.com/ ( ellos afirman que los costos para desarrollar y certificar el hardware fueron sustanciales y, con suerte, se compensarán con las ventas). Para ellos, los objetivos a corto plazo del proyecto son desarrollar más aplicaciones analíticas locales y desarrollar la infraestructura de soporte de la comunidad.
Veamos un poco más en detalle esta interesante solución abierta para monitorización del consumo energético.
Photo by Constantine Kim on Pexels.com
Sistema abierto IotaWatt
No es que otros monitores de energía sean malos, pero sí son diferentes en que en su mayoría son sistemas cerrados que brindan datos limitados y requieren que use sus plataformas de aplicaciones de teléfono y nube. IoTaWatt recopila muchas más métricas y almacena ese historial de uso localmente. Con su servidor web integrado, puede administrar la configuración, ver el estado en tiempo real o crear gráficos detallados usando el navegador en su computadora, tableta o teléfono. Son sus datos, en su propio hogar, y sujetos únicamente a su propia política de privacidad y retención. Sin embargo, IoTaWatt puede cargar fácilmente datos de uso en cualquiera de varias bases de datos de terceros con aplicaciones asociadas y herramientas analíticas. Por ejemplo, PVoutput es un servicio gratuito que se conecta fácilmente con IoTaWatt y proporciona análisis de energía solar de clase mundial. Hay soporte completo para cargar a influxDB. También hay una interfaz API para aquellos que desean consultar datos para sus propias aplicaciones o para usar en hojas de cálculo, y hay integraciones disponibles para software de automatización del hogar como Home Assistant.
IotaWatt tm es por tanto un monitor de energía eléctrica conectado WiFi de 14 canales de hardware abierto. Se basa en la plataforma IoT ESP8266 que utiliza ADC de 12 bits MCP3208 para muestrear el voltaje y la corriente de CA. Ademas puede registrar datos localmente en la tarjeta SD integrada y publicarlos directamente en Emoncms.org a través de WiFi.
No hay planes para descontinuar el emonTx. Tanto IoTaWatt como emonTx tienen ventajas en áreas clave que se complementan entre sí.
IoTaWatt es completamente de código abierto y ha sido desarrollado por Bob Lemaire @overeasy en asociación con OpenEnergy
IoTaWatt se puede usar para monitorear cualquier sistema de energía estando en uso en más de 60 países en todo el mundo. La fase dividida de EE. UU. 120V/240V es fácil, pero también la monofásica de 230V como en Europa, la trifásica de 230V como en los hogares de Australia, Alemania y Noruega, por nombrar algunos. A la mayoría de las personas solo les importa si funcionará en su situación. La respuesta es un sí rotundo.
También hay muchos usuarios comerciales/industriales que monitorean sistemas trifásicos de alto voltaje, incluidos los industriales de 277 V/480 V con un servicio de 600 amperios que usan varios megavatios-hora por día, más de lo que la mayoría de los hogares usan en un año. Luego hay un sitio en Uganda que mide el voltaje y la potencia que se usa para cargar motocicletas eléctricas de alquiler usando energía solar.
Todo esto es posible porque IoTaWatt utiliza sensores externos simples que están disponibles para cualquier combinación de voltaje/potencia. Simplemente instálelo, conéctelo a IoTaWatt y seleccione el tipo de sensor en un menú desplegable en la aplicación de configuración.
Cómo funciona
IoTaWatt mide cada circuito usando un sensor pasivo que se engancha alrededor de uno de los cables aislados. La salida de cada uno de estos transformadores de corriente es de muy bajo voltaje y se conecta a cualquiera de las 14 entradas de IoTaWatt.
Un transformador de pared insertado en un receptáculo ordinario convierte el voltaje local en un voltaje de referencia estándar y permite que IoTaWatt determine el voltaje y la frecuencia de la línea.
Desde la aplicación de configuración basada en navegador, simplemente seleccione el modelo de sensor que está conectado. IoTaWatt sabe cómo interpretar las señales para producir una medida muy precisa de la energía que se utiliza en cualquier momento.
Los conectores estéreo estándar facilitan la conexión de los sensores de corriente. Cada una de las 14 entradas es típicamente un transformador de corriente que mide un circuito, pero se puede usar una sola entrada para monitorear varios circuitos y/o se pueden combinar varios CT en una sola entrada.
Todas las entradas se enumeran con nombre, tipo de sensor y varias opciones. Para editar, haga clic en el número de entrada.
Cambie el nombre o especifique un modelo de sensor diferente de la lista desplegable. Guarde e IoTaWatt comenzará a usar la nueva configuración de inmediato.
El IoTaWatt se configura a través de una interfaz web servida directamente desde el IoTaWatt ESP8266. Visite IoTaWatt.com para ver una demostración en vivo de la interfaz.
IoTaWatt admite actualizaciones de firmware automáticas por aire (OTA).
El estado de las entradas y salidas se actualiza continuamente. Las salidas se pueden definir para que los detalles adicionales estén disponibles. El estado de las cargas del servidor y el contexto de los registros de datos están disponibles en las pestañas desplegables.
Herramientas analíticas integradas
Las herramientas analíticas integradas permiten ver el uso gráficamente. Muestre el uso de energía total junto con los circuitos individuales seleccionando de un menú.
La aplicación Graph+ se ejecuta directamente desde el servidor web de IoTaWatt. Se puede usar desde una PC, teléfono o tableta.
Cargas a influxDB y Emoncms
Los usuarios más sofisticados pueden configurar la carga de datos en influxDB y usar Grafana o una de varias otras herramientas de visualización para crear impresionantes tableros.
También hay una opción para cargar al sistema Emoncms con sus propias herramientas gráficas integradas.
Panel de control de Emoncms
Tablero de grafana con fuente de datos influxDB
Ambas bases de datos externas son de software abierto y están disponibles como servicios comerciales o alojadas en varias plataformas personales, incluidas Windows y RaspberryPi.
Pantalla de estado en vivo de salida PV
Cargas a PVoutput
PVOutput es un servicio en línea gratuito para compartir y comparar datos de salida de paneles solares fotovoltaicos. Los datos de salida se pueden graficar, analizar y comparar con otros contribuyentes de pvoutput durante varios períodos de tiempo.
Si bien pvoutput se enfoca principalmente en monitorear la generación de energía, también proporciona instalaciones igualmente capaces para cargar y monitorear datos de consumo de energía. Tanto la generación solar como los datos de consumo de energía se pueden combinar para proporcionar una vista ‘Neta’ de la energía que se genera o se consume en vivo.
La «calculadora» es la interfaz simple de IoTaWatt para crear scripts para combinar y exportar datos. Especifique las unidades para calcular (amperios, vatios, voltios, etc.) y luego ingrese la función para calcular el valor. Es tan fácil como usar una calculadora básica de cuatro funciones.
Capacidad trifásica
IoTaWatt puede manejar energía trifásica de varias maneras. La forma fácil utiliza solo un transformador de referencia de tensión/fase enchufado en cualquiera de las tres fases. Las mediciones de potencia en las otras dos fases se realizan utilizando una señal de referencia trifásica «derivada».
Para obtener la máxima precisión, se pueden conectar dos transformadores adicionales a las entradas para el voltaje «directo» y la referencia de fase de todas las fases.
IoTaWatt ha sido probado para cumplir con los estándares regulatorios y de seguridad de América del Norte y Europa, que incluyen:
Cumplimiento con FCC parte B
Conformidad con CE, incluida la Directiva de emisiones de radio (RED) y la Directiva de bajo voltaje
Estándares de seguridad de bajo voltaje para EE. UU. (UL) y Canadá (CSA). Prueba y certificación por Intertek y lleva la marca de certificación ETL.
Los accesorios vendidos por IoTaWatt, Inc están listados por UL o reconocidos por UL y listados para su uso con IoTaWatt.
Seguridad
IoTaWatt admite la conexión cifrada de extremo a extremo a Emoncms mediante el nuevo cifrado de capa de transporte API de Emoncms . Debido a los recursos limitados del microcontrolador ESP8266, la conexión HTTPS no es posible. Sin embargo, Emoncms ofrece una solución de cifrado de capa de transporte integrada en la que la clave de acceso de emoncms se utiliza como clave precompartida para cifrar los datos con AES-128-CBC.
Las actualizaciones automáticas de firmware OTA garantizan que IoTaWatt siempre esté ejecutando la última versión más segura, por ejemplo, se lanzó una actualización de firmware y se implementó automáticamente para corregir la vulnerabilidad KRACK WPA . Las actualizaciones de firmware están firmadas digitalmente.
Comparación de emonTx vs. IoTaWattio
No hay planes para descontinuar emonTx. El IoTaWatt no está diseñado para reemplazar el emonTx, sino para complementarlo. Cada unidad tiene ventajas en áreas clave:
Ventajas de emonTx
Bajo consumo: energía de la batería/adaptador AC-AC único
No se requiere configuración
Admite múltiples sensores de temperatura DS18B20
Admite sensor de pulso óptico (entrada de interrupción) para interactuar directamente con medidores de servicios públicos
Trifásico aproximado con actualización de firmware
Múltiples emonTx pueden comunicarse con un solo emonPi / emonBase
No se requiere conexión WiFi
Ventajas de IoTaWatt
Gran número de entradas de sensores CT
Configuración flexible (se admiten muchos tipos diferentes de CT)
Registro de tarjeta SD integrado
Actualizaciones de firmware OTA
Publicación directa a través de WiFi en Emoncms.org
La ventaja obvia del IoTaWatt sobre el emonTx es la cantidad de entradas del sensor CT. Otra ventaja clave es la flexibilidad de IoTaWatt, cada canal de entrada (voltaje y corriente de CA) se puede configurar y calibrar individualmente. IoTaWatt es compatible con varios tamaños diferentes de sensores CT con preajustes de calibración para sensores CT, por ejemplo , 20A , 100A (estándar) y 200A .
Es posible usar un IoTaWatt junto con un emonPi / emonBase, el IoTaWAtt puede publicar en cualquier servidor de Emoncms, incluido emonPi, a través de una red local.
RESUMEN
Es de destacar que en esencia este sistema de iotaWatt usa amplificadores operaciones de instrumentación para la medida de la corriente por medio de sensores magnéticos enviando las medidas por medio de un convertidor analógico digital con salida SPI, lo cual es muy similar a la propuesta que nos da lechacal.com ( en UK) pero en vez de usar un NodeMCU usa una Raspberry Pi ( aunque tienen una versión para una Orange Pi).
Como detalle interesante sin duda es que tanto el hw como como el sw son abiertos lo cual lo hace muy atractivo para mejorar o incluso replicar esta solución, pero sin duda se echa de menos más rigor en la precisión de las medidas
EL NILM o Non-Intrusive Load Monitoring, es decir la desagregación no intrusiva de la demanda . es una técnica computacional para la estimación del consumo individual de diversos dispositivos utilizando para ello la lectura agregada de un único medidor de energía (Smart Meter, SM).
Gracias a las ventajas en cuanto instalación , coste e implementación, éste concepto ha tomado relevancia en los últimos años en el ámbito de las Smart Grids, al aportar una estimación de los hábitos de consumo de los clientes sin la necesidad de un despliegue masivo de contadores inteligentes en cada punto de consumo.
Tal es el interés por esta técnica que desde el 2010 , el número de publicaciones científicas referentes al NILM se ha incrementado exponencialmente sin duda condicionado por los beneficios de esta técnica en el marco de las redes inteligentes de energía como por ejemplo la posibilidad de generar facturas de electricidad que muestren en detalle el consumo de los electrodomésticos utilizando solamente las lecturas de un SM
Asimismo, existen aplicaciones de Energy Management System (EMS) en conjunto con NILM, las cuales pueden ser compatible con los programas de respuesta a la demanda o Demand Response (DR) de las compañías de electricidad.
Por otro lado, algunos plantean la posibilidad de usar NILM para detectar averías en los dispositivos cuando se presenta un comportamiento anómalo en las mediciones desagregadas. Es así como NILM se presenta como una valiosa herramienta para reducir el consumo de energía, tanto así que algunos afirman que es el “santo grial de la eficiencia energética”.
En este contexto vamos a ver una herramienta o toolkit open software llamado NILMTK que nos va a ayudar a comparar algoritmos para implementar la desagregación ( ademas particularmente no contempla un uso diferente a este)
Para el análisis de la desagregación , necesitamos recolectar datos del consumo centralizado , lo cual nos va permitir a creación de un nuevo dataset el cual puede ser analizado usando las funciones de NILMTK lo que permite, por ejemplo, visualizar los datos de potencia en un determinado periodo u obtener estadísticas de energía del dataset.
Posteriormente, en la etapa de preprocesamiento se toman decisiones en línea con los análisis realizados, con el objetivo de preparar correctamente los datos para del entrenamiento de los modelos de desagregación. Básicamente, el entrenamiento de un modelo consiste en enseñarle a reconocer por separado las características de los dispositivos para luego identificarlos dentro de una señal agregada. El entrenamiento contempla el uso de los algoritmos Combinatorial Optimization (CO) y Factorial Hidden Markov Model (FHMM).
Photo by Dimitry Anikin on Pexels.com
HDF5
HDF5 es un formato de datos jerárquico que se usar en el NILMTK como fuente datos basado en HDF4 y NetCDF (otros dos formatos de datos jerárquicos).El formato de datos jerárquico, versión 5 (HDF5), es un formato de archivo de código abierto que admite datos grandes, complejos y heterogéneos. HDF5 utiliza una estructura similar a un «directorio de archivos» que le permite organizar los datos dentro del archivo de muchas formas estructuradas diferentes, como lo haría con los archivos en su computadora. El formato HDF5 también permite la incrustación de metadatos, lo que lo hace autodescriptivo .
Estructura jerárquica: un directorio de archivos dentro de un archivo
El formato HDF5 se puede considerar como un sistema de archivos contenido y descrito en un solo archivo. Piense en los archivos y carpetas almacenados en su computadora. Es posible que tenga un directorio de datos con algunos datos de temperatura para varios sitios de campo. Estos datos de temperatura se recopilan cada minuto y se resumen cada hora, día y semana. Dentro de un archivo HDF5, puede almacenar un conjunto de datos similar organizado de la misma manera que podría organizar archivos y carpetas en su computadora. Sin embargo, en un archivo HDF5, lo que llamamos «directorios» o «carpetas» en nuestras computadoras, se llaman groupsy lo que llamamos archivos en nuestra computadora datasets.
2 Términos importantes de HDF5
Grupo: un elemento similar a una carpeta dentro de un archivo HDF5 que puede contener otros grupos O conjuntos de datos dentro de él.
Conjunto de datos: los datos reales contenidos en el archivo HDF5. Los conjuntos de datos se almacenan a menudo (pero no es necesario) dentro de grupos en el archivo.
Un ejemplo de estructura de archivo HDF5 que contiene grupos, conjuntos de datos y metadatos asociados.
Un archivo HDF5 que contiene conjuntos de datos podría estructurarse así:
Un ejemplo de estructura de archivo HDF5 que contiene datos para varios sitios de campo y también contiene varios conjuntos de datos (promediados en diferentes intervalos de tiempo).
HDF5 es un formato autodescriptivo
El formato HDF5 es autodescriptivo. Esto significa que cada archivo, grupo y conjunto de datos puede tener metadatos asociados que describen exactamente cuáles son los datos. Siguiendo el ejemplo anterior, podemos incrustar información sobre cada sitio en el archivo, como por ejemplo:
El nombre completo y la ubicación X, Y del sitio.
Descripción del sitio.
Cualquier documentación de interés.
De manera similar, podríamos agregar información sobre cómo se recopilaron los datos en el conjunto de datos, como descripciones del sensor utilizado para recopilar los datos de temperatura. También podemos adjuntar información, a cada conjunto de datos dentro del grupo de sitios, sobre cómo se realizó el promedio y durante qué período de tiempo están disponibles los datos.
Un beneficio clave de tener metadatos adjuntos a cada archivo, grupo y conjunto de datos es que esto facilita la automatización sin la necesidad de un documento de metadatos separado (y adicional). Usando un lenguaje de programación, como R o Python, podemos obtener información de los metadatos que ya están asociados con el conjunto de datos y que podríamos necesitar para procesar el conjunto de datos.
Los archivos HDF5 son autodescriptivos, lo que significa que todos los elementos (el archivo en sí, los grupos y los conjuntos de datos) pueden tener metadatos asociados que describen la información contenida en el elemento.
Subconjunto comprimido y eficiente
El formato HDF5 es un formato comprimido. El tamaño de todos los datos contenidos en HDF5 está optimizado, lo que reduce el tamaño general del archivo. Sin embargo, incluso cuando están comprimidos, los archivos HDF5 a menudo contienen grandes volúmenes de datos y, por lo tanto, pueden ser bastante grandes. Un atributo poderoso de HDF5 es data slicingmediante el cual se puede extraer un subconjunto particular de un conjunto de datos para su procesamiento. Esto significa que no es necesario leer el conjunto de datos completo en la memoria (RAM); muy útil para permitirnos trabajar de manera más eficiente con conjuntos de datos muy grandes (gigabytes o más).
Almacenamiento de datos heterogéneos
Los archivos HDF5 pueden almacenar muchos tipos diferentes de datos dentro del mismo archivo. Por ejemplo, un grupo puede contener un conjunto de conjuntos de datos para contener datos enteros (numéricos) y de texto (cadenas). O bien, un conjunto de datos puede contener tipos de datos heterogéneos (por ejemplo, tanto texto como datos numéricos en un conjunto de datos). Esto significa que HDF5 puede almacenar cualquiera de los siguientes (y más) en un archivo:
Datos de temperatura, precipitación y PAR (radiación fotosintética activa) para un sitio o para muchos sitios
Un conjunto de imágenes que cubren una o más áreas (cada imagen puede tener asociada información espacial específica, todo en el mismo archivo)
Un conjunto de datos espaciales multi o hiperespectral que contiene cientos de bandas.
Datos de campo para varios sitios que caracterizan insectos, mamíferos, vegetación y clima.
Un conjunto de imágenes que cubren una o más áreas (cada imagen puede tener asociada información espacial única)
¡Y mucho más!
Formato abierto
El formato HDF5 es abierto y de uso gratuito. Las bibliotecas de apoyo (y un visor gratuito) se pueden descargar desde el sitio web de HDF Group . Como tal, HDF5 es ampliamente compatible con una gran cantidad de programas, incluidos lenguajes de programación de código abierto como R y Python, y herramientas de programación comerciales como Matlaby IDL. Los datos espaciales que se almacenan en formato HDF5 se pueden utilizar en los programas de SIG y de imagen que incluyen QGIS, ArcGISy ENVI.
Beneficios de HDF5
Autodescripción Los conjuntos de datos con un archivo HDF5 son autodescriptivos. Esto nos permite extraer metadatos de manera eficiente sin necesidad de un documento de metadatos adicional.
Admite datos heterogéneos : un archivo HDF5 puede contener diferentes tipos de conjuntos de datos.
Admite datos grandes y complejos : HDF5 es un formato comprimido que está diseñado para admitir conjuntos de datos grandes, heterogéneos y complejos.
Admite la división de datos: la «división de datos», o la extracción de partes del conjunto de datos según sea necesario para el análisis, significa que los archivos grandes no necesitan leerse por completo en la memoria o RAM de la computadora.
Formato abierto: soporte amplio en las muchas herramientas : debido a que el formato HDF5 es abierto, es compatible con una gran cantidad de lenguajes y herramientas de programación, incluidos lenguajes de código abierto como R y Pythonherramientas SIG abiertas como QGIS.E
Instalación del NILTK
Descargue e instale Conda
Los entornos virtuales hacen que la organización de paquetes de Python sea pan comido. Además, el proyecto NILMTK ofrece varias versiones de Conda Forge. Primero, consiga Anaconda aquí. Luego, abra una ventana de terminal e inicie la instalación desde la línea de comando:
Dowloads cd /
bash Anaconda3-2020.11-Linux-x86_64.sh -u
Se le guiará a través de varios pasos. Instale Conda y pruebe la instalación ejecutando el comando conda en el símbolo del sistema:
conda
En caso de que el comando conda resulte en «un error de intérprete incorrecto» (es decir, no existe tal error de archivo o directorio), aplique la siguiente solución:
cd / inicio / usuario / nano .bashrc
agregue la línea:
export PATH = ~ / anaconda3 / bin: $ PATH
Guarde los cambios en el archivo y, finalmente, ejecute el comando:
source .bashrc
Felicidades, acaba de instalar Conda.
Instalación de NILMTK
Abra una ventana de terminal, cree un nuevo entorno de Conda y actívelo:
Si aún no está presente en su instalación de Conda, agregue el conda-forge a la lista de canales:
conda config --add channels conda-forge
Finalmente, instale la última versión de NILMTK de conda-forge :
conda install -c nilmtk nilmtk=0.4.3
Observe que el signo igual no lleva espacios(piense estamos usando Python.
La ejecución del comando puede tardar un rato. Mientras tanto, consulte otros paquetes en Forge de NILMTK .
Como puede experimentar algunos problemas posteriores a la instalación con NILMTK y Matplotlib., para s olucionarlos, aplique el comando:
conda install matplotlib=3.3.2
Agregar un kernel de Jupyter
Básicamente, NILMTK ahora está instalado en su ordenador. El siguiente paso involucra los cuadernos de Jupyter. Trabajar con Jupyter abre muchas posibilidades y se dice que es una herramienta imprescindible. Por lo tanto, agregue el entorno NILMTK a Jupyter:
MeterGroup (metros = ElecMeter (instancia = 1, edificio = 1, conjunto de datos = Ninguno, electrodomésticos = []) ElecMeter (instancia = 2, edificio = 1, conjunto de datos = Ninguno, electrodomésticos = []) ElecMeter (instancia = 3, edificio = 1, conjunto de datos = Ninguno, electrodomésticos = []) ElecMeter (instancia = 4, edificio = 1, conjunto de datos = Ninguno, electrodomésticos = []) ElecMeter (instancia = 5, edificio = 1, conjunto de datos = Ninguno, electrodomésticos = []) )
¡Felicitaciones! Lo ha logrado. ¡NILMTK parece funcionar según lo previsto! La próxima vez, discutiremos cómo usar la API de NILMTK para una experimentación rápida y conveniente.
Debe estar conectado para enviar un comentario.