feat: HA-Entitaeten mit Bereichs-Praefixen, Media-Anfragen quittierbar per Button, umfangreiche 3D-Statistik

This commit is contained in:
2026-07-10 19:57:10 +02:00
parent 12094901a4
commit bbf937c671
3 changed files with 329 additions and 106 deletions

View File

@@ -257,12 +257,23 @@ server.listen(4000, () => console.log('🚀 Dicken Dock läuft auf Port 4000'));
// ── Push-Zeitplaner Hintergrund-Job ──────────────────────────────────────────
const db = require('./db');
const koepiRoutes = require('./tools/koepi/routes');
const mediaRoutes = require('./tools/media/routes');
const mqttClient = require('./mqtt');
mqttClient.connectMqtt();
// HA-Button "KöPi Check jetzt" löst denselben Check wie der 06:00-Cron aus
// (respektiert den normalen Diff — Pushover geht nur bei echter Änderung raus)
mqttClient.setKoepiCheckHandler(() => koepiRoutes.runDailyCheck());
// HA-Buttons "Media Quittieren" / "Media Alle quittieren" — danach sofort den
// Media-Anfragen-Sensor + die dynamischen Buttons in HA aktualisieren
mqttClient.setMediaAckHandler((id) => {
mediaRoutes.ackFavorite(id);
mqttClient.publishMediaAnfragen();
});
mqttClient.setMediaAckAllHandler(() => {
mediaRoutes.ackAllFavorites();
mqttClient.publishMediaAnfragen();
});
async function sendPushoverMsg(userKey, appToken, message, opts = {}) {
try {
@@ -290,7 +301,6 @@ setTimeout(() => {
async function runScheduler() {
mqttClient.publishPresence();
mqttClient.publishMediaAnfragen();
mqttClient.publishBestellungen();
mqttClient.publishDruckStatistik();
try {
const now = db.prepare("SELECT datetime('now','localtime') as t").get().t;