Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

[Guía] Cómo automatizar el mantenimiento y borrado de variables antiguas
#1

Cuando empezamos a crear Advanced Flows complejos, es muy habitual recurrir a variables lógicas para almacenar estados temporales (por ejemplo, "Última detección", "Contador de pulsaciones", "Modo fiesta activo", etc.). El problema es que, con el tiempo, acumulamos decenas de variables que ya no usamos, lo que acaba ensuciando el panel de Homey y ralentizando la gestión de los flujos.

Hacer limpieza a mano es un aburrimiento, así que... ¿por qué no dejar que HomeyScript lo haga solo?
El Script: Limpieza automática de variables en desuso
Este pequeño código en JavaScript revisa las variables de tu Homey Pro y genera un log con aquellas que llevan más de 30 días sin actualizarse, permitiéndote identificar de un vistazo qué puedes borrar para mantener tu sistema optimizado.
JavaScript

Código:
// Script de optimización para HomeYdomotica
// Busca variables de lógica que no se han actualizado en los últimos X días
const DIAS_LIMITE = 30; // Cambia este número según tus necesidades
const tiempoLimite = Date.now() - (DIAS_LIMITE * 24 * 60 * 60 * 1000);
// Obtenemos todas las variables lógicas del sistema
const logic = await Homey.logic.getVariables();
let contadorAntiguas = 0;
console.log(`--- ESCANEO DE VARIABLES INACTIVAS (MÁS DE ${DIAS_LIMITE} DÍAS) ---`);
for (const variableId in logic) {
    const variable = logic[variableId];
    const ultimaActualizacion = new Date(variable.updated).getTime();
   
    if (ultimaActualizacion < tiempoLimite) {
        console.log(`⚠️ Alerta: La variable [${variable.name}] (Valor: ${variable.value}) no se usa desde: ${variable.updated}`);
        contadorAntiguas++;
    }
}
if (contadorAntiguas === 0) {
    console.log("¡Enhorabuena! Todas tus variables lógicas están al día. ?");
} else {
    console.log(`\nSe han encontrado ${contadorAntiguas} variables candidatas a ser eliminadas.`);
}
return true;

¿Cómo se ejecuta en tus flujos?
Una vez que guardes este código en el gestor de HomeyScript, integrarlo en tu rutina es sencillísimo:
  1. Crea un Flow estándar o Advanced Flow.
  2. Añade un disparador de Fecha y hora (por ejemplo, todos los domingos a las 23:00).
  3. En la tarjeta de acción, selecciona HomeyScript -> Ejecutar código con argumento (y seleccionas este script).
  4. El resultado del escaneo se guardará directamente en la consola o puedes configurar que te envíe un resumen a la app o a tu canal de Telegram de notificaciones.



Nota de seguridad: Recordad utilizar siempre los scripts con precaución. Aunque este código en concreto es completamente inofensivo (es un simple escaneo de lectura: o funciona y te muestra la lista de variables, o no hace nada), para otros scripts más avanzados que modifiquen o borren datos hay que ir con pies de plomo. Probar scripts de terceros en vuestro sistema es siempre bajo vuestra propia responsabilidad.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)