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

      Sehr gerne:

      <block 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml" 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="update" id="+]h:KWYkvIq60G]]E{kK"><mutation delay_input="false"></mutation>

      <field name="OID">javascript.0.scriptEnabled.Scripte.Meine_Skripte.Alarmanlage.Status_Alarmanlage.Abfrage_EMA_Area_2</field>

      <field name="WITH_DELAY">FALSE</field>

      <value name="VALUE"><block type="text" id="pW):aiYXSlU%~`T+6Dn]"><field name="TEXT">UNSCHARF</field></block></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="update" id="2GOG5tTvGGe(/=08L|F!"><mutation delay_input="false"></mutation>

      <field name="OID">javascript.0.scriptEnabled.Scripte.Meine_Skripte.Alarmanlage.Status_Alarmanlage.Abfrage_EMA_Area_2</field>

      <field name="WITH_DELAY">FALSE</field>

      <value name="VALUE"><block type="text" id="EQIkS)|GThFK[WpS~j%A"><field name="TEXT">SCHARF</field></block></value></block></statement>

      <next><block type="controls_if" id="dkwTBE1!pKEt}VcU!)9%"><value name="IF0"><block type="logic_compare" id="@;)|#}.kX%Dr?SAw/?"><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="update" id="LLa3c.iT%,1Y%^a{p%Ty"><mutation delay_input="false"></mutation>

      <field name="OID">javascript.0.scriptEnabled.Scripte.Meine_Skripte.Alarmanlage.Status_Alarmanlage.Abfrage_EMA_Area_2</field>

      <field name="WITH_DELAY">FALSE</field>

      <value name="VALUE"><block type="text" id="U{@w0Pj|.io@h-x8ta;Q"><field name="TEXT">HOME</field></block></value></block></statement></block></next></block></next></block></statement></block>

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

        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.

        4352_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
        • Stuebi
          Stuebi last edited by

          @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> 
          

          ! ```` `

          on({id: "lupusec.0.status.mode_pc_a2"/*Status Alarmanlage Modus Area 2*/, change: "ne"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            if (getState("lupusec.0.status.mode_pc_a2").val == '0') {
              console.log('Disarm');
            }
            if (getState("lupusec.0.status.mode_pc_a2").val == '1') {
              console.log('Arm');
            }
            if (getState("lupusec.0.status.mode_pc_a2").val == '2') {
              console.log('Home');
            }
          });
          
          
          1 Reply Last reply Reply Quote 0
          • StM47
            StM47 last edited by

            Danke, probiere ich aus.

            Komischerweise funktionieren beide Skripte seit gestern Abend.

            Habe das Skript 2 gelöscht und noch einmal neu erstellt und beide Skripte in Area1 und Area2 umbenannt.

            Jetzt laufen beide ohne Probleme.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            656
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

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