Skip to content
  • 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
  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.9k

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

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

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
9 Beiträge 4 Kommentatoren 216 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.
  • H Offline
    H Offline
    herr_kuschel
    schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
    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 Online
      M Online
      MCU
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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 Nicht stören
          T Nicht stören
          ticaki
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • T ticaki

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

            H Offline
            H Offline
            herr_kuschel
            schrieb am zuletzt editiert von
            #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 Antworten Letzte Antwort
            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 Online
              M Online
              MCU
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von
                    #9

                    @paul53

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

                    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

                    582

                    Online

                    32.4k

                    Benutzer

                    81.4k

                    Themen

                    1.3m

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

                    • Du hast noch kein Konto? Registrieren

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