Navigation

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

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Rauchmelder Skript

    This topic has been deleted. Only users with topic management privileges can see it.
    • Dominik F.
      Dominik F. @cash last edited by

      @cash

      Kannst du aus diesem Skript, das in meiner CCU läuft vielleicht den State herrausfinden?

      ! HomeMatic-Script
      ! AUSGELöSTEN  RAUCHMELDER FINDEN
      ! http://www.christian-luetgens.de/homematic/e-mail/rauchmelder/Rauchmelder.htm
      
      ! VARIABLEN DEFINIEREN
      
      string s_chn;
      object o_chn;
      object o_dp;
      
      string s_true = "";
      string s_false = "";
      
      string s_subj;
      string s_body;
      integer i_template;
      
      ! RAUCHMELDER FINDEN UND STATUS ABFRAGEN
      
      foreach (s_chn, dom.GetObject(ID_CHANNELS).EnumUsedIDs()) {
        o_chn = dom.GetObject (s_chn);
        if (o_chn.HssType() == "SMOKE_DETECTOR") {
          o_dp = o_chn.DPByHssDP ("STATE");
          if (o_dp.Value()) {
            s_true = s_true # "  " # o_chn.Name() # "\n";
          } else {
            s_false = s_false # "  " # o_chn.Name() # "\n";
          }
        }
      }
      
      ! SUBJECT, BODY UND ALARMIERUNG (FEHLER/STATUS) VORBEREITEN
      
      if (s_true == "") {
        s_subj = "Rauchmelder sind OK";
        s_true = "  keine\n";
        i_template = 2;
      } else {
        s_subj = "Rauchmelder haben ausgeloest";
        i_template = 1;
      }
      
      if (s_false == "") {
        s_false = "  keine\n";
      }
      
      s_body = "Rauchmelder ausgelöst:\n" # s_true # "\nRauchmelder OK:\n" # s_false;
      
      ! MAIL VERSENDEN
      
      dom.GetObject ("E-Mail.Subject").State (s_subj);
      dom.GetObject ("E-Mail.Body").State (s_body);
      dom.GetObject ("E-Mail.Versand").State (i_template);
      
      !  Ende des Scripts
      
      
      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Dominik F. last edited by

        @Dominik-F sagte:

        o_dp = o_chn.DPByHssDP ("STATE");
        

        Das HM-Script wertet den STATE aus, nicht den ERROR_SMOKE_CHAMBER-1_ALARM.

        Dominik F. 1 Reply Last reply Reply Quote 1
        • Dominik F.
          Dominik F. @paul53 last edited by

          @paul53

          also müsste ich dann im obrigen Skript auch den State auswerten und nochmal testen oder`?

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @Dominik F. last edited by paul53

            @Dominik-F sagte:

            also müsste ich dann im obrigen Skript auch den State auswerten und nochmal testen oder`?

            Ja, wobei eine zusätzliche Selektion erforderlich ist, da viele HM-Geräte einen Datenpunkt haben, dessen ID auf STATE endet. Verwende das Gewerk(enum.functions) für die 7 STATE-Datenpunkte und selektiere danach.

            $('*.STATE(functions=smoke)').each(function(id, i) {log(id);});
            
            Dominik F. 1 Reply Last reply Reply Quote 0
            • Dominik F.
              Dominik F. @paul53 last edited by

              @paul53

              ich habs jetzt geändert. hast du eine idee wie ich es testen kann ohne das die Rauchmelder losgehen und extrem laut sind?

              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @Dominik F. last edited by paul53

                @Dominik-F sagte:

                wie ich es testen kann ohne das die Rauchmelder losgehen und extrem laut sind?

                Im Tab "Objekte" im Expertenmodus den Wert von STATE auf true ändern und anschließend wieder zurück auf false.

                Dominik F. 1 Reply Last reply Reply Quote 0
                • Dominik F.
                  Dominik F. @paul53 last edited by

                  @paul53

                  sehr gut. Es kam sofort eine Pushnachricht an. Ich hoffe dann mal, dass es im ernstfall auch funktioniert 😄

                  1 Reply Last reply Reply Quote 0
                  • Dominik F.
                    Dominik F. @cash last edited by

                    Ich habe noch eine Frage zur Pushnachricht in dem Skript.
                    Normalerweise sollte die Schrift"Rauch erkannt" rot sein, jedoch wird sie nicht Rot angezeigt sondern so

                    - <font color="red">Rauch erkannt</font>
                    
                    cash 1 Reply Last reply Reply Quote 0
                    • cash
                      cash Most Active @Dominik F. last edited by

                      @Dominik-F Dir fehlt da noch was:

                      retry: 60,
                      expire: 600,
                      html: 1

                      Das hinzufügen. Dann funktionieren Prio 2 Meldungen auch besser. Denn wenn der Rauchmelder anspringt würde ich auf Prio2 gehen so dass man in Pushover bestätigen muss das man die Meldung wahrgenommen hat....

                      Dominik F. 1 Reply Last reply Reply Quote 0
                      • Dominik F.
                        Dominik F. @cash last edited by

                        @cash

                        ah, ich hab mich schon immer gefragt warum
                        retry: 60,
                        expire: 600,
                        html: 1
                        bei dir mit drin war 😄 Kannst du mir kurz erklären was die 3 Einträge genau bewirken?

                        Prio hab ich jetzt auch geändert und Push funktioniert nun.

                        cash 1 Reply Last reply Reply Quote 0
                        • cash
                          cash Most Active @Dominik F. last edited by

                          @Dominik-F html sollte klar sein damit Dein red auch rot ist.
                          Der 600er wert ist die Zeit wie lange Pushover Dich errinnert bevor es verfällt. Die 60 Die Pause zwischen den Pushnachrichten. Sobald Du in der App natürlich die Push bestätigt ist der Spuk vorbei.
                          Mit der Einstellung bekommst Du wenn ich nicht ganz falsch liege max 10 Minuten jede Minute eine Push das Dein Rauchmelder an ist. Wenn Du bis dahin die Push nicht hörst wird auch ein höherer Wert nicht mehr helfen. Bitte dort nicht übertreiben. Dazu ggf. auch die FAQ von Pushover lesen.

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

                            @Dominik-F Setzt du die Homematic IP Rauchmelder HMIP-SWSD ein? Ich hätte Interesse an deinem Skript. Könntest du in deinem ersten Beitrag die aktuelle Version deines Skriptes einstellen bzw. bei neuen Erkenntnissen das Skript dort aktualisieren?

                            Dominik F. D 2 Replies Last reply Reply Quote 0
                            • Dominik F.
                              Dominik F. @Feuersturm last edited by Dominik F.

                              @cash
                              Gerade das mit dem html war mir nicht klar 😄 Danke für deine Erklärung

                              @Feuersturm
                              Nein, ich nutze keine HM IP, falls der Datenpunkt STATE dort auch existiert würde ich es einfach mal testen. Falls es nicht funktioniert kann man es vielleicht so umschreiben, dass es auch damit funktioniert.
                              Hab das aktuelle Skript oben eingestellt

                              Feuersturm 1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 @Dominik F. last edited by

                                @Dominik-F sagte:

                                var cacheSelectorSmoke = $('*.STATE(functions=rauchmelder)').each(function(id, i) {log(id);});

                                Zeile 39: Das ist eine Testfunktion. Richtige Variable:

                                var cacheSelectorSmoke = $('*.STATE(functions=rauchmelder)');
                                
                                Dominik F. 1 Reply Last reply Reply Quote 0
                                • Dominik F.
                                  Dominik F. @paul53 last edited by

                                  @paul53

                                  Danke schön, hab es im ersten Post aktualisiert

                                  1 Reply Last reply Reply Quote 0
                                  • Feuersturm
                                    Feuersturm @Dominik F. last edited by Feuersturm

                                    @Dominik-F Dankeschön.
                                    Die HMIP-SWSD haben folgende Datenpunkte:
                                    606c5000-5abb-4f31-a6a6-3bb0c9601918-grafik.png

                                    SMOKE_DETECTOR_ALARM_STATUS
                                    "0": "IDLE_OFF",
                                    "1": "PRIMARY_ALARM",
                                    "2": "INTRUSION_ALARM",
                                    "3": "SECONDARY_ALARM"

                                    SMOKE_DETECTOR_COMMAND
                                    "0": "RESERVED_ALARM_OFF",
                                    "1": "INTRUSION_ALARM_OFF",
                                    "2": "INTRUSION_ALARM",
                                    "3": "SMOKE_TEST",
                                    "4": "COMMUNICATION_TEST",
                                    "5": "COMMUNICATION_TEST_REPEATED

                                    SMOKE_DETECTOR_TEST_RESULT
                                    "0": "NONE",
                                    "1": "SMOKE_TEST_OK",
                                    "2": "SMOKE_TEST_FAILED",
                                    "3": "COMMUNICATION_TEST_SENT",
                                    "4": "COMMUNICATION_TEST_OK"

                                    Ich werde in den nächsten Tagen einmal schauen, dass ich dein Skript verstehe und ob ich es für die HMIP-SWSD Rauchmelder anpassen kann. Heute werde ich vermutlich nicht mehr dazu kommen.

                                    Dominik F. 1 Reply Last reply Reply Quote -1
                                    • Dominik F.
                                      Dominik F. @Feuersturm last edited by

                                      @Feuersturm

                                      ich muss da jedoch ehrlich zu dir sein. Ich habe von @cash ein Skript für einen Wassermelder bekommen und habe das dann verändert und mit seiner und @paul53 Hilfe das nun zum laufen bekommen, daher werde ich dir da nur schwer helfen können. Ich würde mich natürlich freuen wenn am Ende ein Skript rauskommt, was sowohl HM als auch HMIP Geräte findet und damit funktioniert. Vielleicht klappt es ja mit zusammenarbeit von allen 🙂

                                      cash 1 Reply Last reply Reply Quote 0
                                      • Feuersturm
                                        Feuersturm last edited by

                                        Da bin ich guter Dinge, dass die Zusammenarbeit hier im Forum klappt. Ich stehe auch noch am Anfang meiner Programmierkünste. Bisher konnte ich aber jedes Problem durch Suchen oder durch die Hilfe von anderen Users hier im Forum lösen.

                                        Vielleicht kommt ja auch noch der Hinweis zu einem fertigen Skript, welches die HMIP Rauchmelder überwacht, welches ich bisher noch nicht gefunden habe.

                                        cash 1 Reply Last reply Reply Quote 0
                                        • cash
                                          cash Most Active @Dominik F. last edited by

                                          @Dominik-F @Feuersturm Das Script sollte doch auch für HmIP funktionieren. Einfach testen. Im Script sollte halt noch die Pushover Ergänzungen rein. Und dann die Feuermelder halt in die entsprechende Gruppe packen. Ich vermute auch die werden mittel State laufen.

                                          Ohne Gewähr - sollte aber passen.

                                          Dominik F. 1 Reply Last reply Reply Quote 0
                                          • Dominik F.
                                            Dominik F. @cash last edited by

                                            @cash

                                            Laut seinen Datenpunkten gibt es den Datenpunkt STATE bei HMIP nicht. Denke das einzige Problem wird wieder sein, den richtigen Datenpunkt zu finden und zu ergänzen

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            800
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript security
                                            6
                                            52
                                            4717
                                            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