Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [ gelöst ]. Auslösenden Kontakt anzeigen lassen ... wie

    NEWS

    • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar

    • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?

    • Monatsrückblick – September 2025

    [ gelöst ]. Auslösenden Kontakt anzeigen lassen ... wie

    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      herr_kuschel last edited by herr_kuschel

      Hallo, der Berg steht mal wieder vor mir.
      Ich kann aus einer Gruppe von Kontakten (Fensterkontakte) einen "Alarm" bei Öffnung eines Fensters
      auslösen lassen, ohne alle Kontakte per Skript einzeln aufzuführen. Funktioniert sehr gut.
      Nun möchte ich aber auch wissen, welcher Kontakt der Auslöser war. Aber: der Berg steht wieder vor mir.

      Wer kann mir bitte einen Tipp geben, wie ich den Auslöser angezeigt bekommen kann.

      Danke euch..

      M 1 Reply Last reply Reply Quote 0
      • M
        MCU @herr_kuschel last edited by

        @herr_kuschel

        let ids = $("0_userdata.0.ENERGIE.*").toArray()
        
        on({id: ids, change: "any"}, function (obj) {
            let value = obj.state.val;
            let id = obj.id
            console.log(id +' -> '+value)
        });
        
        H 1 Reply Last reply Reply Quote 0
        • H
          herr_kuschel @MCU last edited by

          @mcu Hallo und danke für deine Antwort.
          Ich verstehe nicht , was ich in die Klammer einsetzten muss, wo du "0.userdata.0.ENERGIE.*") eingetragen hast und ob "any" so bleiben kann.

          T 1 Reply Last reply Reply Quote 0
          • T
            ticaki @herr_kuschel last edited by

            @herr_kuschel
            Dann zeige doch deinen Code, damit man das Beispiel da einfügen kann.

            H 1 Reply Last reply Reply Quote 0
            • H
              herr_kuschel @ticaki last edited by

              @ticaki Hier der Code.....

              var FensterOffen;
              
              
              on({ id: [].concat(Array.prototype.slice.apply($('state[id=*](functions=Einbruch)'))), val: true }, async (obj) => {
                let value = obj.state.val;
                let oldValue = obj.oldState.val;
                FensterOffen = (typeof FensterOffen === 'number' ? FensterOffen : 0) + 1;
                setState('0_userdata.0.Fenster_offen' /* Fenster_offen */, FensterOffen);
                console.info(FensterOffen);
              });
              on({ id: [].concat(Array.prototype.slice.apply($('state[id=*](functions=Einbruch)'))), val: false }, async (obj) => {
                let value = obj.state.val;
                let oldValue = obj.oldState.val;
                FensterOffen = FensterOffen - 1;
                setState('0_userdata.0.Fenster_offen' /* Fenster_offen */, FensterOffen);
                console.info(FensterOffen);
              });
              code_text
              
              M paul53 2 Replies Last reply Reply Quote 0
              • M
                MCU @herr_kuschel last edited by

                @herr_kuschel

                var FensterOffen;
                
                
                on({ id: [].concat(Array.prototype.slice.apply($('state[id=*](functions=Einbruch)'))), val: true }, async (obj) => {
                  let value = obj.state.val;
                  let oldValue = obj.oldState.val;
                  let id = obj.id;
                  FensterOffen = (typeof FensterOffen === 'number' ? FensterOffen : 0) + 1;
                  setState('0_userdata.0.Fenster_offen' /* Fenster_offen */, FensterOffen);
                  console.info(id+' - '+FensterOffen);
                });
                on({ id: [].concat(Array.prototype.slice.apply($('state[id=*](functions=Einbruch)'))), val: false }, async (obj) => {
                  let value = obj.state.val;
                  let oldValue = obj.oldState.val;
                  let id = obj.id;
                  FensterOffen = FensterOffen - 1;
                  setState('0_userdata.0.Fenster_offen' /* Fenster_offen */, FensterOffen);
                  console.info(id+' - '+FensterOffen);
                });
                
                
                H 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @herr_kuschel last edited by paul53

                  @herr_kuschel: Hier der Code.....

                  Das ist aus Blockly generiert.
                  Man nimmt nur einen Trigger pro Datenpunkt (Ressourcen).
                  Die Erfassung der offenen Fenster über eine Schleife ist zuverlässiger als Anzahl erhöhen / verringern.

                  Blockly_temp.JPG

                  Der Debug-Block zeigt die ID des auslösenden Kontaktes. Wenn die DP-Namen eindeutig sind, nimmt man diese.

                  H 1 Reply Last reply Reply Quote 0
                  • H
                    herr_kuschel @MCU last edited by

                    @mcu sagte in Auslösenden Kontakt anzeigen lassen ... wie:

                    let id = obj.id;
                    FensterOffen = FensterOffen - 1;
                    setState('0_userdata.0.Fenster_offen' /* Fenster_offen */, FensterOffen);
                    console.info(id+' - '+FensterOffen);

                    Danke schon mal, funktioniert 🙂

                    1 Reply Last reply Reply Quote 0
                    • H
                      herr_kuschel @paul53 last edited by

                      @paul53

                      Danke dir auch für deine Hilfe.... 🙂

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      1.1k
                      Online

                      32.4k
                      Users

                      81.3k
                      Topics

                      1.3m
                      Posts

                      4
                      9
                      207
                      Loading More Posts
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes
                      Reply
                      • Reply as topic
                      Log in to reply
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      The ioBroker Community 2014-2023
                      logo