Navigation

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

    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

    LUPUSEC Alarmanlage einbinden

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

      https://www.bilder-upload.eu/bild-ca2447-1541329517.jpg.html

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

        Funktioniert bestens. Danke!

        @tstueben:

        Ich habe das Skript einmal so angepaßt, dass beim Statuswechsel eine Meldung ausgegeben wird. Das funktioniert wunderbar. Vielleicht liegt es an den Skripten die Du aus Blocky aufrufst.

        Bildschirmfoto 2018-11-03 um 13.31.41.png

        ! ````
        <xml xmlns="http://www.w3.org/1999/xhtml"><block type="on" id="!qUvr]:?GN0pr/?0v/@{" x="-2587" y="-562"><field name="OID">lupusec.0.status.mode_pc_a2</field>
        <field name="CONDITION">ne</field>

        <statement name="STATEMENT"><block type="controls_if" id="%V-Ety+x{~;wN~zj_%1="><value name="IF0"><block type="logic_compare" id="|=4lcSp8%lHSaPS|9p!)"><field name="OP">EQ</field>
                <value name="A"><block type="get_value" id="Cm|39t%-)p#IHuylE@n."><field name="ATTR">val</field>
                    <field name="OID">lupusec.0.status.mode_pc_a2</field></block></value> 
                <value name="B"><block type="text" id="MACpEjq5{?i-!Iu;]aw,"><field name="TEXT">0</field></block></value></block></value> 
            <statement name="DO0"><block type="debug" id="Isz3SGwFnV7Yo#D#5yXY"><field name="Severity">log</field>
                <value name="TEXT"><shadow type="text" id="{7Y]-uLaP0(EvD._t/0-"><field name="TEXT">Disarm</field></shadow></value></block></statement> 
            <next><block type="controls_if" id="2Ynf(_,8B04ers{z`V2u"><value name="IF0"><block type="logic_compare" id="oPVf%dZ{z^Cs*BP})~B="><field name="OP">EQ</field>
                    <value name="A"><block type="get_value" id="oBsd{n,rNzIe:z31lDyT"><field name="ATTR">val</field>
                        <field name="OID">lupusec.0.status.mode_pc_a2</field></block></value> 
                    <value name="B"><block type="text" id="zL0)7_8lmthPs#Y_S=w0"><field name="TEXT">1</field></block></value></block></value> 
                <statement name="DO0"><block type="debug" id="s-aX)CWpeTBVs([@Qs~_"><field name="Severity">log</field>
                    <value name="TEXT"><shadow type="text" id="It82xa++ur;i/z*De_UC"><field name="TEXT">Arm</field></shadow></value></block></statement> 
                <next><block type="controls_if" id="dkwTBE1!pKEt}VcU!)9%"><value name="IF0"><block type="logic_compare" id="@;)|#*}.kX%Dr?SA*w/?"><field name="OP">EQ</field>
                        <value name="A"><block type="get_value" id="y-F*Xi!OqK~_cn3%+.6e"><field name="ATTR">val</field>
                            <field name="OID">lupusec.0.status.mode_pc_a2</field></block></value> 
                        <value name="B"><block type="text" id="-D?Pnif@xytwIc@)?k[m"><field name="TEXT">2</field></block></value></block></value> 
                    <statement name="DO0"><block type="debug" id="(Ho=tRP0=h@P_{DjXuU9"><field name="Severity">log</field>
                        <value name="TEXT"><shadow type="text" id="Bt@[yD.t2wzz-18,cCH%"><field name="TEXT">Home</field></shadow></value></block></statement></block></next></block></next></block></statement></block></xml> 
        

        ! ```` `

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

          Habe noch eine Frage.

          Ich möchte bei Alarm den Status angezeigt bekommen.

          Im Moment frage ich dafür den Status der Außensirene ab.

          In der iPhone-App wird direkt der Bereich angezeigt, wo eingebrochen wurde.

          Ändert sich bei Einbruch der Status der Areas? Wenn ja, wie?

          Da wir keine verständnisvollen Nachbarn haben, kann ich es schlecht selber ausprobieren.

          https://www.bilder-upload.eu/bild-195924-1541333102.jpg.html

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

            @StM47:

            Habe noch eine Frage.

            Ich möchte bei Alarm den Status angezeigt bekommen.

            Im Moment frage ich dafür den Status der Außensirene ab.

            In der iPhone-App wird direkt der Bereich angezeigt, wo eingebrochen wurde.

            Ändert sich bei Einbruch der Status der Areas? Wenn ja, wie?

            Da wir keine verständnisvollen Nachbarn haben, kann ich es schlecht selber ausprobieren.

            https://www.bilder-upload.eu/bild-195924-1541333102.jpg.html ` ~~ja, der Status von alaram_status und alarm_status_ex ändert sich bei den auslösenden Sensoren wie folgt:

            alarm_status == BURGLAR

            alarm_status_ex == true

            Der Status in mode_pc_a1 und mode_pc_a1 ändert sich nicht!

            4352_bildschirmfoto_2018-11-04_um_13.33.46.png ~~

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

              Ich habe in der Version 0.3.6 noch ein Status alarm_ex unter lupusec.X.status aufgenommen. Der Wert kann 0 (kein Alarm), 1 (Alarm ausgelöst in Area 1) und 2 (Alarm ausgelöst in Area 2) annehmen. Wenn der Status alarm_ex 1 oder 2 ist, kannst Du z.B. prüfen wie die Werte status und alarm_status unter den Devices aussehen und ausgeben.

              Die Version 0.3.6 steht unter Latest ab morgen zur Verfügung oder Du kannst diese unter Adapter mit folgendem Link laden: https://github.com/schmupu/ioBroker.lupusec

              4352_bildschirmfoto_2018-11-04_um_14.55.04.png

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

                Morgen, fslls du die latest Version nutzt oder heute über den GitHub Link oben. Wenn du die Stable Version nutzt, dann dauert es noch ein wenig länger.

                Gesendet von iPhone mit Tapatalk

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

                  Wollte gerade ein Skript erstellen zum Auslesen des Wertes alarm_ex.

                  Leider wird mir bei der Auswahl ein leeres Feld angezeigt.

                  9039_bildschirmfoto_2018-11-04_um_18.36.17.png

                  Unter Objekte/lupusec.0/status/alarm_ex/ steht jedoch der Wert Kein Alarm(0)

                  Kann ich mir den Status 0,1 oder 2 auch ohne Skript direkt ausgeben lassen, also dass dann Kein Alarm oder Alarm Area 1 oder Alarm Area 2 steht?

                  @tstueben:

                  Ich habe in der Version 0.3.6 noch ein Status alarm_ex unter lupusec.X.status aufgenommen. Der Wert kann 0 (kein Alarm), 1 (Alarm ausgelöst in Area 1) und 2 (Alarm ausgelöst in Area 2) annehmen. Wenn der Status alarm_ex 1 oder 2 ist, kannst Du z.B. prüfen wie die Werte status und alarm_status unter den Devices aussehen und ausgeben.

                  Die Version 0.3.6 steht unter Latest ab morgen zur Verfügung oder Du kannst diese unter Adapter mit folgendem Link laden: https://github.com/schmupu/ioBroker.lupusec `

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

                    @StM47:

                    Wollte gerade ein Skript erstellen zum Auslesen des Wertes alarm_ex.

                    Leider wird mir bei der Auswahl ein leeres Feld angezeigt.

                    Bildschirmfoto 2018-11-04 um 18.36.17.png

                    Unter Objekte/lupusec.0/status/alarm_ex/ steht jedoch der Wert Kein Alarm(0)

                    @tstueben:

                    Ich habe in der Version 0.3.6 noch ein Status alarm_ex unter lupusec.X.status aufgenommen. Der Wert kann 0 (kein Alarm), 1 (Alarm ausgelöst in Area 1) und 2 (Alarm ausgelöst in Area 2) annehmen. Wenn der Status alarm_ex 1 oder 2 ist, kannst Du z.B. prüfen wie die Werte status und alarm_status unter den Devices aussehen und ausgeben.

                    Die Version 0.3.6 steht unter Latest ab morgen zur Verfügung oder Du kannst diese unter Adapter mit folgendem Link laden: https://github.com/schmupu/ioBroker.lupusec

                    Hast du die Lupusec Instanz einmal neu gestartet? Unter Umständen einmal Instanz anhalten, dann Objekt alarm_ex nochmals löschen und Instanz nochmals starten. Geht es jetzt?

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

                      ja jetzt geht es

                      Kann ich mir eigentlich irgendwie den Status 0,1 oder 2 auch ohne Skript direkt ausgeben lassen,

                      also dass dann Kein Alarm oder Alarm Area 1 oder Alarm Area 2 steht?

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

                        @StM47:

                        ja jetzt geht es `

                        klasse! Und Du kannst das auch testen ohne Deinen Nachbarn zu nerven. In der Lupusec Alarmanlage unter Sensoren -> Sirene, die interne und externe Sirene ausstellen.

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

                          Getestet und es läuft perfekt.

                          Jetzt würde ich mir gerne noch den Melder anzeigen lassen, welcher ausgelöst hat.

                          Da bin ich aber mit meinen Programmierkenntnissen bereits am Ende.

                          Kannst du mir das irgendwie erklären?

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

                            @StM47:

                            Getestet und es läuft perfekt.

                            Jetzt würde ich mir gerne noch den Melder anzeigen lassen, welcher ausgelöst hat.

                            Da bin ich aber mit meinen Programmierkenntnissen bereits am Ende.

                            Kannst du mir das irgendwie erklären? `

                            Vielleicht hilft Dir das ein wenig weiter. Mit dem kleinen Skript wird im Logfile der Status der Türsensoren und Bewegungsmelder ausgeben. Das geschieht einmalig beim Start des Skripts und dann immer wenn sich der Wert im Objekt alarm_ex ändert.

                            function showLupusecStatus()
                            {
                                $('[state.id=lupusec.0.devices.RF:*][state.id=.name]').each(function (id, i) {
                                   sensorId = id.split(".").slice(0,-1).join(".") + '.';
                                   var type = getState(sensorId+'type').val;
                                   if (type == 4 || type == 9) {
                                        var name = getState(id).val;
                                        var status = getState(sensorId + 'status').val
                                        var alarmstatus = getState(sensorId + 'alarm_status').val
                                        var statusall ="";
                                        if(status && alarmstatus) {
                                            statusall = status + " | " + alarmstatus;
                                        } else {
                                            statusall = status + alarmstatus;
                                        }
                                        console.log('Status von ' + name + ' = ' + statusall);           
                                    }
                                });
                            
                            }
                            
                            showLupusecStatus();
                            on({id: "lupusec.0.status.alarm_ex"/*Status Alarmanlage Alarm Status*/, change: "ne"}, function (obj) {
                                showLupusecStatus();
                            }); 
                            
                            
                            1 Reply Last reply Reply Quote 0
                            • StM47
                              StM47 last edited by

                              Ich habe das jetzt anders gelöst.

                              9039_bildschirmfoto_2018-11-05_um_18.50.52.png

                              Habe für jeden Melder eine roten Punkt erstellt, welcher bei Alarm angezeigt wird.

                              Super Sache.

                              9039_img_2602.jpg

                              Jetzt bin ich zufrieden.

                              Danke für die Unterstützung!

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

                                sieht sehr cool aus!

                                1 Reply Last reply Reply Quote 0
                                • H
                                  helfo last edited by

                                  Hallo,

                                  ich benötige etwas Anfänger-Unterstützung. Ich habe den IOBroker als Docker auf meinem Synology NAS laufen. Ich möchte über Apple HomeKit meine Lupusec XT2 Plus Alarmanlage scharf(Area 1 und Area 2) und unscharf schalten, sowie den Status der Sensoren anzeigen. Ich habe yahka und den Lupusec Adapter laufen. In yahka habe ich eine Alarmanlage als Gerät hinzugefügt (Alarm System).

                                  Und ab hier weiß ich nich weiter:

                                  Wenn ich jetzt einen Service hinzufüge, z.B.

                                  Dienstname: Status Alarm

                                  Service-Typ: Security-System

                                  was muss ich nun in die angezeigten Felder eintragen?

                                  9695_bildschirmfoto_2018-11-11_um_05.50.36.png

                                  In Homekit finde ich dann "Status Alarm - Zuhause":

                                  9695_img_2323.png

                                  Wie kann ich hier jetzt

                                  Area 1 - Home 1 scharfschalten

                                  Area 1 - Home 2 scharfschalten

                                  Area 1 - Home 3 scharfschalten

                                  Alarmanlage unscharf schalten?

                                  Bitte für Anfänger 🙂 erklären.

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

                                    Hallo Helfo,

                                    vor dem gleichen Problem stand ich auch. Der Status der Lupusec Alarmanlage und von Apple Homekit ist leider nicht gleich.

                                    Hier kannst Du das alles nachlesen https://developer.apple.com/documentati … ystemstate wenn Du möchtest.

                                    Ich habe mir folgendes JavaSkript geschrieben, welches du so übernehmen kannst. Sobald Du in den Lupusec Alarmanalage den Status von ARM, DSIARM oder HOME anpasst, wird dieser in den Apple Wert "übersetzt" und in das Objekt javascript.0.Apple.Alarm.alarmset geschrieben. Ändert man den Status in Apple Homekit so wird dieser Status in javascript.0.Apple.Alarm.alarmstatus geändert. Dieser passt wiederum den Wert in der Lupusec Alarmanlage an.

                                    var idLupusAlarmModus = "lupusec.0.status.mode_pc_a1"/*Status Alarmanlage Modus Area 1*/;
                                    var idLupusAlarmTrigger = "lupusec.0.status.alarm_ex"/*Status Alarmanlage Alarm Status*/;
                                    var idAppleStatus = "javascript.0.Apple.Alarm.alarmstatus";
                                    var idAppleSet = "javascript.0.Apple.Alarm.alarmset"/*alarmset*/;
                                    
                                    function createStates() {
                                    
                                      createState(idAppleSet, false, {
                                        read: true,
                                        write: true,
                                        name: "Apple Alarm Set",
                                        type: "number",
                                        def: 0
                                      });
                                    
                                      createState(idAppleStatus, false, {
                                        read: true,
                                        write: true,
                                        name: "apple Alarm Status",
                                        type: "number",
                                        def: 0
                                      });
                                    
                                    }
                                    
                                    function setStatus(id, value) {
                                      var valueIst = getState(id).val;
                                      if (valueIst != value) {
                                        setState(id, value);
                                      }
                                    }
                                    
                                    function changeLupusAlarmStatus() {
                                      var setAlarm = Number(getState(idAppleSet).val);
                                      var lupusStatus;
                                      switch (setAlarm) {
                                        case 3: // Disarm
                                          lupusStatus = "0";
                                          break;
                                        case 1: // Arm
                                          lupusStatus = "1";
                                          break;
                                        case 0: // Home    
                                        case 2: // Home
                                          lupusStatus = "2";
                                          break;
                                        default:
                                          break;
                                      }
                                    
                                      if (lupusStatus >= "0" && lupusStatus <= "2") {
                                        console.log("Änderung von Lupus Alarm Status auf " + lupusStatus);
                                        if (getState(idLupusAlarmModus).val != lupusStatus) { setState(idLupusAlarmModus, lupusStatus); }
                                    
                                      }
                                    
                                    }
                                    
                                    function setAlarmStatus() {
                                      var statusAlarm = Number(getState(idLupusAlarmModus).val);
                                      var setAlarm = Number(getState(idAppleSet).val);
                                      var alarmTrigger = Number(getState(idLupusAlarmTrigger).val);
                                      var alarm;
                                    
                                      switch (statusAlarm) {
                                        case 0: // Disarm
                                          alarm = 3;
                                          break;
                                        case 1: // Arm
                                          alarm = 1;
                                          break;
                                        case 2: // Home
                                          if (setAlarm === 0) { alarm = 0; } else { alarm = 2; }
                                          break;
                                        case 3: // Home
                                          if (setAlarm === 0) { alarm = 0; } else { alarm = 2; }
                                          break;
                                        case 4: // Home
                                          if (setAlarm === 0) { alarm = 0; } else { alarm = 2; }
                                          break;
                                        default:
                                          break;
                                      }
                                    
                                      if (alarm >= 0) {
                                        console.log("Lupusec Status:     " + statusAlarm + " is Apple Status " + alarm);
                                        setStatus(idAppleSet, alarm);
                                        if (alarmTrigger == 1) {
                                          setStatus(idAppleStatus, 4); // alarm ausgelöst
                                        } else {
                                          setStatus(idAppleStatus, alarm);
                                        }
                                      }
                                    
                                    }
                                    
                                    on({ id: idLupusAlarmTrigger, change: "ne" }, function (obj) {
                                      setAlarmStatus();
                                    });
                                    
                                    on({ id: idLupusAlarmModus, change: "ne" }, function (obj) {
                                      setAlarmStatus();
                                    });
                                    
                                    on({ id: idAppleSet, change: "ne" }, function (obj) {
                                      changeLupusAlarmStatus();
                                    });
                                    
                                    createStates();
                                    setAlarmStatus();
                                    
                                    

                                    So sieht es dann in Yahka aus:

                                    4352_bildschirmfoto_2018-11-11_um_07.19.55.png

                                    Wenn du ioBroker im Docker Container laufen hast (Host Modus), kannst Du unter Umständen Probleme mit Apple Homekit haben. D.h. Apple Home findet die Yahka Geräte nicht. Dann musst auf der Synology die Bonjour Dienste deaktivieren (Dateidienste -> Erweitert) und den Bonjour Dienst im Docker Container neu starten (kannst auch den Container rebooten).

                                    VG

                                    Stübi

                                    1 Reply Last reply Reply Quote 0
                                    • H
                                      helfo last edited by

                                      Wie binde ich das Javascript ein?

                                      Habe den Javascript-Adapter und Dein Script unter Global gespeichert. Ich finde das Script unter Yahka, aber nicht javascript.0.Apple.Alarm.alarmstatus und javascript.0.Apple.Alarm.alarmset.

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

                                        @helfo:

                                        Wie binde ich das Javascript ein?

                                        Habe den Javascript-Adapter und Dein Script unter Global gespeichert. Ich finde das Script unter Yahka, aber nicht javascript.0.Apple.Alarm.alarmstatus und javascript.0.Apple.Alarm.alarmset. `

                                        okay, speichere das Skript nicht unter Global sondern unter Common. Und dann musst Du das Skript aktivieren (muss grün sein und nich rot auf der linken Seite). Beim Start legt das Skript die beiden Status javascript.0.Apple.Alarm.alarmstatus und javascript.0.Apple.Alarm.alarmset an.

                                        Funktioniert es jetzt?

                                        4352_bildschirmfoto_2018-11-11_um_08.08.53.png

                                        1 Reply Last reply Reply Quote 0
                                        • H
                                          helfo last edited by

                                          Besten Dank!! Funktioniert 😄

                                          1 Reply Last reply Reply Quote 0
                                          • H
                                            helfo last edited by

                                            Und wie kann ich den Status z.B. eines Fensters anzeigen (offen/geschlossen)?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            701
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            21
                                            192
                                            40404
                                            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