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. Tester
  4. Test Adapter google-sharedlocations2

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Test Adapter google-sharedlocations2

Geplant Angeheftet Gesperrt Verschoben Tester
31 Beiträge 5 Kommentatoren 501 Aufrufe 10 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.
  • David G.D David G.

    @Garfonso sagte in Test Adapter google-sharedlocations2:

    Ja, hab ich auch mehrere bekommen.

    Man kann puppeteer ja einen Arbeitsordner mitgeben, um Session fortsetzen zu können.Evtl bekommt man es damit hin dass nicht jede Anmeldung als neues Gerät erkannt wird. Oder hast du es extra so gemacht, dass sicher ein login mit Passwort erscheint?

    Edit.
    Evtl nur mit Pw einloggen wenn das Coockie abgelaufen ist. Zum Ordner laut Gemini:

    Ja, das ist sogar eine sehr gute Idee! Bei Puppeteer nennt sich das userDataDir.
    ​Wenn du diesen Ordner angibst, speichert Chrome dort das gesamte Browser-Profil – inklusive Cookies, Cache und vor allem den Session-Status. Beim nächsten Start greift Puppeteer auf diesen Ordner zu. Google sieht dann keinen "völlig neuen" Browser, was die Wahrscheinlichkeit massiv erhöht, dass du eingeloggt bleibst oder keine erneute 2FA-Abfrage kommt.
    ​So baust du es in deine Cookie.ts ein
    ​Du musst die puppeteer.launch-Optionen in der Methode loginToGetNewCookies anpassen.
    ​1. Pfad definieren
    ​Zuerst solltest du einen Pfad festlegen. Da es ein ioBroker-Adapter ist, bietet sich ein Ordner im Adapter-Verzeichnis an:

    const path = require('path');
    // Im ioBroker-Kontext sinnvoll: ein Ordner im Instanz-Verzeichnis
    const dataDir = path.join(utils.getAbsoluteDefaultDataDir(), 'google-sharedlocations2-profile');
    
    1. Den Launch-Befehl anpassen
      ​Ändere den Block in deiner loginToGetNewCookies wie folgt ab:
    this.browser = await puppeteer.launch({
        headless: true,
        userDataDir: './google_profile', // Hier wird die Session gespeichert
        args: [
            '--no-sandbox', 
            '--disable-setuid-sandbox', 
            '--disable-blink-features=AutomationControlled'
        ],
        ignoreDefaultArgs: ['--enable-automation'],
    });
    
    

    Warum das für dein Script wichtig ist:
    ​Vermeidung von 2FA: Wenn du dich einmal erfolgreich eingeloggt hast (vielleicht indem du headless: false kurzzeitig zum Testen nutzt), erkennt Google das "Gerät" beim nächsten Mal wieder.
    ​Cookie-Persistenz: Selbst wenn das Script abstürzt, sind die Cookies noch im userDataDir gespeichert und müssen nicht jedes Mal neu per Tipp-Simulation erzeugt werden.
    ​Glaubwürdigkeit: Ein Browser mit Historie und Cache wirkt für die Google-Sicherheitsalgorithmen weniger wie ein bösartiger Bot.

    EDIT 2
    Mein Script nutzt die Option eines Cookie-Refresh. Evtl kann der Adapter erstmal versuchen, sich mit dem per User und Pw abgerufenen Coockie zu verbinden und dieses zu aktualisieren, und das nächste mal dann mit diesem usw. Wenn das nicht klappt neu einloggen mit user und pw.

    GarfonsoG Offline
    GarfonsoG Offline
    Garfonso
    Developer
    schrieb am zuletzt editiert von
    #20

    @David-G.

    Äh.. ja.. das mit dem Cookie-Refresh hatte ich eigentlich auch vor. Habe ich irgendwie vergessen zu implementieren. :-)
    Data-Dir hab ich jetzt auch mal hinzugefügt.

    Auf npm / Github sollte eine 0.2.0 mit den Sachen erscheinen. Intern hat sich nochmal einiges geändert. Bei mir läufts gerade ein "refresh im Browser" hab ich aber noch nicht testen können (weiß grad nicht genau, wie, vielleicht muss ich da noch einen state für basteln oder so kopfkratz). Aber nach dem Login knallt chrome Daten in den Ordern.

    Ultimativer Lovelace Leitfaden: https://forum.iobroker.net/topic/35937/der-ultimative-iobroker-lovelace-leitfaden-dokumentation

    Lovelace UI Beispiele: https://forum.iobroker.net/topic/35950/zeigt-her-eure-lovelace-visualisierung

    David G.D 1 Antwort Letzte Antwort
    1
    • GarfonsoG Garfonso

      @David-G.

      Äh.. ja.. das mit dem Cookie-Refresh hatte ich eigentlich auch vor. Habe ich irgendwie vergessen zu implementieren. :-)
      Data-Dir hab ich jetzt auch mal hinzugefügt.

      Auf npm / Github sollte eine 0.2.0 mit den Sachen erscheinen. Intern hat sich nochmal einiges geändert. Bei mir läufts gerade ein "refresh im Browser" hab ich aber noch nicht testen können (weiß grad nicht genau, wie, vielleicht muss ich da noch einen state für basteln oder so kopfkratz). Aber nach dem Login knallt chrome Daten in den Ordern.

      David G.D Online
      David G.D Online
      David G.
      schrieb am zuletzt editiert von David G.
      #21

      @Garfonso

      Wird grün und holt Daten.

      Eine Frage.
      Ich sende die Koordinaten mit einem Blockly an Places, da ich dort schon User habe die anders benannt sind.

      Wenn ich mit dem Adapter die Daten an Places sende wird mein Log voll gehauen. Bei meinem Blockly kommt nichts. Liegt nicht am Parralelbetrieb,das Blockly ist deaktiviert.

      places.0
      2026-02-04 06:22:46.950	info	Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770182327339,"address":"","date":"2026-02-04 06:18:47","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
      
      places.0
      2026-02-04 06:22:46.950	warn	Found a newer place for this user: skipping update
      
      places.0
      2026-02-04 06:22:46.856	info	Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182551298,"address":"","date":"2026-02-04 06:22:31","atHome":true,"distance":8,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
      
      places.0
      2026-02-04 06:21:46.382	info	Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770182327339,"address":"","date":"2026-02-04 06:18:47","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
      
      places.0
      2026-02-04 06:21:46.382	warn	Found a newer place for this user: skipping update
      
      places.0
      2026-02-04 06:21:46.334	info	Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182391556,"address":"","date":"2026-02-04 06:19:51","atHome":true,"distance":4,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
      
      places.0
      2026-02-04 06:21:46.334	warn	Found a newer place for this user: skipping update
      
      places.0
      2026-02-04 06:20:45.903	info	Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770182327339,"address":"","date":"2026-02-04 06:18:47","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
      
      places.0
      2026-02-04 06:20:45.903	warn	Found a newer place for this user: skipping update
      
      places.0
      2026-02-04 06:20:45.796	info	Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182391556,"address":"","date":"2026-02-04 06:19:51","atHome":true,"distance":4,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
      
      places.0
      2026-02-04 06:19:45.236	info	Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770182327339,"address":"","date":"2026-02-04 06:18:47","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
      
      places.0
      2026-02-04 06:19:45.188	info	Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182316430,"address":"","date":"2026-02-04 06:18:36","atHome":true,"distance":4,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
      
      places.0
      2026-02-04 06:19:45.188	warn	Found a newer place for this user: skipping update
      
      places.0
      2026-02-04 06:18:44.768	info	Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770181996417,"address":"","date":"2026-02-04 06:13:16","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
      
      places.0
      2026-02-04 06:18:44.768	warn	Found a newer place for this user: skipping update
      
      places.0
      2026-02-04 06:18:44.675	info	Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182316430,"address":"","date":"2026-02-04 06:18:36","atHome":true,"distance":4,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
      
      places.0
      2026-02-04 06:17:43.814	info	Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770181996417,"address":"","date":"2026-02-04 06:13:16","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
      
      places.0
      2026-02-04 06:17:43.814	warn	Found a newer place for this user: skipping update
      
      places.0
      2026-02-04 06:17:43.722	info	Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182251214,"address":"","date":"2026-02-04 06:17:31","atHome":true,"distance":7,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
      

      Zeigt eure Lovelace-Visualisierung klick
      (Auch ideal um sich Anregungen zu holen)

      Meine Tabellen für eure Visualisierung klick

      GarfonsoG 1 Antwort Letzte Antwort
      0
      • David G.D David G.

        @Garfonso

        Wird grün und holt Daten.

        Eine Frage.
        Ich sende die Koordinaten mit einem Blockly an Places, da ich dort schon User habe die anders benannt sind.

        Wenn ich mit dem Adapter die Daten an Places sende wird mein Log voll gehauen. Bei meinem Blockly kommt nichts. Liegt nicht am Parralelbetrieb,das Blockly ist deaktiviert.

        places.0
        2026-02-04 06:22:46.950	info	Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770182327339,"address":"","date":"2026-02-04 06:18:47","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
        
        places.0
        2026-02-04 06:22:46.950	warn	Found a newer place for this user: skipping update
        
        places.0
        2026-02-04 06:22:46.856	info	Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182551298,"address":"","date":"2026-02-04 06:22:31","atHome":true,"distance":8,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
        
        places.0
        2026-02-04 06:21:46.382	info	Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770182327339,"address":"","date":"2026-02-04 06:18:47","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
        
        places.0
        2026-02-04 06:21:46.382	warn	Found a newer place for this user: skipping update
        
        places.0
        2026-02-04 06:21:46.334	info	Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182391556,"address":"","date":"2026-02-04 06:19:51","atHome":true,"distance":4,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
        
        places.0
        2026-02-04 06:21:46.334	warn	Found a newer place for this user: skipping update
        
        places.0
        2026-02-04 06:20:45.903	info	Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770182327339,"address":"","date":"2026-02-04 06:18:47","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
        
        places.0
        2026-02-04 06:20:45.903	warn	Found a newer place for this user: skipping update
        
        places.0
        2026-02-04 06:20:45.796	info	Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182391556,"address":"","date":"2026-02-04 06:19:51","atHome":true,"distance":4,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
        
        places.0
        2026-02-04 06:19:45.236	info	Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770182327339,"address":"","date":"2026-02-04 06:18:47","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
        
        places.0
        2026-02-04 06:19:45.188	info	Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182316430,"address":"","date":"2026-02-04 06:18:36","atHome":true,"distance":4,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
        
        places.0
        2026-02-04 06:19:45.188	warn	Found a newer place for this user: skipping update
        
        places.0
        2026-02-04 06:18:44.768	info	Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770181996417,"address":"","date":"2026-02-04 06:13:16","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
        
        places.0
        2026-02-04 06:18:44.768	warn	Found a newer place for this user: skipping update
        
        places.0
        2026-02-04 06:18:44.675	info	Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182316430,"address":"","date":"2026-02-04 06:18:36","atHome":true,"distance":4,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
        
        places.0
        2026-02-04 06:17:43.814	info	Processed message, returning result: {"user":"Ann-Christin","latitude":51.1234567,"longitude":9.6543210,"timestamp":1770181996417,"address":"","date":"2026-02-04 06:13:16","atHome":true,"distance":6,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
        
        places.0
        2026-02-04 06:17:43.814	warn	Found a newer place for this user: skipping update
        
        places.0
        2026-02-04 06:17:43.722	info	Processed message, returning result: {"user":"David G.","latitude":51.1234000,"longitude":9.6543000,"timestamp":1770182251214,"address":"","date":"2026-02-04 06:17:31","atHome":true,"distance":7,"name":"Home","elevation":0,"routeDistance":"","routeDuration":"","routeDurationWithTraffic":""}
        
        GarfonsoG Offline
        GarfonsoG Offline
        Garfonso
        Developer
        schrieb am zuletzt editiert von
        #22

        @David-G. sagte in Test Adapter google-sharedlocations2:

        Wenn ich mit dem Adapter die Daten an Places sende wird mein Log voll gehauen. Bei meinem Blockly kommt nichts. Liegt nicht am Parralelbetrieb,das Blockly ist deaktiviert.

        Ja, wenn du die Timestamps vergleichst, sieht man, wo es herkommt. Ich setze überall den timestamp, den Google mitliefert. Der scheint durchaus mal länger gleich zu bleiben. Passt ja auch, wenn man manuell guckt, steht da ja auch manchmal "vor x Minuten" oder so. Ist halt kein Realtime. Wenn die Position aber schon älter ist als das Abrufinterval, dann ist der timestamp der Position gleich und das teilt Places da mit.

        Theoretisch müsste ich den timestamp prüfen und das update ausfallen lassen, wenn der sich nicht geändert hat.

        In deinem blockly setzt du vermutlich da einfach den aktuellen Zeitpunkt. IIRC hat das der alte Adapter auch gemacht. Aber eigentlich muss places ja kein Update machen, wenn es eh keine neue Position gibt.

        Ultimativer Lovelace Leitfaden: https://forum.iobroker.net/topic/35937/der-ultimative-iobroker-lovelace-leitfaden-dokumentation

        Lovelace UI Beispiele: https://forum.iobroker.net/topic/35950/zeigt-her-eure-lovelace-visualisierung

        David G.D 1 Antwort Letzte Antwort
        0
        • GarfonsoG Garfonso

          @David-G. sagte in Test Adapter google-sharedlocations2:

          Wenn ich mit dem Adapter die Daten an Places sende wird mein Log voll gehauen. Bei meinem Blockly kommt nichts. Liegt nicht am Parralelbetrieb,das Blockly ist deaktiviert.

          Ja, wenn du die Timestamps vergleichst, sieht man, wo es herkommt. Ich setze überall den timestamp, den Google mitliefert. Der scheint durchaus mal länger gleich zu bleiben. Passt ja auch, wenn man manuell guckt, steht da ja auch manchmal "vor x Minuten" oder so. Ist halt kein Realtime. Wenn die Position aber schon älter ist als das Abrufinterval, dann ist der timestamp der Position gleich und das teilt Places da mit.

          Theoretisch müsste ich den timestamp prüfen und das update ausfallen lassen, wenn der sich nicht geändert hat.

          In deinem blockly setzt du vermutlich da einfach den aktuellen Zeitpunkt. IIRC hat das der alte Adapter auch gemacht. Aber eigentlich muss places ja kein Update machen, wenn es eh keine neue Position gibt.

          David G.D Online
          David G.D Online
          David G.
          schrieb am zuletzt editiert von David G.
          #23

          @Garfonso

          Das wird es sein....
          Mein Blockly wartet auf eine Veränderung damit es triggert. Wartet dann ein paar ms (sonst ist ein Wert manchmal noch der alte wenn es zu schnell ist) und sendet die Daten an palces.

          Edit
          Mache es jetzt aber über deinen Adapter, hab kurz gebraucht zu kapieren wie in Places das mit dem Namen ersetzt klappt. Hab den Namen immer wie in den DPs angegeben. Aber da werden bei Leerstelle _ eingebaut. Deshalb hatte es nur geklappt.

          EDIT 2
          Wo finde ich denn den UserDataDir? Wollte mal reinschauen.

          Zeigt eure Lovelace-Visualisierung klick
          (Auch ideal um sich Anregungen zu holen)

          Meine Tabellen für eure Visualisierung klick

          GarfonsoG 1 Antwort Letzte Antwort
          0
          • David G.D David G.

            @Garfonso

            Das wird es sein....
            Mein Blockly wartet auf eine Veränderung damit es triggert. Wartet dann ein paar ms (sonst ist ein Wert manchmal noch der alte wenn es zu schnell ist) und sendet die Daten an palces.

            Edit
            Mache es jetzt aber über deinen Adapter, hab kurz gebraucht zu kapieren wie in Places das mit dem Namen ersetzt klappt. Hab den Namen immer wie in den DPs angegeben. Aber da werden bei Leerstelle _ eingebaut. Deshalb hatte es nur geklappt.

            EDIT 2
            Wo finde ich denn den UserDataDir? Wollte mal reinschauen.

            GarfonsoG Offline
            GarfonsoG Offline
            Garfonso
            Developer
            schrieb am zuletzt editiert von
            #24

            @David-G. sagte in Test Adapter google-sharedlocations2:

            Wo finde ich denn den UserDataDir? Wollte mal reinschauen.

            Das ist einfach der adapter Ordner, aslo /opt/iobroker/iobroker-data/google-sharedlocations2.0/

            Ultimativer Lovelace Leitfaden: https://forum.iobroker.net/topic/35937/der-ultimative-iobroker-lovelace-leitfaden-dokumentation

            Lovelace UI Beispiele: https://forum.iobroker.net/topic/35950/zeigt-her-eure-lovelace-visualisierung

            David G.D 1 Antwort Letzte Antwort
            0
            • GarfonsoG Garfonso

              @David-G. sagte in Test Adapter google-sharedlocations2:

              Wo finde ich denn den UserDataDir? Wollte mal reinschauen.

              Das ist einfach der adapter Ordner, aslo /opt/iobroker/iobroker-data/google-sharedlocations2.0/

              David G.D Online
              David G.D Online
              David G.
              schrieb am zuletzt editiert von
              #25

              @Garfonso

              Der ist bei mir leer

              david@iobroker:~$ cd /opt/iobroker/iobroker-data/google-sharedlocations2.0/david@iobroker:/opt/iobroker/iobroker-data/google-sharedlocations2.0$ ls -la
              total 25
              drwxrwxr-x+  2 iobroker iobroker  2 Feb  4 06:00 .
              drwxrwxr-x+ 19 iobroker iobroker 23 Feb  5 10:04 ..
              david@iobroker:/opt/iobroker/iobroker-data/google-sharedlocations2.0$
              

              Zeigt eure Lovelace-Visualisierung klick
              (Auch ideal um sich Anregungen zu holen)

              Meine Tabellen für eure Visualisierung klick

              1 Antwort Letzte Antwort
              0
              • GarfonsoG Offline
                GarfonsoG Offline
                Garfonso
                Developer
                schrieb am zuletzt editiert von
                #26

                Dann lief der Browser wohl noch nicht.

                Ultimativer Lovelace Leitfaden: https://forum.iobroker.net/topic/35937/der-ultimative-iobroker-lovelace-leitfaden-dokumentation

                Lovelace UI Beispiele: https://forum.iobroker.net/topic/35950/zeigt-her-eure-lovelace-visualisierung

                David G.D 1 Antwort Letzte Antwort
                0
                • GarfonsoG Garfonso

                  Dann lief der Browser wohl noch nicht.

                  David G.D Online
                  David G.D Online
                  David G.
                  schrieb am zuletzt editiert von David G.
                  #27

                  @Garfonso

                  Ich war mal so frei und hab einfach den Coockie im DP gelöscht, damit er sich über den Browser einloggen muss.

                  Bleibt gelb und loggt sich nicht ein.
                  Wenn ich manuell einen Coockie Einträge wird er grün.

                  Ansonsten:

                  google-sharedlocations2.0
                  2026-02-06 17:30:20.115	error	Error in puppeteer: Timed out after waiting 30000ms
                  
                  google-sharedlocations2.0
                  2026-02-06 17:29:46.561	info	Trying to login to Google to get new cookies.
                  
                  google-sharedlocations2.0
                  2026-02-06 17:29:46.509	info	starting. Version 0.2.0 (non-npm: Garfonso/ioBroker.google-sharedlocations2#cb37556e09bc0a830094e90605e5beb7b2ed5439) in /opt/iobroker/node_modules/iobroker.google-sharedlocations2, node: v22.22.0, js-controller: 7.0.7
                  
                  google-sharedlocations2.0
                  2026-02-06 17:29:42.481	info	terminating
                  
                  google-sharedlocations2.0
                  2026-02-06 17:29:41.981	info	Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
                  
                  google-sharedlocations2.0
                  2026-02-06 17:29:41.981	info	terminating
                  
                  google-sharedlocations2.0
                  2026-02-06 17:29:41.981	info	Got terminate signal TERMINATE_YOURSELF
                  
                  google-sharedlocations2.0
                  2026-02-06 17:29:20.066	error	Error in puppeteer: Timed out after waiting 30000ms
                  
                  google-sharedlocations2.0
                  2026-02-06 17:28:46.326	info	Trying to login to Google to get new cookies.
                  
                  google-sharedlocations2.0
                  2026-02-06 17:28:46.326	info	Current cookies state was cleared, trying to obtain new cookies.
                  
                  google-sharedlocations2.0
                  2026-02-06 17:28:39.033	info	starting. Version 0.2.0 (non-npm: Garfonso/ioBroker.google-sharedlocations2#cb37556e09bc0a830094e90605e5beb7b2ed5439) in /opt/iobroker/node_modules/iobroker.google-sharedlocations2, node: v22.22.0, js-controller: 7.0.7
                  
                  google-sharedlocations2.0
                  2026-02-06 17:28:35.036	info	terminating
                  
                  google-sharedlocations2.0
                  2026-02-06 17:28:34.536	info	Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
                  
                  google-sharedlocations2.0
                  2026-02-06 17:28:34.535	info	terminating
                  
                  google-sharedlocations2.0
                  2026-02-06 17:28:34.535	info	Got terminate signal TERMINATE_YOURSELF
                  
                  google-sharedlocations2.0
                  2026-02-06 17:28:33.683	info	Obtained new cookies from Google login.
                  
                  google-sharedlocations2.0
                  2026-02-06 17:28:22.845	info	Trying to login to Google to get new cookies.
                  
                  google-sharedlocations2.0
                  2026-02-06 17:28:22.844	info	Current cookies state was cleared, trying to obtain new cookies.
                  
                  google-sharedlocations2.0
                  2026-02-06 17:30:20.115	error	Error in puppeteer: Timed out after waiting 30000ms
                  
                  google-sharedlocations2.0
                  2026-02-06 17:29:46.561	info	Trying to login to Google to get new cookies.
                  
                  google-sharedlocations2.0
                  2026-02-06 17:29:46.509	info	starting. Version 0.2.0 (non-npm: Garfonso/ioBroker.google-sharedlocations2#cb37556e09bc0a830094e90605e5beb7b2ed5439) in /opt/iobroker/node_modules/iobroker.google-sharedlocations2, node: v22.22.0, js-controller: 7.0.7
                  
                  google-sharedlocations2.0
                  2026-02-06 17:29:42.481	info	terminating
                  
                  google-sharedlocations2.0
                  2026-02-06 17:29:41.981	info	Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
                  
                  google-sharedlocations2.0
                  2026-02-06 17:29:41.981	info	terminating
                  
                  google-sharedlocations2.0
                  2026-02-06 17:29:41.981	info	Got terminate signal TERMINATE_YOURSELF
                  
                  google-sharedlocations2.0
                  2026-02-06 17:29:20.066	error	Error in puppeteer: Timed out after waiting 30000ms
                  
                  google-sharedlocations2.0
                  2026-02-06 17:28:46.326	info	Trying to login to Google to get new cookies.
                  
                  google-sharedlocations2.0
                  2026-02-06 17:28:46.326	info	Current cookies state was cleared, trying to obtain new cookies.
                  

                  Zeigt eure Lovelace-Visualisierung klick
                  (Auch ideal um sich Anregungen zu holen)

                  Meine Tabellen für eure Visualisierung klick

                  GarfonsoG 2 Antworten Letzte Antwort
                  0
                  • David G.D David G.

                    @Garfonso

                    Ich war mal so frei und hab einfach den Coockie im DP gelöscht, damit er sich über den Browser einloggen muss.

                    Bleibt gelb und loggt sich nicht ein.
                    Wenn ich manuell einen Coockie Einträge wird er grün.

                    Ansonsten:

                    google-sharedlocations2.0
                    2026-02-06 17:30:20.115	error	Error in puppeteer: Timed out after waiting 30000ms
                    
                    google-sharedlocations2.0
                    2026-02-06 17:29:46.561	info	Trying to login to Google to get new cookies.
                    
                    google-sharedlocations2.0
                    2026-02-06 17:29:46.509	info	starting. Version 0.2.0 (non-npm: Garfonso/ioBroker.google-sharedlocations2#cb37556e09bc0a830094e90605e5beb7b2ed5439) in /opt/iobroker/node_modules/iobroker.google-sharedlocations2, node: v22.22.0, js-controller: 7.0.7
                    
                    google-sharedlocations2.0
                    2026-02-06 17:29:42.481	info	terminating
                    
                    google-sharedlocations2.0
                    2026-02-06 17:29:41.981	info	Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
                    
                    google-sharedlocations2.0
                    2026-02-06 17:29:41.981	info	terminating
                    
                    google-sharedlocations2.0
                    2026-02-06 17:29:41.981	info	Got terminate signal TERMINATE_YOURSELF
                    
                    google-sharedlocations2.0
                    2026-02-06 17:29:20.066	error	Error in puppeteer: Timed out after waiting 30000ms
                    
                    google-sharedlocations2.0
                    2026-02-06 17:28:46.326	info	Trying to login to Google to get new cookies.
                    
                    google-sharedlocations2.0
                    2026-02-06 17:28:46.326	info	Current cookies state was cleared, trying to obtain new cookies.
                    
                    google-sharedlocations2.0
                    2026-02-06 17:28:39.033	info	starting. Version 0.2.0 (non-npm: Garfonso/ioBroker.google-sharedlocations2#cb37556e09bc0a830094e90605e5beb7b2ed5439) in /opt/iobroker/node_modules/iobroker.google-sharedlocations2, node: v22.22.0, js-controller: 7.0.7
                    
                    google-sharedlocations2.0
                    2026-02-06 17:28:35.036	info	terminating
                    
                    google-sharedlocations2.0
                    2026-02-06 17:28:34.536	info	Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
                    
                    google-sharedlocations2.0
                    2026-02-06 17:28:34.535	info	terminating
                    
                    google-sharedlocations2.0
                    2026-02-06 17:28:34.535	info	Got terminate signal TERMINATE_YOURSELF
                    
                    google-sharedlocations2.0
                    2026-02-06 17:28:33.683	info	Obtained new cookies from Google login.
                    
                    google-sharedlocations2.0
                    2026-02-06 17:28:22.845	info	Trying to login to Google to get new cookies.
                    
                    google-sharedlocations2.0
                    2026-02-06 17:28:22.844	info	Current cookies state was cleared, trying to obtain new cookies.
                    
                    google-sharedlocations2.0
                    2026-02-06 17:30:20.115	error	Error in puppeteer: Timed out after waiting 30000ms
                    
                    google-sharedlocations2.0
                    2026-02-06 17:29:46.561	info	Trying to login to Google to get new cookies.
                    
                    google-sharedlocations2.0
                    2026-02-06 17:29:46.509	info	starting. Version 0.2.0 (non-npm: Garfonso/ioBroker.google-sharedlocations2#cb37556e09bc0a830094e90605e5beb7b2ed5439) in /opt/iobroker/node_modules/iobroker.google-sharedlocations2, node: v22.22.0, js-controller: 7.0.7
                    
                    google-sharedlocations2.0
                    2026-02-06 17:29:42.481	info	terminating
                    
                    google-sharedlocations2.0
                    2026-02-06 17:29:41.981	info	Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
                    
                    google-sharedlocations2.0
                    2026-02-06 17:29:41.981	info	terminating
                    
                    google-sharedlocations2.0
                    2026-02-06 17:29:41.981	info	Got terminate signal TERMINATE_YOURSELF
                    
                    google-sharedlocations2.0
                    2026-02-06 17:29:20.066	error	Error in puppeteer: Timed out after waiting 30000ms
                    
                    google-sharedlocations2.0
                    2026-02-06 17:28:46.326	info	Trying to login to Google to get new cookies.
                    
                    google-sharedlocations2.0
                    2026-02-06 17:28:46.326	info	Current cookies state was cleared, trying to obtain new cookies.
                    
                    GarfonsoG Offline
                    GarfonsoG Offline
                    Garfonso
                    Developer
                    schrieb am zuletzt editiert von
                    #28

                    @David-G. sagte in Test Adapter google-sharedlocations2:

                    Bleibt gelb und loggt sich nicht ein.

                    Hm.. aber da sollsten jetzt Daten im Verzeichnis liegen, oder?

                    Timed out heißt, dass der Browser irgendwo nicht weiter kam... da musst du debug anmachen, um mehr zu sehen, leider.. (am besten letzten git-status vorher installieren, hab da das logging nochmal erweitert). Soll ich das vielleicht zu info machen? Oder ich versuche das zu speichern und gebe aus, wo es schiefgegangen ist, wenn der error fliegt. Hm.

                    Ultimativer Lovelace Leitfaden: https://forum.iobroker.net/topic/35937/der-ultimative-iobroker-lovelace-leitfaden-dokumentation

                    Lovelace UI Beispiele: https://forum.iobroker.net/topic/35950/zeigt-her-eure-lovelace-visualisierung

                    1 Antwort Letzte Antwort
                    0
                    • David G.D David G.

                      @Garfonso

                      Ich war mal so frei und hab einfach den Coockie im DP gelöscht, damit er sich über den Browser einloggen muss.

                      Bleibt gelb und loggt sich nicht ein.
                      Wenn ich manuell einen Coockie Einträge wird er grün.

                      Ansonsten:

                      google-sharedlocations2.0
                      2026-02-06 17:30:20.115	error	Error in puppeteer: Timed out after waiting 30000ms
                      
                      google-sharedlocations2.0
                      2026-02-06 17:29:46.561	info	Trying to login to Google to get new cookies.
                      
                      google-sharedlocations2.0
                      2026-02-06 17:29:46.509	info	starting. Version 0.2.0 (non-npm: Garfonso/ioBroker.google-sharedlocations2#cb37556e09bc0a830094e90605e5beb7b2ed5439) in /opt/iobroker/node_modules/iobroker.google-sharedlocations2, node: v22.22.0, js-controller: 7.0.7
                      
                      google-sharedlocations2.0
                      2026-02-06 17:29:42.481	info	terminating
                      
                      google-sharedlocations2.0
                      2026-02-06 17:29:41.981	info	Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
                      
                      google-sharedlocations2.0
                      2026-02-06 17:29:41.981	info	terminating
                      
                      google-sharedlocations2.0
                      2026-02-06 17:29:41.981	info	Got terminate signal TERMINATE_YOURSELF
                      
                      google-sharedlocations2.0
                      2026-02-06 17:29:20.066	error	Error in puppeteer: Timed out after waiting 30000ms
                      
                      google-sharedlocations2.0
                      2026-02-06 17:28:46.326	info	Trying to login to Google to get new cookies.
                      
                      google-sharedlocations2.0
                      2026-02-06 17:28:46.326	info	Current cookies state was cleared, trying to obtain new cookies.
                      
                      google-sharedlocations2.0
                      2026-02-06 17:28:39.033	info	starting. Version 0.2.0 (non-npm: Garfonso/ioBroker.google-sharedlocations2#cb37556e09bc0a830094e90605e5beb7b2ed5439) in /opt/iobroker/node_modules/iobroker.google-sharedlocations2, node: v22.22.0, js-controller: 7.0.7
                      
                      google-sharedlocations2.0
                      2026-02-06 17:28:35.036	info	terminating
                      
                      google-sharedlocations2.0
                      2026-02-06 17:28:34.536	info	Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
                      
                      google-sharedlocations2.0
                      2026-02-06 17:28:34.535	info	terminating
                      
                      google-sharedlocations2.0
                      2026-02-06 17:28:34.535	info	Got terminate signal TERMINATE_YOURSELF
                      
                      google-sharedlocations2.0
                      2026-02-06 17:28:33.683	info	Obtained new cookies from Google login.
                      
                      google-sharedlocations2.0
                      2026-02-06 17:28:22.845	info	Trying to login to Google to get new cookies.
                      
                      google-sharedlocations2.0
                      2026-02-06 17:28:22.844	info	Current cookies state was cleared, trying to obtain new cookies.
                      
                      google-sharedlocations2.0
                      2026-02-06 17:30:20.115	error	Error in puppeteer: Timed out after waiting 30000ms
                      
                      google-sharedlocations2.0
                      2026-02-06 17:29:46.561	info	Trying to login to Google to get new cookies.
                      
                      google-sharedlocations2.0
                      2026-02-06 17:29:46.509	info	starting. Version 0.2.0 (non-npm: Garfonso/ioBroker.google-sharedlocations2#cb37556e09bc0a830094e90605e5beb7b2ed5439) in /opt/iobroker/node_modules/iobroker.google-sharedlocations2, node: v22.22.0, js-controller: 7.0.7
                      
                      google-sharedlocations2.0
                      2026-02-06 17:29:42.481	info	terminating
                      
                      google-sharedlocations2.0
                      2026-02-06 17:29:41.981	info	Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
                      
                      google-sharedlocations2.0
                      2026-02-06 17:29:41.981	info	terminating
                      
                      google-sharedlocations2.0
                      2026-02-06 17:29:41.981	info	Got terminate signal TERMINATE_YOURSELF
                      
                      google-sharedlocations2.0
                      2026-02-06 17:29:20.066	error	Error in puppeteer: Timed out after waiting 30000ms
                      
                      google-sharedlocations2.0
                      2026-02-06 17:28:46.326	info	Trying to login to Google to get new cookies.
                      
                      google-sharedlocations2.0
                      2026-02-06 17:28:46.326	info	Current cookies state was cleared, trying to obtain new cookies.
                      
                      GarfonsoG Offline
                      GarfonsoG Offline
                      Garfonso
                      Developer
                      schrieb am zuletzt editiert von
                      #29

                      @David-G.

                      Für das Problem bist du verantwortlich. :-p
                      Wenn der Browser noch eingeloggt ist (weil er ja seine Cookies jetzt speichern darf), dann geht er direkt von der Loginseite zu google maps. Auf google maps findet puppeteer aber auch nach langer Wartezeit das Feld für die Login-Daten nicht. Folglich erfolgt ein timeout...

                      0.3.1 kann das aber jetzt, sie checkt ob das accounts.google.com nach 3 Sekunden verschwunden ist und falls ja, liest den cookie und ist fertig.

                      Hab auch noch einiges umgebaut zu Version 0.3.0, hauptsächlich intern. Ich speicher jetzt das cookie array mit den ganzen Daten und es werden jetzt veraltete cookies auch gelöscht und das ganze etwas sinnvoller aktualisiert.
                      Es gab noch ein Problem mit refresh, da konnte es vorkommen, dass der browser die cookies nicht mag. Das hab ich abgefangen und versucht möglichst sinnvoll zu behandeln... und es gibt jetzt einen state mit dem man einen Refresh mit dem Browser erzwingen kann.

                      Dabei fällt mir wieder ein: Aktuell versucht der Code, wie es auch das Skript gemacht hat, den aktuellen Cookie an den Browser zu geben. Eigentlich ergibt das aber mit dem Storage im Browser nicht so viel Sinn, oder? Eigentlich sollte ich nur den Browser laden, gucken, ob der von der login-Seite zu maps wechselt und dann die cookies einsammeln, oder?

                      Ultimativer Lovelace Leitfaden: https://forum.iobroker.net/topic/35937/der-ultimative-iobroker-lovelace-leitfaden-dokumentation

                      Lovelace UI Beispiele: https://forum.iobroker.net/topic/35950/zeigt-her-eure-lovelace-visualisierung

                      David G.D B 2 Antworten Letzte Antwort
                      0
                      • GarfonsoG Garfonso

                        @David-G.

                        Für das Problem bist du verantwortlich. :-p
                        Wenn der Browser noch eingeloggt ist (weil er ja seine Cookies jetzt speichern darf), dann geht er direkt von der Loginseite zu google maps. Auf google maps findet puppeteer aber auch nach langer Wartezeit das Feld für die Login-Daten nicht. Folglich erfolgt ein timeout...

                        0.3.1 kann das aber jetzt, sie checkt ob das accounts.google.com nach 3 Sekunden verschwunden ist und falls ja, liest den cookie und ist fertig.

                        Hab auch noch einiges umgebaut zu Version 0.3.0, hauptsächlich intern. Ich speicher jetzt das cookie array mit den ganzen Daten und es werden jetzt veraltete cookies auch gelöscht und das ganze etwas sinnvoller aktualisiert.
                        Es gab noch ein Problem mit refresh, da konnte es vorkommen, dass der browser die cookies nicht mag. Das hab ich abgefangen und versucht möglichst sinnvoll zu behandeln... und es gibt jetzt einen state mit dem man einen Refresh mit dem Browser erzwingen kann.

                        Dabei fällt mir wieder ein: Aktuell versucht der Code, wie es auch das Skript gemacht hat, den aktuellen Cookie an den Browser zu geben. Eigentlich ergibt das aber mit dem Storage im Browser nicht so viel Sinn, oder? Eigentlich sollte ich nur den Browser laden, gucken, ob der von der login-Seite zu maps wechselt und dann die cookies einsammeln, oder?

                        David G.D Online
                        David G.D Online
                        David G.
                        schrieb am zuletzt editiert von
                        #30

                        @Garfonso sagte in Test Adapter google-sharedlocations2:

                        Dabei fällt mir wieder ein: Aktuell versucht der Code, wie es auch das Skript gemacht hat, den aktuellen Cookie an den Browser zu geben. Eigentlich ergibt das aber mit dem Storage im Browser nicht so viel Sinn, oder? Eigentlich sollte ich nur den Browser laden, gucken, ob der von der login-Seite zu maps wechselt und dann die cookies einsammeln, oder?

                        Hab da nicht so wirklich Ahnung von. Klingt aber plausibel.

                        Zu meinem hausgemachten Coockie "Problem".
                        Ist in der aktuellen Version auch.
                        Hat Google auch eine logout URL die man vorher pauschal aufrufen kann? Dann würde die login Seite evtl immer klappen.

                        google-sharedlocations2.0
                        2026-02-09 13:49:39.743	error	The step puppeteer failed was: filling in username.
                        
                        google-sharedlocations2.0
                        2026-02-09 13:49:39.743	error	Error in puppeteer: Timed out after waiting 30000ms
                        
                        google-sharedlocations2.0
                        2026-02-09 13:49:03.483	info	Trying to login to Google to get new cookies.
                        
                        google-sharedlocations2.0
                        2026-02-09 13:48:55.331	info	starting. Version 0.3.2 (non-npm: Garfonso/ioBroker.google-sharedlocations2#34a287aeaece01e35b1248eb760e60b50e52e8e5) in /opt/iobroker/node_modules/iobroker.google-sharedlocations2, node: v22.22.0, js-controller: 7.0.7
                        

                        Zeigt eure Lovelace-Visualisierung klick
                        (Auch ideal um sich Anregungen zu holen)

                        Meine Tabellen für eure Visualisierung klick

                        1 Antwort Letzte Antwort
                        0
                        • GarfonsoG Garfonso

                          @David-G.

                          Für das Problem bist du verantwortlich. :-p
                          Wenn der Browser noch eingeloggt ist (weil er ja seine Cookies jetzt speichern darf), dann geht er direkt von der Loginseite zu google maps. Auf google maps findet puppeteer aber auch nach langer Wartezeit das Feld für die Login-Daten nicht. Folglich erfolgt ein timeout...

                          0.3.1 kann das aber jetzt, sie checkt ob das accounts.google.com nach 3 Sekunden verschwunden ist und falls ja, liest den cookie und ist fertig.

                          Hab auch noch einiges umgebaut zu Version 0.3.0, hauptsächlich intern. Ich speicher jetzt das cookie array mit den ganzen Daten und es werden jetzt veraltete cookies auch gelöscht und das ganze etwas sinnvoller aktualisiert.
                          Es gab noch ein Problem mit refresh, da konnte es vorkommen, dass der browser die cookies nicht mag. Das hab ich abgefangen und versucht möglichst sinnvoll zu behandeln... und es gibt jetzt einen state mit dem man einen Refresh mit dem Browser erzwingen kann.

                          Dabei fällt mir wieder ein: Aktuell versucht der Code, wie es auch das Skript gemacht hat, den aktuellen Cookie an den Browser zu geben. Eigentlich ergibt das aber mit dem Storage im Browser nicht so viel Sinn, oder? Eigentlich sollte ich nur den Browser laden, gucken, ob der von der login-Seite zu maps wechselt und dann die cookies einsammeln, oder?

                          B Offline
                          B Offline
                          bommel_030
                          schrieb am zuletzt editiert von
                          #31

                          @Garfonso
                          Musste ein paar Tage pausieren und teste aktuell mit der 0.3.2

                          Der Adapter kann sich mit Nutzer/PW anmelden und bekommt auch einen Cookie. Leider kann er sich mit dem nicht anmelden.
                          Extrahiere ich manuell einen Cookie aus z.B. Chrome und füttere den Adapter damit startet er sofort.
                          Er erkennt auch wenn der Cookie abgelaufen ist, loggt sich wieder ein und holt einen neuen Cookie.
                          Dieser ist dann leider genau so unbrauchbar wie der erste.

                          Was sagt die Cookielength im Log aus? Am Anfang hatte er eine von 3, dann 4. Die haben beide nicht funtkioniert. Die manuell kopierte hatte dann eine Länge von 23. Hatte gehofft es liegt daran, aber zwischenzeitlich hatte er sich einen neuen Cookie mit Länge 24 geholt der auch nicht funktionierte.

                          Ich bin relativ ratlos... Der Adapter macht offensichtlich das was er soll, holt aber scheinbar die falschen Kekse....

                          Wenn man nicht mitbekommt, dass der Adapter Offline geht versucht er so lange einen neuen Cookie zu holen bis Google wegen ungewöhnlicher Anmeldung dicht macht. Kannst du das einbauen, dass er nach x Versuchen aufhört und was im LOG hinterlässt oder nen Datenpunkt beschreibt?

                          Der Teil mit "places" funktioniert auf jeden Fall einwandfrei.
                          Der "alte" Adapter hatte noch ein "force update" Button, könntest du den bei Gelegenheit auch wieder reinbringen?

                          1 Antwort Letzte Antwort
                          1
                          Antworten
                          • In einem neuen Thema antworten
                          Anmelden zum Antworten
                          • Älteste zuerst
                          • Neuste zuerst
                          • Meiste Stimmen


                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          689

                          Online

                          32.6k

                          Benutzer

                          82.3k

                          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