Hintpad kann auf zwei verschiedene Arten Feedback erhalten.
Entweder über eine offene API (JSON) oder in Kombination mit einem Controllino.
Dieser Artikel behandelt den Umgang mit der API, über die jede beliebige Anwendung mit Hintpad verbunden werden kann.
Beispiel-Code (Javascript):
XMLHttpRequest()
// Send html formatted strings to Hintpad
function sendRoomEvent (message) {
var hintpadIP = "192.168.0.2";
var data = JSON.stringify( {"data":{"content": message, "origin":"MyEscapeRoomDevice"}} );
var xhr = new XMLHttpRequest();
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(data);
}
fetch()
function sendRoomEvent(message) {
const hintpadIP = "192.168.0.100";
const url = `http://${hintpadIP}:4010/api/external-logs`;
const payload = { data: {content: message, origin: "machine"} };
fetch(url, { method: "POST", headers: {"Content-Type": "application/json"},
body: JSON.stringify(payload) })
.then(response => {
if (!response.ok) {
log("Fehler beim Senden des Room Events:", response.statusText);
}
})
.catch(error => {
log("Fetch-Fehler beim Room Event:", error.message);
});
} else {
log("-> Room event NOT sent: activate Hintpad in gameConfig.");
}
}
Hintpad zeigt in der Spielleiter-Ansicht den message-String an. Dieser String kann mit jeder beliebigen Funktion verknüpft werden, um Aktionen zu automatisieren (Zeit, Hinweise, Magnete etc.)
Room Events einrichten
Im Admin-Bereich des Hintpads können unter Advanced/API die Room Events eingerichtet werden.
- Name: Benennung des Events für die weitere Verarbeitung (siehe unten)
- Trigger: der (Teil-)String, der als content im JSON-Payload des Room Events mitgeschickt wird