El artículo ilustra cómo abordar el problema de desarrollar aplicaciones energéticamente eficientes que tengan en cuenta el contexto. Se define un asistente ecológico que utiliza métodos avanzados de ingeniería de software, como líneas de productos software dinámicas (DSPL) y separación de "concerns" para modelar la variabilidad de las aplicaciones y los componentes que consumen más energía. El asistente ecológico se evalúa experimentalmente en el contexto de los sistemas ciberfísicos, midiendo el consumo energético real del software utilizando diferente hardware (e.g., un voltímetro, un sensor de monitorización de energía, una Raspeberry,...). El asistente ecológico es capaz de adaptar el comportamiento del sistema dinámicamente acorde a la configuración más eficiente en un momento dado.