Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

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

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.3k

[Projekt] Alarmanlage mit mehreren Alarmstufen

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
138 Beiträge 32 Kommentatoren 36.3k Aufrufe 21 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • 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
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • B Offline
      B Offline
      Baerny
      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
      0
      • R Offline
        R Offline
        ReverZ
        schrieb am zuletzt editiert von
        #131

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

        1 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • K Kippe

                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 Offline
                K Offline
                Kippe
                schrieb am zuletzt editiert von
                #135

                @Kippe 94D38FFA-1AB6-4CB3-869C-324F59C27585.png

                Homer.J.H 1 Antwort Letzte Antwort
                0
                • K Kippe

                  @Kippe 94D38FFA-1AB6-4CB3-869C-324F59C27585.png

                  Homer.J.H Offline
                  Homer.J.H Offline
                  Homer.J.
                  schrieb am zuletzt editiert von Homer.J.
                  #136

                  @Kippe nein das muss rein.

                   //Fensterkontakte
                      var selFacade = $('state[state.id=*.STATE](functions=facade)');
                      selFacade.on(function(obj) {
                          _checkSensor(obj,'facade');
                      });
                  

                  und wenn du Bewegungsmelder hast auch ändern.

                    //Bewegungsmelder
                      var selMotion = $('state[state.id=*.MOTION](functions=motion)');
                      selMotion.on(function(obj) {
                          _checkSensor(obj,'motion');
                      });
                  
                  1 Antwort Letzte Antwort
                  0
                  • H Nicht stören
                    H Nicht stören
                    Hansi1234
                    schrieb am zuletzt editiert von
                    #137

                    blöde Frage. Bei mir ist werden bei den Fensterkontakten true und false gesetzt. Wenn ich die Alarmanlage aktiviere, meldet sie erst, wenn das Fenster wieder geschlossen wird. Welchen Wert muss ich ändern, dass er beim Öffnen und nicht beim Schließen gemeldet wird?
                    Und vielleicht noch eine blöde Frage. Woher sind die Bilder enabled disabled usw? Im Uhula Projekt konnte ich diese nicht finden.

                    1 Antwort Letzte Antwort
                    0
                    • ? Ein ehemaliger Benutzer

                      @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 Offline
                      J Offline
                      JB72
                      schrieb am zuletzt editiert von
                      #138

                      @nis

                      Hallo,

                      mir ist nicht klar wie man die Alarmanlage verzögert "scharf" schaltet. Soweit klappt alles, nur wenn ich am Tablet
                      auf "Full" gehe damit die Anlage einschalte, die Tür öffne und schließe, löst es schon Alarm aus. Wo kann man sich
                      einstellen, das der Status scharf erst 30-60 Sekunden später erfolgt?

                      Grüße
                      JB

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      798

                      Online

                      32.4k

                      Benutzer

                      81.5k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe