Skip to content

Escribir y controlar

This content is not available in your language yet.

Un artefacto no solo muestra datos: si tiene permiso de escritura, puede escribir una gVar para mandar una orden a un thing. Es la base de cualquier control (botones, sliders, interruptores).

const { gvar } = window.Undercromo;

write(clave, valor) es asíncrono y resuelve cuando la plataforma confirma el cambio:

await gvar.write("encender", true);

El thing que observe esa gVar reaccionará (ver Telemetría con gVar del lado del thing).

<button id="luz">Encender luz</button>
const boton = document.querySelector("#luz");
boton.addEventListener("click", async () => {
try {
await gvar.write("encender", true);
} catch (error) {
console.error("No se pudo escribir:", error);
alert("No tienes permiso para controlar este thing.");
}
});

write falla (la promesa se rechaza) si:

  • el artefacto no tiene permiso de escritura, o
  • la variable no es visible para él, o
  • hay un problema de conexión.

Por eso write va siempre dentro de try/catch (o con .catch(...)). No asumas que el cambio se aplicó: espera a que la promesa resuelva.

// Refleja el estado real, no el clic
gvar.observe("encendido", (estado) => {
boton.classList.toggle("activo", estado === true);
}, { immediate: true });