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.
    • M
      maxpd last edited by

      Hi,

      wie kann ich denn in iobroker auslesen, aus welchem Raum ein Rauchmeldealarm kommt?

      Ich kann nur den Status eines Rauchmelders auslesen. Wenn diese allerdings im Team stecken und alle schreien vermute ich mal, dass sich auch der State jedes einzelnen ändert und ich nicht mehr den Ursprung auswerten kann.

      Oder muss ich pro Raum ein Team anlegen? Geht das auf die Batterie der Rauchmelder?

      Gruß

      maxpd
      6072_2019-01-26_14_35_48-javascript_-_iobroker.png
      6072_2019-01-26_14_48_00-javascript_-_iobroker.png

      1 Reply Last reply Reply Quote 0
      • 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

                          488
                          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