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. Skripten / Logik
  4. Problem mit Bewegungsmelder

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Problem mit Bewegungsmelder

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
8 Beiträge 4 Kommentatoren 1.7k 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.
  • S Offline
    S Offline
    Superdad
    schrieb am zuletzt editiert von
    #1

    Folgendes Problem ist bei mir aufgetreten.

    Ich habe einen Bewegungsmelder für Aussen (HM-Sen-MDIR-O-2).

    Mit diesem BWM laufen 2 Scripte.

    Erstes Script - Bewegungsmelder schaltet Aussenbeleuchtung:

    //http://forum.iobroker.net/viewtopic.php?f=21&t=2225
    
    on({id: 'hm-rpc.0.MEQ0642577.1.MOTION',
        change: 'any' 
    }, function (obj) {                                                                                          // Bewegung überwachen
        var bewegung = getState('hm-rpc.0.MEQ0642577.1.MOTION').val;                                             // hier aber auch obj.newState.val
        var helligkeit = getState('hm-rpc.0.MEQ0642577.1.BRIGHTNESS').val;
        if (obj.newState.val === true) {                                                                         // Bewegung true                                    
            log("---> Licht - Gallerie - ausgelöst durch Bewegungsmelder............","info")
            if (helligkeit < 70) {                                                                               // Helligkeitsgrenzwert bei Bedarf ändern
                setState("hm-rpc.0.NEQ1316057.3.ON_TIME"/*Gartenlicht vorn ein - aus.ON_TIME*/, 300);            // 300s Einschaltdauer
                setState("hm-rpc.0.NEQ1316057.3.STATE"/*Gartenlicht ein - aus.STATE*/, true);                    // schalte Lampe an
                log("---> Licht - Gartenlicht vorn an für 300 Sekunden............" ,"info");
            } else { 
                log("---> Licht - Licht zu hell um anzuschalten da Helligkeit: " + helligkeit + " %"  ,"info");  // Helligkeitswert vom Melder sind keine Prozent
            }
        }
    });
    

    Zweites Script - BWM sendet Foto von Kamera:

    // Script: TelegramBild
    // Script: Bild und Text per Telegram verschicken, wenn ein Sensor auslöst
    // Script: 15.05.2016
    // Script: V0.81
    // Autor: thomassch
    // Grundidee: http://forum.iobroker.net/viewtopic.php?f=21&t=2609&p=24557&hilit=telegram#p24557
    // Verwendet: https://github.com/kevva/download
    
    // weiteres: https://github.com/calvinmetcalf/copyfiles
    
    // IPCams: Dericam 32GB / 16GB
    
    // History
    // 29.05.2016 V0.81  download Funktion entfernt und durch request ersetzt
    
    var logging = true;
    var request = require('request');    // Modul Request muss in Javascript-Einstellungen vorhanden sein
    var fs      = require('fs');
    var xCopyFiles = require('copyfiles'); // Modul Copyfiles zum Dateikopieren über Javascript-Einstellungen
    
    var dest = '/surveillance/Image/';
    var foto_urlTerrasse   =    "http://192.168.xxx.xxx/tmpfs/auto.jpg?usr=xxx&pwd=xxx"; // IP Webcam Snapshot Terrasse
    var foto_urlVorgarten =    "http://192.168.xxx.xxx/tmpfs/auto.jpg?usr=xxx&pwd=xxx"; // IP Webcam Snapshot Vorgarten
    var txtaction = "..."; // Telegram Text
    var xBildpfad = "..."; // Bild mit Pfad
    
    if (logging) log("TelegramBild - Script start", "info");
    
    // Funktion zum Versenden einer Meldung und Bild über Telegramm
    // myObj   : Auslöseobjekt
    // myText  : wird im Telegramm als Objekttext (Klartext) angezeigt
    // txtTrue : wird bei auslösen = 1 im Telegram angezeigt
    // txtFalse: wird bei auslösen = 0 im Telegram angezeigt (hier nicht verwendet)
    // txtOrt  : Übergabe der WebCam Adresse
    // txtBild : lokaler Name für das Bild dass dann versendet wird
    
    // EInzelbild verschicken
    function xaktionCam(myObj, myText, txtTrue, txtFalse, txtUrlOrt, txtBild)
    {
        if (logging) log("TelegramBild.xaktionCam - start", "info");
        if (myObj.newState.val === true) {
            txtaction = txtTrue;
    
            // erst mal Text
            var myTel = myText + "" + txtaction;
            if (logging) log("TelegramBild.xaktionCam - state = 1: " + myTel, "info");
            setState("telegram.0.communicate.response", myTel);
    
            // dann von Cam downloaden
            myDownload(txtUrlOrt, dest, txtBild+".jpeg");
    
            // Bild versenden
            setTimeout(function(){
                sendTo('telegram.0', dest+txtBild);
                if (logging)  log("TelegramBild.xaktionCam - Bild versendet" + dest+txtBild+'.jpeg', "info");
            }, 6000); // 6 sek warten bevor man das JPG verschickt
    
            // Bild kopieren in VIS Verzeichnis für Anzeige im Webübersichtsbild      
            setTimeout(
                function()
                {
                    xBildpfad = dest+txtBild+".jpeg";
                    if (logging)  log("TelegramBild.xaktionCam - CopyFiles xBildpfad: "+ xBildpfad, "info");
                    new xCopyFiles([xBildpfad,'/homes/admin/opt/iobroker/iobroker-data/files/vis.0/Haus'],true,function (err){ 
                        if (logging)  log("TelegramBild.xaktionCam - CopyFiles err: "+ err, "info"); 
                        if (err) {
                           if (logging)  log("TelegramBild.xaktionCam - CopyFiles Error", "info");
                        } else {
                           if (logging)  log("TelegramBild.xaktionCam - CopyFiles ok", "info");
                        }
                    });
            }, 30000); // 20 sek warten bevor man das JPG umkopiert   
        }
    
    }
    
    // Funktion zum Download von WebCam Website
    function myDownload(mySource, myDest, myBildName)
    {
        // dann Bild von Cam Laden
        request.get({url: mySource, encoding: 'binary'}, function (err, response, body) {
            fs.writeFile(myDest + myBildName + ".jpeg", body, 'binary', function(err) {
                if (err) {
                    if (logging) log("TelegramBild.xaktionCam - Fehler beim Bild: "+ myBildName + "speichern", "warn");
                    } else {
                    if (logging) log("TelegramBild.xaktionCam - Bild: " + myBildName + " gespeichert", "info");
                }
            });
        });
    }
    
    // Alle Cams aufnehmen und verschicken
    function xaktionCamAlle(myObj, myText)
    {
      if (logging) log("xaktionCamAlle - start", "info");
      if (myObj.newState.val === true) {
    
          // erst mal Text
          var myTel = myText;
          if (logging) log("TelegramBild.xaktionCamAlle - state = 1: " + myTel, "info");
          setState("telegram.0.communicate.response", myTel);
    
          // erst mal aktuelle Bilder von den Cams holen
          myDownload(foto_urlTerrasse,   dest, "BildAlarmTerrasse");
          myDownload(foto_urlVorgarten, dest, "BildAlarmVorgarten");
          //myDownload(foto_urlGarten, dest, "BildAlarmGarten");
          //myDownload(foto_urlWohn,   dest, "BildAlarmWohnzimmer");
    
          // Die Bilder per Telegramm nach 20 sekunden verschicken
          setTimeout(
            function()
            {
              sendTo('telegram.0', dest+"BildAlarmTerrasse"+'.jpeg');
              sendTo('telegram.0', dest+"BildAlarmVorgarten"+'.jpeg');
              //sendTo('telegram.0', dest+"BildAlarmGarten"+'.jpeg');
              //sendTo('telegram.0', dest+"BildAlarmWohnzimmer"+'.jpeg');
            }, 20000); // 20 sek warten bevor man das JPG verschickt
    
          // und nun alle 4 umkopieren
          // Bild kopieren in VIS Verzeichnis für Anzeige im Webübersichtsbild      
          setTimeout(
            function()
            {
                new xCopyFiles([dest+"BildAlarmTerrasse.jpeg"      ,'/homes/admin/opt/homes/admin/opt/iobroker/iobroker-data/files/vis.0/main/Haus'],true,function (err){ });
                new xCopyFiles([dest+"BildAlarmVorgarten.jpeg"    ,'/homes/admin/opt/iobroker/iobroker-data/files/vis.0/main/Haus'],true,function (err){ });
                //new xCopyFiles([dest+"BildAlarmGarten.jpeg"    ,'/iobroker/iobroker-data/files/vis.0/main/Haus'],true,function (err){ });
                //new xCopyFiles([dest+"BildAlarmWohnzimmer.jpeg",'/iobroker/iobroker-data/files/vis.0/main/Haus'],true,function (err){ });
            }, 30000); // 30 sek warten bevor man das JPG umkopiert
    
      }
    }
    
    // Auslöser
    on({id: "hm-rpc.0.NEQ0264718.1.STATE",          val: true}, function(obj) { xaktionCam(obj, "Die Innentür wurde "       ,"geöffnet",""      , foto_urlVorgarten  ,   "BildVorgarten"); }); // Innentür
    on({id: "hm-rpc.0.MEQ0642577.1.MOTION",         val: true}, function(obj) { xaktionCam(obj, "Vorgarten Bewegungsmelder "   ,"ausgelöst",""     , foto_urlVorgarten,   "BildTerrasse"); }); // Garten
    //on({id: "hm-rpc.0.MEQxxx.1.PRESS_SHORT",    val: true}, function(obj) { xaktionCam(obj, "Klingelsensor "            ,"es klingelt",""   , foto_urlGarage,   "BildKlingel"); }); // Klingelsensor
    //on({id: "hm-rpc.0.MEQxxx.1.STATE",          val: true}, function(obj) { xaktionCam(obj, "Garagentor "               ,"wird geöffnet","" , foto_urlGarage,   "BildGaragentor"); }); // Garagentor
    //on({id: "hm-rpc.0.MEQxxx.1.STATE",          val: true}, function(obj) { xaktionCam(obj, "Haustür "                  ,"wird geöffnet","" , foto_urlGarage,   "BildHausTuer"); }); // Garagentor
    //on({id: "hm-rpc.0.MEQxxx.1.STATE",          val: true}, function(obj) { xaktionCam(obj, "Waschraum Tür "            ,"wird geöffnet","" , foto_urlGarten,   "BildWaschRaumTuer"); }); // Waschraumtüre
    
    // AlarmEreignis
    //on({id: "hm-rega.0.3047",  change:"ne"},                    function(obj) { xaktionCamAlle(obj, "!!! xxxx Alarm","ausgelöst xxxx !!!"); });
    //on({id: "hm-rega.0.1790",  change:"ne"},                    function(obj) { xaktionCamAlle(obj, "!!! Voralarm","ausgelöst!!!"); });
    

    Der BWM hat folgende Einstellung:

    Empfindlichkeit Auslösen bei "jedem" Sensor-Impuls

    Wahl des Sendeabstandes "klassisch"

    Sendeabstand "240s"

    Innerhalb des Sendeabstandes erkannte Bewegung senden "X"

    Helligkeitsfilter "8"

    Die übertragene Helligkeit ist das Minimum der letzten 8 Werte (Messung alle 6 Minuten)

    LED-Leuchtzeit (gn/rt) "0,01"s (0 - 1.27)

    Wenn der Bewegungsmelder eine Bewegung erkennt, wird ein Bild gemacht.

    Wird zwar nicht abgespeichert, aber das ist ein anderes Problem.

    Und dann von allein nach ~240s wird das Licht geschalten (also Lichtscript ausgeführt) und dann noch einmal das Foto-Script ausgeführt.

    Was beisst sich da?

    Die Einstellungen vom Bewegungsmelder?

    Log:

    javascript.0	2017-04-24 14:46:56.284	info	script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - Bild versendet/surveillance/Image/BildTerrasse.jpeg
    javascript.0	2017-04-24 14:46:50.372	warn	script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - Fehler beim Bild: BildTerrasse.jpegspeichern
    javascript.0	2017-04-24 14:46:50.290	info	script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - state = 1: Vorgarten Bewegungsmelder ausgelöst
    javascript.0	2017-04-24 14:46:50.290	info	script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - start
    javascript.0	2017-04-24 14:46:50.290	info	script.js.Haus.Bewegungsmelder_schaltet_Vorgarten_Licht: ---> Licht - Licht zu hell um anzuschalten da Helligkeit: 217 %
    javascript.0	2017-04-24 14:46:50.289	info	script.js.Haus.Bewegungsmelder_schaltet_Vorgarten_Licht: ---> Licht - Gallerie - ausgelöst durch Bewegungsmelder............
    javascript.0	2017-04-24 14:46:31.626	info	script.js.Haus.Anwesenheitscontrol: Anwesenheitsliste Baba
    javascript.0	2017-04-24 14:46:31.625	info	script.js.Haus.Anwesenheitscontrol: Anwesenheit genereller Status true
    javascript.0	2017-04-24 14:46:31.625	info	script.js.Haus.Anwesenheitscontrol: Anwesenheit Nadine false
    javascript.0	2017-04-24 14:46:31.624	info	script.js.Haus.Anwesenheitscontrol: Anwesenheit Jeannette false
    javascript.0	2017-04-24 14:46:31.623	info	script.js.Haus.Anwesenheitscontrol: Anwesenheit Max false
    javascript.0	2017-04-24 14:46:31.621	info	script.js.Haus.Anwesenheitscontrol: Anwesenheit Baba true
    javascript.0	2017-04-24 14:46:31.618	info	script.js.Haus.Anwesenheitscontrol: Ausloeser: Jeannette
    host.Datenserver2	2017-04-24 14:45:04.844	info	instance system.adapter.weatherunderground.0 terminated with code 0 (OK)
    weatherunderground.0	2017-04-24 14:45:01.531	info	starting. Version 1.0.2 in /volume2/homes/admin/opt/iobroker/node_modules/iobroker.weatherunderground, node: v4.4.2
    host.Datenserver2	2017-04-24 14:45:00.292	info	instance system.adapter.weatherunderground.0 started with pid 1333
    javascript.0	2017-04-24 14:45:00.239	info	script.js.Test.Servicemeldung: Anzahl Homematic-Servicemeldungen: 0
    javascript.0	2017-04-24 14:45:00.239	info	script.js.Test.Servicemeldung: Homematic-Servicemeldungen:
    javascript.0	2017-04-24 14:43:11.400	info	script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - CopyFiles ok
    javascript.0	2017-04-24 14:43:11.400	info	script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - CopyFiles err: undefined
    javascript.0	2017-04-24 14:43:11.397	info	script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - CopyFiles xBildpfad: /surveillance/Image/BildTerrasse.jpeg
    javascript.0	2017-04-24 14:43:08.666	info	script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - CopyFiles ok
    javascript.0	2017-04-24 14:43:08.666	info	script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - CopyFiles err: undefined
    javascript.0	2017-04-24 14:43:08.656	info	script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - CopyFiles xBildpfad: /surveillance/Image/BildVorgarten.jpeg
    javascript.0	2017-04-24 14:42:47.398	info	script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - Bild versendet/surveillance/Image/BildTerrasse.jpeg
    fritzdect.0	2017-04-24 14:42:47.314	info	polling! fritzdect is alive
    javascript.0	2017-04-24 14:42:44.656	info	script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - Bild versendet/surveillance/Image/BildVorgarten.jpeg
    javascript.0	2017-04-24 14:42:41.477	warn	script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - Fehler beim Bild: BildTerrasse.jpegspeichern
    javascript.0	2017-04-24 14:42:41.393	info	script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - state = 1: Vorgarten Bewegungsmelder ausgelöst
    javascript.0	2017-04-24 14:42:41.393	info	script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - start
    javascript.0	2017-04-24 14:42:41.393	info	script.js.Haus.Bewegungsmelder_schaltet_Vorgarten_Licht: ---> Licht - Licht zu hell um anzuschalten da Helligkeit: 215 %
    javascript.0	2017-04-24 14:42:41.392	info	script.js.Haus.Bewegungsmelder_schaltet_Vorgarten_Licht: ---> Licht - Gallerie - ausgelöst durch Bewegungsmelder............
    javascript.0	2017-04-24 14:42:38.726	warn	script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - Fehler beim Bild: BildVorgarten.jpegspeichern
    javascript.0	2017-04-24 14:42:38.650	info	script.js.common.IPCam_Bild_telegram_2: TelegramBild.xaktionCam - state = 1: Die Innentür wurde geöffnet
    

    Gruss Superdad

    CCU3

    iOBroker auf IntelNUC Proxmox

    1 Antwort Letzte Antwort
    0
    • eric2905E Offline
      eric2905E Offline
      eric2905
      schrieb am zuletzt editiert von
      #2

      Hi,

      ich bin zwar nicht der Scripter, aber etwas sehe ich:

      on({id: 'hm-rpc.0.MEQ0642577.1.MOTION',
          change: 'any' 
      }, function (obj) {                                                                                          // Bewegung überwachen
          var bewegung = getState('hm-rpc.0.MEQ0642577.1.MOTION').val;                // hier aber auch obj.newState.val
          var helligkeit = getState('hm-rpc.0.MEQ0642577.1.BRIGHTNESS').val;
          if (obj.newState.val === true) {                                                                  // Bewegung true
      

      Du fragst in der on-Command

      if (obj.newState.val === true) { 
      

      ab, aber ""newState" wird vorher nirgends definiert / gefüllt.

      Oder übersehe ich da was?

      Gruß,

      Eric

      Roses are red, violets are blue,

      if I listen to metal, my neighbours do too

      1 Antwort Letzte Antwort
      0
      • AlCalzoneA Offline
        AlCalzoneA Offline
        AlCalzone
        Developer
        schrieb am zuletzt editiert von
        #3

        obj(.newState) wird vom Callback der on-Überwachung übergeben, das ist schon ok so. Müsste identisch sein mit dem Inhalt der Variable bewegung.

        Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

        1 Antwort Letzte Antwort
        0
        • eric2905E Offline
          eric2905E Offline
          eric2905
          schrieb am zuletzt editiert von
          #4

          Wie gesagt, bin ich nicht der Scripter …

          Woher weiß die Routine, das "bewegung" und nicht "helligkeit" genommen werden soll?

          Ich sehe 2 Definitionen vor der if-Abfrage.

          Gruß,

          Eric

          Von unterwegs getippert

          Roses are red, violets are blue,

          if I listen to metal, my neighbours do too

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            Superdad
            schrieb am zuletzt editiert von
            #5

            Mit der Variable Helligkeit wird doch nur die Helligkeit überprüft.

            Also ob es dunkel genug ist zum einschalten.

            CCU3

            iOBroker auf IntelNUC Proxmox

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

              @eric2905:

              Wie gesagt, bin ich nicht der Scripter …

              Woher weiß die Routine, das "bewegung" und nicht "helligkeit" genommen werden soll?

              Ich sehe 2 Definitionen vor der if-Abfrage.

              Gruß,

              Eric

              Von unterwegs getippert `

              on({id: 'hm-rpc.0.MEQ0642577.1.MOTION',
                  change: 'any' 
              }, function (obj) {    
              

              reagiert nur auf Bewegung. Wenn auch auf jede Meldung, auch die Meldung, dass keine Bewegung stattfindet (warum "any" und nicht "ne"?). Mit der Helligkeit hat das nix zu tun. Die Helligkeit wird erst später und nur bei Bewegung abgefragt.

              Wie es im Kommentar schon steht sie die Werte vongetState('hm-rpc.0.MEQ0642577.1.MOTION').valund````
              obj.newState.val

              
              

              if (obj.newState.val === true) {
              kann man schön abkürzen mit
              if (obj.state.val) {

              
              Aber was genau ist das Problem? Beschreib nochmal den IST und den SOLL Zustand.
              
              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
              • S Offline
                S Offline
                Superdad
                schrieb am zuletzt editiert von
                #7

                Hallo pix,

                Also, das Script mit der Kamera und der Lichtschaltung im Garten werden beide ausgeführt.

                Aber nach 240s werden beide Scripte von selbst noch einmal ausgeführt werden.

                Ich denke, dass es mit dem Bewegungsmelder zusammen hängt.

                CCU3

                iOBroker auf IntelNUC Proxmox

                1 Antwort Letzte Antwort
                0
                • S Offline
                  S Offline
                  Superdad
                  schrieb am zuletzt editiert von
                  #8

                  Das Script "Foto von Cam an Telegram" ist unter common angelegt.

                  Das Script "Licht schalten" unter der Gruppe Haus.

                  Falls das hilft?

                  CCU3

                  iOBroker auf IntelNUC Proxmox

                  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

                  737

                  Online

                  32.6k

                  Benutzer

                  82.2k

                  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