<?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, 29 Jul 2026 01:15:14 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Script para controlar ventilador según temperatura Homey]]></title>
			<link>https://homeydomotica.com/Thread-Script-para-controlar-ventilador-seg%C3%BAn-temperatura-Homey</link>
			<pubDate>Tue, 07 Jul 2026 06:46:01 +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-Script-para-controlar-ventilador-seg%C3%BAn-temperatura-Homey</guid>
			<description><![CDATA[Os dejo el Script para copiar y pegar, lo que hace es hace una consulta a la temperatura del núcleo de homey, si es mayor a 69 enciende un enchufe que lleva enchufado un ventilador de voltios y si es menor a 67 lo apaga.<br />
<br />
const TEMP_ON = 69;<br />
const TEMP_OFF = 67;<br />
const DEVICE_NAME = 'USBs despacho';<br />
<br />
const info = await Homey.system.getInfo();<br />
const temp = info.videoCoreTemperature;<br />
<br />
// Buscar el dispositivo<br />
const devices = await Homey.devices.getDevices();<br />
const device = Object.values(devices).find(d =&gt; d.name === DEVICE_NAME);<br />
<br />
if (!device) {<br />
  throw new Error(`No se encontró el dispositivo "&#36;{DEVICE_NAME}"`);<br />
}<br />
<br />
const isOn = device.capabilitiesObj.onoff.value;<br />
<br />
// Encender<br />
if (temp &gt;= TEMP_ON &amp;&amp; !isOn) {<br />
  await Homey.devices.setCapabilityValue({<br />
    deviceId: device.id,<br />
    capabilityId: 'onoff',<br />
    value: true<br />
  });<br />
<br />
  log(`&#36;{temp}°C -&gt; Ventilador ENCENDIDO`);<br />
}<br />
<br />
// Apagar<br />
if (temp &lt;= TEMP_OFF &amp;&amp; isOn) {<br />
  await Homey.devices.setCapabilityValue({<br />
    deviceId: device.id,<br />
    capabilityId: 'onoff',<br />
    value: false<br />
  });<br />
<br />
  log(`&#36;{temp}°C -&gt; Ventilador APAGADO`);<br />
}<br />
<br />
log(`Temperatura actual: &#36;{temp}°C`);<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Importante:</span> Importante: Sustituye Ventilador Homey por el nombre que tenga tu enchufe inteligente en Homey, y las temperaturas de encendido y apagado por las que quieras<br />
<br />
<br />
<a href="https://homeydomotica.com/Thread-C%C3%B3mo-refrigerar-autom%C3%A1ticamente-Homey-Pro-con-un-ventilador-USB-y-HomeyScript" target="_blank" rel="noopener" class="mycode_url">Tutorial</a>]]></description>
			<content:encoded><![CDATA[Os dejo el Script para copiar y pegar, lo que hace es hace una consulta a la temperatura del núcleo de homey, si es mayor a 69 enciende un enchufe que lleva enchufado un ventilador de voltios y si es menor a 67 lo apaga.<br />
<br />
const TEMP_ON = 69;<br />
const TEMP_OFF = 67;<br />
const DEVICE_NAME = 'USBs despacho';<br />
<br />
const info = await Homey.system.getInfo();<br />
const temp = info.videoCoreTemperature;<br />
<br />
// Buscar el dispositivo<br />
const devices = await Homey.devices.getDevices();<br />
const device = Object.values(devices).find(d =&gt; d.name === DEVICE_NAME);<br />
<br />
if (!device) {<br />
  throw new Error(`No se encontró el dispositivo "&#36;{DEVICE_NAME}"`);<br />
}<br />
<br />
const isOn = device.capabilitiesObj.onoff.value;<br />
<br />
// Encender<br />
if (temp &gt;= TEMP_ON &amp;&amp; !isOn) {<br />
  await Homey.devices.setCapabilityValue({<br />
    deviceId: device.id,<br />
    capabilityId: 'onoff',<br />
    value: true<br />
  });<br />
<br />
  log(`&#36;{temp}°C -&gt; Ventilador ENCENDIDO`);<br />
}<br />
<br />
// Apagar<br />
if (temp &lt;= TEMP_OFF &amp;&amp; isOn) {<br />
  await Homey.devices.setCapabilityValue({<br />
    deviceId: device.id,<br />
    capabilityId: 'onoff',<br />
    value: false<br />
  });<br />
<br />
  log(`&#36;{temp}°C -&gt; Ventilador APAGADO`);<br />
}<br />
<br />
log(`Temperatura actual: &#36;{temp}°C`);<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Importante:</span> Importante: Sustituye Ventilador Homey por el nombre que tenga tu enchufe inteligente en Homey, y las temperaturas de encendido y apagado por las que quieras<br />
<br />
<br />
<a href="https://homeydomotica.com/Thread-C%C3%B3mo-refrigerar-autom%C3%A1ticamente-Homey-Pro-con-un-ventilador-USB-y-HomeyScript" target="_blank" rel="noopener" class="mycode_url">Tutorial</a>]]></content:encoded>
		</item>
		<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>