Navigation

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

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Umfassendes Alarmanlagen-Skript

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

      @radicalreel
      Du brauchst Blockly eh nicht dafür. Leg ein neues Javascript an, wähle aber bei der Auswahl nicht Blockly, sondern eben Javascript.
      Dann kopiere einfach das ganze Skript vom ersten Post in diesem Thread hinein in den Editor und scroll ein wenig nach unten.
      Alle Zeilen, die mit // beginnen, sind nur Kommentare und erklären ein paar Dinge.
      Dort, wo die Einstellungen zu machen sind, besserst du die Einträge einfach auf deine eigenen Anforderungen aus.
      Ich meine damit, diese Zeilen, immer nach dem = kannst du deine Änderungen machen:

      // EINSTELLUNGEN
      const entryDelay =                30;         // Eingangsverzögerung in Sekunden (sollte maximal 60s sein)
      const exitDelay =                 30;         // Ausgangsverzögerung in Sekunden (sollte maximal 60s sein)
      const alarmDurationAcoustical =  180;         // Dauer des akkustischen Alarms in Sekunden (ACHTUNG: in Ö sind maximal 180s erlaubt!)
      const alarmDurationOptical =      -1;         // Dauer des optischen Alarm in Sekunden, -1 für unendlich
       
      // TEXTE FÜR SCHALTZUSTAND
      // Diese Text geben Auskunft über den Zustand der Anlage.
      // Sie werden in den Datenpunkt "javascript.X.Output.StatusText" geschrieben.
      const textStatusInactive =        "unscharf";
      const textStatusActiveInternal =  "scharf intern";
      const textStatusActiveExternal =  "scharf extern";
      const textActiveExternalDelayed = "scharf extern verzögert";
      const textEntryDelayActive =      "Eingangsverzögerung aktiv";
      const textExitDelayActive =       "Ausgangsverzögerung aktiv";
       
      // TEXTE FÜR ALARMIERUNG UND FEHLER
      // Diese Text geben im unscharfen Zustand der Anlage Auskunft über die Bereitschaft
      // zum Scharfschalten (nur möglich, wenn alle Melder geschlossen - in Ruhe - sind) und
      // Fehler bei der Scharfschaltung bzw. bei scharfer Anlage über den Zustand Frieden oder Alarm.
      // Sie werden in den Datenpunkt "javascript.X.Output.AlarmText" geschrieben.
      const textAlarmInactive =         "Alles OK";
      const textAlarmActive =           "Alarm!!";
      const textReady =                 "Bereit";
      const textNotReady =              "Nicht bereit";
      const textError =                 "Fehler bei der Scharfschaltung";
      


      Irgendwann kommt dann die Zeile mit "DO NOT CHANGE ANYTHING BELOW THIS LINE" oder so ählich. Wenn du die erreicht hast, dann hast du's geschafft. Du brauchst das Script nur noch zu starten. Dann nochmal stoppen, dann beim zweiten Mal kannst du's laufen lassen. (Beim ersten Mal werden nämlich alle Datenpunkte angelegt, da können noch Warnings oder Fehler im Log auftauchen. Die sind beim zweiten Mal weg.)
      Die erzeugten Datenpunkte kannst du dann mit Blockly verarbeiten wie du magst.

      Du muss natürlich auch die Aufzählungen wie ein paar Posts vorher besprochen anlegen und dabei auf die Groß-/Kleinschreibung achten!

      LG Andreas

      1 Reply Last reply Reply Quote 1
      • andreaskos
        andreaskos last edited by

        Nur zur Info: hab im Skript die Aufzählungs-IDs auf Kleinbuchstaben geändert, um dieses Hindernis auszuschalten:

        • alarmanlage_aussenhaut
        • alarmanlage_innenraum
        • alarmanlage_verzoegert

        LG Andreas

        W 1 Reply Last reply Reply Quote 1
        • W
          watcherkb @andreaskos last edited by watcherkb

          @andreaskos hi, ich bekomme lauter warn-Einträge in dem Log:
          edit: ok jetzt weiß ich warum. Melder waren nicht im Ruhe-Modus.

          javascript.0	2020-06-24 17:48:24.965	info	(25167) script.js.common.1Überwachung.Alarmanlage: registered 21 subscriptions and 0 schedules
          javascript.0	2020-06-24 17:48:24.965	warn	(25167) Object "zigbee.0" does not exist
          javascript.0	2020-06-24 17:48:24.964	warn	(25167) Object "zigbee.0" does not exist
          javascript.0	2020-06-24 17:48:24.964	warn	(25167) Object "zigbee.0" does not exist
          javascript.0	2020-06-24 17:48:24.905	info	(25167) script.js.common.1Überwachung.Alarmanlage: Alarmsystem started.
          javascript.0	2020-06-24 17:48:24.904	info	(25167) Start javascript script.js.common.1Überwachung.Alarmanlage
          javascript.0	2020-06-24 17:48:24.815	info	(25167) Stop script script.js.common.1Überwachung.Alarmanlage
          
          
          
          1 Reply Last reply Reply Quote 0
          • S
            sruhsam @sigi234 last edited by

            @sigi234
            Hallo Siggi, bin den ganzen Tag auf der Suche nach einer Lösung einer PIN-Eingabe mir iobroker.alarm zusammen.
            Ist eigentlich ja ganz einfach, mann muss ja nur den Zahl/Code in den Datenpunkt alarm.0.use.toggle_passwort schreiben, hierzu die einzelnen Ziffen sammeln und wenn fertig als Zahl in den DP schreiben, aber ich bekomme es nicht hin. Habe auch schon mehrere scripts zur PIN Eingabe getestet, aber immer ohne Erfolg. Sehe vermutlich den Wald vor lauter Bäume nicht.....
            Kannst du mir Bitte helfen, und mir den View oder das Widget des Nummenblocks als auch das dazugehörige Script bereitstellen ... damit ich da weiterkomme .......
            Ich Bedanke mich schon mal im Voraus und hoffe dass du Zeit hast .
            Grüße aus dem Aichtal
            Stephan

            sigi234 1 Reply Last reply Reply Quote 0
            • sigi234
              sigi234 Forum Testing Most Active @sruhsam last edited by

              @sruhsam

              https://forum.iobroker.net/topic/28717/vis-von-sigi234

              Suche die Alarmanlage View

              S 1 Reply Last reply Reply Quote 0
              • sigi234
                sigi234 Forum Testing Most Active @andreaskos last edited by sigi234

                @andreaskos

                Hallo, habe mal unten verlinkt zu meinen Beitrag, weis nicht ob du auch in den Adapter integriert bist?
                Machst du noch was an deinen Skript?
                Pin Code ist ja von Dir.

                1 Reply Last reply Reply Quote 0
                • S
                  sruhsam @sigi234 last edited by

                  @sigi234
                  Hallo, hab ich gemacht, View geladen. Dann habe ich wie beschrieben das Blockly-Script importieren wollen und bekomm folgenden Fehler beim Importieren:
                  TypeError: Unknown block type: telegram

                  sigi234 1 Reply Last reply Reply Quote 0
                  • sigi234
                    sigi234 Forum Testing Most Active @sruhsam last edited by sigi234

                    @sruhsam sagte in fUmfassendes Alarmanlagen-Skript:

                    TypeError: Unknown block type: telegram

                    Musst du installieren! Dann einfach Instanz deaktivieren.

                    Screenshot (307).png

                    W 1 Reply Last reply Reply Quote 0
                    • W
                      wykat @sigi234 last edited by

                      Hi,

                      brauch jetzt mal hilfe, komme einfach nicht weiter mit (kenne mir leider auch noch beschrankt mit Javascript aus).

                      Mein probleem is das keine sensoren erkannt werden;

                      // Arrays für die Melder
                      var detectorsOuterSkin = [
                      'hm-rpc.2.xxxxxx.1.STATE'/State/,
                      'zwave2.0.Node_008.Binary_Sensor.tamper'/Node 008 Binary Sensor tamper/
                      ];
                      console.log("detectorsOuterSkin: " + detectorsOuterSkin);
                      Das log gibt:
                      javascript.0 (2816) script.js.common.Test_alarm: detectors: OuterSkinhm-rpc.2.xxxxxx.1.STATE,zwave2.0.Node_008.Binary_Sensor.tamper

                      Aber beim einlesen passiert nichts:
                      function getAllDetectors(){
                      detectorsOuterSkin = getDetectorsFromFunction(functionOuterSkin);
                      console.log("detectorsOuterSkin: " + detectorsOuterSkin);
                      Das log gibt dann:
                      javascript.0 (2816) script.js.common.Test_alarm: detectorsOuterSkin:
                      Ich kann die alarmanlage aktivieren (in objects), aber erkennt auch keine tur offnen obwohl ich hm-rpc.2.xxxxxx.1.STATE auch gelogged hab und gibt eindeutig 0 (geschlossen) und 1 aus. Hab auch uber eine variabele auf true/false versucht, funktioniert auch nicht.

                      W 1 Reply Last reply Reply Quote 0
                      • W
                        wykat @wykat last edited by

                        Weiss nicht welche taste aber bericht wurde schon versand....

                        Wass mache ich da falsch und wie kann ich die JSON datapoints verwenden?

                        thx,

                        W 1 Reply Last reply Reply Quote 0
                        • W
                          wykat @wykat last edited by

                          Hier mal die screenshots:
                          63f34cf2-b042-4bdb-9c1c-e280f5a2922e-image.png

                          7cac544e-7a88-4eb4-a17a-4fb8b7c3d1c5-image.png

                          6a31e942-bc2a-4959-92b7-1ccab4811cde-image.png

                          Homer.J. 1 Reply Last reply Reply Quote 0
                          • Homer.J.
                            Homer.J. @wykat last edited by

                            @wykat bei Array kommt nichts rein schau mal in Zeile 77-79 die musst du bei Aufzählungen als Funktion angelegt haben. Und achte auf Groß-und Kleinschreibung.

                            W 1 Reply Last reply Reply Quote 0
                            • W
                              wykat @Homer.J. last edited by

                              @Homer-J said in Umfassendes Alarmanlagen-Skript:

                              @wykat bei Array kommt nichts rein schau mal in Zeile 77-79 die musst du bei Aufzählungen als Funktion angelegt haben. Und achte auf Groß-und Kleinschreibung.

                              Muss da irgendwie auf der leitung stehen. Meinst du zeilen 85 - 87 im original script (hatte das auch mal versucht)? Gibt's irgendwo ein beispiel? Hatte zuerst das hier aus diesem thread verwendet, das sollte aber falsch sein.

                              4f106df1-658e-403e-b0fa-d8df8bcd9707-image.png

                              Danke.

                              Homer.J. 1 Reply Last reply Reply Quote 0
                              • Homer.J.
                                Homer.J. @wykat last edited by

                                @wykat bei dir sind es die Punkte 85-87 die musst du unter Aufzählung erstellen und deine jeweiligen Sensoren reinpacken.
                                Hier https://forum.iobroker.net/topic/31657/test-adapter-alarm-1-1-x gibt es aber auch einen leicht zu konfigurierenten Adapter.

                                W 1 Reply Last reply Reply Quote 0
                                • W
                                  wykat @Homer.J. last edited by

                                  @Homer-J danke, denk hab's verstanden;
                                  Das script wird nicht mehr angepasst, aber sensoren werden unter Aufzahlungen (heist bei mir in English ENUM).
                                  Zuerst war diese option bei mir nicht eingeblendet (ENUM), jetzt ist es da
                                  Konnte auch unter functions das ENUM 'alarmanlage_aussenhat' erstellen, nur fehlt mir das '+' um etwas zu zufugen. Irgend etwas fehlt da noch. Kann's nur loschen oder andern, nicht editieren.

                                  c4c3a735-fca2-42b9-83b2-65de650f6e66-image.png

                                  Homer.J. 1 Reply Last reply Reply Quote 0
                                  • Homer.J.
                                    Homer.J. @wykat last edited by

                                    @wykat ändere mal die Ansicht dann muss ein Button editieren da sein und dort wählst du von deinen Sensoren den State aus.

                                    W 1 Reply Last reply Reply Quote 0
                                    • W
                                      wykat @Homer.J. last edited by

                                      @Homer-J Hat etwas anders funktioniert :-/.
                                      Nach einblenden vom Enum und erstellen vom Enum.function.alarmanlage_aussen, Javascript neu gestartet und dann kann im objecten unter function die Enum alarmanlage ausgewahlt werden. Es muss das ganze modul gewahlt werden, nicht der alarm state. Alarm script neu gestartet und sensoren wurde erkannt. Wenn man es weis eigentlich sehr einfach. Keine problemen mit schreibweise.

                                      Jetzt habe ich leider andere problemen bekommen, ein z-wave modul funktioniert nicht mehr. Value steht jetzt auf 'number' wo es fruher nur boolean angezeigt hat. Werde es einmal ausklinken und wieder neu einbinden. so das es neu installiert wird.

                                      Beim Homematic sensor wird wahrscheinlich das falsche open/closed gemeldet "Closed(0)". Noch nicht sicher wie ich das andern kann.

                                      Durch diese 2 fehler kann die alarmanlage dann nicht mehr aktiviert werden, ohne sensoren geht's wieder.

                                      F 1 Reply Last reply Reply Quote 0
                                      • F
                                        Freaknet @wykat last edited by

                                        @andreaskos

                                        Hey, erstmal Danke für das tolle Script, hat mir ne Menge Arbeit abgenommen, zumal ich von Java-Script 0-Ahnung habe 🙂
                                        Hab auch die Alarmanlage schon ein paar Wochen in Gebrauch und funktioniert 1A.

                                        Jetzt hätte ich aber ggf. ein Anliegen, falls möglich 😊
                                        Wenn nicht umsetzbar oder zu zeitaufwändig ist das aber nicht schlimm.

                                        Ausgangslage:
                                        Ich habe div. Sensoren (Aqara 6x BWM, 15x Tür-/Fensterkontakte) in der Alarmanlage integriert.

                                        Jetzt ist es so, dass in den Sommermonaten oft einzelne Fenster in der Nacht offen sind und dadurch die Alarmanlage nicht aktiv geschaltet werden kann da diese ja auf "true" stehen, bzw. wenn wir Nachts mal ein Fenster öffnen die Alarmanlage anschlägt, ganz zum Leidwesen meiner Frau.
                                        Die BWM kann ich ja durch den "Alarmanlage_Innenraum" dafür separat deaktivieren, nur geht das schlecht bei der "Alarmanlage_Aussenhaut" mit den Fenstern. Dann brauch ich gleich keine Alarmanlage aktivieren 😂

                                        Idee:
                                        Ich würde für alle Sensoren einen zusätzlichen DP anlegen und mit true/false ausstatten.
                                        Über diese DP´s würde ich der Alarmanlage gerne sagen, welche Sensoren verwendet werden sollen und welche nicht.
                                        So könnte ich nach Bedarf einzelne Sensoren deaktivieren und die Alarmanlage würde trotzdem funktionieren.

                                        Frage:
                                        Wäre es möglich, in das Script noch eine Funktion/Abfrage einzubauen, so wie in etwa....

                                        • Wenn DP xyz = true dann verwende den Sensor in Alarmanlage
                                        • Wenn DP xyz = false dann verwende den Sensor für die Alarmanlage nicht

                                        Hoffe ich konnte meinen Gedankengang einigermaßen verständlich erklären 😟

                                        P.S.: Vielleicht hat ja jemand anderes so ein Problem auf eine andere Weise realisiert oder umgesetzt?
                                        Über Ideen oder Vorschläge bin ich offen 🙂

                                        Grüße
                                        Freaknet

                                        1 Reply Last reply Reply Quote 0
                                        • L
                                          LaBamba last edited by LaBamba

                                          @homer-j said in Umfassendes Alarmanlagen-Skript:
                                          Github erlaubt mir nicht das Material Design CSS Version 2 von Uhula zu nutzen.

                                          1 Reply Last reply Reply Quote 0
                                          • L
                                            LaBamba @andreaskos last edited by

                                            @andreaskos

                                            Hallo, ich habe eine Frage zur Einbindung von Nuki!
                                            Sehe ich es richtig, dass nur Sensoren funktionieren die den Wert true/false ausgeben.
                                            Beim Nuki Türschloss ist es der Wert 2 oder 3. Ist es irgendwie möglich, dies in die Alarmanlage einzubinden?
                                            Viele Grüße

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            657
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript security
                                            27
                                            145
                                            23153
                                            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