Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Scrypt schaltet in Software aber nicht Physisch

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.4k

Scrypt schaltet in Software aber nicht Physisch

Geplant Angeheftet Gesperrt Verschoben JavaScript
4 Beiträge 3 Kommentatoren 296 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • P Offline
    P Offline
    powerpeer
    schrieb am zuletzt editiert von Homoran
    #1

    Moin,
    ich habe keine Ahnung und habe es von ChatGPT machen lassen aber vielleicht könnt ihr mir da besser weiter helfen

    wie gesagt ich kann in den Objekten sehen wie das Licht auf TRUE schaltet aber es ist nicht an, aber wenn ich es selbst mit der Maus auf TRUE schalte geht es an.

    const licht = 'zigbee.0.a4c1386f336183e9.state';
    const bewegungsmelder = 'zigbee.0.0017880103295819.occupancy';
    const luefter = 'hm-rpc.1.00255BE98CF4E0.4.STATE';
    
    let lichtTimer = null;
    let luefterTimer = null;
    let luefterStartTimer = null;
    let bewegungStart = null;
    
    on({ id: bewegungsmelder, change: 'ne' }, function (obj) {
    if (obj.state.val) {
    // Bewegung erkannt -> Licht sofort an
    setState(licht, true, true);
    
    // Zeitstempel speichern, wann Bewegung erkannt wurde
    bewegungStart = Date.now();
    
    // Falls Licht- oder Lüfter-Timer laufen, abbrechen
    if (lichtTimer) {
    clearTimeout(lichtTimer);
    lichtTimer = null;
    }
    if (luefterTimer) {
    clearTimeout(luefterTimer);
    luefterTimer = null;
    }
    if (luefterStartTimer) {
    clearTimeout(luefterStartTimer);
    luefterStartTimer = null;
    }
    
    // Lüfter erst nach 2 Min prüfen
    luefterStartTimer = setTimeout(() => {
    if (Date.now() - bewegungStart >= 2 * 60 * 1000) {
    // Falls Bewegung noch aktiv ist -> nach 3 weiteren Minuten Lüfter an
    luefterTimer = setTimeout(() => {
    setState(luefter, true, true);
    luefterTimer = null;
    }, 3 * 60 * 1000);
    }
    }, 2 * 60 * 1000);
    
    } else {
    // Keine Bewegung mehr -> Licht nach 20 Sekunden aus
    lichtTimer = setTimeout(() => {
    setState(licht, false, true);
    
    // Falls Lüfter an ist, nach 3 Minuten aus
    if (getState(luefter).val) {
    luefterTimer = setTimeout(() => {
    setState(luefter, false, true);
    luefterTimer = null;
    }, 3 * 60 * 1000);
    }
    }, 20 * 1000);
    }
    });
    

    MOD-EDIT: Code in code-tags gesetzt!

    vielen dank

    geschildG 1 Antwort Letzte Antwort
    0
    • P powerpeer

      Moin,
      ich habe keine Ahnung und habe es von ChatGPT machen lassen aber vielleicht könnt ihr mir da besser weiter helfen

      wie gesagt ich kann in den Objekten sehen wie das Licht auf TRUE schaltet aber es ist nicht an, aber wenn ich es selbst mit der Maus auf TRUE schalte geht es an.

      const licht = 'zigbee.0.a4c1386f336183e9.state';
      const bewegungsmelder = 'zigbee.0.0017880103295819.occupancy';
      const luefter = 'hm-rpc.1.00255BE98CF4E0.4.STATE';
      
      let lichtTimer = null;
      let luefterTimer = null;
      let luefterStartTimer = null;
      let bewegungStart = null;
      
      on({ id: bewegungsmelder, change: 'ne' }, function (obj) {
      if (obj.state.val) {
      // Bewegung erkannt -> Licht sofort an
      setState(licht, true, true);
      
      // Zeitstempel speichern, wann Bewegung erkannt wurde
      bewegungStart = Date.now();
      
      // Falls Licht- oder Lüfter-Timer laufen, abbrechen
      if (lichtTimer) {
      clearTimeout(lichtTimer);
      lichtTimer = null;
      }
      if (luefterTimer) {
      clearTimeout(luefterTimer);
      luefterTimer = null;
      }
      if (luefterStartTimer) {
      clearTimeout(luefterStartTimer);
      luefterStartTimer = null;
      }
      
      // Lüfter erst nach 2 Min prüfen
      luefterStartTimer = setTimeout(() => {
      if (Date.now() - bewegungStart >= 2 * 60 * 1000) {
      // Falls Bewegung noch aktiv ist -> nach 3 weiteren Minuten Lüfter an
      luefterTimer = setTimeout(() => {
      setState(luefter, true, true);
      luefterTimer = null;
      }, 3 * 60 * 1000);
      }
      }, 2 * 60 * 1000);
      
      } else {
      // Keine Bewegung mehr -> Licht nach 20 Sekunden aus
      lichtTimer = setTimeout(() => {
      setState(licht, false, true);
      
      // Falls Lüfter an ist, nach 3 Minuten aus
      if (getState(luefter).val) {
      luefterTimer = setTimeout(() => {
      setState(luefter, false, true);
      luefterTimer = null;
      }, 3 * 60 * 1000);
      }
      }, 20 * 1000);
      }
      });
      

      MOD-EDIT: Code in code-tags gesetzt!

      vielen dank

      geschildG Offline
      geschildG Offline
      geschild
      schrieb am zuletzt editiert von
      #2

      @powerpeer Kann sein, das die Lampe nur auf 'sendpayload' reagiert:

      Generiere eine Variable: const lichtpay = 'zigbee.0.a4c1386f336183e9.send_payload';
      Ersetze mal sie Zeilen:
      setState(licht, true, true);
      durch:
      setState(lichtpay /* Send a raw json payload /, '{"state": "on"}');
      und :
      setState(licht, false, true);
      durch:
      setState(lichtpay /
      Send a raw json payload */, '{"state": "off"}');

      falls der Lüfter auch nicht geht, dann dito,

      P 1 Antwort Letzte Antwort
      0
      • T Offline
        T Offline
        ticaki
        schrieb am zuletzt editiert von ticaki
        #3

        Kurz:
        setState(wo, was, false)
        oder einfach
        setState(wo, was)

        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

        Spenden

        1 Antwort Letzte Antwort
        1
        • geschildG geschild

          @powerpeer Kann sein, das die Lampe nur auf 'sendpayload' reagiert:

          Generiere eine Variable: const lichtpay = 'zigbee.0.a4c1386f336183e9.send_payload';
          Ersetze mal sie Zeilen:
          setState(licht, true, true);
          durch:
          setState(lichtpay /* Send a raw json payload /, '{"state": "on"}');
          und :
          setState(licht, false, true);
          durch:
          setState(lichtpay /
          Send a raw json payload */, '{"state": "off"}');

          falls der Lüfter auch nicht geht, dann dito,

          P Offline
          P Offline
          powerpeer
          schrieb am zuletzt editiert von
          #4

          @geschild Oh ja Danke das funktioniert.

          1 Antwort Letzte Antwort
          0
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          406

          Online

          32.4k

          Benutzer

          81.5k

          Themen

          1.3m

          Beiträge
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Anmelden

          • Du hast noch kein Konto? Registrieren

          • Anmelden oder registrieren, um zu suchen
          • Erster Beitrag
            Letzter Beitrag
          0
          • Home
          • Aktuell
          • Tags
          • Ungelesen 0
          • Kategorien
          • Unreplied
          • Beliebt
          • GitHub
          • Docu
          • Hilfe