Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Homematic Rauchmelder Raum auslesen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Homematic Rauchmelder Raum auslesen

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

      Ich hab es wie folgt:

      var rauchmelder = [
          "hm-rpc.0.OEQ2021234.1.STATE"
      ];
      on({id: rauchmelder, val:true, change: "ne"}, function (obj) {
          var name = obj.common.name.split(":")[0];
          log("Rauchalarm ausgelöst bei " + name);
      });
      
      

      Dazu musst du aber nicht nur das Gerät, sondern in der CCU auch den Kanal benennen. z.B. "Rauchmelder Schlafzimmer:1"

      1 Reply Last reply Reply Quote 0
      • M
        maxpd last edited by

        Mhh, also ich hätte es gerne in Blockly gelöst. Oder kann ich dein Skript in Blockly einfügen?

        Muss ich das für jeden Rauchmelder oder nur einmal für das Team machen, da du ja scheinbar den Namen ausliest.

        OK, da gibt es nur 1 Kanal pro Rauchmelder, das bekomme ich hin.

        1 Reply Last reply Reply Quote 0
        • D
          danw last edited by

          Kannst du nicht in Blockly importieren. Wie das Script aber schon zeigt, ist das sehr einfach..

          Ich hab es bei mir über eine Liste gemacht, du kannst aber auch ein RegEx über den Namen legen, dann werden alle erkannt.

          1 Reply Last reply Reply Quote 0
          • M
            maxpd last edited by

            Sorry danw,

            aber irgendwie schnall ich eine Umsetzung mit Blockly gar nicht.

            Greifst du beim State das Team ab?

            Und wie lese ich werte aus der Liste aus?

            Regex in Blocky habe ich gar nicht gefunden.

            1 Reply Last reply Reply Quote 0
            • D
              danw last edited by

              @maxpd:

              Sorry danw,

              aber irgendwie schnall ich eine Umsetzung mit Blockly gar nicht.

              Greifst du beim State das Team ab?

              Und wie lese ich werte aus der Liste aus? `

              Verstehe deine Fragen ehrlich gesagt nicht wirklich.

              var rauchmelder = [
                  "hm-rpc.0.OEQ2021234.1.STATE"
              ];
              
              

              Sind einfach nur die Objekte der Rauchmelder. So könnte man die Liste erweitern.

              var rauchmelder = [
                  "hm-rpc.0.OEQ2021234.1.STATE",
                  "hm-rpc.0.OEQ2021235.1.STATE",
                  "hm-rpc.0.OEQ2021236.1.STATE"
              ];
              
              
              on({id: rauchmelder, val:true, change: "ne"}, function (obj) {
              
              

              Das ist eine Subscription auf "rauchmelder", wenn der Wert auf "true" geändert wird. (also wenn einer der Rauchmelder auslöst, dann… )

                  var name = obj.common.name.split(":")[0];
                  log("Rauchalarm ausgelöst bei " + name);
              });
              
              

              führe das hier aus.

              Die erste Zeile setzt den Namen. obj.common.name ist der Name des Objektes, also bei dir "HM-Sec-SD-2 NBO0079980:1" - deswegen mein Tipp mit dem Umbenennen des Kanals in der CCU.

              obj.common.name wird aufteilt mit dem Trennzeichen ":", [0] zeigt nur den ersten Treffer (also alles vor dem ersten ":") an. Also bei dem Beispiel dann "HM-Sec-SD-2 NBO0079980"

              Die zweite Zeile zeigt es einfach nur im Log an.

              Was du dann machen willst kannst du dort dann hinzufügen. (Lichter an, Innensirenen an, Telegram Nachricht senden, oder was auch immer).

              1 Reply Last reply Reply Quote 0
              • M
                maxpd last edited by

                Danke dir.

                Auf Blockly umgemünzt sehe ich aber nur diese Option im Screenshot. Bzw. diese als Code.

                Nur da die Rauchmelder verknüpft sind, werden wohl alle anschlagen und bei jedem der State auf wahr wechseln. Demnach bekomme ich auch von jedem Rauchmelder eine Benachrichtigung.

                on({id: new RegExp('hm-rpc\\.0\\.NBO0080360\\.1\\.STATE' + "|" + 'hm-rpc\\.0\\.NBO0080211\\.1\\.STATE' + "|" + 'hm-rpc\\.0\\.NBO0079980\\.1\\.STATE'), change: "ne"}, function (obj) {
                    if (getState("hm-rpc.0.NBO0079980.1.STATE").val == true) {
                    sendTo("telegram", "send", {
                        text: 'Feuer in Schlafzimmer'
                    });
                  } else if (getState("hm-rpc.0.NBO0080211.1.STATE").val == true) {
                    sendTo("telegram", "send", {
                        text: 'Feuer auf Dachboden'
                    });
                  } else if (getState("hm-rpc.0.NBO0080360.1.STATE").val == true) {
                    sendTo("telegram", "send", {
                        text: 'Feuer in Bibliothek'
                    });
                  }
                });
                

                6072_2019-01-30_21_58_46-javascript_-_iobroker.png

                1 Reply Last reply Reply Quote 0
                • D
                  danw last edited by

                  Meine sind auch in einer Gruppe. Getestet habe ich es noch nicht. Wenn du Zeit und Lust hast….. 😉

                  1 Reply Last reply Reply Quote 0
                  • M
                    maxpd last edited by

                    Habe es getestet.

                    Versuch 1: Die Rauchmelder gingen zwar alle los. Aber das Script hat gar keine Message geschickt. :shock:

                    Versuch 2: An anderem Rauchmelder. Hier hat es korrekt funktioniert und er hat mir den Raum genannt, in dem ich getestet habe.

                    Versuch 3: Rauchmelder aus Versuch 1, ist nochmal angesprungen.. diesmal hat er auch hier die Message des Raumes geschickt.

                    Hören die Rauchmelder eigentlich auch auf, wenn kein Qualm mehr im Raum ist? Denn bei Versuch 2 ist er von alleine wieder ausgegangen.

                    Benutzt ihr unterschiedliche Gruppen/Teams?

                    Schade dass man Rauchmelder nicht mehreren Gruppen/Teams zuweisen kann.

                    1 Reply Last reply Reply Quote 0
                    • D
                      danw last edited by

                      Die Rauchmelder müssen soweit ich weiss nach Vds nach einer bestimmten Zeit aufhören, jo.

                      1 Reply Last reply Reply Quote 0
                      • wendy2702
                        wendy2702 last edited by

                        Nur mal so...

                        sicher das du/Ihr so eine wichtige Funktion nach ioBroker auslagern wollt?

                        Es gibt bewährte Sachen die direkt auf der CCU laufen wodurch man mögliche Verzögerungen und zusätzliche Probleme ausschließen kann.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        499
                        Online

                        31.9k
                        Users

                        80.2k
                        Topics

                        1.3m
                        Posts

                        3
                        11
                        2736
                        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