Flow mit Skript (Aqara FP2)

Hallo zusammen, ich habe im Schlafzimmer einen Aqara FP2 Sensor. Ich habe den Raum in verschiedene Bereiche aufgeteilt.

Meine Zonen: Belegungszone 3 = Bett gang Rechts; Belegungszone 4 = Bett gang Links; Belegungszone 5 = Bett; Belegungszone 0 = der Raum ist belegt.

Da ich das nicht durch einen Advanced Flow realisiert bekommen habe, habe ich versucht, das ganze mittels Homey Skript zu realisieren.

Das Skript habe ich mittels Gemini geschrieben, daher kann ich nicht selber beurteilen, welchen Fehler ich gemacht habe. Hat jemand von euch eine Idee, was der Grund ist, warum diese Automation nicht funktioniert?

// --- KONFIGURATION ---
// Passe hier alle Namen und Werte an deine Umgebung an.

// GERÄTENAMEN
const deckenleuchteName = "Deckenleuchte_S";
const unterbettlichtName = "Unterbett Beleuchtung";
// Füge hier alle Lichter hinzu, die beim "Schlafen gehen" ausgehen sollen
const alleSchlafzimmerLichter = [
    "Deckenleuchte_S",
    "Unterbett Beleuchtung"
];

// LOGIK-VARIABLE
const schlafVariable = "Schlafen"; // Name deiner Logik-Variable (Ja/Nein)

// EINSTELLUNGEN
const warmweissWert = 0.2; // Ein Wert zwischen 0 (kalt) und 1 (sehr warm). Passe ihn nach Geschmack an.
const deckenlichtHelligkeit = 0.6; // 60%
const unterbettlichtHelligkeit = 0.4; // 40%

// SNAPSHOT-NAMEN (müssen exakt mit den Namen in der Geräte-App übereinstimmen)
const snapshotRechts = "NachtR";
const snapshotLinks = "nachtL";


// --- AB HIER BEGINNT DIE SKRIPT-LOGIK (keine Änderungen nötig) ---

// Das Argument aus dem Flow holen, das die Aktion bestimmt
const aktion = args[0];
if (!aktion) {
  console.log("Fehler: Dem Skript wurde keine Aktion übergeben.");
  return false;
}

// Hilfsfunktion zum Setzen einer Logik-Variable
async function setLogicVariable(variableName, value) {
  const variable = await homey.logic.getVariable({ name: variableName });
  if (!variable) {
    console.log(`Logik-Variable '${variableName}' nicht gefunden.`);
    return;
  }
  await homey.logic.updateVariable({ id: variable.id, variable: { value: value } });
  console.log(`Logik-Variable '${variableName}' auf '${value}' gesetzt.`);
}

// Hilfsfunktion zum Finden eines Geräts
async function getDevice(name) {
    const device = await homey.devices.getDevice({ name: name });
    if (!device) console.log(`Gerät '${name}' nicht gefunden.`);
    return device;
}

console.log(`Aktion wird ausgeführt: ${aktion}`);

// Wähle die Aktion basierend auf dem übergebenen Argument
switch (aktion) {
  case 'raumBetreten':
    const deckenleuchte = await getDevice(deckenleuchteName);
    const unterbettlicht = await getDevice(unterbettlichtName);

    if (deckenleuchte) {
      await deckenleuchte.setCapabilityValue('onoff', true);
      await deckenleuchte.setCapabilityValue('dim', deckenlichtHelligkeit);
      await deckenleuchte.setCapabilityValue('light_mode', 'temperature');
      await deckenleuchte.setCapabilityValue('light_temperature', warmweissWert);
    }
    if (unterbettlicht) {
      await unterbettlicht.setCapabilityValue('onoff', true);
      await unterbettlicht.setCapabilityValue('dim', unterbettlichtHelligkeit);
      await unterbettlicht.setCapabilityValue('light_mode', 'temperature');
      await unterbettlicht.setCapabilityValue('light_temperature', warmweissWert);
    }
    break;

  case 'geheSchlafen':
    for (const lichtName of alleSchlafzimmerLichter) {
        const licht = await getDevice(lichtName);
        if (licht) await licht.setCapabilityValue('onoff', false);
    }
    await setLogicVariable(schlafVariable, true);
    break;

  case 'nachtlichtRechts':
    const deckenleuchteR = await getDevice(deckenleuchteName);
    // Hinweis: 'execute_snapshot' ist eine Annahme. Wenn deine App eine andere Capability nutzt
    // (z.B. eine Szenen-Auswahl), muss der Name hier angepasst werden.
    if (deckenleuchteR) await deckenleuchteR.setCapabilityValue('execute_snapshot', snapshotRechts)
        .catch(e => console.error(`Snapshot-Fehler: ${e.message}`));
    break;

  case 'nachtlichtLinks':
    const deckenleuchteL = await getDevice(deckenleuchteName);
    if (deckenleuchteL) await deckenleuchteL.setCapabilityValue('execute_snapshot', snapshotLinks)
        .catch(e => console.error(`Snapshot-Fehler: ${e.message}`));
    break;

  case 'aufwachen':
    await setLogicVariable(schlafVariable, false);
    break;

  default:
    console.log(`Unbekannte Aktion: ${aktion}`);
    return false;
}

return true;