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. BestPractis für "doppeltes on"?

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.3k

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

BestPractis für "doppeltes on"?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
8 Beiträge 3 Kommentatoren 1.0k Aufrufe
  • Ä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.
  • F Offline
    F Offline
    Fitti
    schrieb am zuletzt editiert von
    #1

    Hi zusammen,

    wie kan ich es am besten Lösen, dass ich wenn ein Schlüssel "Alarm Aus" gesendet hat und dann die Tür (mit Sensor) aufgeht, ich meine Sprachansage starte?

    Im Prinzip benötige ich ein doppeltes on(…).

    Aber das geht ja nicht in Abhängigkeit. Meistens habe ich ein on(..) und dann ein if (...). Hier reicht mir das aber nicht. Hoffe das man mich versteht!

    Danke für einen Tipp.

    So long,

    Fiti

    "Es wird die Zeit kommen, da ihr euch entscheiden müsst zwischen dem, was richtig ist, und dem, was bequem ist."
    Plural von Status ist auch Status!

    1 Antwort Letzte Antwort
    0
    • bahnuhrB Online
      bahnuhrB Online
      bahnuhr
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #2

      ehrlich gesagt:

      ich habs nicht verstanden.

      Wenn du 2 x on brauchst, dann schreib 2 x on.

      Wenn du 1 x on brauchst, aber verschiedene Bedingungen dann schreib mehrere if.

      Was brauchst du genau ?


      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
      Danke.
      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
      ScreenToGif :https://www.screentogif.com/downloads.html

      1 Antwort Letzte Antwort
      0
      • paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #3

        @Fitti:

        Im Prinzip benötige ich ein doppeltes on(…).

        Aber das geht ja nicht in Abhängigkeit. Meistens habe ich ein on(..) und dann ein if (...). `
        Ich hoffe, dass ich es richtig interpretiere ?

        var v1 = getState(id1).val;
        var v2 = getState(id2).val;
        
        function auswertung() {
           if(v1 und v2 auswerten) {
              mache was
           }   
        }
        
        // Script start
        auswertung();
        
        on(id1, function(dp) {
           v1 = dp.state.val;
           auswertung();
        });
        
        on(id2, function(dp) {
           v2 = dp.state.val;
           auswertung();
        });
        
        

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @Fitti:

          wenn ein Schlüssel "Alarm Aus" gesendet hat und dann die Tür (mit Sensor) aufgeht, ich meine Sprachansage starte? `
          Wenn die Reihenfolge entscheidend ist (erst "Alarm aus", dann Tür Auf):

          var v1 = getState(id1).val;  // Schlüssel
          
          on(id1, function(dp) {  // Schlüssel
             v1 = dp.state.val;
          });
          
          on({id: id2, val: true}, function() {  // Tür Auf
             if(v1) {
                mache was
                v2 = false;
             }   
          });
          

          Wenn die Ansage nur beim ersten Türöffnen nach "Alarm aus" erfolgen soll:

          var v1 = getState(id1).val;  // Schlüssel
          var v2 = false;  //  Ansagefreigabe
          
          on(id1, function(dp) {  // Schlüssel
             v1 = dp.state.val;
             if(v1) v2 = true;
          });
          
          on({id: id2, val: true}, function() {  // Tür Auf
             if(v1 && v2) {
                mache was
                v2 = false;
             }   
          });
          

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • F Offline
            F Offline
            Fitti
            schrieb am zuletzt editiert von
            #5

            @paul53:

            Wenn die Ansage nur beim ersten Türöffnen nach "Alarm aus" erfolgen soll: ` Treffer. Genau so.
            @paul53:

            var v1 = getState(id1).val;  // Schlüssel
            var v2 = false;  //  Ansagefreigabe
            
            on(id1, function(dp) {  // Schlüssel
               v1 = dp.state.val;
               if(v1) v2 = true;
            });
            
            ```` `  
            

            Den Teil verstehe ich noch nicht. Ich rede von dem HM 4 Tasten Schlüssel für Alarmanlage o. ä.

            Du holst DIr erst einmal in v1 den aktuellen Wert des Schlüssels - aber nur beim Skriptstart… hmmm, wozu?

            v1 = dp.state.val... was macht "state"?

            Na ich spiele etwas rum und teste mal.- Die Idee der Ansagefreigabe ist sehr gut. Hatte mich zu sehr in den Ablauf

            on (event1 && event2 ) verrant.

            "Es wird die Zeit kommen, da ihr euch entscheiden müsst zwischen dem, was richtig ist, und dem, was bequem ist."
            Plural von Status ist auch Status!

            1 Antwort Letzte Antwort
            0
            • paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #6

              @Fitti:

              Du holst DIr erst einmal in v1 den aktuellen Wert des Schlüssels - aber nur beim Skriptstart… hmmm, wozu? `
              Das ist in diesem Fall nicht erforderlich. Allerdings muss die Variable v1 im Skript global deklariert werden, da sie in einer Funktion verändert und in einer anderen Funktion ausgewertet wird.
              @Fitti:

              v1 = dp.state.val… was macht "state"? `
              dp.state.val entspricht getState(id).val; bei on(id, function(dp) {…}) wird das Datenpunktobjekt dp inkl. state (=newState) und oldState an die Callback-Funktion übergeben.

              Das Skript lässt sich verkürzen:

              var v1 = false;  //  Ansagefreigabe
              
              on({id: id1, val: true}, function() {  // Schlüssel
                 v1 = true;
              });
              
              on({id: id2, val: true}, function() {  // Tür Auf
                 if(v1) {
                    mache was
                    v1 = false;
                 }   
              });
              
              

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Antwort Letzte Antwort
              0
              • F Offline
                F Offline
                Fitti
                schrieb am zuletzt editiert von
                #7

                Danke! Schon deutlich klarer.

                Beim Testen, ob ein Wert wahr ist:

                on({id: id1, val: true},
                

                schreibt man val und true jeweils OHNE ' (einfaches Anführungszeichen) , richtig?

                Verwirrt mich immer, da in der OnlineDoku es anders steht. Bei einem

                change: 'lt'
                ````wäre es so richtig, stimmts?

                "Es wird die Zeit kommen, da ihr euch entscheiden müsst zwischen dem, was richtig ist, und dem, was bequem ist."
                Plural von Status ist auch Status!

                1 Antwort Letzte Antwort
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #8

                  @Fitti:

                  schreibt man val und true jeweils OHNE ' (einfaches Anführungszeichen) , richtig? `
                  Ja, die Bezeichner (z.B. val) werden ohne Anführungszeichen geschrieben (vielleicht funktioniert es auch mit ' ?). true ist ein boolscher Wert, kein String.

                  change: 'lt'
                  

                  'lt' ist ein String; es kann keine boolscher Wert (boolean) und keine Zahl (number) sein.

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  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

                  415

                  Online

                  32.4k

                  Benutzer

                  81.6k

                  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