Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. [Projekt] Alarmanlage mit mehreren Alarmstufen

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

[Projekt] Alarmanlage mit mehreren Alarmstufen

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
138 Beiträge 32 Kommentatoren 36.3k Aufrufe 21 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • ? Offline
    ? Offline
    Ein ehemaliger Benutzer
    schrieb am zuletzt editiert von
    #85

    @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 Antwort Letzte Antwort
    0
    • sigi234S Online
      sigi234S Online
      sigi234
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #86

      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

      Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
      Immer Daten sichern!

      1 Antwort Letzte Antwort
      0
      • sigi234S Online
        sigi234S Online
        sigi234
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #87

        Hat ausgelöst, dauerte ein wenig…....... :D

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

        2858_screenshot__564_.png

        Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
        Immer Daten sichern!

        1 Antwort Letzte Antwort
        0
        • ? Offline
          ? Offline
          Ein ehemaliger Benutzer
          schrieb am zuletzt editiert von
          #88

          @sigi234:

          Hat ausgelöst, dauerte ein wenig…....... :D

          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 Antwort Letzte Antwort
          0
          • sigi234S Online
            sigi234S Online
            sigi234
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #89
            {
              "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"
            }
            

            Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
            Immer Daten sichern!

            1 Antwort Letzte Antwort
            0
            • Homer.J.H Offline
              Homer.J.H Offline
              Homer.J.
              schrieb am zuletzt editiert von
              #90

              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 Antwort Letzte Antwort
              0
              • sigi234S Online
                sigi234S Online
                sigi234
                Forum Testing Most Active
                schrieb am zuletzt editiert von
                #91

                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:
                

                Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                Immer Daten sichern!

                1 Antwort Letzte Antwort
                0
                • sigi234S Online
                  sigi234S Online
                  sigi234
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von
                  #92

                  @nisio:

                  @sigi234:

                  Hat ausgelöst, dauerte ein wenig…....... :D

                  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]

                  Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                  Immer Daten sichern!

                  1 Antwort Letzte Antwort
                  0
                  • Homer.J.H Offline
                    Homer.J.H Offline
                    Homer.J.
                    schrieb am zuletzt editiert von
                    #93

                    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 Antwort Letzte Antwort
                    0
                    • sigi234S Online
                      sigi234S Online
                      sigi234
                      Forum Testing Most Active
                      schrieb am zuletzt editiert von
                      #94

                      2858_screenshot__578_.png

                      Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                      Immer Daten sichern!

                      1 Antwort Letzte Antwort
                      0
                      • sigi234S Online
                        sigi234S Online
                        sigi234
                        Forum Testing Most Active
                        schrieb am zuletzt editiert von
                        #95

                        Habe den Fehler:

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

                        2858_screenshot__580_.png
                        2858_screenshot__582_.png

                        Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                        Immer Daten sichern!

                        1 Antwort Letzte Antwort
                        0
                        • ? Offline
                          ? Offline
                          Ein ehemaliger Benutzer
                          schrieb am zuletzt editiert von
                          #96

                          @sigi234:

                          @nisio:

                          @sigi234:

                          Hat ausgelöst, dauerte ein wenig…....... :D

                          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] `

                          Wie sieht denn nun der RAW aus von dem State der den Alarm auslöst?!?

                          Ich vermute dort wird in common.name irgendwas stehen in geschweiften Klammern…

                          1 Antwort Letzte Antwort
                          0
                          • sigi234S Online
                            sigi234S Online
                            sigi234
                            Forum Testing Most Active
                            schrieb am zuletzt editiert von
                            #97
                            {
                              "from": "system.adapter.hm-rpc.1",
                              "ts": 1536258965916,
                              "common": {
                                "name": "Haustuer.STATE",
                                "type": "boolean",
                                "role": "state",
                                "def": false,
                                "read": true,
                                "write": false,
                                "custom": {
                                  "history.0": {
                                    "enabled": true,
                                    "changesOnly": false,
                                    "debounce": "1000",
                                    "maxLength": "10",
                                    "retention": 0,
                                    "changesRelogInterval": 0,
                                    "changesMinDelta": 0
                                  },
                                  "material": {
                                    "admin": {
                                      "inverted": false,
                                      "name": "Haustuer",
                                      "colorOn": "rgba(0,0,0,1)",
                                      "doubleSize": true,
                                      "colorOff": "rgba(0,0,0,1)",
                                      "icon": "",
                                      "iconOff": "",
                                      "background": "/material.0/admin/hm-rpc_1_NEQ1818500_1_STATE.jpg",
                                      "enabled": true
                                    }
                                  }
                                }
                              },
                              "native": {
                                "CONTROL": "DOOR_SENSOR.STATE",
                                "ID": "STATE",
                                "TYPE": "BOOL",
                                "UNIT": "",
                                "FLAGS": 1,
                                "OPERATIONS": 5,
                                "TAB_ORDER": 0,
                                "DEFAULT": false,
                                "MAX": true,
                                "MIN": false
                              },
                              "acl": {
                                "object": 1636,
                                "owner": "system.user.admin",
                                "ownerGroup": "system.group.administrator",
                                "state": 1636
                              },
                              "_id": "hm-rpc.1.NEQ1818500.1.STATE",
                              "type": "state"
                            }
                            

                            Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                            Immer Daten sichern!

                            1 Antwort Letzte Antwort
                            0
                            • ? Offline
                              ? Offline
                              Ein ehemaliger Benutzer
                              schrieb am zuletzt editiert von
                              #98

                              Ist der State einem Raum zugeordnet?

                              Dann bitte auch mal den RAW von dem Raum posten. Danke

                              1 Antwort Letzte Antwort
                              0
                              • sigi234S Online
                                sigi234S Online
                                sigi234
                                Forum Testing Most Active
                                schrieb am zuletzt editiert von
                                #99
                                {
                                  "type": "enum",
                                  "common": {
                                    "name": {
                                      "en": "Vorraum",
                                      "de": "Vorraum"
                                    },
                                    "desc": "",
                                    "members": [
                                      "hm-rpc.1.NEQ1818500.1",
                                      "hm-rpc.1.OEQ0473764.1"
                                    ],
                                    "custom": {
                                      "material": {
                                        "admin": {
                                          "align": "",
                                          "newLine": false,
                                          "name": "Vorraum",
                                          "color": "",
                                          "background": "/material.0/admin/enum.rooms.Garten.jpg",
                                          "backgroundColor": "",
                                          "icon": ""
                                        }
                                      }
                                    },
                                    "color": "#e4428d"
                                  },
                                  "native": {
                                    "Name": "Vorraum",
                                    "TypeName": "ENUM",
                                    "EnumInfo": ""
                                  },
                                  "from": "system.adapter.admin.0",
                                  "ts": 1535716516586,
                                  "_id": "enum.rooms.Vorraum",
                                  "acl": {
                                    "object": 1636,
                                    "owner": "system.user.admin",
                                    "ownerGroup": "system.group.administrator"
                                  }
                                }
                                

                                Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                Immer Daten sichern!

                                1 Antwort Letzte Antwort
                                0
                                • ? Offline
                                  ? Offline
                                  Ein ehemaliger Benutzer
                                  schrieb am zuletzt editiert von
                                  #100

                                  @sigi234:

                                  {
                                    "type": "enum",
                                    "common": {
                                      "name": {
                                        "en": "Vorraum",
                                        "de": "Vorraum"
                                      },
                                      "desc": "",
                                      "members": [
                                        "hm-rpc.1.NEQ1818500.1",
                                        "hm-rpc.1.OEQ0473764.1"
                                      ],
                                      "custom": {
                                        "material": {
                                          "admin": {
                                            "align": "",
                                            "newLine": false,
                                            "name": "Vorraum",
                                            "color": "",
                                            "background": "/material.0/admin/enum.rooms.Garten.jpg",
                                            "backgroundColor": "",
                                            "icon": ""
                                          }
                                        }
                                      },
                                      "color": "#e4428d"
                                    },
                                    "native": {
                                      "Name": "Vorraum",
                                      "TypeName": "ENUM",
                                      "EnumInfo": ""
                                    },
                                    "from": "system.adapter.admin.0",
                                    "ts": 1535716516586,
                                    "_id": "enum.rooms.Vorraum",
                                    "acl": {
                                      "object": 1636,
                                      "owner": "system.user.admin",
                                      "ownerGroup": "system.group.administrator"
                                    }
                                  }
                                  ```` `  
                                  

                                  Versuche mal, wenn du die verschiedenen Sprachen nicht angibst:

                                  ...
                                  "common": {
                                      "name": "Vorraum",
                                      "desc": "",
                                      ...
                                  
                                  1 Antwort Letzte Antwort
                                  0
                                  • sigi234S Online
                                    sigi234S Online
                                    sigi234
                                    Forum Testing Most Active
                                    schrieb am zuletzt editiert von
                                    #101

                                    2858_screenshot__592_.png

                                    Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                    Immer Daten sichern!

                                    1 Antwort Letzte Antwort
                                    0
                                    • E Offline
                                      E Offline
                                      ErazorVIP
                                      schrieb am zuletzt editiert von
                                      #102

                                      Nur mal so eine Frage, wo kann ich denn die Verzögerungszeit einstellen?

                                      :shock:

                                      1 Antwort Letzte Antwort
                                      0
                                      • ? Offline
                                        ? Offline
                                        Ein ehemaliger Benutzer
                                        schrieb am zuletzt editiert von
                                        #103

                                        @ErazorVIP:

                                        Nur mal so eine Frage, wo kann ich denn die Verzögerungszeit einstellen? `

                                        Du kannst für jeden Ausgang die Verzögerung einstellen.

                                        Das passiert in _loadSettings für jedes Profil einzeln.

                                        motion: 0 => keine Verzögerung

                                        motion: 30 => 30sec Verzögerung

                                        function _loadSettings(profile) {
                                                switch (profile) {
                                                    case 'silent':
                                                        sensorDelay = {
                                                            motion: 0,
                                                            facade: 0
                                                        };
                                                        alarmDelay = {
                                                            silent: 0
                                                        };
                                                        break;
                                                    case 'night':
                                                        sensorDelay = {
                                                            facade: 0
                                                        };
                                                        alarmDelay = {
                                                            silent: 0,
                                                            strobe: 0
                                                            ...
                                        
                                        1 Antwort Letzte Antwort
                                        0
                                        • E Offline
                                          E Offline
                                          ErazorVIP
                                          schrieb am zuletzt editiert von
                                          #104

                                          Super ;) Danke

                                          Mit den Logs hab ich noch ein kleines Problem…

                                          Wenn aus auf 5 eigestellt ist funktioniert auch soweit alles super...

                                          var maxLogEntries = 5;
                                          

                                          Leider bleibt es dann bei den 5 Logs - ein neues Ereignis wird dann nicht mehr gelogt?

                                          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

                                          694

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe