Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. [Projekt] Alarmanlage mit mehreren Alarmstufen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Projekt] Alarmanlage mit mehreren Alarmstufen

    This topic has been deleted. Only users with topic management privileges can see it.
    • Z
      zahnheinrich last edited by

      In der Spalte Funktion (die 2. von rechts) steht bei Illumination ( eins über "motion") doch "Batterie,Bewegungsmelder".

      Ich nehme an, "Bewegungsmelder" ist dein Selektor. Der bräuchte/dürfte dann nur in der Zeile "motion" stehen, jedenfalls nicht in "Illumination".

      Lösche den "Bewegungsmelder" aus diesem Feld (Doppelklick drauf, dann alles deselektieren) , dann sollte es gehen.

      Gruß Ulrich

      1 Reply Last reply Reply Quote 0
      • Homer.J.
        Homer.J. last edited by

        Nein ist motion und das habe ich nur in diese Spalte motion von Bewegungsmelder drin deshalb verstehe ich es ja auch nicht.

        Bewegungsmelder ist noch für die Alarmanlage über die CCU.

        Die hab ich ja momentan außer Betrieb.

        1 Reply Last reply Reply Quote 0
        • dslraser
          dslraser Forum Testing Most Active last edited by

          Bei ähnlichen Sachen hatte ich auch schon das Problem. Das ging immer erst sauber nach Neustart des JS Adapters, schon mal Neustart probiert ?

          PS: ab hier Tante Edit…

          1 Reply Last reply Reply Quote 0
          • Homer.J.
            Homer.J. last edited by

            Was mich wundert ist die Auslösung es wird nicht nur motion sondern alles getriggert das ist doch so auch nicht richtig.

            hab mal die Log Datei angehängt.

            ! [javascript.0 2018-09-04 18:58:38.618 info script.js.common.Alarmanlage.3_Auslösung: Blitzlicht state:true
            ! javascript.0 2018-09-04 18:58:38.618 info script.js.common.Alarmanlage.1_Logik: startAlarm elem:mail
            ! javascript.0 2018-09-04 18:58:38.618 info script.js.common.Alarmanlage.1_Logik: startAlarm elem:sound
            ! javascript.0 2018-09-04 18:58:36.881 info script.js.common.Alarmanlage.1_Logik: check obj:Bewegungsmelder WZ.ILLUMINATION
            ! javascript.0 2018-09-04 18:58:36.881 info script.js.common.Alarmanlage.1_Logik: alarm triggered by sensor Bewegungsmelder WZ.ILLUMINATION
            ! javascript.0 2018-09-04 18:58:36.881 info script.js.common.Alarmanlage.1_Logik: startAlarms elemmail:2
            ! javascript.0 2018-09-04 18:58:36.881 info script.js.common.Alarmanlage.1_Logik: startAlarms elemextern:60
            ! javascript.0 2018-09-04 18:58:36.881 info script.js.common.Alarmanlage.1_Logik: startAlarms elemintern:60
            ! javascript.0 2018-09-04 18:58:36.881 info script.js.common.Alarmanlage.1_Logik: startAlarms elemstrobe:3
            ! javascript.0 2018-09-04 18:58:36.881 info script.js.common.Alarmanlage.1_Logik: startAlarms elemsound:2
            ! javascript.0 2018-09-04 18:58:36.881 info script.js.common.Alarmanlage.1_Logik: startAlarms elemsilent:4
            ! javascript.0 2018-09-04 18:58:36.880 info script.js.common.Alarmanlage.1_Logik: check obj:Bewegungsmelder WZ.MOTION
            ! javascript.0 2018-09-04 18:58:36.879 info script.js.common.Alarmanlage.1_Logik: alarm triggered by sensor Bewegungsmelder WZ.MOTION
            ! javascript.0 2018-09-04 18:58:36.879 info script.js.common.Alarmanlage.1_Logik: startAlarms elemmail:2
            ! javascript.0 2018-09-04 18:58:36.879 info script.js.common.Alarmanlage.1_Logik: startAlarms elemextern:60
            ! javascript.0 2018-09-04 18:58:36.879 info script.js.common.Alarmanlage.1_Logik: startAlarms elemintern:60
            ! javascript.0 2018-09-04 18:58:36.879 info script.js.common.Alarmanlage.1_Logik: startAlarms elemstrobe:3
            ! javascript.0 2018-09-04 18:58:36.879 info script.js.common.Alarmanlage.1_Logik: startAlarms elemsound:2
            ! javascript.0 2018-09-04 18:58:36.879 info script.js.common.Alarmanlage.1_Logik: startAlarms elemsilent:4
            ! javascript.0 2018-09-04 18:58:36.879 info script.js.common.Alarmanlage.1_Logik: check obj:Bewegungsmelder WZ:0.RSSI_PEER
            ! javascript.0 2018-09-04 18:58:36.879 info script.js.common.Alarmanlage.1_Logik: alarm triggered by sensor Bewegungsmelder WZ:0.RSSI_PEER
            ! javascript.0 2018-09-04 18:58:36.879 info script.js.common.Alarmanlage.1_Logik: startAlarms elemmail:2
            ! javascript.0 2018-09-04 18:58:36.879 info script.js.common.Alarmanlage.1_Logik: startAlarms elemextern:60
            ! javascript.0 2018-09-04 18:58:36.879 info script.js.common.Alarmanlage.1_Logik: startAlarms elemintern:60
            ! javascript.0 2018-09-04 18:58:36.879 info script.js.common.Alarmanlage.1_Logik: startAlarms elemstrobe:3
            ! javascript.0 2018-09-04 18:58:36.879 info script.js.common.Alarmanlage.1_Logik: startAlarms elemsound:2
            ! javascript.0 2018-09-04 18:58:36.879 info script.js.common.Alarmanlage.1_Logik: startAlarms elemsilent:4
            ! javascript.0 2018-09-04 18:58:36.879 info script.js.common.Alarmanlage.1_Logik: check obj:Bewegungsmelder WZ:0.RSSI_DEVICE
            ! javascript.0 2018-09-04 18:58:36.878 info script.js.common.Alarmanlage.1_Logik: alarm triggered by sensor Bewegungsmelder WZ:0.RSSI_DEVICE
            ! javascript.0 2018-09-04 18:58:36.878 info script.js.common.Alarmanlage.1_Logik: startAlarms elemmail:2
            ! javascript.0 2018-09-04 18:58:36.878 info script.js.common.Alarmanlage.1_Logik: startAlarms elemextern:60
            ! javascript.0 2018-09-04 18:58:36.878 info script.js.common.Alarmanlage.1_Logik: startAlarms elemintern:60
            ! javascript.0 2018-09-04 18:58:36.878 info script.js.common.Alarmanlage.1_Logik: startAlarms elemstrobe:3
            ! javascript.0 2018-09-04 18:58:36.878 info script.js.common.Alarmanlage.1_Logik: startAlarms elemsound:2
            ! javascript.0 2018-09-04 18:58:36.878 info script.js.common.Alarmanlage.1_Logik: startAlarms elemsilent:4
            ! javascript.0 2018-09-04 18:58:36.616 info script.js.common.Alarmanlage.1_Logik: check obj:Bewegungsmelder WZ:0.RSSI_DEVICE
            ! javascript.0 2018-09-04 18:58:36.616 info script.js.common.Alarmanlage.1_Logik: alarm triggered by sensor Bewegungsmelder WZ:0.RSSI_DEVICE
            ! javascript.0 2018-09-04 18:58:36.616 info script.js.common.Alarmanlage.1_Logik: startAlarms elemmail:2
            ! javascript.0 2018-09-04 18:58:36.616 info script.js.common.Alarmanlage.1_Logik: startAlarms elemextern:60
            ! javascript.0 2018-09-04 18:58:36.616 info script.js.common.Alarmanlage.1_Logik: startAlarms elemintern:60
            ! javascript.0 2018-09-04 18:58:36.616 info script.js.common.Alarmanlage.1_Logik: startAlarms elemstrobe:3
            ! javascript.0 2018-09-04 18:58:36.615 info script.js.common.Alarmanlage.1_Logik: startAlarms elemsound:2
            ! javascript.0 2018-09-04 18:58:36.615 info script.js.common.Alarmanlage.1_Logik: startAlarms elemsilent:4/spoiler]

            1 Reply Last reply Reply Quote 0
            • sigi234
              sigi234 Forum Testing Most Active last edited by

              Hallo,

              ich glaube ich begreife das Skript nicht, wo und was muss ich eintragen das es mir die Fenster und Türen überwacht?

              2858_screenshot__548_.png

              1 Reply Last reply Reply Quote 0
              • ?
                A Former User last edited by

                @sigi234:

                Hallo,

                ich glaube ich begreife das Skript nicht, wo und was muss ich eintragen das es mir die Fenster und Türen überwacht?

                Screenshot (548).png `

                Am einfachsten ist es wenn du eine neue Funktion "facade" (unter Enums/Aufzählungen) erstellst… und diese dann allen deinen Türen und Fenstern zuordnest.

                Dann musst du in dem Skript gar nix anpassen solange die Türen und Fenstern innerhalb der instanz javascript.0 angelegt sind.

                1 Reply Last reply Reply Quote 0
                • sigi234
                  sigi234 Forum Testing Most Active last edited by

                  SO?

                  2858_screenshot__552_.png

                  1 Reply Last reply Reply Quote 0
                  • ?
                    A Former User last edited by

                    @sigi234:

                    SO?

                    Screenshot (552).png `

                    Es müsste eher vom type "enum" sein. Type="state" verwirrt mich etwas.

                    Dann noch deine Türen/Fenster zuordnen

                    1 Reply Last reply Reply Quote 0
                    • sigi234
                      sigi234 Forum Testing Most Active last edited by

                      @nisio:

                      @sigi234:

                      Hallo,

                      ich glaube ich begreife das Skript nicht, wo und was muss ich eintragen das es mir die Fenster und Türen überwacht?

                      Screenshot (548).png `

                      Am einfachsten ist es wenn du eine neue Funktion "facade" (unter Enums/Aufzählungen) erstellst… und diese dann allen deinen Türen und Fenstern zuordnest.

                      Dann musst du in dem Skript gar nix anpassen solange die Türen und Fenstern innerhalb der instanz javascript.0 angelegt sind. `

                      Die sind unter : hm-rpc.1

                      1 Reply Last reply Reply Quote 0
                      • ?
                        A Former User last edited by

                        @sigi234:

                        @nisio:

                        @sigi234:

                        Hallo,

                        ich glaube ich begreife das Skript nicht, wo und was muss ich eintragen das es mir die Fenster und Türen überwacht?

                        Screenshot (548).png `

                        Am einfachsten ist es wenn du eine neue Funktion "facade" (unter Enums/Aufzählungen) erstellst… und diese dann allen deinen Türen und Fenstern zuordnest.

                        Dann musst du in dem Skript gar nix anpassen solange die Türen und Fenstern innerhalb der instanz javascript.0 angelegt sind. `

                        Die sind unter : hm-rpc.1 `

                        Ok, dann müsste es bei dir so funktionieren:

                            //Sensors
                            var selFacade = $('state[state.id=hm-rpc.1.*](functions=facade)');
                            selFacade.on(function (obj) {
                                _checkSensor(obj, 'facade');
                            });
                            var selMotion = $('state[state.id=hm-rpc.1.*](functions=motion)');
                            selMotion.on(function (obj) {
                                _checkSensor(obj, 'motion');
                            });
                        
                        1 Reply Last reply Reply Quote 0
                        • sigi234
                          sigi234 Forum Testing Most Active last edited by

                          Es wird….....aber irgend wo ist noch ein Fehler?

                          2858_screenshot__554_.png

                          2858_screenshot__562_.png

                          2858_screenshot__560_.png

                          2858_screenshot__558_.png

                          1 Reply Last reply Reply Quote 0
                          • sigi234
                            sigi234 Forum Testing Most Active last edited by

                            Hat ausgelöst, dauerte ein wenig…....... 😄

                            Steht aber im Log Objekt......Objekt.......

                            2858_screenshot__564_.png

                            1 Reply Last reply Reply Quote 0
                            • ?
                              A Former User last edited by

                              @sigi234:

                              Hat ausgelöst, dauerte ein wenig…....... 😄

                              Steht aber im Log Objekt......Objekt.......

                              Screenshot (564).png `

                              Hat der ausglöste State was stehen in "common.name"?

                              Poste mal bitte den RAW von dem State

                              1 Reply Last reply Reply Quote 0
                              • sigi234
                                sigi234 Forum Testing Most Active last edited by

                                {
                                  "from": "system.adapter.javascript.0",
                                  "ts": 1536149201713,
                                  "common": {
                                    "name": "alarm.out.last_sensor",
                                    "desc": "Tells you which sensor has been activated. The output gives the room, name, date and time.",
                                    "type": "string",
                                    "role": "javascript",
                                    "read": true,
                                    "write": false
                                  },
                                  "native": {},
                                  "acl": {
                                    "object": 1636,
                                    "owner": "system.user.admin",
                                    "ownerGroup": "system.group.administrator",
                                    "state": 1636
                                  },
                                  "_id": "javascript.0.alarm.out.last_sensor",
                                  "type": "state"
                                }
                                
                                1 Reply Last reply Reply Quote 0
                                • Homer.J.
                                  Homer.J. last edited by

                                  So hatte ich es bis gestern auch deswegen habe ich ständig Fehlalarm über Motion gehabt wenn du es über die CCU machst muss es so aussehen dann funktioniert es.

                                  var selFacade = $('state[state.id=*.STATE](functions=facade)');
                                  selFacade.on(function(obj) {
                                  _checkSensor(obj,'facade');
                                  
                                  var selMotion = $('state[state.id=*.MOTION](functions=motion)');
                                  selMotion.on(function(obj) {
                                  _checkSensor(obj,'motion');
                                  });
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • sigi234
                                    sigi234 Forum Testing Most Active last edited by

                                    Da bekomme ich einen Fehler…...

                                    2858_screenshot__576_.png

                                    avascript.0	2018-09-06 14:07:38.176	error	at Object.createScript (vm.js:80:10)
                                    javascript.0	2018-09-06 14:07:38.176	error	SyntaxError: Unexpected end of input
                                    javascript.0	2018-09-06 14:07:38.176	error	
                                    javascript.0	2018-09-06 14:07:38.176	error	log('registered ' + __engine.__subscriptions + ' subscription' + (__engine.__subscriptions === 1 ? '' : 's' ) + ' and ' + __engine.__schedules + ' schedule' + (__engine.__schedules === 1 ? '' : 's' )
                                    javascript.0	2018-09-06 14:07:38.176	error	at script.js.common.multi_channel_burglar_alarm:188
                                    javascript.0	2018-09-06 14:07:38.176	error	script.js.common.multi_channel_burglar_alarm compile failed:
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • sigi234
                                      sigi234 Forum Testing Most Active last edited by

                                      @nisio:

                                      @sigi234:

                                      Hat ausgelöst, dauerte ein wenig…....... 😄

                                      Steht aber im Log Objekt......Objekt.......

                                      Screenshot (564).png `

                                      Hat der ausglöste State was stehen in "common.name"?

                                      Poste mal bitte den RAW von dem State `

                                      Bekomme auch eine E-Mail aber nach wie vor mit diesen Angaben?

                                      alarm triggered by [object Object]

                                      1 Reply Last reply Reply Quote 0
                                      • Homer.J.
                                        Homer.J. last edited by

                                        Füg mal das ein. Zeit kannst du ja selber dann wieder stellen.

                                        /* 
                                        
                                        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=*.STATE](functions=facade)');
                                            selFacade.on(function(obj) {
                                                _checkSensor(obj,'facade');
                                            });
                                        
                                            var selMotion = $('state[state.id=*.MOTION](functions=motion)');
                                            selMotion.on(function(obj) {
                                                _checkSensor(obj,'motion');
                                            });
                                        
                                            function _checkSensor(obj, group) {
                                                if (enable) {
                                                    if (sensorDelay[group] === 0) {
                                                        _check(obj);
                                                    } else if (sensorDelay[group] > 0) {
                                                        setTimeout(_check, (sensorDelay[group] * 1000), obj);
                                                    }
                                                log('checkSensor group:' + group + ' obj:' + obj.id, 'debug');
                                                }
                                            }
                                        
                                            function _loadSettings(profile){
                                                switch(profile) {
                                                    case 'silent':
                                                        sensorDelay = {motion:0,facade:0};
                                                        alarmDelay = {silent:0};
                                                        break;
                                                    case 'night':
                                                        sensorDelay = {facade:0};
                                                        alarmDelay = {silent:30,intern:2,extern:2};
                                                        break;    
                                                    case 'full':
                                                        sensorDelay = {motion:0,facade:0};
                                                        alarmDelay = {silent:4,sound:10,strobe:3,intern:60,extern:60,mail:2};
                                                        break;
                                                    case 'presence':
                                                        sensorDelay = {motion:0,facade:0};
                                                        alarmDelay = {silent:0,sound:10,strobe:30,intern:60,extern:60,mail:120};
                                                        break;
                                                    case 'auto':
                                                        sensorDelay = {motion:0,facade:0};
                                                        alarmDelay = {silent:4,sound:10,strobe:30,intern:60,extern:60,mail:2};
                                                        break;
                                                    default:
                                                        profile = 'default';
                                                        sensorDelay = {motion:0,facade:0};
                                                        alarmDelay = {silent:4,sound:2,strobe:30,intern:60,extern:60,mail:2};
                                                }
                                                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_sirene', state, true);
                                                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');
                                        });
                                        
                                        // ############# Alarmanlage schalten Anwesenheit ###############
                                        
                                        on("hm-rega.0.950"/*Anwesenheit*/, function (obj) {
                                        var state = getState('javascript.0.alarm.out.state').val;
                                        var profile = getState('javascript.0.alarm.out.profile').val;
                                        if (profile == 'auto' || state === 0) {
                                        if (obj.state.val && state > 0) {
                                        setState('javascript.0.alarm.in.disable', true, true);
                                        } else {
                                        setState('javascript.0.alarm.in.enable', 'auto', true);
                                        }
                                        }
                                        });
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • sigi234
                                          sigi234 Forum Testing Most Active last edited by

                                          2858_screenshot__578_.png

                                          1 Reply Last reply Reply Quote 0
                                          • sigi234
                                            sigi234 Forum Testing Most Active last edited by

                                            Habe den Fehler:

                                            In der Cloud wird auch Objekt Objekt angezeigt….......warum weis ich nicht.

                                            2858_screenshot__580_.png
                                            2858_screenshot__582_.png

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            876
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            32
                                            138
                                            28268
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo