Instalación de NILMTK y nilmtk-contrib en Windows 11: retos y solución definitiva con WSL y pyenv


En este blog hemos hablado en muchísimas ocasiones del paquete NILMTK, el famoso paquete open software para implementar la desagregacion de la energia .NILMTK es un toolkit de código abierto para Non-Intrusive Load Monitoring (NILM), cuya utilidad principal es desagregar el consumo eléctrico de una vivienda en los diferentes electrodomésticos usando solo la lectura de un medidor general. ¿Qué significa esto?

  • NILM (Non-Intrusive Load Monitoring): Técnica que estima cuánta energía consume cada aparato sin necesidad de instalar sensores individuales en cada uno.
  • NILMTK (Toolkit): Es una biblioteca en Python que ofrece algoritmos, datasets y herramientas para investigar, probar y comparar métodos de desagregación energética.

Utilidad práctica

  • Investigación en Smart Grids: Permite estudiar hábitos de consumo eléctrico sin desplegar muchos medidores.
  • Eficiencia energética: Ayuda a identificar qué aparatos consumen más y cuándo, facilitando estrategias de ahorro.
  • Aplicaciones comerciales: Puede generar facturas detalladas a partir de un único medidor, útil para compañías eléctricas o proyectos de domótica.
  • Desarrollo académico: Es usado en universidades y centros de investigación para probar nuevos algoritmos de machine learning aplicados al consumo energético.

NILMTK convierte una sola lectura de energía en información detallada por aparato, lo que lo hace valioso para investigación, eficiencia y gestión energética. Todo esto esta muy bien ….pero instalar NILMTK y nilmtk-contrib en Windows 11 puede convertirse en una tarea complicada debido a incompatibilidades de versiones de Python y dependencias antiguas usadas por las librerías. Si bien la opción inicial recomendada suele ser crear un entorno conda con Python 3.7, con frecuencia surgen problemas al manejar las versiones correctas de dependencias como numpy y pandas , por eso otro camino puede ser usar WSL ,el cual vamos a explorar en este post, pero antes veamos los problemas a los qeu nos enfrentamos con la instalación clásica con la herramienta Conda/miniconda.

Problemas frecuentes al usar Conda en Windows

Debido a que NILMTK requiere versiones específicas, comúnmente se intenta crear un entorno conda con Python 3.7:

conda create -n nilmtk-env python=3.7
conda activate nilmtk-env
conda install -c nilmtk nilmtk=0.4.3 numpy=1.19.5 -y

No obstante, se presentan errores como LibMambaUnsatisfiableError porque la dependencia hmmlearn no está disponible en el canal nilmtk. Agregar el canal conda-forge y combinar instalaciones con conda y pip es la solución habitual:

conda config --add channels conda-forge
conda config --set channel_priority flexible
conda install hmmlearn numpy=1.19.5 -y
pip install nilmtk==0.4.3 --no-deps

Sin embargo, incluso con estos ajustes, la instalación en Windows puede ser inestable. Además, NILMTK no está oficialmente publicado en PyPI, por lo que la instalación desde código fuente usando pip es habitual, lo que puede generar otras complicaciones relacionadas con versiones de Python y dependencias de construcción como hatchling.

La solución definitiva: usar WSL con pyenv y Python 3.11.5

La forma más estable es instalar NILMTK dentro de WSL (Windows Subsystem for Linux), usando pyenv para gestionar una versión compatible de Python, concretamente la 3.11.5. Esto permite:

  • Evitar conflictos de versiones de dependencias antiguas.
  • Usar la infraestructura Linux más compatible para herramientas científicas.
  • Integrar sin problemas con Visual Studio Code y Jupyter.

Pasos clave para esta instalación en WSL

  1. Prepara WSL con las dependencias básicas para compilar Python
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev \
libsqlite3-dev wget curl llvm libncurses-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl git
  1. Instala pyenv y configúralo en tu shell
curl https://pyenv.run | bash

Incluye al final de ~/.bashrc:

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

Carga la configuración actual:

source ~/.bashrc
  1. Instala Python 3.11.5 y crea un entorno virtual específico para NILMTK
pyenv install 3.11.5
pyenv virtualenv 3.11.5 nilmtk-env
pyenv activate nilmtk-env
  1. Actualiza pip y instala las dependencias fundamentales
pip install --upgrade pip setuptools wheel
pip install numpy pandas hmmlearn h5py matplotlib networkx nose tables tqdm
pip install git+https://github.com/nilmtk/nilm_metadata.git
  1. Clona el código fuente de NILMTK y nilmtk-contrib e instálalos
git clone https://github.com/nilmtk/nilmtk.git
git clone https://github.com/nilmtk/nilmtk-contrib.git

cd nilmtk
pip install -e . --no-deps
cd ..

cd nilmtk-contrib
pip install -r requirements.txt --no-deps
pip install -e . --no-deps
cd ..
  1. Configura Jupyter para usar el nuevo entorno
pip install jupyter ipykernel
python -m ipykernel install --user --name=nilmtk-env --display-name "Python (nilmtk-env)"
  1. Integra con Visual Studio Code

Abre VS Code desde la terminal WSL con el entorno activado:

pyenv activate nilmtk-env
code .

