Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [ gelöst ]. Auslösenden Kontakt anzeigen lassen ... wie

NEWS

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

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

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

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

Scheduled Pinned Locked Moved Skripten / Logik
9 Posts 4 Posters 213 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Offline
    H Offline
    herr_kuschel
    wrote on last edited by herr_kuschel
    #1

    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
    0
    • H 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 Offline
      M Offline
      MCU
      wrote on last edited by
      #2

      @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)
      });
      

      NUC i7 64GB mit Proxmox ---- https://mcuiobroker.gitbook.io/jarvis-infos/ Aktualisierungen der Doku auf Instagram verfolgen -> https://www.instagram.com/mcuiobroker
      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

      H 1 Reply Last reply
      0
      • M MCU

        @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 Offline
        H Offline
        herr_kuschel
        wrote on last edited by
        #3

        @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
        0
        • H herr_kuschel

          @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 Do not disturb
          T Do not disturb
          ticaki
          wrote on last edited by
          #4

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

          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

          Spenden

          H 1 Reply Last reply
          0
          • T ticaki

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

            H Offline
            H Offline
            herr_kuschel
            wrote on last edited by
            #5

            @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 paul53P 2 Replies Last reply
            0
            • H herr_kuschel

              @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 Offline
              M Offline
              MCU
              wrote on last edited by
              #6

              @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);
              });
              
              

              NUC i7 64GB mit Proxmox ---- https://mcuiobroker.gitbook.io/jarvis-infos/ Aktualisierungen der Doku auf Instagram verfolgen -> https://www.instagram.com/mcuiobroker
              Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

              H 1 Reply Last reply
              0
              • H herr_kuschel

                @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
                
                paul53P Offline
                paul53P Offline
                paul53
                wrote on last edited by paul53
                #7

                @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.

                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

                H 1 Reply Last reply
                0
                • M MCU

                  @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 Offline
                  H Offline
                  herr_kuschel
                  wrote on last edited by
                  #8

                  @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
                  0
                  • paul53P 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 Offline
                    H Offline
                    herr_kuschel
                    wrote on last edited by
                    #9

                    @paul53

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

                    1 Reply Last reply
                    0
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    604

                    Online

                    32.4k

                    Users

                    81.4k

                    Topics

                    1.3m

                    Posts
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                    ioBroker Community 2014-2025
                    logo
                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Recent
                    • Tags
                    • Unread 0
                    • Categories
                    • Unreplied
                    • Popular
                    • GitHub
                    • Docu
                    • Hilfe