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

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    316

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

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

Alarmanlage darstellen

Geplant Angeheftet Gesperrt Verschoben Visualisierung
18 Beiträge 13 Kommentatoren 6.6k Aufrufe 1 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.
  • H Offline
    H Offline
    Harry-IO-HM
    schrieb am zuletzt editiert von
    #3

    Bei mir sieht es so aus:

    unscharf:
    1279_1.png

    ich will es scharf, und habe dafür einen Countdown von 60 Sekunden, um das Haus verlassen zu können:
    1279_2.png

    jetzt ist es aber richtig scharf:
    1279_3.png

    und hier wollte ich es auch scharf, aber da macht mir ein Fenster nen Strich durch die Rechnung:
    1279_4.png

    die Grafiken sind aus icons-8, aus dem Bereich "Alarm"

    • Harald
    1 Antwort Letzte Antwort
    0
    • P Offline
      P Offline
      pix
      schrieb am zuletzt editiert von
      #4

      Sehr schön Harald.

      Bei mir läuft der Countdown etwas größer und wird über die Sichtbarkeit eingeblendet.

      Den Status der "Alarmanlage" zeige ich durch die Farbe eines dünnen Rahmens um meinen Grundriss: gelb Abwesend, rot: Alarmanlage scharf (45s nach Beginn Abwesenheit).

      Gruß

      Pix

      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

      1 Antwort Letzte Antwort
      0
      • C Offline
        C Offline
        chaos99
        schrieb am zuletzt editiert von
        #5

        Hallo wie habt ihr das gelöst mit den 60 sec.?

        ich habe ein script welches ich durch einen Schalter in vis aktiviere , wie bekomme ich das jetzt auch hin damit ich 1 min zeit habe?

        1 Antwort Letzte Antwort
        0
        • H Offline
          H Offline
          Harry-IO-HM
          schrieb am zuletzt editiert von
          #6

          hier die Quelle:

          http://forum.iobroker.net/viewtopic.php?t=737

          1 Antwort Letzte Antwort
          0
          • DirkKD Offline
            DirkKD Offline
            DirkK
            schrieb am zuletzt editiert von
            #7

            Hallo Zusammen,

            Danke für die Inspirationen, Danke Harald für die Mühe.

            Gruß Dirk

            Gruß Dirk

            Raspi3 CCU

            1 Antwort Letzte Antwort
            0
            • D Offline
              D Offline
              Desa
              schrieb am zuletzt editiert von
              #8

              Also mir gefällt es ziehmlich gut. kannst du mir sagen wie du das mit den Icons gemacht hast ???

              Würde es gerne Ähnlich machen. nur irgendwie komm ich mit den Zuständen der Darstellung nicht klar.

              Lg Desa

              5x Rpi3, 2xRpi4 4gb, 4x HMThermostat, 4x MaxThermostat, 12x HMFensterkontakt, 2x MaxFensterkontakt, 2x RauchmelderZwave, 3x SteckdoseZwave, 14x Steckdose Elro433MHz, 2x HM 4FachSchaltaktor, 3x FS20Bewegungsmelder, 1xCul433, 1xCul862, 1xCulMAX, 1xZwave und HMO, MI Home Gateway 2x, 7x Mi Smoke, 1x MiGas, 3x Temp, 3x Sens

              1 Antwort Letzte Antwort
              0
              • X Offline
                X Offline
                xADDRx
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • T Offline
                  T Offline
                  tempestas
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  1
                  • htreckslerH Offline
                    htreckslerH Offline
                    htrecksler
                    Forum Testing
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    0
                    • T Offline
                      T Offline
                      tempestas
                      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                      0
                      • ? Offline
                        ? Offline
                        Ein ehemaliger Benutzer
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        0
                        • X Offline
                          X Offline
                          xADDRx
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          0
                          • F Offline
                            F Offline
                            farid
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            0
                            • M Offline
                              M Offline
                              mguenther
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              0
                              • T Offline
                                T Offline
                                tempestas
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                0
                                • S Offline
                                  S Offline
                                  smarti2015
                                  schrieb am zuletzt editiert von
                                  #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 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

                                  584

                                  Online

                                  32.5k

                                  Benutzer

                                  81.7k

                                  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