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. Visualisierung
  4. Alarmanlage darstellen

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    744

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

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

Alarmanlage darstellen

Scheduled Pinned Locked Moved Visualisierung
18 Posts 13 Posters 6.8k Views 1 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.
  • X Offline
    X Offline
    xADDRx
    wrote on last edited by
    #9

    Hallo zusammen

    Mich würde auch mal interessieren wie ihr das gemacht habt mit der Alarmanlage. Hat jemand zufällig eine Script dafür geschrieben? Welche Widgets wurden benutzt?

    Gruß

    Sonos, Intel Nuc, Iobroker Pro, Proxmox, IPad Air (Wand), Vis, Xiaomi, Devolo, Bose, Philips Hue, Instar, Synology

    1 Reply Last reply
    0
    • T Offline
      T Offline
      tempestas
      wrote on last edited by
      #10

      Es gibt hier sehr viele Alarmanlagenskripte.

      Anbei meins, das folgendes kann/tut:

      1. Alarmanlage an / aus / automatik bei Abwesenheit

      2. Countdown bei Aktivierung (nicht bei Abwesenheit)

      3. Hüllschutz / Vollschutz

      4. Stummer Alarm / voller Alarm

      5. Telegram Nachricht

      6. Einbeziehung meiner Kamera im Wohnbereich

      7. Überprüfung der Fenster bei Aktivierung, Meldung via Telegram, ob alles geschlossen ist bzw welche Fenster noch offen sind

      8. Log mit Alarmmeldungen in VIS angezeigt

      9. Abschalten via Pineingabe

      <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

      1 Reply Last reply
      1
      • htreckslerH Offline
        htreckslerH Offline
        htrecksler
        Forum Testing
        wrote on last edited by
        #11

        @tempestas:

        Anbei meins, das folgendes kann/tut: `
        Kann es sein, dass das "Anbei" fehlt? :D

        Oder seh ich nur den Wald vor lauter Bäumen nicht?

        Gruss Hermann

        ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

        1 Reply Last reply
        0
        • T Offline
          T Offline
          tempestas
          wrote on last edited by Jey Cee
          #12

          ups. Da war ich wohl zu schnell:

          Also hier

          Alarmanlage

          /*   ################## ALARMANLAGENSKRIPT #############################
           Basis: Alarmanlagenskript erstellt von Pix; erweitert und angepasst von tempestas
           15.8.2017 erweitert um Prüfung offene Fenster bei einschalten der Alarmanlage und Nachricht 
          17.9.2017 erweitert um stiller oder lauter Alarm Trigger / To - Do: mp3 auf Sonos schicken bei lautem Alarm ausgelöst
          17.9.2017 einbau von Countdown beim aktivieren, basierend auf Skript von paul53  http://forum.iobroker.net/viewtopic.php?t=4796
          20.9.2017: Vollschutz / Hüllschutz eingebaut
          21.9.2017: Außenhüllenskript angepasst: keine Meldung, wenn bei eingeschalteter Alarmanlage Fenster geschlossen werden; vermeidet ewig lange Telegram Nachrichten (WAF höher)
          21.9.2017: Kamera Wohnzimmer in Innenraumüberwachung eingebunden
          21.9.2017: Alarmmeldungen eingebaut für Anzeige in VIS.
          to do: unterscheidung EG und OG für z.B. nächtliche Vollüberwachung EG bei freiem Bewegen im OG
           */
          var debug = false;
          var debug2 = false;
          // #####################################################
          // ##### States und Variablen Alarmanlage anlegen ######
          // forceCreate constante
          const force = true;
          // state für vis anzeige
          createState('Alarmanlage.Vis', 0, force);           // Trigger für Vis zum Anzeigen des Alarmanlagen-Overlay
          createState('Alarmanlage.VisMeldung', 0, force);    // Trigger für Vis zum Anzeigen desr Alarmmeldungen
          // Alarmanlagen States 
          createState('Alarmanlage',1, force, {               // Alarmanlage wird bei Neustart des Skripts grundsätzlich eingeschaltet
              name: 'Alarmanlage',
              type: 'number',
              min:  '0',
              max:  '2',
              states: '0:aus;1:an;2:automatik',
              desc: 'Status Alarmanlage'
          });
          createState('Alarmanlage.Alarmtyp',0, force, {
              name: 'Alarmtypus',
              type: 'number',
              min:  '0',
              max:  '1',
              states: '0:still;1:laut',
              desc: 'Alarmanlage still/laut'
          });
          createState('Alarmanlage.Schutztyp',0, force, {
              name: 'Schutztyp',
              type: 'number',
              min:  '0',
              max:  '1',
              states: '0:Hüllschutz;1:Vollschutz',
              desc: 'Hüllschutz bzw Vollschutz'
          });
          createState('Alarmanlage.Alarm',0, force, {
              name: 'Alarm',
              type: 'number',
              min:  '0',
              max:  '1',
              states: '0:kein Alarm;1:Alarm ausgelöst',
              desc: 'Alarm ausgelöst oder nicht'
          });
          createState('Alarmanlage.Alarmcounter',0,  {            //ohne ForceCreation, damit ggf. bei Neustart die alten Daten erhalten bleiben.
              name: 'Alarmcounter',
              type: 'number',
              min:  '0',
              max:  '20',
              desc: 'Counter für Alarmmeldungen'
          });
          createState('Alarmanlage.Alarmmeldung', '', {           //ohne ForceCreation, damit ggf. bei Neustart die alten Daten erhalten bleiben.
              type: 'string',
              def: '',
              role: 'value',
          });
          // States für Countdown
          createState('Alarmanlage.Timer.AlarmCountdown', 0, force, {
              read: true,
              write: true,
              desc: 'Countdown für Alarmaktivierung nach Abwesenheit',
              def: ''
          });
          createState('Alarmanlage.Timer.countTrigger', false, force);
          createState('Alarmanlage.Timer.duration', 30, force);
          var alarmMeldung =[];       // Array für Alarmmeldungen, wird bei Deaktivierung der Alarmanlage gelöscht.
          var duration = 'Alarmanlage.Timer.duration';
          var countTrigger = 'Alarmanlage.Timer.countTrigger';
          var AlarmCountdown = 'Alarmanlage.Timer.AlarmCountdown';
          var idAlarmanlage = 'javascript.0.Alarmanlage';
          var idAlarmtyp = 'javascript.0.Alarmanlage.Schutztyp';
          var idAlarm = 'javascript.0.Alarmanlage.Alarm';
          var idAlarmcounter ='javascript.0.Alarmanlage.Alarmcounter';
          var idAlarmmeldung = 'javascript.0.Alarmanlage.Alarmmeldung';
          var idVisMeldung = 'javascript.0.Alarmanlage.VisMeldung';
          var nachricht;
          var eventTime;
          // #################################################
          // ##### Alarmanlagenstatus ein/aus überwachen #####
          on(idAlarmanlage, function (obj) {
              if (obj.state.val === 0 ) {
                  if(debug) log('Alarmanlage ausgeschaltet');
                  nachricht = "Alarmanlage ausgeschaltet";
                  fensterOffen = [];                          // Array für Nachricht beim einschalten wieder leeren, wenn ausgeschaltet wird
          
                  alarmMeldung = [];                          // Alarmmeldungsarray leeren
                  setState(idAlarmcounter, 0 );
                  setState(idAlarm, 0);                       // Alarmtrigger zurückgesetzt
                  setState(idVisMeldung, 0);                  // Vis-Overlay Trigger zurückgesetzt        
          
                  setState("hm-rpc.1.00021569960FFB.3.STATE"/*Kamera_Wohnzimmer_Steckdose:3.STATE*/, false);  // Kamera wird deaktiviert 
          
              } else if (obj.state.val == 1) {
                  fensterPruef();
                  if (getState(idAlarmtyp).val == 1) setState("hm-rpc.1.00021569960FFB.3.STATE"/*Kamera_Wohnzimmer_Steckdose:3.STATE*/, true);  // Kamera wird aktiviert sofern Vollschutz aktiv
                  if(debug) log('Alarmanlage eingeschaltet');
                  nachricht = "Alarmanlage eingeschaltet. "+info;
              }
          
              else if (obj.state.val == 2) {
                  fensterPruef();
                  if (getState(idAlarmtyp).val == 1) setState("hm-rpc.1.00021569960FFB.3.STATE"/*Kamera_Wohnzimmer_Steckdose:3.STATE*/, true);  // Kamera wird aktiviert sofern Vollschutz aktiv     
                  if(debug) log('Alarmanlage auf Automatik geschaltet');
                  nachricht = "Alarmanlage wg. Abwesenheit automatisch eingeschaltet. " +info;
              }
              sendTo('telegram', nachricht);
          });
          
          // #############################################################
          // #########  Anwesenheit überwachen / Automatikmodus  #########
          var idAnwesenheit = "hm-rega.0.22065";
          var anwesenheitList = getState("hm-rega.0.22066"/*auto_sv_anwesenheit.string*/).val;
          if(debug2) log("Anwesend: "+anwesenheitList);
          on(idAnwesenheit, function (data) {
              if (data.state.val === 0 && getState(idAlarmanlage).val === 0) {                // Automatik soll nur einschalten, sofern Alarmanlage nicht ohnehin schon an ist.
                  if(debug) log('keine Person zu Hause - Alarmanlage scharf geschaltet');
                  setState(idAlarmanlage, 2); // auf Automatik
              } else {
                  if(debug) log('Zahl der Personen zu Hause: ' + data.state.val);
                  if (getState(idAlarmanlage).val == 2) {
                      nachricht = "Bewohner wieder anwesend.";
                      sendTo('telegram', nachricht);
                      setState(idAlarmanlage, 0);
          
                  }
              }
          });
          // ########################################################################
          // ####### Fensterstatus beim einschalten der Alarmanlage überwachen  #####
          var fensterOffen =[];
          var info;
          function fensterPruef() {
              var cacheSelectorState  = $('channel[state.id=*.STATE](functions="Verschluss")');
              cacheSelectorState.each(function (id, i) {                              // Schleife für jedes gefundenen Element *.STATE im Gewerk Alarmanlage_Huelle
                  var status = getState(id).val;                                          // Zustand *.STATE abfragen (jedes Element)   // alt: getState(id).val;        
                  var obj    = getObject(id);
                  var name = getObject(id).common.name;
                  var devicename = name.substring(0, name.indexOf(":1.STATE"));             //:1.state aus Text entfernen
          
                  if(status ||status === 1){
                      fensterOffen.push(devicename);                                          // offene Fenster zum Array hinzufügen    
                      fensterOffen.sort;                                                      // Array sortieren
                      if(debug2) log(fensterOffen);
                  }
              });
              if(fensterOffen.length > 0) info = "Folgende Fenster noch offen: "+fensterOffen;
              else info = "Alle Fenster geschlossen.";
              if(debug2) log("Info ist "+info);
          
          }
          
          // #########################################################
          // ############### Aussenhülle überwachen ##################
          // ###### dies ist immer aktiv wenn Alarmanlage aktiv ######
          $('channel[state.id=*.STATE](functions="Verschluss")').on(function (obj) {
              if (obj.state.val) { // Wenn Bewegung erkannt
          
                  nachricht = obj.deviceName + ' wurde geöffnet';
                  if(getState(idAlarmanlage).val > 0){                            // Alarmanlage aktiv und Bewegung in Türen oder Fenstern, dann....
                      sendTo('telegram.0', {                                          // Nachricht per Telegram
                          text: nachricht
                      });
                      list();
                  }
                  if(debug) log(nachricht);
              }
          });
          // #############################################
          // ########## INNENRAUMÜBERWACHUNG #############
          // Bewegungsmelder
          $('channel[state.id=*.MOTION]').on(function (obj) {
              if (obj.state.val) { // Wenn Bewegung erkannt
          
                  nachricht = obj.deviceName + ' meldet Bewegung';
                  if(getState(idAlarmtyp).val === 1 && getState(idAlarmanlage).val > 0){
                      sendTo('telegram.0', {
                          text: nachricht
                      });
                      list();
                  }
                  if(debug) log(nachricht);
              } // Ende Bewegung erkannt
          });
          // Kamera
          on({id:"javascript.0.Alarmanlage.Kamera.WoZi"/*javascript.0.Alarmanlage.Kamera.WoZi*/, change: "ne", val: 1}, function(){
              nachricht = 'Kamera Wohnzimmer meldet Bewegung; Fotos versendet';
              if(getState(idAlarmtyp).val === 1 && getState(idAlarmanlage).val > 0){
                  sendTo('telegram.0', {
                      text: nachricht
                  });
                  list();
              }
          });
          // #############################################
          // #### COUNTDOWN BEIM EINSCHALTEN #############
          function countdown(){
              count--;
              if(count > 0) setState("javascript.0.Alarmanlage.Timer.AlarmCountdown", count);
              else {
                  clearInterval(timer);
                  setState("javascript.0.Alarmanlage"/*Alarmanlage*/, 1);
                  setState("javascript.0.Alarmanlage.Vis", 0 );               // Trigger für VIS Sichtbarkeit wieder auf 0 setzen
                  setState("javascript.0.Alarmanlage.Timer.countTrigger", false); // countdown trigger nach Countdown wieder auf 0 setzen, damit in VIS button wieder auf "aktivieren" steht beim nächsten mal
              }
          }
          on({id: "javascript.0.Alarmanlage.Timer.countTrigger", change: "ne"}, function(obj){
              if(obj.state.val) {
                  count = getState("javascript.0.Alarmanlage.Timer.duration").val;
                  timer = setInterval(countdown, 1000);
              } else clearInterval(timer);
          });
          // ###################################
          // ######### ALARM EVENT LISTE #######
          function list(){
          
              timestamp();
              var listMessage = (eventTime + " " +nachricht);
          
              setState(idAlarm, 1);                                           // Alarmtrigger gesetzt
              alarmMeldung.push(listMessage);                                 // Alarmmeldung-Variable wird befüllt
              alarmMeldung.reverse();                                         // Array sortieren, neu nach oben
              alarmMeldung.splice(20);                                        // auf 20 Einträge beschränken
              setState(idAlarmcounter, alarmMeldung.length);                  // counter wird hochgezählt
              setState(idAlarmmeldung, alarmMeldung.join(' '));           // Vis State wird befüllt
              setState(idVisMeldung, 1);                                      // Vis-Trigger für Overlay mit Alarmmeldungen wird gesetzt
          }
          // ###############################################################
          //############## TIMESTAMP FÜR EREIGNISLISTE ERZEUGEN ############
          function timestamp() {
              var now=new Date();
              var day = now.getDate();
              var month = now.getMonth() + 1;
              var year = now.getFullYear();
              var weekday = now.getDay();
              var hours = now.getHours();
              var minutes = now.getMinutes();
              var day0  = ((day < 10) ? "0" : "");
              var month0  = ((month < 10) ? "0" : "");
              var hours0  = ((hours < 10) ? "0" : "");
              var minutes0  = ((minutes < 10) ? "0" : "");
              eventTime = year + "-" + month0 + month + "-" + day0 + day + " " + hours0 + hours + ":" + minutes0 + minutes;
              return eventTime;
          
          }
          

          <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

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

            Ich bin ebenfalls gerade dabei meine Alarmanlage aufzubauen.

            Ich möchte mich grob an der Logik von Loxone orientieren und nutze zur Visualisierung den Material Style von Uhula.

            Bei Intersse gerne mal Ausprobieren.

            Details poste ich hier:

            http://forum.iobroker.net/viewtopic.php?f=35&t=8268

            1 Reply Last reply
            0
            • X Offline
              X Offline
              xADDRx
              wrote on last edited by
              #14

              Hallo tempestas,

              vielen Dank für die Scriptdatei.

              Hast du zufällig ein View export für mich :oops: ?

              Gruß

              Beni

              Sonos, Intel Nuc, Iobroker Pro, Proxmox, IPad Air (Wand), Vis, Xiaomi, Devolo, Bose, Philips Hue, Instar, Synology

              1 Reply Last reply
              0
              • F Offline
                F Offline
                farid
                wrote on last edited by
                #15

                @xADDRx:

                Hallo tempestas,

                vielen Dank für die Scriptdatei.

                Hast du zufällig ein View export für mich :oops: ?

                Gruß

                Beni `

                ich würde mich anschließen!

                1 Reply Last reply
                0
                • M Offline
                  M Offline
                  mguenther
                  wrote on last edited by
                  #16

                  kann mir einer erklären, was in Zeile 153 und 154 mit

                  var idAnwesenheit = "hm-rega.0.22065";
                  var anwesenheitList = getState("hm-rega.0.22066"/*auto_sv_anwesenheit.string*/).val;
                  
                  

                  gemeint ist?

                  Was passiert da, was wird übergeben?

                  danke

                  @tempestas:

                  ups. Da war ich wohl zu schnell:

                  Also hier

                  Alarmanlage

                  ! ````
                  /* ################## ALARMANLAGENSKRIPT #############################
                  ! Basis: Alarmanlagenskript erstellt von Pix; erweitert und angepasst von tempestas
                  ! 15.8.2017 erweitert um Prüfung offene Fenster bei einschalten der Alarmanlage und Nachricht
                  17.9.2017 erweitert um stiller oder lauter Alarm Trigger / To - Do: mp3 auf Sonos schicken bei lautem Alarm ausgelöst
                  17.9.2017 einbau von Countdown beim aktivieren, basierend auf Skript von paul53 http://forum.iobroker.net/viewtopic.php?t=4796
                  20.9.2017: Vollschutz / Hüllschutz eingebaut
                  21.9.2017: Außenhüllenskript angepasst: keine Meldung, wenn bei eingeschalteter Alarmanlage Fenster geschlossen werden; vermeidet ewig lange Telegram Nachrichten (WAF höher)
                  21.9.2017: Kamera Wohnzimmer in Innenraumüberwachung eingebunden
                  21.9.2017: Alarmmeldungen eingebaut für Anzeige in VIS.
                  to do: unterscheidung EG und OG für z.B. nächtliche Vollüberwachung EG bei freiem Bewegen im OG
                  ! */
                  ! var debug = false;
                  var debug2 = false;
                  ! // #####################################################
                  // ##### States und Variablen Alarmanlage anlegen ######
                  ! // forceCreate constante
                  ! const force = true;
                  ! // state für vis anzeige
                  ! createState('Alarmanlage.Vis', 0, force); // Trigger für Vis zum Anzeigen des Alarmanlagen-Overlay
                  createState('Alarmanlage.VisMeldung', 0, force); // Trigger für Vis zum Anzeigen desr Alarmmeldungen
                  ! // Alarmanlagen States
                  ! createState('Alarmanlage',1, force, { // Alarmanlage wird bei Neustart des Skripts grundsätzlich eingeschaltet
                  name: 'Alarmanlage',
                  type: 'number',
                  min: '0',
                  max: '2',
                  states: '0:aus;1:an;2:automatik',
                  desc: 'Status Alarmanlage'
                  });
                  ! createState('Alarmanlage.Alarmtyp',0, force, {
                  name: 'Alarmtypus',
                  type: 'number',
                  min: '0',
                  max: '1',
                  states: '0:still;1:laut',
                  desc: 'Alarmanlage still/laut'
                  });
                  ! createState('Alarmanlage.Schutztyp',0, force, {
                  name: 'Schutztyp',
                  type: 'number',
                  min: '0',
                  max: '1',
                  states: '0:Hüllschutz;1:Vollschutz',
                  desc: 'Hüllschutz bzw Vollschutz'
                  });
                  ! createState('Alarmanlage.Alarm',0, force, {
                  name: 'Alarm',
                  type: 'number',
                  min: '0',
                  max: '1',
                  states: '0:kein Alarm;1:Alarm ausgelöst',
                  desc: 'Alarm ausgelöst oder nicht'
                  });
                  ! createState('Alarmanlage.Alarmcounter',0, { //ohne ForceCreation, damit ggf. bei Neustart die alten Daten erhalten bleiben.
                  name: 'Alarmcounter',
                  type: 'number',
                  min: '0',
                  max: '20',
                  desc: 'Counter für Alarmmeldungen'
                  });
                  ! createState('Alarmanlage.Alarmmeldung', '', { //ohne ForceCreation, damit ggf. bei Neustart die alten Daten erhalten bleiben.
                  type: 'string',
                  def: '',
                  role: 'value',
                  });
                  ! // States für Countdown
                  ! createState('Alarmanlage.Timer.AlarmCountdown', 0, force, {
                  read: true,
                  write: true,
                  desc: 'Countdown für Alarmaktivierung nach Abwesenheit',
                  def: ''
                  });
                  ! createState('Alarmanlage.Timer.countTrigger', false, force);
                  createState('Alarmanlage.Timer.duration', 30, force);
                  ! var alarmMeldung =[]; // Array für Alarmmeldungen, wird bei Deaktivierung der Alarmanlage gelöscht.
                  ! var duration = 'Alarmanlage.Timer.duration';
                  var countTrigger = 'Alarmanlage.Timer.countTrigger';
                  var AlarmCountdown = 'Alarmanlage.Timer.AlarmCountdown';
                  ! var idAlarmanlage = 'javascript.0.Alarmanlage';
                  var idAlarmtyp = 'javascript.0.Alarmanlage.Schutztyp';
                  var idAlarm = 'javascript.0.Alarmanlage.Alarm';
                  var idAlarmcounter ='javascript.0.Alarmanlage.Alarmcounter';
                  var idAlarmmeldung = 'javascript.0.Alarmanlage.Alarmmeldung';
                  var idVisMeldung = 'javascript.0.Alarmanlage.VisMeldung';
                  ! var nachricht;
                  var eventTime;
                  ! // #################################################
                  // ##### Alarmanlagenstatus ein/aus überwachen #####
                  ! on(idAlarmanlage, function (obj) {
                  if (obj.state.val === 0 ) {
                  if(debug) log('Alarmanlage ausgeschaltet');
                  nachricht = "Alarmanlage ausgeschaltet";
                  fensterOffen = []; // Array für Nachricht beim einschalten wieder leeren, wenn ausgeschaltet wird

                      alarmMeldung = [];                          // Alarmmeldungsarray leeren
                      setState(idAlarmcounter, 0 );
                      setState(idAlarm, 0);                       // Alarmtrigger zurückgesetzt
                      setState(idVisMeldung, 0);                  // Vis-Overlay Trigger zurückgesetzt        
                  

                  !
                  setState("hm-rpc.1.00021569960FFB.3.STATE"/Kamera_Wohnzimmer_Steckdose:3.STATE/, false); // Kamera wird deaktiviert

                  } else if (obj.state.val == 1) {
                      fensterPruef();
                      if (getState(idAlarmtyp).val == 1) setState("hm-rpc.1.00021569960FFB.3.STATE"/*Kamera_Wohnzimmer_Steckdose:3.STATE*/, true);  // Kamera wird aktiviert sofern Vollschutz aktiv
                      if(debug) log('Alarmanlage eingeschaltet');
                      nachricht = "Alarmanlage eingeschaltet. "+info;
                  }        
                      
                      else if (obj.state.val == 2) {
                      fensterPruef();
                      if (getState(idAlarmtyp).val == 1) setState("hm-rpc.1.00021569960FFB.3.STATE"/*Kamera_Wohnzimmer_Steckdose:3.STATE*/, true);  // Kamera wird aktiviert sofern Vollschutz aktiv     
                      if(debug) log('Alarmanlage auf Automatik geschaltet');
                      nachricht = "Alarmanlage wg. Abwesenheit automatisch eingeschaltet. " +info;
                  }
                      sendTo('telegram', nachricht);    
                  

                  });

                  // #############################################################
                  // ######### Anwesenheit überwachen / Automatikmodus #########

                  ! var idAnwesenheit = "hm-rega.0.22065";
                  var anwesenheitList = getState("hm-rega.0.22066"/auto_sv_anwesenheit.string/).val;
                  ! if(debug2) log("Anwesend: "+anwesenheitList);
                  ! on(idAnwesenheit, function (data) {
                  if (data.state.val === 0 && getState(idAlarmanlage).val === 0) { // Automatik soll nur einschalten, sofern Alarmanlage nicht ohnehin schon an ist.
                  if(debug) log('keine Person zu Hause - Alarmanlage scharf geschaltet');
                  setState(idAlarmanlage, 2); // auf Automatik
                  } else {
                  if(debug) log('Zahl der Personen zu Hause: ' + data.state.val);
                  if (getState(idAlarmanlage).val == 2) {
                  nachricht = "Bewohner wieder anwesend.";
                  sendTo('telegram', nachricht);
                  setState(idAlarmanlage, 0);

                      }
                  }
                  

                  });

                  ! // ########################################################################
                  // ####### Fensterstatus beim einschalten der Alarmanlage überwachen #####
                  ! var fensterOffen =[];
                  var info;
                  ! function fensterPruef() {
                  ! var cacheSelectorState = $('channelstate.id=*.STATE');
                  ! cacheSelectorState.each(function (id, i) { // Schleife für jedes gefundenen Element *.STATE im Gewerk Alarmanlage_Huelle
                  var status = getState(id).val; // Zustand *.STATE abfragen (jedes Element) // alt: getState(id).val;
                  var obj = getObject(id);
                  var name = getObject(id).common.name;
                  var devicename = name.substring(0, name.indexOf(":1.STATE")); //:1.state aus Text entfernen

                      if(status ||status === 1){
                      fensterOffen.push(devicename);                                          // offene Fenster zum Array hinzufügen    
                      fensterOffen.sort;                                                      // Array sortieren
                      if(debug2) log(fensterOffen);
                      }
                  });
                  if(fensterOffen.length > 0) info = "Folgende Fenster noch offen: "+fensterOffen;
                  else info = "Alle Fenster geschlossen.";
                  if(debug2) log("Info ist "+info);    
                  

                  }

                  ! // #########################################################
                  // ############### Aussenhülle überwachen ##################
                  // ###### dies ist immer aktiv wenn Alarmanlage aktiv ######
                  ! $('channelstate.id=*.STATE').on(function (obj) {
                  if (obj.state.val) { // Wenn Bewegung erkannt

                      nachricht = obj.deviceName + ' wurde geöffnet';
                      if(getState(idAlarmanlage).val > 0){                            // Alarmanlage aktiv und Bewegung in Türen oder Fenstern, dann....
                      sendTo('telegram.0', {                                          // Nachricht per Telegram
                          text: nachricht        
                          });
                      list();    
                      }
                      if(debug) log(nachricht);
                  }
                  

                  });

                  ! // #############################################
                  // ########## INNENRAUMÜBERWACHUNG #############
                  ! // Bewegungsmelder
                  ! $('channel[state.id=*.MOTION]').on(function (obj) {
                  if (obj.state.val) { // Wenn Bewegung erkannt

                      nachricht = obj.deviceName + ' meldet Bewegung';
                      if(getState(idAlarmtyp).val === 1 && getState(idAlarmanlage).val > 0){
                      sendTo('telegram.0', {
                          text: nachricht
                      });        
                      list();
                      }
                      if(debug) log(nachricht);
                  } // Ende Bewegung erkannt
                  

                  });

                  ! // Kamera
                  ! on({id:"javascript.0.Alarmanlage.Kamera.WoZi"/javascript.0.Alarmanlage.Kamera.WoZi/, change: "ne", val: 1}, function(){
                  nachricht = 'Kamera Wohnzimmer meldet Bewegung; Fotos versendet';
                  if(getState(idAlarmtyp).val === 1 && getState(idAlarmanlage).val > 0){
                  sendTo('telegram.0', {
                  text: nachricht
                  });
                  list();
                  }
                  });
                  ! // #############################################
                  // #### COUNTDOWN BEIM EINSCHALTEN #############
                  ! function countdown(){
                  count--;
                  ! if(count > 0) setState("javascript.0.Alarmanlage.Timer.AlarmCountdown", count);
                  else {
                  clearInterval(timer);
                  setState("javascript.0.Alarmanlage"/Alarmanlage/, 1);
                  setState("javascript.0.Alarmanlage.Vis", 0 ); // Trigger für VIS Sichtbarkeit wieder auf 0 setzen
                  setState("javascript.0.Alarmanlage.Timer.countTrigger", false); // countdown trigger nach Countdown wieder auf 0 setzen, damit in VIS button wieder auf "aktivieren" steht beim nächsten mal
                  }
                  }
                  ! on({id: "javascript.0.Alarmanlage.Timer.countTrigger", change: "ne"}, function(obj){
                  if(obj.state.val) {
                  count = getState("javascript.0.Alarmanlage.Timer.duration").val;
                  timer = setInterval(countdown, 1000);
                  } else clearInterval(timer);
                  });
                  ! // ###################################
                  // ######### ALARM EVENT LISTE #######
                  ! function list(){

                      timestamp();
                      var listMessage = (eventTime + " " +nachricht);
                      
                      setState(idAlarm, 1);                                           // Alarmtrigger gesetzt
                      alarmMeldung.push(listMessage);                                 // Alarmmeldung-Variable wird befüllt
                      alarmMeldung.reverse();                                         // Array sortieren, neu nach oben
                      alarmMeldung.splice(20);                                        // auf 20 Einträge beschränken
                      setState(idAlarmcounter, alarmMeldung.length);                  // counter wird hochgezählt
                      setState(idAlarmmeldung, alarmMeldung.join('
                  

                  ')); // Vis State wird befüllt
                  setState(idVisMeldung, 1); // Vis-Trigger für Overlay mit Alarmmeldungen wird gesetzt
                  }

                  ! // ###############################################################
                  //############## TIMESTAMP FÜR EREIGNISLISTE ERZEUGEN ############
                  ! function timestamp() {
                  var now=new Date();
                  var day = now.getDate();
                  var month = now.getMonth() + 1;
                  var year = now.getFullYear();
                  var weekday = now.getDay();
                  var hours = now.getHours();
                  var minutes = now.getMinutes();
                  var day0 = ((day < 10) ? "0" : "");
                  var month0 = ((month < 10) ? "0" : "");
                  var hours0 = ((hours < 10) ? "0" : "");
                  var minutes0 = ((minutes < 10) ? "0" : "");
                  eventTime = year + "-" + month0 + month + "-" + day0 + day + " " + hours0 + hours + ":" + minutes0 + minutes;
                  ! return eventTime;

                  }

                  ! ```` `

                  1 Reply Last reply
                  0
                  • T Offline
                    T Offline
                    tempestas
                    wrote on last edited by
                    #17

                    Vom Handy;

                    Das ist meine alte Anwesenheit, die ich kurzzeitig mal über die ccu2 geprüft hatte.

                    <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

                    1 Reply Last reply
                    0
                    • S Offline
                      S Offline
                      smarti2015
                      wrote on last edited by
                      #18

                      Hi Leute, wie kann ich über VIS die Alarmanlage aktivieren/deaktivieren? Hab mir selber was zusammengebastelt und momentan wird sie über einen Homematic Taster ein und ausgeschaltet. Wie kann ich diesen Taster zum einschalten bzw ausschalten im VIS verbinden? Danke für Hilfe und TIpps :)

                      GEEKOM AS 6

                      1 Reply Last reply
                      0

                      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                      With your input, this post could be even better 💗

                      Register Login
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      598

                      Online

                      32.8k

                      Users

                      82.7k

                      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