Enviar string a PARABORRAR
/* code css */
#app {
font-family: Arial, sans-serif;
max-width: 420px;
margin: 6px;
padding: 12px;
border-radius: 8px;
box-shadow: 0 1px 6px rgba(0,0,0,0.08);
background: #fff;
}
h3 {
margin: 0 0 10px 0;
font-size: 16px;
}
.controls {
display: flex;
gap: 8px;
margin-bottom: 10px;
}
.send-btn {
padding: 8px 12px;
border: none;
border-radius: 6px;
cursor: pointer;
font-weight: 600;
background: #f0f0f0;
}
.send-btn:hover { transform: translateY(-1px); }
.custom-send {
display: flex;
gap: 8px;
margin-bottom: 12px;
}
#customInput {
flex: 1;
padding: 8px;
border-radius: 6px;
border: 1px solid #ddd;
}
#sendCustom {
padding: 8px 12px;
border-radius: 6px;
border: none;
cursor: pointer;
background: #e8f4ff;
}
#status {
font-size: 13px;
color: #333;
padding: 8px;
border-radius: 6px;
background: #fbfbfb;
border: 1px solid #f0f0f0;
}
/* ================================
CODE JAVASCRIPT
================================ */
const UBIFUNCTION_URL = 'https://parse.ubidots.com/prv/Llaqta_Ingenieros/paraborrar';
// Token de Ubidots para leer/escribir variables, HERE I PUT MY TOKEN
const TOKEN = 'MYTOKEN';
// Variable Ubidots de la cual quieres obtener el último valor
const VARIABLE_URL = 'https://industrial.api.ubidots.com/api/v1.6/variables/692ddf444919b05d75625c56/values?page_size=1';
/* ================================
MUESTRA ESTADO
================================ */
function setStatus(text, error = false) {
const el = document.getElementById('status');
el.innerText = text;
el.style.color = error ? 'red' : 'green';
}
/* ================================
GET: obtener último valor de variable
================================ */
async function loadLastValue() {
try {
setStatus("Cargando valor...");
const response = await fetch(VARIABLE_URL, {
method: "GET",
headers: {
"X-Auth-Token": TOKEN,
"Content-Type": "application/json"
}
});
const data = await response.json();
if (!data.results || data.results.length === 0) {
setStatus("La variable no tiene datos aún.");
return;
}
const lastValue = data.results[0].value;
// Colocar valor en input
document.getElementById("customInput").value = lastValue;
setStatus("Valor cargado correctamente.");
} catch (err) {
console.error(err);
setStatus("Error cargando valor inicial.", true);
}
}
/* ================================
POST: enviar nuevo valor a UbiFunction
================================ */
async function sendInputString(value) {
if (!value) {
setStatus("El valor está vacío", true);
return;
}
setStatus(`Enviando "${value}"...`);
try {
const response = await fetch(UBIFUNCTION_URL, {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Auth-Token": TOKEN
},
body: JSON.stringify({ inputString: value })
});
const txt = await response.text();
if (response.ok) {
setStatus(`Enviado OK: ${txt}`);
} else {
setStatus(`Error: ${txt}`, true);
}
} catch (err) {
console.error(err);
setStatus("Error enviando valor.", true);
}
}
/* ================================
EVENTOS
================================ */
document.addEventListener("DOMContentLoaded", () => {
// Cargar valor inicial
loadLastValue();
// Botones uno/dos/tres
document.querySelectorAll(".send-btn").forEach(btn => {
btn.addEventListener("click", () => {
sendInputString(btn.dataset.value);
});
});
// Botón personalizado
document.getElementById("sendCustom").addEventListener("click", () => {
const v = document.getElementById("customInput").value.trim();
sendInputString(v);
});
});