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.
  • lobomauL Offline
    lobomauL Offline
    lobomau
    schrieb am zuletzt editiert von
    #113

    @nisio:

    Hallo @sckibo,

    hast du das Material Design von Uhula eingebunden als CSS in deinem Projekt? `
    Kann man das mit einfachen Worten kurz erklären oder muss ich mich hier einarbeiten?

    viewtopic.php?f=30&t=7739&hilit=Material+design

    Ich hatte damals mit angefangen, es sieht sehr genial aus, aber irgendwie kam ich nicht klar

    Host: NUC8i3 mit Proxmox:

    • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
    • Slave: Pi4
    1 Antwort Letzte Antwort
    0
    • ? Offline
      ? Offline
      Ein ehemaliger Benutzer
      schrieb am zuletzt editiert von
      #114

      @lobomau:

      @nisio:

      Hallo @sckibo,

      hast du das Material Design von Uhula eingebunden als CSS in deinem Projekt? `
      Kann man das mit einfachen Worten kurz erklären oder muss ich mich hier einarbeiten?

      viewtopic.php?f=30&t=7739&hilit=Material+design

      Ich hatte damals mit angefangen, es sieht sehr genial aus, aber irgendwie kam ich nicht klar ` Schau mal in dem Material Thread direkt nach…viewtopic.php?f=30&t=7739

      Uhula hat eine Anleitung geschrieben für den Einstieg

      Gesendet von meinem Pixel 2 mit Tapatalk

      1 Antwort Letzte Antwort
      0
      • L Offline
        L Offline
        LJSven
        schrieb am zuletzt editiert von
        #115

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

        1 Antwort Letzte Antwort
        0
        • ? Offline
          ? Offline
          Ein ehemaliger Benutzer
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • L Offline
            L Offline
            LJSven
            schrieb am zuletzt editiert von
            #117

            Gibt es dass denn schon?

            1 Antwort Letzte Antwort
            0
            • ? Offline
              ? Offline
              Ein ehemaliger Benutzer
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • L Offline
                L Offline
                LJSven
                schrieb am zuletzt editiert von
                #119

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

                Gesendet von iPhone mit Tapatalk

                1 Antwort Letzte Antwort
                0
                • ? Offline
                  ? Offline
                  Ein ehemaliger Benutzer
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  0
                  • L Offline
                    L Offline
                    LJSven
                    schrieb am zuletzt editiert von
                    #121

                    Was ist denn die eigene App?

                    Gesendet von iPhone mit Tapatalk

                    1 Antwort Letzte Antwort
                    0
                    • ? Offline
                      ? Offline
                      Ein ehemaliger Benutzer
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      0
                      • L Offline
                        L Offline
                        LJSven
                        schrieb am zuletzt editiert von
                        #123

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

                        Gesendet von iPhone mit Tapatalk

                        1 Antwort Letzte Antwort
                        0
                        • K Offline
                          K Offline
                          krissi
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          0
                          • R Offline
                            R Offline
                            Rookie50
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            0
                            • ? Offline
                              ? Offline
                              Ein ehemaliger Benutzer
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              0
                              • R Offline
                                R Offline
                                Rookie50
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                0
                                • K Offline
                                  K Offline
                                  krissi
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  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
                                    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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          464

                                          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