Selecciona el intérprete Python ubicado en:

text/home/carlo/.pyenv/versions/3.11.5/envs/nilmtk-env/bin/python

Y en los notebooks selecciona el kernel "Python (nilmtk-env)".

Conclusión

Aunque instalar NILMTK y nilmtk-contrib en Windows 11 presenta numerosos retos por incompatibilidades de versiones y dependencias, usar WSL combinado con pyenv y Python 3.11.5 proporciona un entorno estable, funcional y que integra bien con VS Code y Jupyter.

Este es el método recomendado para investigadores y desarrolladores que buscan máxima compatibilidad y facilidad para trabajar con NILMTK en Windows.

¿Qué hacer tras el fin de soporte oficial de Windows 10? Opciones reales, ventajas y cómo instalar Windows 10 LTSC


¿Te has enterado de que el 14 de octubre de 2025 terminó el soporte de Windows 10? Microsoft ha dejado de lanzar actualizaciones de seguridad para la mayoría de usuarios, por lo que resulta esencial decidir cómo proteger tu PC y mantenerlo actualizado.

Programa ESU: soporte extendido por tiempo limitado

Microsoft ofrece el Extended Security Updates (ESU), ampliando la vida útil de Windows 10 hasta 2028 con parches críticos, principalmente para empresas, aunque en algunos países también está disponible para usuarios domésticos. Es una solución de emergencia, ya que solo cubre seguridad y no añade nuevas funciones ni ofrece soporte técnico completo. Puedes conseguir un año gratis con tu cuenta Microsoft, como detallamos en este post.

Sinceramente es una solución muy interesante que evita tener que formatear el equipo (ni por supuesto tocar nada mas) aunque el problema se pospone un año mas…

Alternativa duradera: Windows 10 IoT Enterprise LTSC

Si prefieres un sistema estable sin migrar a Windows 11, la versión Windows 10 IoT Enterprise LTSC es ideal. Está pensada para entornos críticos pero es perfectamente válida para el hogar o pequeñas empresas:

  • Soporte de actualizaciones de seguridad hasta 2032, en teoria sin coste adicional.
  • No exige TPM 2.0 ni cuenta Microsoft.
  • Sin aplicaciones innecesarias, anuncios ni actualizaciones de funciones molestas.
  • Mayor rendimiento y estabilidad, incluso en equipos antiguos.

Ojo a pesar de que alargara la vida del equipo sin el chip TPM , hay un pequeño inconveniente: no incluye la tienda de aplicaciones de Microsoft ni tampoco Cortana.

Cómo instalar Windows 10 LTSC paso a paso

  1. Descarga la ISO oficial desde Microsoft Evaluation Center o Internet Archive ( en caso de tener un lector DVD). Si quieres puedes descargar la ISO desde aqui → Click Here (https://massgrave.dev/windows_ltsc_links)
  2. Una vez descargada la imagen ISO quema un DVD bootable usando por ejemplo el propio grabador de windows
  3. En caso de no disponer de DVD , crea un USB booteable con Rufus . Si quieres puedes descargar RUFUS desde aqui →→ Use Rufus
  4. Haz copia de tus archivos importantes dado que la nueva instalación borrará el disco por completo.
  5. Arranca desde el USB y sigue el asistente de instalación.

Para activarlo necesitas una clave especial, disponible en tiendas fiables como GVGMall, La Tienda de las Licencias, ClaveCD o Zentinels. Las licencias suelen costar entre 12 y 30 euros y llegan por email con guía de activación.

Gvgmoll es un site que se ha popularizado por vender licencias fundamentalmente de Microsoft a muy bajos precios . En el caso de Windows 10 LSTC la licencia puede activar una versión instalada de IoT, pero el nombre de la versión cambiará a “no IoT” una vez completada la activación. Por cierto, existe el código promocional «fast» que supone un descuento del 30% y que podemos introducir a la hora de concluir el proceso de compra.

Atención: en algunas tiendas, la clave activa una versión IoT, que después cambia a “no IoT”. El soporte podría finalizar antes (12 enero 2027) según el proveedor, pero la experiencia y funciones apenas cambian respecto a la original. Consulta siempre la reputación de la tienda y evita ofertas poco creíbles.

Requisitos mínimos

  • Procesador 1 GHz o superior
  • 2 GB RAM (64 bits)
  • 20 GB de espacio en disco
  • Compatible con DirectX 9 o posterior

Preguntas frecuentes sobre Windows 10 LTSC

  • ¿Incluye apps como Cortana o Store?
    No, es una edición ligera orientada a máxima estabilidad.
  • ¿Recibiré funciones nuevas?
    Solo parches críticos, sin actualizaciones de funcionalidades.
  • ¿Es legal comprar licencias en tiendas alternativas?
    Sí, si son revendedores oficiales y te entregan clave e instrucciones.

Resumen

Si buscas seguir usando Windows 10 de forma segura, tienes dos caminos: el ESU, limitado en el tiempo y enfocado en grandes empresas o particulares que no prefieran esperar un año mas , o Windows 10 LTSC, una alternativa eficiente, estable y con soporte hasta 2032 para usuarios exigentes y equipos antiguos. Escoge la que mejor se adapte a tus necesidades y mantén tu PC protegido.