Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. [Projekt] Alarmanlage mit mehreren Alarmstufen

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    506

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    5.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.4k

[Projekt] Alarmanlage mit mehreren Alarmstufen

Scheduled Pinned Locked Moved Praktische Anwendungen (Showcase)
138 Posts 32 Posters 38.8k Views 21 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Offline
    L Offline
    LJSven
    wrote on last edited by
    #115

    Frage - ist das Script aus Post 1 immer noch das aktuellste? Blicke nicht mehr durch - geht die Aktivierung / Deaktivierung via Code schon?!

    1 Reply Last reply
    0
    • ? Offline
      ? Offline
      A Former User
      wrote on last edited by
      #116

      @LJSven:

      Frage - ist das Script aus Post 1 immer noch das aktuellste? Blicke nicht mehr durch - geht die Aktivierung / Deaktivierung via Code schon?! ` Ist immernoch aktuell.

      Aktivierung via Code ist dort nicht drin

      Gesendet von meinem Pixel 2 mit Tapatalk

      1 Reply Last reply
      0
      • L Offline
        L Offline
        LJSven
        wrote on last edited by
        #117

        Gibt es dass denn schon?

        1 Reply Last reply
        0
        • ? Offline
          ? Offline
          A Former User
          wrote on last edited by
          #118

          @LJSven:

          Gibt es dass denn schon? ` Ich hab es nicht, da ich auch kein VIS mehr nutze

          Gesendet von meinem Pixel 2 mit Tapatalk

          1 Reply Last reply
          0
          • L Offline
            L Offline
            LJSven
            wrote on last edited by
            #119

            Okay. Darf ich fragen wie du alles steuerst? Oder war es nur auf die Alarmanlage bezogen?

            Gesendet von iPhone mit Tapatalk

            1 Reply Last reply
            0
            • ? Offline
              ? Offline
              A Former User
              wrote on last edited by
              #120

              @LJSven:

              Okay. Darf ich fragen wie du alles steuerst? Oder war es nur auf die Alarmanlage bezogen?

              Gesendet von iPhone mit Tapatalk ` Ich nutze die eigene App für alles

              Gesendet von meinem Pixel 2 mit Tapatalk

              1 Reply Last reply
              0
              • L Offline
                L Offline
                LJSven
                wrote on last edited by
                #121

                Was ist denn die eigene App?

                Gesendet von iPhone mit Tapatalk

                1 Reply Last reply
                0
                • ? Offline
                  ? Offline
                  A Former User
                  wrote on last edited by
                  #122

                  @LJSven:

                  Was ist denn die eigene App?

                  Gesendet von iPhone mit Tapatalk ` viewtopic.php?f=36&t=14919

                  Gesendet von meinem Pixel 2 mit Tapatalk

                  1 Reply Last reply
                  0
                  • L Offline
                    L Offline
                    LJSven
                    wrote on last edited by
                    #123

                    Sieht klasse aus / allerdings hilft es mir als Apple user nicht

                    Gesendet von iPhone mit Tapatalk

                    1 Reply Last reply
                    0
                    • K Offline
                      K Offline
                      krissi
                      wrote on last edited by
                      #124

                      Was ist denn wenn ich unterschiedliche Fensterkontakte habe (HM und Xiaomi)? Dann funktioniert das mit dem Code

                      var selFacade = $('state[state.id=*.STATE](functions=facade)');
                      

                      alleine nicht. Der Baum sieht bei Xiaomi so aus

                      314_unbenannt.jpg

                      Gruß,

                      Krissi

                      ioBroker in VM (unraid) / CCU2 für IP FB-Heizungssteuerung raspi3 / 3x Echo Dot / IKEA Tradfri / zigBee mit Conbee II

                      1 Reply Last reply
                      0
                      • R Offline
                        R Offline
                        Rookie50
                        wrote on last edited by
                        #125

                        Hi nisio,

                        ich habe versucht Deine Scripte als Grundlage zu benutzen. Komme aber gerade nicht weiter. Es werden keine Zustände geloggt :?

                        Was habe ich gemacht: Erstens Deine Scripte hinzugefügt und Deinen View cardAlarm im VIS eingefügt. Dann die entsprechenden functions "facade" und "motion" angelegt und einen Test HM Verschluss und einen HM BWM in die funtions gruppen hinzugefügt. Wenn ich nun die AA aktiviere passiert nix… ich bekomme keine Logs wenn ich den Verschluss öffne oder eine Bewegung mit dem BWM simuliere. An den Scripten habe ich keine Veränderung vorgenommen. Der JS und HM-RPC Adatper läuft in Instanz 0.

                        Functions:

                        ! 1906_functions.png
                        Scripts:

                        ! 1906_alarm1.png
                        Objects:

                        ! 1906_objects.png
                        VIS:

                        ! 1906_vis.png

                        Ich hoffe Du kannst mir da auf die Sprünge helfen.

                        Danke und Gruß

                        Rookie

                        1 Reply Last reply
                        0
                        • ? Offline
                          ? Offline
                          A Former User
                          wrote on last edited by
                          #126

                          @krissi:

                          Was ist denn wenn ich unterschiedliche Fensterkontakte habe (HM und Xiaomi)? Dann funktioniert das mit dem Code

                          var selFacade = $('state[state.id=*.STATE](functions=facade)');
                          

                          alleine nicht. Der Baum sieht bei Xiaomi so aus

                          Unbenannt.JPG

                          Gruß,

                          Krissi `

                          du musst die States nur an enum.functions.facade zuordnen, dann ist es egal von welchem Adapter die Werte kommen

                          J 1 Reply Last reply
                          0
                          • R Offline
                            R Offline
                            Rookie50
                            wrote on last edited by
                            #127

                            Hi,

                            Ok wer liest ist im Vorteil. Sorry, dass ich nicht den ganzen Thread gelesen habe. Dann hätte ich direkt sehen, dass man für Homematic das Script anpassen muss. Das habe ich nun getan und sieht da mein BWM wird im logging angezeigt und es wird ein Alarm erzeugt. Die Fenster/Tür Kontakte reagieren, nachdem ich nur die States unter facade gruppiert habe.

                            Danke für die gute Arbeit Niels.

                            Gruß Rookie

                            1 Reply Last reply
                            0
                            • K Offline
                              K Offline
                              krissi
                              wrote on last edited by
                              #128

                              Das Problem ist aber das das bei Homematic "state" heißt und bei Xiaomi "isopen".

                              @nisio:

                              @krissi:

                              Was ist denn wenn ich unterschiedliche Fensterkontakte habe (HM und Xiaomi)? Dann funktioniert das mit dem Code

                              var selFacade = $('state[state.id=*.STATE](functions=facade)');
                              

                              alleine nicht. Der Baum sieht bei Xiaomi so aus

                              Unbenannt.JPG

                              Gruß,

                              Krissi `

                              du musst die States nur an enum.functions.facade zuordnen, dann ist es egal von welchem Adapter die Werte kommen `

                              ioBroker in VM (unraid) / CCU2 für IP FB-Heizungssteuerung raspi3 / 3x Echo Dot / IKEA Tradfri / zigBee mit Conbee II

                              1 Reply Last reply
                              0
                              • B Blackeye

                                Hi,

                                Danke für die wirklich schon mal große Hilfe. :idea:

                                Aber wie klappt das mit den Gruppen? Geht das automatisch nach starten des Scripts? Bei mir werden nämlich nur die Schalter angelegt.

                                @nisio:

                                @Blackeye:

                                Hi,

                                Kann mir sagen wie ich den Card View importieren kann? Mit den png Dateien weiß ich ach nicht wohin.

                                Und was muss ich noch machen wenn ich alles importiert habe? Profile kenne ich nicht, bin noch neu in IoBroker.

                                Danke

                                Lars `

                                Die Visualisierung basiert komplett auf dem Material Design von Uhula.

                                Dort sind auch alle Infos zu Cards zu finden.

                                Importieren kann man die Card View im Vis Editor unter dem Tab "Views" gibt es dazu einen Button "Import View"

                                Die png Dateien liegen bei mir im root des Vis projects, z.B. /vis.0/main/

                                Man kann dazu den File Manager im Vis Editor verwenden.

                                Profile sind innerhalb des Skripts mit der Logik.

                                Damit lassen sich Melder gruppieren und zu verschiedenen Alarmlevel kombinieren, z.B.:

                                • Nachts Aussenhaut überwachen und stillen Alarm auslösen

                                • Tagsüber nur Sabotagealarm aktivieren

                                • Voller Alarm bei Abwesenheit

                                -… `

                                G Offline
                                G Offline
                                Goldenbaum
                                wrote on last edited by
                                #129

                                Bin noch recht neu hier.

                                Aber wenn ich jetzt die Text Datei nehme.

                                Was muss ich damit wie machen damit ich das gleiche view erhalte?

                                Vielen Dank im voraus für alles

                                D 1 Reply Last reply
                                0
                                • B Offline
                                  B Offline
                                  Baerny
                                  wrote on last edited by Baerny
                                  #130

                                  leider verstehe ich noch nicht alles von dem Script. Ich habe div. Türen und Fenster dem Gewerk "facade" zugeordnet. Die Anlage schaltet auch auf aktiv wenn ich z. B. ein Fenster öffne. Was ich aber noch nicht verstehe, wie kann ich die Aktoren (Fenster und Türen) einzelnen Gruppen zuordnen damit ich die unterschiedlich schalten kann ( z. B. Night, usw.) Hoffe es kann mir einer weiterhelfen.
                                  Baerny

                                  CCU 2 | Intel NUC mit Proxmox

                                  1 Reply Last reply
                                  0
                                  • R Offline
                                    R Offline
                                    ReverZ
                                    wrote on last edited by
                                    #131

                                    Wurden die planten Erweiterungen mit PIN-Eingabe usw. eigentlich noch umgesetzt?

                                    1 Reply Last reply
                                    0
                                    • smartboartS smartboart

                                      Hallo, hab mal ein paar Bilder zusammen gestellt.

                                      Ist das richtig, dass profil auto und default nicht in der Vis activiert werden können? Nur die Rückmeldung falls aktiv?

                                      Was ist der gedanke hinter disen beiden Profilen? Aktivierung über Anwesenheitserkennung automatish? und das default Profil?

                                      6558_scripte.png 6558_objekte_alarm.png 6558_light.png 6558_facade.png 6558_20180424_095451.jpg

                                      /* 
                                      
                                      multi channel burglar alarm - v 0.01
                                      
                                      features:
                                      - six different alarm channels
                                      - delayed alarm action
                                      - delayed sensor check
                                      - alarmlog
                                      - define settings as profil
                                      
                                      changelog:
                                       29.09.2017 initial version
                                       01.10.2017 restructered with revealing module pattern 
                                       03.10.2017 profiles added for alarm channels and sensor groups
                                      
                                      */
                                      
                                      var ALARM = (function () {
                                      
                                          //Settings
                                          var instance = 'javascript.0.';
                                          var maxLogEntries = 5;
                                      
                                          //Internal states
                                          var enable = false;
                                          var state = 0;
                                          var alarm = false;
                                          var alarmDelay;
                                          var alarmTimer = {};
                                          var alarmLog = [];
                                          var sensorDelay;
                                          var sensorTimer = {};
                                      
                                          //Sensors
                                          var selFacade = $('state[state.id=javascript.0.*](functions=facade)');
                                          selFacade.on(function(obj) {
                                              _checkSensor(obj,'facade');
                                          });
                                          var selMotion = $('state[state.id=javascript.0.*](functions=motion)');
                                          selMotion.on(function(obj) {
                                              _checkSensor(obj,'motion');
                                          });
                                      
                                          function _checkSensor(obj, group){
                                              if(sensorDelay[group] === 0){
                                                  _check(obj);
                                              }else if(sensorDelay[group] > 0){
                                                  setTimeout(_check,(sensorDelay[group]*1000),obj);
                                              }
                                              log('checkSensor group:'+group);
                                          }
                                      
                                          function _loadSettings(profile){
                                              switch(profile) {
                                                  case 'silent':
                                                      sensorDelay = {motion:0,facade:0};
                                                      alarmDelay = {silent:0};
                                                      break;
                                                  case 'night':
                                                      sensorDelay = {facade:0};
                                                      alarmDelay = {silent:0,intern:60,extern:60};
                                                      break;
                                                  case 'full':
                                                      sensorDelay = {motion:0,facade:0};
                                                      alarmDelay = {silent:0,sound:30,strobe:30,intern:60,extern:60,mail:120};
                                                      break;
                                                  case 'presence':
                                                      sensorDelay = {motion:0,facade:0};
                                                      alarmDelay = {silent:0,sound:30,strobe:30,intern:60,extern:60,mail:120};
                                                      break;
                                                  case 'auto':
                                                      sensorDelay = {motion:0,facade:0};
                                                      alarmDelay = {silent:0,sound:30,strobe:30,intern:60,extern:60,mail:120};
                                                      break;
                                                  default:
                                                      profile = 'default';
                                                      sensorDelay = {motion:0,facade:0};
                                                      alarmDelay = {silent:0,sound:30,strobe:30,intern:60,extern:60,mail:120};
                                              }
                                              setState(instance+'alarm.out.profile', profile, true);
                                              log('loadSettings profile:'+profile);
                                          }
                                          function _enable(profil){
                                              enable = true;
                                              state = 1;
                                              _resetAlarm();
                                              _loadSettings(profil);
                                              log('enable');
                                          }
                                          function _disable(){
                                              enable = false;
                                              state = 0;
                                              _resetAlarm();
                                              _resetAlarmTimer();
                                              log('disable');
                                          }
                                          function _stop(){
                                              state = 1;
                                              _resetAlarm();
                                              log('stop');
                                          }
                                          function _resetAlarmTimer(){
                                              for (var elem in alarmTimer) {
                                                  clearTimeout(alarmTimer[elem]);
                                                  alarmTimer[elem] = null;
                                              }
                                              log('resetAlarmTimer');
                                          }
                                          function _resetAlarm(){
                                              alarm = false;
                                              setState(instance+'alarm.out.state', state, true);
                                              setState(instance+'alarm.out.alarm', false, true);
                                              setState(instance+'alarm.out.alarm_silent', false, true);
                                              setState(instance+'alarm.out.alarm_sound', false, true);
                                              setState(instance+'alarm.out.alarm_strobe', false, true);
                                              setState(instance+'alarm.out.alarm_intern', false, true);
                                              setState(instance+'alarm.out.alarm_extern', false, true);
                                              setState(instance+'alarm.out.alarm_mail', false, true);
                                              _resetAlarmTimer();
                                              log('resetAlarm state:'+state);
                                          }
                                          function _startAlarm(elem){
                                              alarm = true;
                                              setState(instance+'alarm.out.alarm_'+elem, true, true);
                                              setState(instance+'alarm.out.state', 3, true);
                                              log('startAlarm elem:'+elem);
                                          }
                                          function _check(obj){
                                              if(obj.state.val && enable){
                                                  for (var elem in alarmDelay) {
                                                      if(alarmDelay[elem] === 0){
                                                          _startAlarm(elem);
                                                      } else if(!alarmTimer[elem]){
                                                              alarmTimer[elem] = setTimeout(_startAlarm,(alarmDelay[elem]*1000),elem);
                                                      }
                                                      log('startAlarms elem'+elem+':'+alarmDelay[elem]);
                                                  }
                                                  _logSensor(obj);
                                                  log('alarm triggered by sensor '+obj.common.name);
                                              }
                                              log('check obj:'+obj.common.name);
                                          }
                                          function _logSensor(obj){
                                              var time = (new Date()).toLocaleDateString()+' '+(new Date()).toLocaleTimeString();
                                              var sensor = obj.common.name;
                                              var room = getObject(obj.id, 'rooms').enumNames[0];
                                              alarmLog.push(time+' '+sensor+' '+room);
                                              alarmLog.splice(maxLogEntries);
                                              setState(instance+'alarm.out.log', alarmLog.join('
                                      '), true);
                                              setState(instance+'alarm.out.last_sensor', time+' '+sensor+' '+room, true);
                                          }
                                      
                                          _loadSettings();
                                      
                                          return {
                                              enable: _enable,
                                              disable: _disable,
                                              stop: _stop
                                          };
                                      
                                      })();
                                      
                                      on({id:'javascript.0.alarm.in.enable', change:'any'}, function(obj){
                                          ALARM.enable(obj.state.val);
                                          log('on: in.enable val:'+obj.state.val);
                                      });
                                      on({id:'javascript.0.alarm.in.disable', change:'any'}, function(obj){
                                          ALARM.disable();
                                          log('on: in.disable');
                                      });
                                      on({id:'javascript.0.alarm.in.stop', change:'any'}, function(obj){
                                          ALARM.stop();
                                          log('on: in.stop');
                                      });
                                      on('javascript.0.presence', function(obj){
                                          var state = getState('javascript.0.alarm.out.state').val;
                                          var profile = getState('javascript.0.alarm.out.profile').val;
                                          if(profile == 'auto'){
                                              if(obj.state.val && state > 0){
                                                  setState('javascript.0.alarm.in.disable', true, true);
                                              }else{
                                                  setState('javascript.0.alarm.in.enable', 'auto', true);
                                              }
                                          }
                                      });
                                      
                                      
                                      C Offline
                                      C Offline
                                      ChrisXY
                                      wrote on last edited by
                                      #132

                                      @smartboart mal was anderes was ist das für ein VIS ? Gibt es das Layout irgendwo ? DIe Aufteilung gefällt mir ganz gut

                                      1 Reply Last reply
                                      0
                                      • G Goldenbaum

                                        Bin noch recht neu hier.

                                        Aber wenn ich jetzt die Text Datei nehme.

                                        Was muss ich damit wie machen damit ich das gleiche view erhalte?

                                        Vielen Dank im voraus für alles

                                        D Offline
                                        D Offline
                                        DrBest
                                        wrote on last edited by
                                        #133

                                        @Goldenbaum
                                        Ohja, eine schnellstartanleitung fände ich auch super:-)
                                        Habe erst Teile gelesen hier...scheint sehr geil!! Great work!!!

                                        Welches ist denn die aktuellste Vorlage? Die kann ich sich bestimmt importieren und auf meine Anlage anpassen?

                                        K 1 Reply Last reply
                                        0
                                        • D DrBest

                                          @Goldenbaum
                                          Ohja, eine schnellstartanleitung fände ich auch super:-)
                                          Habe erst Teile gelesen hier...scheint sehr geil!! Great work!!!

                                          Welches ist denn die aktuellste Vorlage? Die kann ich sich bestimmt importieren und auf meine Anlage anpassen?

                                          K Offline
                                          K Offline
                                          Kippe
                                          wrote on last edited by
                                          #134

                                          Hallo. Ich habe mich mal an die Alarmanlage mit mehreren Alarmstufen gemacht. Habe aber noch Probleme. Ich sage dir mal wie ich es gemacht habe. Ich habe die 2 Skripte Logik und State in Java installiert, und sie laufen auch beide. Dann habe ich noch ein Skript mit der Alarm Auslösung installiert und meinen Homematic Aktor ( Lampe ) als Test reingestellt. Dann habe ich noch das Skript Pinneingabe eingegeben und auch im Skript das Passwort eingegeben.Dann noch die view in iobroker installiert. Ich habe jetzt das Problem, das die Alarmanlage immer an ist, auch wenn ich die Pinneingabe mache wird auch bestätigt das die richtig ist, aber sie geht nicht aus, und der Alarm sprich die Lampe geht beim Öffnen der Tür nicht an.Was mache ich da Falsch?
                                          33CDCE81-C28E-45E8-B085-D471660D8FCF.png E0E230B9-1315-4C8A-8DFF-B094800EB711.png B8BE842A-BDD6-44D7-9000-E35A4EB31D71.png 575CB736-8675-4978-AFB5-BC3F7801A1CF.png 1E8C485F-5068-4D63-8CEB-BA8C43B1F9E1.png E0E030C6-AB4A-4DE2-A2C4-DEDD416C2664.png
                                          Würde mich sehr freuen

                                          K 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          355

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe