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
    555

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

  • 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.9k 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.
  • smartboartS Offline
    smartboartS Offline
    smartboart
    wrote on last edited by
    #41

    Vielen Dank, Wie das nun alles gedacht ist und was passiert habe ich soweit verstanden, denke ich…Nun ist es an der Zeit sich intensiver mit dem Erstellen und Bearbeiten von scripten zu beschäftigen. Ich denke das würde jetzt den Rahmen sprenen hie sämtlice Fragen zu stellen bis das so läuft wie ich es möchte...

    Ich hatte mir ohnhin mal vorgenommen eine Fortbildung im Bereich javascript zu gönnen.. Danke für die Unterstützung bis hier hin...

    1 Reply Last reply
    0
    • smartboartS Offline
      smartboartS Offline
      smartboart
      wrote on last edited by
      #42

      Aber eine zwei Fragen hätte ich doch noch…

      Die Sensoren welche ich unter facade und oder motion anlege, werden die in dem Script als true abgefragt, also bei true geht die scharfe Anlage auf Alarm?

      Habe unter Aufzählungen unter functions die motion und facade angelegt und jeweils ein script zugeordnet unter java.0 welches ein true und false ausgibt...Es passiert aber leider nichts bei den Outputs des Alarmscripts... Muss ich in dem Logik Script / Auszug unten die komplette ID einragen oder oder reicht das so mit dem * ?

      var selFacade = $('statestate.id=javascript.0.*');

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

        @smartboart:

        Aber eine zwei Fragen hätte ich doch noch…

        Die Sensoren welche ich unter facade und oder motion anlege, werden die in dem Script als true abgefragt, also bei true geht die scharfe Anlage auf Alarm?

        Habe unter Aufzählungen unter functions die motion und facade angelegt und jeweils ein script zugeordnet unter java.0 welches ein true und false ausgibt...Es passiert aber leider nichts bei den Outputs des Alarmscripts... Muss ich in dem Logik Script / Auszug unten die komplette ID einragen oder oder reicht das so mit dem * ?

        var selFacade = $('statestate.id=javascript.0.*'); ` Poste doch Mal dein Skript und einen Screenshot der Objekte. Dann ist es einfacher das zu verstehen was du alles eingerichtet hast.

        Gesendet von meinem Pixel 2 mit Tapatalk

        1 Reply Last reply
        0
        • smartboartS Offline
          smartboartS Offline
          smartboart
          wrote on last edited by
          #44

          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 1 Reply Last reply
          0
          • ? Offline
            ? Offline
            A Former User
            wrote on last edited by
            #45

            Das sieht doch schon sehr gut aus.

            Die Alarmanlage ist auf deinen Screenshot disabled. Ist das Absicht?

            Aktivier die Alarmanlage mal per GUI oder über setzen des states "'javascript.0.alarm.in.enable" auf z.B. den Wert "full".

            Profil "auto" aktiviere ich über eine automatische Anwesenheitserkennung.

            Profil "default" nutze ich aktuell nicht.

            1 Reply Last reply
            0
            • smartboartS Offline
              smartboartS Offline
              smartboart
              wrote on last edited by
              #46

              Hallo, ja das ist disabled, weil ich aktuell noch am testen bin.. habe noch keine Sensoren und keine Sirene als Aktor. Im Moment habe ich nur die Aussenbeleuchtung und den emailversand als Alarmoutput eingebunden…

              habe versucht den Sensor mit nem Sonoff switch zu simulieren in dem ich ihn als facade und motionin in Aufzählungen eingebunden habe...Mit Status des Sonoff true, müsste doch eigentlich der Alarm losgehen wenn auf aktiv steht. oder verstehe ich das falsch?

              Hast du ein Tip wie ich kontrollieren kann, ob die Enum / Aufzählungen vom Script sauber eingelesen und angesteuert werden?

              Hab auch die Anwesenheitssimulation laufen mit der AWS Aktiv würde ich auch gerne die Alarmanlage scharf schalten. Kannst du mir da auch ein Tipp zu geben?

              Dachte da an ein zusätzliches kleines Script wie:
              ` > on({id: 'javascript.0.Anwesenheitssteuerung.AWSAktiv'}, function (obj) {

              setState("javascript.0.alarm.in.enable", auto);

              }); `

              oder wie hast du das gelöst?

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

                @smartboart:

                oder wie hast du das gelöst? `

                on('javascript.0.central.presence', function (obj) {
                    var state = getState('javascript.0.alarm.out.state').val;
                    var profile = getState('javascript.0.alarm.out.profile').val;
                    if (profile == 'auto' || state === 0) {
                        if (obj.state.val && state > 0) {
                            setState('javascript.0.alarm.in.disable', true, true);
                        } else {
                            setState('javascript.0.alarm.in.enable', 'auto', true);
                        }
                    }
                });
                
                1 Reply Last reply
                0
                • ? Offline
                  ? Offline
                  A Former User
                  wrote on last edited by
                  #48

                  @smartboart:

                  Hast du ein Tip wie ich kontrollieren kann, ob die Enum / Aufzählungen vom Script sauber eingelesen und angesteuert werden? `

                  Dazu gibt es folgendes in der Doku des javascript Adapters:

                  $('channel[state.id=*.STATE](functions=Windows)').each(function (id, i) {log(id);}); - print all states of enum "windows" in log
                  
                  1 Reply Last reply
                  0
                  • smartboartS Offline
                    smartboartS Offline
                    smartboart
                    wrote on last edited by
                    #49

                    Super danke für das script Automatische Aktivierung…Das Aktivieren funktioniert prima mit meiner Anwesenheitssteuerung.

                    Leider kann ich es so nicht verwenden, da meine Anwesenheitssteuerung welche bei jemand zu Hause auf false schaltet , die Alarmanalge nicht deaktiviert. wenn ich die Anweseheitssteuerung auf true force funktioniert das auto aktivieren einwandfrei...force ich auf false bleibt die Alarmanalge aktiviert.

                    Ist das bei dir so gewollt? Stellst du die Alarmanlage dann manuell unscharf? oder hast du noch ein separates script für das Deaktivieren? Ist natürlich doof wenn bei Anwesenheit die restlichen Profile nicht mehr aktiviert werden können. Wie machst du das?

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

                      Das Problem hab ich irgendwie nicht verstanden.

                      Was meinst du mit "true force"?

                      Ich stelle die Anlange automatisch unscharf, wenn das Profil auto aktiv ist und jemand nach Hause kommt (javascript.0.central.presence wechselt auf true). Das passiert nicht in dem genannten Skript und nicht seperat.

                      1 Reply Last reply
                      0
                      • smartboartS Offline
                        smartboartS Offline
                        smartboart
                        wrote on last edited by
                        #51

                        Mit true forcen meine ich meine Startbedingung auf true setzen javascript.0.Anwesenheitssteuerung.AWSAktiv. Diese Objekt ID wird bei mir true wenn keiner zu Hause ist..Mit dieser Bedingung gehe ich in die Automatikfunktion der Alarmanlage..Dazu habe ich dein Programmteil der Alarmanlage verwendet , weil es viel besser ist als meine eigenen stümperhaften Gehversuche. Das funktioniert auch prima…Wenn jetzt jemand heim kommt, wird die oben genannte Objekt ID false...Damit müsste ich jetzt noch die javascript.0.alarm.in.disable erneut true schalten um die Alarmanlage wieder zu deaktivieren, aber so, dass ich jederzeit die 4 andern Profile manuell über vis aktivieren kann...Also nur kurz antriggern und nicht ständig auf false halten... Ist das in dem Programmteil der Alarmanlage so gelöst? Das macht es nämlich nicht bei mir..

                        ` > on('javascript.0.Anwesenheitssteuerung.AWSAktiv', function (obj) {

                        var state = getState('javascript.0.alarm.out.state').val;

                        var profile = getState('javascript.0.alarm.out.profile').val;

                        if (profile == 'auto' || state === 0) {

                        if (obj.state.val && state > 0) {

                        setState('javascript.0.alarm.in.disable', true, true);

                        } else {

                        setState('javascript.0.alarm.in.enable', 'auto', true);

                        }

                        }

                        }); `

                        1 Reply Last reply
                        0
                        • smartboartS Offline
                          smartboartS Offline
                          smartboart
                          wrote on last edited by
                          #52

                          Ok hab es geschnallt….hab bei der ganzen Sache etwas auf dem Schlauch gestanden..wenn ich mir meine fragen jetzt so durchlese möchte ich sie am liebsten löschen. Aber aller Anfang ist schwer....die Alarmanlage ist nun in Betrieb und läuft bestens....danke für die tolle Arbeit ...

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

                            @smartboart:

                            Ok hab es geschnallt….hab bei der ganzen Sache etwas auf dem Schlauch gestanden..wenn ich mir meine fragen jetzt so durchlese möchte ich sie am liebsten löschen. Aber aller Anfang ist schwer....die Alarmanlage ist nun in Betrieb und läuft bestens....danke für die tolle Arbeit ... `

                            so haben wir alle mal angefangen. Viel Spaß weiterhin

                            1 Reply Last reply
                            0
                            • smartboartS Offline
                              smartboartS Offline
                              smartboart
                              wrote on last edited by
                              #54

                              Das Script läuft nun seit einiger Zeit fantastisch und Stabil…

                              Ich frage mich nur, warum das Script bei jeder Veränderung der Enum facade und motion also bei Fenster - Türkontakten und Bewegungsmeldern losläuft.

                              (check Sensor)

                              Kann man das nicht auf die Zeit begrenzen in der die Alarmanlage scharf ist...

                              Wäre das ein großer Aufwand das anzupassen? Richte die Frage mal an den Entwickler...

                              Würde das nicht Ressourcen schonen?

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

                                @smartboart:

                                Das Script läuft nun seit einiger Zeit fantastisch und Stabil…

                                Ich frage mich nur, warum das Script bei jeder Veränderung der Enum facade und motion also bei Fenster - Türkontakten und Bewegungsmeldern losläuft.

                                (check Sensor)

                                Kann man das nicht auf die Zeit begrenzen in der die Alarmanlage scharf ist...

                                Wäre das ein großer Aufwand das anzupassen? Richte die Frage mal an den Entwickler...

                                Würde das nicht Ressourcen schonen? `

                                Wieviele Fenster öffnest du denn so pro Sekunde?

                                Denke der Aufwand zur Optimierung ist nicht gerechtfertigt…

                                1 Reply Last reply
                                0
                                • smartboartS Offline
                                  smartboartS Offline
                                  smartboart
                                  wrote on last edited by
                                  #56

                                  Meintest wohl nicht gerechtfertigt, oder?

                                  …nun ja wir laufen schon sehr oft durch den Flur und das Wohnzimmer, wo ich jeweils nen Bewegungsmelder habe...

                                  Und die Terassentür und Haustür ist auch sehr stark frequntiert...

                                  Und Fenster werden auch sehr oft geöffnet.

                                  Ich habe jetzt keine Auswertung mit dem historyadapter gefahren, aber es kommt schon was zusammen...

                                  Gesendet von meinem SM-G800F mit Tapatalk

                                  1 Reply Last reply
                                  0
                                  • Z Offline
                                    Z Offline
                                    zahnheinrich
                                    wrote on last edited by
                                    #57

                                    Hallo,

                                    @ nisio

                                    Vielen Dank für Dein tolles script, ich habe es (glaube ich) größtenteils verstanden und eingebaut.

                                    Es tut, was es soll.

                                    Meine BWM und Türkontakte sind in die Homematic über einen wired HMW-Sen-SC-12-DR angebunden.

                                    Nachdem meine Bewegungsmelder im Gegensatz zu den Türkontakten deutlich verzögert auslösten, habe ich nach langem Suchen festgestellt, daß ein Alarm im script nur bei KontaktÖFFNUNG ausgelöst wird.

                                    Angezeigt werden die BWM im Ruhezustand als geöffnet, die Türkontakte jedoch als geschlossen.

                                    Leider gibt es in HM keine Möglichkeit in den Geräteeinstellungen die Logik umzukehren (geschweige denn für einzelne Kanäle…).

                                    Hättest Du einen Tip für mich, wie ich im script den Auslöser umstellen kann von geöffnet auf geschlossen?

                                    Vielen Dank im Voraus

                                    Ulrich

                                    MfG Ulrich

                                    1 Reply Last reply
                                    0
                                    • Homer.J.H Offline
                                      Homer.J.H Offline
                                      Homer.J.
                                      wrote on last edited by
                                      #58

                                      Hi,

                                      ich hab das Script auch soweit gut am laufen habe nur ein Problem das die Bewegungsmelder ständig Alarm auslösen.

                                      Bewegungsmelder sind Homematic IP haben als Alarmanlage auf der CCU wunderbar ohne Fehler funktioniert.

                                      An was könnt es also liegen das diese hier im Script einfach auslösen.

                                      Grüße
                                      5373_img_0117.png

                                      1 Reply Last reply
                                      0
                                      • Z Offline
                                        Z Offline
                                        zahnheinrich
                                        wrote on last edited by
                                        #59

                                        @Homer1976

                                        Kann es sein, daß Du Alarm- und Logmeldungen verwechselst?

                                        Auf Deinem Bildschirmcopy sehe ich Alarmlogs, aber keinen Alarm.

                                        Die Alarmanlage ist immer in Betrieb, schreibt also immer logs (z.B. für Sabotagemeldungen), Alarm gibt es jedoch nur nach Einschalten eines Profils.

                                        Ulrich

                                        MfG Ulrich

                                        1 Reply Last reply
                                        0
                                        • Homer.J.H Offline
                                          Homer.J.H Offline
                                          Homer.J.
                                          wrote on last edited by
                                          #60

                                          Nein ist alles IO hab alles auch nochmal durch geschaut schalte ich die Anlage scharf dauert es keine 5 Minuten und der Alarm wird ausgelöst.

                                          Und immer von einem anderen Melder.

                                          Was im Log steht war nur von mir der Test ob sie Auslöst.

                                          Grüße

                                          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

                                          570

                                          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