UI-003: show prediction evaluation feedback
This commit is contained in:
@@ -225,7 +225,7 @@ async function loadConfiguredActuators() {
|
||||
}
|
||||
}
|
||||
|
||||
async function showActuator(actuatorId) {
|
||||
async function showActuator(actuatorId, evaluationMessage = "") {
|
||||
currentActuatorId = actuatorId;
|
||||
const box = document.getElementById("actuator-detail");
|
||||
try {
|
||||
@@ -273,7 +273,9 @@ async function showActuator(actuatorId) {
|
||||
<p><strong>Letztes Training:</strong> ${escapeHtml(record.behavior.last_trained_at || "noch nicht")}</p>
|
||||
<p><strong>Was noch passiert:</strong> ${escapeHtml(record.behavior.reason)}</p>
|
||||
${activationButton}
|
||||
<button class="secondary" onclick="evaluateActuator('${escapeHtml(record.actuator_entity_id)}')">Vorhersage jetzt prüfen</button>
|
||||
<button class="secondary" onclick="evaluateActuator('${escapeHtml(record.actuator_entity_id)}')">Aktuelle Situation auswerten</button>
|
||||
<p class="muted">Die Prüfung simuliert keinen Sensorwechsel und schaltet keinen Aktor.</p>
|
||||
${evaluationMessage ? `<p class="ok">${escapeHtml(evaluationMessage)}</p>` : ""}
|
||||
</div>
|
||||
</div>
|
||||
<h3>Was SillyHome aktuell vorhersagt</h3>
|
||||
@@ -290,9 +292,18 @@ async function showActuator(actuatorId) {
|
||||
|
||||
async function evaluateActuator(actuatorId) {
|
||||
try {
|
||||
await api(`v1/actuators/${encodeURIComponent(actuatorId)}/evaluate`, {method: "POST"});
|
||||
const record = await api(
|
||||
`v1/actuators/${encodeURIComponent(actuatorId)}/evaluate`,
|
||||
{method: "POST"},
|
||||
);
|
||||
const checkedAt = new Date(
|
||||
record.behavior.last_evaluated_at || Date.now(),
|
||||
).toLocaleString("de-DE");
|
||||
const message = record.behavior.prediction
|
||||
? `Prüfung ${checkedAt}: ${record.behavior.prediction.target_state} mit ${Math.round(record.behavior.prediction.confidence * 100)} % vorhergesagt.`
|
||||
: `Prüfung ${checkedAt}: Kein frischer passender Sensorwechsel erkannt; aktuell ist keine Aktion fällig.`;
|
||||
await loadConfiguredActuators();
|
||||
await showActuator(actuatorId);
|
||||
await showActuator(actuatorId, message);
|
||||
} catch (error) {
|
||||
alert(error.message);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user