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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Kamera Steuerung (PTZ) mit Bewegungsmelder htp

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    381

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

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

Kamera Steuerung (PTZ) mit Bewegungsmelder htp

Scheduled Pinned Locked Moved JavaScript
45 Posts 3 Posters 3.6k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • paul53P paul53

    @kasperfunsurfer sagte:

    der Bewegungsmelder wird nicht zurückgesetzt

    Wenn er sich zurücksetzen läßt, dann füge ein setState() ein.

          timer = setTimeout(function() {
             request(url + 'pushhostalarm');
             setState(idMotion, false);
             timer = null;
          }, 30000); // nach 30 s
    
    K Offline
    K Offline
    kasperfunsurfer
    wrote on last edited by kasperfunsurfer
    #10

    @paul53 der Bewegungsmelder wird immer noch nicht zurückgesetzt. Merkwürdiger weise geht das bei dem Script was ich als erstes eingefügt habe. Die Cgi Kommandos sind leider auch unterschiedlich so das man ein url nicht nehmen kann.

    ………./CGI-COMMAND/param.cgi?cmd=pushhostalarm
    ………./param.cgi?cmd=preset&-act=goto&-number=

    paul53P 1 Reply Last reply
    0
    • K kasperfunsurfer

      @paul53 der Bewegungsmelder wird immer noch nicht zurückgesetzt. Merkwürdiger weise geht das bei dem Script was ich als erstes eingefügt habe. Die Cgi Kommandos sind leider auch unterschiedlich so das man ein url nicht nehmen kann.

      ………./CGI-COMMAND/param.cgi?cmd=pushhostalarm
      ………./param.cgi?cmd=preset&-act=goto&-number=

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #11

      @kasperfunsurfer sagte:

      Merkwürdiger weise geht das bei dem Script was ich als erstes eingefügt habe.

      In dem Skript wird der Datenpunkt mit ack = true zurückgesetzt, nicht der Bewegungsmelder, denn an den wird nicht gesendet.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      K 1 Reply Last reply
      0
      • paul53P paul53

        @kasperfunsurfer sagte:

        Merkwürdiger weise geht das bei dem Script was ich als erstes eingefügt habe.

        In dem Skript wird der Datenpunkt mit ack = true zurückgesetzt, nicht der Bewegungsmelder, denn an den wird nicht gesendet.

        K Offline
        K Offline
        kasperfunsurfer
        wrote on last edited by
        #12

        @paul53 ich meinte das hier.
        Ich habe leider zu wenig Ahnung davon....

        // Wenn Bewegungsobjekt geändert wurde erkannt
        
        on({id: 'mihome.0.devices.sensor_motion_aq2_1************.state', change: "ne"}, function (obj) {
        
          var value = obj.state.val;
        
          var oldValue = obj.oldState.val;
        
          // Wenn Bewegung erkannt
        
          if ((function (){var val = getState("mihome.0.devices.sensor_motion_aq2_1*state").val; if (val === 'true') return true; if (val === 'false') return false; return !!val;})() == true) {
        
            
        
            // Bewegungsmelder "zurücksetzen"
        
              setStateDelayed("mihome.0.devices.sensor_motion_aq2_1*************.state", false, 5000, true);
        
            
        
         } 
        
        });
        
        paul53P 1 Reply Last reply
        0
        • K kasperfunsurfer

          @paul53 ich meinte das hier.
          Ich habe leider zu wenig Ahnung davon....

          // Wenn Bewegungsobjekt geändert wurde erkannt
          
          on({id: 'mihome.0.devices.sensor_motion_aq2_1************.state', change: "ne"}, function (obj) {
          
            var value = obj.state.val;
          
            var oldValue = obj.oldState.val;
          
            // Wenn Bewegung erkannt
          
            if ((function (){var val = getState("mihome.0.devices.sensor_motion_aq2_1*state").val; if (val === 'true') return true; if (val === 'false') return false; return !!val;})() == true) {
          
              
          
              // Bewegungsmelder "zurücksetzen"
          
                setStateDelayed("mihome.0.devices.sensor_motion_aq2_1*************.state", false, 5000, true);
          
              
          
           } 
          
          });
          
          paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by
          #13

          @kasperfunsurfer sagte:

          ich meinte das hier.

          Und damit wird der BWM zurück gesetzt ?

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Reply Last reply
          0
          • K Offline
            K Offline
            kasperfunsurfer
            wrote on last edited by
            #14

            Ja genau damit Funktioniert es komischer weise.

            1 Reply Last reply
            0
            • paul53P paul53

              @kasperfunsurfer sagte:

              der Bewegungsmelder wird nicht zurückgesetzt

              Wenn er sich zurücksetzen läßt, dann füge ein setState() ein.

                    timer = setTimeout(function() {
                       request(url + 'pushhostalarm');
                       setState(idMotion, false);
                       timer = null;
                    }, 30000); // nach 30 s
              
              K Offline
              K Offline
              kasperfunsurfer
              wrote on last edited by kasperfunsurfer
              #15

              @paul53 sagte in Kamera Steuerung (PTZ) mit Bewegungsmelder htp:

              timer = setTimeout(function() { request(url + 'pushhostalarm'); setState(idMotion, false); timer = null; }, 30000); // nach 30 s

              Wenn ich das einfüge kommt folgende Meldung:
              20:06:05.975 error javascript.0 script.js.Skript_4 compile failed:
              at script.js.Skript_4:25

              vielleicht liegt es ja daran

              paul53P 1 Reply Last reply
              0
              • K kasperfunsurfer

                @paul53 sagte in Kamera Steuerung (PTZ) mit Bewegungsmelder htp:

                timer = setTimeout(function() { request(url + 'pushhostalarm'); setState(idMotion, false); timer = null; }, 30000); // nach 30 s

                Wenn ich das einfüge kommt folgende Meldung:
                20:06:05.975 error javascript.0 script.js.Skript_4 compile failed:
                at script.js.Skript_4:25

                vielleicht liegt es ja daran

                paul53P Offline
                paul53P Offline
                paul53
                wrote on last edited by
                #16

                @kasperfunsurfer sagte

                compile failed: at script.js.Skript_4:25

                ?? Das Skript hat doch keine 25 Zeilen.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                K 1 Reply Last reply
                0
                • paul53P paul53

                  @kasperfunsurfer sagte

                  compile failed: at script.js.Skript_4:25

                  ?? Das Skript hat doch keine 25 Zeilen.

                  K Offline
                  K Offline
                  kasperfunsurfer
                  wrote on last edited by
                  #17

                  @paul53 nee hat es auch nicht.....

                  const idMotion = ["mihome.0.devices.sensor_motion_aq2_1***.state","mihome.0.devices.sensor_motion_aq2_1****.state"];
                  const url = 'http://*****@192.168.2.110:81/param.cgi?cmd=';
                  var timer = null;
                  
                   
                  
                  on(idMotion, function(dp) {
                  
                     if(dp.state.val && !timer) { // Bewegung erkannt
                  
                        request(url + 'preset&-act=goto&-number=1');
                  
                        timer = setTimeout(function() {
                  
                           request(url + 'pushhostalarm');
                  
                           setState(idMotion, false);
                  
                           timer = null;
                  
                        }, 30000); // nach 30 s
                  

                  20:20:09.460 info javascript.0 Stop script script.js.Skript_3
                  20:20:10.695 info javascript.0 Start javascript script.js.Skript_3
                  20:20:10.696 error javascript.0 script.js.Skript_3 compile failed:
                  at script.js.Skript_3:27

                  paul53P 2 Replies Last reply
                  0
                  • K kasperfunsurfer

                    @paul53 nee hat es auch nicht.....

                    const idMotion = ["mihome.0.devices.sensor_motion_aq2_1***.state","mihome.0.devices.sensor_motion_aq2_1****.state"];
                    const url = 'http://*****@192.168.2.110:81/param.cgi?cmd=';
                    var timer = null;
                    
                     
                    
                    on(idMotion, function(dp) {
                    
                       if(dp.state.val && !timer) { // Bewegung erkannt
                    
                          request(url + 'preset&-act=goto&-number=1');
                    
                          timer = setTimeout(function() {
                    
                             request(url + 'pushhostalarm');
                    
                             setState(idMotion, false);
                    
                             timer = null;
                    
                          }, 30000); // nach 30 s
                    

                    20:20:09.460 info javascript.0 Stop script script.js.Skript_3
                    20:20:10.695 info javascript.0 Start javascript script.js.Skript_3
                    20:20:10.696 error javascript.0 script.js.Skript_3 compile failed:
                    at script.js.Skript_3:27

                    paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by paul53
                    #18

                    @kasperfunsurfer sagte:

                    compile failed: at script.js.Skript_3:27

                    Der Fehler muss in Zeile 27 sein ! Bei einem Compiler-Fehler wird das Skript nicht gestartet, führt also auch nichts aus.
                    Lösche bitte die überflüssigen Leerzeilen, die beim Kopieren aus dem Forum entstehen.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    1 Reply Last reply
                    0
                    • K kasperfunsurfer

                      @paul53 nee hat es auch nicht.....

                      const idMotion = ["mihome.0.devices.sensor_motion_aq2_1***.state","mihome.0.devices.sensor_motion_aq2_1****.state"];
                      const url = 'http://*****@192.168.2.110:81/param.cgi?cmd=';
                      var timer = null;
                      
                       
                      
                      on(idMotion, function(dp) {
                      
                         if(dp.state.val && !timer) { // Bewegung erkannt
                      
                            request(url + 'preset&-act=goto&-number=1');
                      
                            timer = setTimeout(function() {
                      
                               request(url + 'pushhostalarm');
                      
                               setState(idMotion, false);
                      
                               timer = null;
                      
                            }, 30000); // nach 30 s
                      

                      20:20:09.460 info javascript.0 Stop script script.js.Skript_3
                      20:20:10.695 info javascript.0 Start javascript script.js.Skript_3
                      20:20:10.696 error javascript.0 script.js.Skript_3 compile failed:
                      at script.js.Skript_3:27

                      paul53P Offline
                      paul53P Offline
                      paul53
                      wrote on last edited by
                      #19

                      @kasperfunsurfer

                      const idMotion = ["mihome.0.devices.sensor_motion_aq2_158****.state","mihome.0.devices.sensor_motion_aq2_158****.state"];
                      const url = 'http://192.168.2.110:81'; 
                      var timer = null;
                       
                      on(idMotion, function(dp) {
                         if(dp.state.val && !timer) { // Bewegung erkannt
                            request(url + '/param.cgi?cmd=preset&-act=set&-status=1&-number=0');
                            timer = setTimeout(function() {
                               request(url + '/CGI-COMMAND/param.cgi?cmd=pushhostalarm');
                               setState(idMotion, false);
                               timer = null;
                            }, 30000); // nach 30 s
                         }
                      });
                      

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      1 Reply Last reply
                      0
                      • K Offline
                        K Offline
                        kasperfunsurfer
                        wrote on last edited by kasperfunsurfer
                        #20
                        const idMotion = ["mihome.0.devices.sensor_motion_aq2_1***.state","mihome.0.devices.sensor_motion_aq2_1****.state"];
                        const url = 'http://***@192.168.2.110:81'; 
                        var timer = null;
                        
                         
                        
                        on(idMotion, function(dp) {
                        
                           if(dp.state.val && !timer) { // Bewegung erkannt
                        
                              request(url + '/param.cgi?cmd=preset&-act=goto&-number=1');
                        
                              timer = setTimeout(function() {
                        
                                 request(url + '/CGI-COMMAND/param.cgi?cmd=pushhostalarm');
                        
                                 setState(idMotion, false);
                        
                                 timer = null;
                        
                              }, 10000); // nach 30 s
                        
                           }
                        
                        });
                        

                        20:47:37.482 info javascript.0 Start javascript script.js.Skript_56_neuer_versuch
                        20:47:37.483 info javascript.0 script.js.Skript_56_neuer_versuch: registered 2 subscriptions and 0 schedules
                        20:47:54.322 warn javascript.0 at Object.<anonymous> (script.js.Skript_56_neuer_versuch:17:10)

                        Sieht schon besser aus. Aber der Bewegungsmelder wird immer noch nicht zurückgesetzt......

                        paul53P 1 Reply Last reply
                        0
                        • K kasperfunsurfer
                          const idMotion = ["mihome.0.devices.sensor_motion_aq2_1***.state","mihome.0.devices.sensor_motion_aq2_1****.state"];
                          const url = 'http://***@192.168.2.110:81'; 
                          var timer = null;
                          
                           
                          
                          on(idMotion, function(dp) {
                          
                             if(dp.state.val && !timer) { // Bewegung erkannt
                          
                                request(url + '/param.cgi?cmd=preset&-act=goto&-number=1');
                          
                                timer = setTimeout(function() {
                          
                                   request(url + '/CGI-COMMAND/param.cgi?cmd=pushhostalarm');
                          
                                   setState(idMotion, false);
                          
                                   timer = null;
                          
                                }, 10000); // nach 30 s
                          
                             }
                          
                          });
                          

                          20:47:37.482 info javascript.0 Start javascript script.js.Skript_56_neuer_versuch
                          20:47:37.483 info javascript.0 script.js.Skript_56_neuer_versuch: registered 2 subscriptions and 0 schedules
                          20:47:54.322 warn javascript.0 at Object.<anonymous> (script.js.Skript_56_neuer_versuch:17:10)

                          Sieht schon besser aus. Aber der Bewegungsmelder wird immer noch nicht zurückgesetzt......

                          paul53P Offline
                          paul53P Offline
                          paul53
                          wrote on last edited by paul53
                          #21

                          @kasperfunsurfer sagte:

                          Aber der Bewegungsmelder wird immer noch nicht zurückgesetzt

                          Ja, na klar ! idMotion ist ein Array von IDs. Ersetze bitte

                                   setState(idMotion, false);
                          

                          durch

                                   setState(dp.id, false);
                          

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          K 1 Reply Last reply
                          0
                          • paul53P paul53

                            @kasperfunsurfer sagte:

                            Aber der Bewegungsmelder wird immer noch nicht zurückgesetzt

                            Ja, na klar ! idMotion ist ein Array von IDs. Ersetze bitte

                                     setState(idMotion, false);
                            

                            durch

                                     setState(dp.id, false);
                            
                            K Offline
                            K Offline
                            kasperfunsurfer
                            wrote on last edited by
                            #22

                            @paul53 sagte in Kamera Steuerung (PTZ) mit Bewegungsmelder htp:

                            setState(idMotion, false);

                            Die Fehlermeldung ist dann weg. Die Bewegungsmelder setzen sich immer noch nicht zurück. Das nächste Problem ist dann die Kamera nicht mehr in Position fährt wenn ich ```setState(dp.id, false); eingebe.
                            Achso vielen DANK für den gedult :+1: :+1:

                            paul53P 1 Reply Last reply
                            0
                            • K kasperfunsurfer

                              @paul53 sagte in Kamera Steuerung (PTZ) mit Bewegungsmelder htp:

                              setState(idMotion, false);

                              Die Fehlermeldung ist dann weg. Die Bewegungsmelder setzen sich immer noch nicht zurück. Das nächste Problem ist dann die Kamera nicht mehr in Position fährt wenn ich ```setState(dp.id, false); eingebe.
                              Achso vielen DANK für den gedult :+1: :+1:

                              paul53P Offline
                              paul53P Offline
                              paul53
                              wrote on last edited by
                              #23

                              @kasperfunsurfer
                              Füge mal ein Log ein, um zu sehen, was passiert:

                              on(idMotion, function(dp) {
                                 log(dp.id + ': ' + dp.state.val); // eingefügte Log-Zeile 
                                 if(dp.state.val && !timer) { // Bewegung erkannt
                              

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                              1 Reply Last reply
                              0
                              • K Offline
                                K Offline
                                kasperfunsurfer
                                wrote on last edited by kasperfunsurfer
                                #24

                                @paul53 sagte in Kamera Steuerung (PTZ) mit Bewegungsmelder htp:

                                setState(dp.id, false);

                                Mal ohne Witz was ist jetzt anders ? Habe nur die Log Zeile eingefügt und auf einmal geht alles wie es soll !!! Ging vorher die ganze Zeit nicht richtig. Echt komisch !!!

                                21:25:14.607 info javascript.0 Stop script script.js.Skript_56_neuer_versuch
                                21:25:15.987 info javascript.0 Start javascript script.js.Skript_56_neuer_versuch
                                21:25:15.988 info javascript.0 script.js.Skript_56_neuer_versuch: registered 2 subscriptions and 0 schedules
                                21:25:28.688 info javascript.0 script.js.Skript_56_neuer_versuch: mihome.0.devices.sensor_motion_aq2_158d000236b7e6.state: true
                                21:25:38.703 info javascript.0 script.js.Skript_56_neuer_versuch: mihome.0.devices.sensor_motion_aq2_158d000236b7e6.state: false
                                21:25:57.158 info javascript.0 script.js.Skript_56_neuer_versuch: mihome.0.devices.sensor_motion_aq2_158d0002e922d3.state: true
                                21:26:07.167 info javascript.0 script.js.Skript_56_neuer_versuch: mihome.0.devices.sensor_motion_aq2_158d0002e922d3.state: false

                                1 Reply Last reply
                                0
                                • K Offline
                                  K Offline
                                  kasperfunsurfer
                                  wrote on last edited by
                                  #25

                                  @kasperfunsurfer sagte in Kamera Steuerung (PTZ) mit Bewegungsmelder htp:

                                  request(url + '/CGI-COMMAND/param.cgi?cmd=pushhostalarm');

                                  Ist es möglich den Befehl 5 sec verzögert abzusetzen ? Die beiden Befehle kommen zu schnell hintereinander.

                                  paul53P 1 Reply Last reply
                                  0
                                  • K kasperfunsurfer

                                    @kasperfunsurfer sagte in Kamera Steuerung (PTZ) mit Bewegungsmelder htp:

                                    request(url + '/CGI-COMMAND/param.cgi?cmd=pushhostalarm');

                                    Ist es möglich den Befehl 5 sec verzögert abzusetzen ? Die beiden Befehle kommen zu schnell hintereinander.

                                    paul53P Offline
                                    paul53P Offline
                                    paul53
                                    wrote on last edited by
                                    #26

                                    @kasperfunsurfer sagte:

                                    Die beiden Befehle kommen zu schnell hintereinander.

                                    Welche beiden Befehle ?

                                    request(url + '/CGI-COMMAND/param.cgi?cmd=pushhostalarm');
                                    

                                    wird gegenüber dem anderen request() mit der angegebenen Verzögerung (10 s) ausgeführt. Wenn das zu kurz ist, dann erhöhe die Verzögerungszeit.

                                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                    1 Reply Last reply
                                    0
                                    • K Offline
                                      K Offline
                                      kasperfunsurfer
                                      wrote on last edited by
                                      #27
                                      request(url + '/CGI-COMMAND/param.cgi?cmd=pushhostalarm');
                                            
                                       timer = setTimeout(function() {
                                      
                                      
                                      timer = setTimeout(function() {
                                      
                                       request(url + '/CGI-COMMAND/param.cgi?cmd=pushhostalarm');
                                      

                                      Wo ist her der unterschied. Wenn ich es anders herum schreibe ist keine Verzögerung gegenüber de, anderen request ?

                                      paul53P 1 Reply Last reply
                                      0
                                      • K kasperfunsurfer
                                        request(url + '/CGI-COMMAND/param.cgi?cmd=pushhostalarm');
                                              
                                         timer = setTimeout(function() {
                                        
                                        
                                        timer = setTimeout(function() {
                                        
                                         request(url + '/CGI-COMMAND/param.cgi?cmd=pushhostalarm');
                                        

                                        Wo ist her der unterschied. Wenn ich es anders herum schreibe ist keine Verzögerung gegenüber de, anderen request ?

                                        paul53P Offline
                                        paul53P Offline
                                        paul53
                                        wrote on last edited by
                                        #28

                                        @kasperfunsurfer
                                        Die 3 Befehle innerhalb der Timeout-Callback-Funktion werden mit der angegebenen Verzögerung ausgeführt.

                                              timer = setTimeout(function() {
                                                 request(url + '/CGI-COMMAND/param.cgi?cmd=pushhostalarm');
                                                 setState(dp.id, false);
                                                 timer = null;
                                              }, 30000); // nach 30 s
                                        

                                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                        1 Reply Last reply
                                        0
                                        • K Offline
                                          K Offline
                                          kasperfunsurfer
                                          wrote on last edited by
                                          #29

                                          Alles klaro danke dir.
                                          Wie würde das Script aussehen wenn ich es erst durch
                                          var Abwesend = "hm-rega.950"; Aktivieren würde ?

                                          Sprich ich schalte auf Abwesend auf True und dann beginnt das Script.

                                          paul53P 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          658

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe