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 goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    Umfassendes Alarmanlagen-Skript

    This topic has been deleted. Only users with topic management privileges can see it.
    • sigi234
      sigi234 Forum Testing Most Active @Homer.J. last edited by sigi234

      @Homer-J sagte in Umfassendes Alarmanlagen-Skript:

      @sigi234 wo die 2054 steht dort deinen gewünschten Pin eintragen.
      Es kann sein das ich die Fenster gruppiert habe löse diese mal auf, dann sollte es gehen.
      Hab die Gruppierung jetzt raus genommen.

      Screenshot_2020-05-06 javascript - ioBroker.png

      wo die 2054
      ?

      Irgendwas stimmt nicht:

      Screenshot (2411).png

      Screenshot (2413)_LI.jpg

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

        @sigi234 im Timeoutblock Pineingabe den du offen hast, hab es bei mir gerade nochmal eingefügt und läuft.

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

          @Homer-J sagte in Umfassendes Alarmanlagen-Skript:

          ast, hab es bei mir gerade nochmal eingefügt und läuft.

          Aha, gecheckt

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

            @pix said in Umfassendes Alarmanlagen-Skript:

            die Ausgabe des Sensor Namens hast du über common.name schon realisiert ("Die Namen der Melder sollten gut gepflegt sein"). Es gibt aber sehr viel mehr Infos im Objekt, die man ausgeben könnte;

            Frage dazu: Für das feststellen der offenen Melder mit der Funktion checkDetectors wird das Array der Melder durchgearbeitet. Jedes Element des Arrays ist eine id (als String). Jede id wird geprüft mit getState(id).val, ob der Melder ausgelöst ist oder nicht.

            Über diese id kann ich mir das Objekt dazu holen mit getObject(id) und dort properties wie common.name etc. auslesen. Was aber sind das für properties, die du oben angegeben hast? Das sieht so HomeMatic-spezifisch aus (channelID, deviceID, etc.)? Ich bekomme hier nur Objekte, die den folgenden Aufbau haben, als Beispiel:

             {
              "type": "state",
              "common": {
                "def": false,
                "type": "boolean",
                "read": true,
                "write": false,
                "name": "Kueche grosses Fenster.SENSOR"
              },
              "native": {
                "CONTROL": "DOOR_SENSOR.STATE",
                "DEFAULT": false,
                "FLAGS": 1,
                "ID": "SENSOR",
                "MAX": true,
                "MIN": false,
                "OPERATIONS": 5,
                "TAB_ORDER": 0,
                "TYPE": "BOOL",
                "UNIT": ""
              },
              "from": "system.adapter.hm-rpc.1",
              "ts": 1549734551707,
              "_id": "hm-rpc.1.IEQ0064219.1.SENSOR",
              "acl": {
                "object": 1636,
                "state": 1636,
                "owner": "system.user.admin",
                "ownerGroup": "system.group.administrator"
              }
            }
            

            Komme ich von der State-id, wie sie im Array drin ist, überhaupt auf das von dir gezeigte Objekt über irgendwelche parent-Beziehungen o.ä.? Dafür bin ich zu sehr node.js-noob... 🙄

            Bitte um Hilfe.
            LG Andreas

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

              @andreaskos said in Umfassendes Alarmanlagen-Skript:

              Komme ich von der State-id, wie sie im Array drin ist, überhaupt auf das von dir gezeigte Objekt über irgendwelche parent-Beziehungen o.ä.?

              OK - moment mal, ich glaube, ich hab schon eine Lösung. Ich kann ja über die id-Struktur selbst eine oder zwei Ebenen hochsteigen und mir dann von dort über getObject properties wie den Device-Namen holen etc.

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

                Hi zusammen,

                ich habe jetzt drei weitere Datenpunkte hinzugefügt (die jetzt auch alle eine Rolle zugeordnet bekomen) für die Ausgabe der offenen Melder (jeweils für alle / nur Außenhaut / nur Innenraum) und für den alarmierenden Melder als String im JSON-Format.
                Ich habe dafür die kompletten Objekte reingeschmissen, die von ioBroker zur Verfügung gestellt werden. Siehe Beschreibung im ersten Thread bzw. das aktualisierte Skript.

                Ich würde - sofern es keine Fehlerbehebungen gibt - die Arbeit an diesem Skript einmal vorläufig abschließen. Ich danke euch sehr für eure Hilfe, die Inputs und die Beschäftigung mit dem Skript, auch in Verbindung mit den anderen Projekten wie der coolen Ereignisliste!

                Liebe Grüße,
                Andreas

                sigi234 Homer.J. 2 Replies Last reply Reply Quote 2
                • sigi234
                  sigi234 Forum Testing Most Active @andreaskos last edited by sigi234

                  @andreaskos

                  Hallo, bei mir bekomme ich keine Daten der Sensoren.

                  Screenshot (2425).png

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

                    Hi @sigi234 schau mal bei Innenraum da ist Alarmanlage falsch geschrieben, oder hast du es so ins Script übernommen. Und achte auf groß und Kleinschreibung, bei dir ist alles klein.
                    Ich habe es bei mir Leer über die CCU angelegt, und dann die Datenpunkte im iobroker reingepackt.

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

                      @Homer-J sagte in Umfassendes Alarmanlagen-Skript:

                      Hi @sigi234 schau mal bei Innenraum da ist Alarmanlage falsch geschrieben, oder hast du es so ins Script übernommen. Und achte auf groß und Kleinschreibung, bei dir ist alles klein.

                      Screenshot (2427).png

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

                        @sigi234 gib es mal klein ein.

                        sigi234 1 Reply Last reply Reply Quote 1
                        • sigi234
                          sigi234 Forum Testing Most Active @Homer.J. last edited by

                          @Homer-J sagte in Umfassendes Alarmanlagen-Skript:

                          @sigi234 gib es mal klein ein.

                          Jupp läuft

                          S 1 Reply Last reply Reply Quote 1
                          • Homer.J.
                            Homer.J. @andreaskos last edited by

                            Hi @andreaskos muss die json nicht in eckigen Klammer stehen. ?

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

                              Hi @Homer-J
                              Im Skript wird nur ein Objekt erzeugt, das dann mit der Methode JSON.stringify() in einen JSON-String ausgeben wird. Das erledigt diese Funktion, da hat das Skript keinen Einfluss drauf.

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

                                @Homer-J sagte in Umfassendes Alarmanlagen-Skript:

                                Hi @andreaskos muss die json nicht in eckigen Klammer stehen. ?

                                Hm, denke ich auch. Ich möchte ja eine Liste welcher Aktor in den jeweiligen DP ist.
                                Denke ein DP für Zone: Außenhaut, Innenhaut wäre Super

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

                                  @Homer-J & @sigi234
                                  Meint ihr, dass diese beiden Datenpunkte

                                  • OpenDetectorsOuterSkingJSON
                                  • OpenDetectorsIndoorJSON

                                  jeweils nicht ein einziger JSON-String sein sollten, sondern ein Array mit JSON-Strings?

                                  Beim Parsen würde man dann also ein Array mit Objekten enthalten, die genauso aufgebaut sind, wie ein einzelnes Objekt, so wie es als JSON-String abgebildet ist im Datenpunkt:

                                  • AlarmingDetectorJSON

                                  Derzeit ist es ja so, dass die beiden Datenpunkte oben jeweils ein einziges Objekt sind. Das Array mit den einzelnen Objekten der offenen Melder ist dann in der property listOfDetectors enthalten. Siehe so:

                                  {
                                    "title":   "Open detectors outer skin",
                                    "zone":  "Alarmanlage_Aussenhaut",
                                    "listOfDetectors": [  /*  HIER IST DAS ARRAY DER MELDER-OBJEKTE  */  ]
                                  }
                                  

                                  LG Andreas

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

                                    Ich möchte ja eine Liste welcher Aktor in den jeweiligen DP ist.

                                    Vielleicht noch zum Verständnis, diese Liste kann man folgendermaßen holen (jeweils den richtigen Datenpuntkt einsetzen für alle / innen /außenhaut):

                                    const idOpenDetectorsJSON = 'javascript.0.Alarmanlage.Output.OpenDetectorsJSON'/*Open Detectors*/;
                                    var jsonString = getState(idOpenDetectorsJSON).val;
                                    var obj = JSON.parse(jsonString);
                                    var detectors = obj.listOfDetectors;
                                    
                                    // Beispiel für einen HomeMatic-State
                                    var i=0;
                                    while (i < detectors.length){
                                      log("id: " + detectors[i].id);
                                      log("Name: " + detectors[i].self.common.name);
                                      log("Gerät: " + detectors[i].parentsparent.common.name);
                                      i++;
                                    }
                                    
                                    Homer.J. 1 Reply Last reply Reply Quote 0
                                    • Homer.J.
                                      Homer.J. @andreaskos last edited by

                                      Hi Andres bei meiner alten Alarmanlage hatte ich die Ausgabe so.
                                      Screenshot_2020-05-10 objects - ioBroker.png
                                      Das ist zwar keine json aber man sieht halt wann ausgelöst hat und was.
                                      Wie kann man deine Datenpunkte jetzt verwenden das habe ich noch nicht so richtig verstanden.?
                                      Nehme ich jetzt ein Datenpunkt in ein Widget auf wird mir bei deiner json nichts angezeigt wie verarbeitet man diese.

                                      Gibt es das in deinem Script schon

                                      const idOpenDetectorsJSON = 'javascript.0.Alarmanlage.Output.OpenDetectorsJSON'/*Open Detectors*/; 
                                      

                                      oder muss das noch irgendwo eingefügt werden.

                                      Grüße

                                      andreaskos 1 Reply Last reply Reply Quote 0
                                      • K
                                        kilasat last edited by

                                        Vielen Dank an @andreaskos für das Script. Sieht wirklich gut aus.

                                        Hat jemand noch ein paar Beispiele was ihr mit dem ausgelöstem Alarm macht. Also vielleicht noch ein Blockly dazu mit einer akkustischen und optischen Signalisierung? Wie genau schaltet ihr bei euch die Alarmanlage scharf und wieder unscharf?

                                        sigi234 T 2 Replies Last reply Reply Quote 1
                                        • sigi234
                                          sigi234 Forum Testing Most Active @kilasat last edited by

                                          @kilasat sagte in Umfassendes Alarmanlagen-Skript:

                                          Vielen Dank an @andreaskos für das Script. Sieht wirklich gut aus.

                                          Hat jemand noch ein paar Beispiele was ihr mit dem ausgelöstem Alarm macht. Also vielleicht noch ein Blockly dazu mit einer akkustischen und optischen Signalisierung? Wie genau schaltet ihr bei euch die Alarmanlage scharf und wieder unscharf?

                                          https://forum.iobroker.net/topic/32885/umfassendes-alarmanlagen-skript/32?page=2

                                          1 Reply Last reply Reply Quote 1
                                          • K
                                            kilasat last edited by

                                            5f8600f1-4107-44e4-aec4-dfd24cacb002-image.png

                                            alle Sensoren sind auf false und trotzdem zeigt er mir bei Ready - false ein. Was könnten noch das Problem sein?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            985
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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