Escribir y controlar
This content is not available in your language yet.
Un artefacto no solo muestra datos: si tiene permiso de escritura, escribir una gVar manda una orden a un thing. Es la base de cualquier control (botones, sliders, interruptores).
Escribir es asignar:
gVar.encender = true;La asignación es síncrona y optimista: tu propia pantalla ve el valor nuevo de inmediato, y el motor de diferencias lo envía en el siguiente ciclo (500 ms como máximo). No hay promesa que esperar.
Ejemplo: un botón de control
Sección titulada «Ejemplo: un botón de control»<button id="luz">Encender luz</button>const boton = document.querySelector("#luz");
boton.addEventListener("click", () => { gVar.encender = !gVar.encender;});Refleja el estado real, no el clic
Sección titulada «Refleja el estado real, no el clic»La confirmación llega cuando el thing publica su estado. En vez de pintar el botón como “encendido” al hacer clic, lee la variable de estado real:
setInterval(() => { boton.classList.toggle("activo", gVar.encendido === true);}, 500);Si la plataforma corrige tu valor (un thing que normaliza true a 255), tu variable
adopta el valor real cuando llega la confirmación, siempre que no la hayas vuelto a
escribir mientras tanto.
Errores: qué lanza y qué solo avisa
Sección titulada «Errores: qué lanza y qué solo avisa»Algunas escrituras son un error de programación y lanzan TypeError en el momento:
| Escritura | Por qué falla |
|---|---|
gVar.nueva = 5 | La variable no existe. Se crea en Telemetría, no desde el código. |
gVar.noSeleccionada = 5 | Existe en el proyecto pero no está seleccionada. |
gVar.temperaturas_time = [...] | Las claves _time son internas del sistema. |
delete gVar.x | No se pueden borrar variables desde un artefacto. |
gVar.temperaturas = [1, 2, 3] | Es una serie: se reinicia con = [] o se alimenta con pushData(). |
gVar.lista = [...3001 elementos] | El máximo por lista es 2500 elementos. |
| Cualquier escritura siendo invitado | Un artefacto privado abierto por un guest es de solo lectura. |
En un artefacto público, escribir una variable que no está en su lista permitida no
lanza: avisa por console.warn y no cambia nada. Es intencional — una URL pública no
revela qué variables existen en el proyecto.
Las series no se escriben por asignación: se alimentan con pushData() y se reinician
con = []. Además requieren un rol de escritura cuando hay varias pestañas
abiertas. Todo eso está en
Series y gráficas.