<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[HomeY Domótica - Scripts y Lógica]]></title>
		<link>https://homeydomotica.com/</link>
		<description><![CDATA[HomeY Domótica - https://homeydomotica.com]]></description>
		<pubDate>Wed, 03 Jun 2026 10:19:24 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[[Guía] Cómo automatizar el mantenimiento y borrado de variables antiguas]]></title>
			<link>https://homeydomotica.com/Thread-Gu%C3%ADa-C%C3%B3mo-automatizar-el-mantenimiento-y-borrado-de-variables-antiguas</link>
			<pubDate>Sat, 23 May 2026 09:53:59 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://homeydomotica.com/member.php?action=profile&uid=1">Toni</a>]]></dc:creator>
			<guid isPermaLink="false">https://homeydomotica.com/Thread-Gu%C3%ADa-C%C3%B3mo-automatizar-el-mantenimiento-y-borrado-de-variables-antiguas</guid>
			<description><![CDATA[Cuando empezamos a crear <span style="font-style: italic;" class="mycode_i">Advanced Flows</span> 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.<br />
<br />
Hacer limpieza a mano es un aburrimiento, así que... ¿por qué no dejar que HomeyScript lo haga solo?<br />
El Script: Limpieza automática de variables en desuso<br />
Este pequeño código en JavaScript revisa las variables de tu Homey Pro y genera un log con aquellas que llevan <span style="font-weight: bold;" class="mycode_b">más de 30 días sin actualizarse</span>, permitiéndote identificar de un vistazo qué puedes borrar para mantener tu sistema optimizado.<br />
JavaScript<br />
<br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>// Script de optimización para HomeYdomotica<br />
// Busca variables de lógica que no se han actualizado en los últimos X días<br />
const DIAS_LIMITE = 30; // Cambia este número según tus necesidades<br />
const tiempoLimite = Date.now() - (DIAS_LIMITE * 24 * 60 * 60 * 1000);<br />
// Obtenemos todas las variables lógicas del sistema<br />
const logic = await Homey.logic.getVariables();<br />
let contadorAntiguas = 0;<br />
console.log(`--- ESCANEO DE VARIABLES INACTIVAS (MÁS DE &#36;{DIAS_LIMITE} DÍAS) ---`);<br />
for (const variableId in logic) {<br />
    const variable = logic[variableId];<br />
    const ultimaActualizacion = new Date(variable.updated).getTime();<br />
    <br />
    if (ultimaActualizacion &lt; tiempoLimite) {<br />
        console.log(`⚠️ Alerta: La variable [&#36;{variable.name}] (Valor: &#36;{variable.value}) no se usa desde: &#36;{variable.updated}`);<br />
        contadorAntiguas++;<br />
    }<br />
}<br />
if (contadorAntiguas === 0) {<br />
    console.log("¡Enhorabuena! Todas tus variables lógicas están al día. ?");<br />
} else {<br />
    console.log(`&#92;nSe han encontrado &#36;{contadorAntiguas} variables candidatas a ser eliminadas.`);<br />
}<br />
return true;</code></div></div><br />
¿Cómo se ejecuta en tus flujos?<br />
Una vez que guardes este código en el gestor de HomeyScript, integrarlo en tu rutina es sencillísimo:<br />
<ol type="1" class="mycode_list"><li>Crea un <span style="font-style: italic;" class="mycode_i">Flow</span> estándar o <span style="font-style: italic;" class="mycode_i">Advanced Flow</span>.<br />
</li>
<li>Añade un disparador de <span style="font-weight: bold;" class="mycode_b">Fecha y hora</span> (por ejemplo, todos los domingos a las 23:00).<br />
</li>
<li>En la tarjeta de acción, selecciona <span style="font-weight: bold;" class="mycode_b">HomeyScript</span> -&gt; <span style="font-style: italic;" class="mycode_i">Ejecutar código con argumento</span> (y seleccionas este script).<br />
</li>
<li>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.<br />
</li>
</ol>
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Nota de seguridad:</span> 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.]]></description>
			<content:encoded><![CDATA[Cuando empezamos a crear <span style="font-style: italic;" class="mycode_i">Advanced Flows</span> 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.<br />
<br />
Hacer limpieza a mano es un aburrimiento, así que... ¿por qué no dejar que HomeyScript lo haga solo?<br />
El Script: Limpieza automática de variables en desuso<br />
Este pequeño código en JavaScript revisa las variables de tu Homey Pro y genera un log con aquellas que llevan <span style="font-weight: bold;" class="mycode_b">más de 30 días sin actualizarse</span>, permitiéndote identificar de un vistazo qué puedes borrar para mantener tu sistema optimizado.<br />
JavaScript<br />
<br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>// Script de optimización para HomeYdomotica<br />
// Busca variables de lógica que no se han actualizado en los últimos X días<br />
const DIAS_LIMITE = 30; // Cambia este número según tus necesidades<br />
const tiempoLimite = Date.now() - (DIAS_LIMITE * 24 * 60 * 60 * 1000);<br />
// Obtenemos todas las variables lógicas del sistema<br />
const logic = await Homey.logic.getVariables();<br />
let contadorAntiguas = 0;<br />
console.log(`--- ESCANEO DE VARIABLES INACTIVAS (MÁS DE &#36;{DIAS_LIMITE} DÍAS) ---`);<br />
for (const variableId in logic) {<br />
    const variable = logic[variableId];<br />
    const ultimaActualizacion = new Date(variable.updated).getTime();<br />
    <br />
    if (ultimaActualizacion &lt; tiempoLimite) {<br />
        console.log(`⚠️ Alerta: La variable [&#36;{variable.name}] (Valor: &#36;{variable.value}) no se usa desde: &#36;{variable.updated}`);<br />
        contadorAntiguas++;<br />
    }<br />
}<br />
if (contadorAntiguas === 0) {<br />
    console.log("¡Enhorabuena! Todas tus variables lógicas están al día. ?");<br />
} else {<br />
    console.log(`&#92;nSe han encontrado &#36;{contadorAntiguas} variables candidatas a ser eliminadas.`);<br />
}<br />
return true;</code></div></div><br />
¿Cómo se ejecuta en tus flujos?<br />
Una vez que guardes este código en el gestor de HomeyScript, integrarlo en tu rutina es sencillísimo:<br />
<ol type="1" class="mycode_list"><li>Crea un <span style="font-style: italic;" class="mycode_i">Flow</span> estándar o <span style="font-style: italic;" class="mycode_i">Advanced Flow</span>.<br />
</li>
<li>Añade un disparador de <span style="font-weight: bold;" class="mycode_b">Fecha y hora</span> (por ejemplo, todos los domingos a las 23:00).<br />
</li>
<li>En la tarjeta de acción, selecciona <span style="font-weight: bold;" class="mycode_b">HomeyScript</span> -&gt; <span style="font-style: italic;" class="mycode_i">Ejecutar código con argumento</span> (y seleccionas este script).<br />
</li>
<li>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.<br />
</li>
</ol>
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Nota de seguridad:</span> 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.]]></content:encoded>
		</item>
	</channel>
</rss>