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. Beta-Test Android App ioGo 2.1.x

NEWS

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

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

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

Beta-Test Android App ioGo 2.1.x

Geplant Angeheftet Gesperrt Verschoben Tester
iogoandroidgeofencetestbeta
272 Beiträge 10 Kommentatoren 28.8k Aufrufe 7 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.
  • crunchipC Abwesend
    crunchipC Abwesend
    crunchip
    Forum Testing Most Active
    schrieb am zuletzt editiert von crunchip
    #51

    @nis
    muss jetzt auch mal fragen

    App ist auf aktuellen Stand
    Adapter v 0.5.3

    • Location hab ich eingetragen mit meiner (orginal-ID)
      danach hab ich meine ID geändert
    • eine weitere Location eingetragen, gleichen Daten (mit neuer ID)

    Frage 1:

    • wie kann man einen Eintrag in Locations in der App wieder entfernen?
      Frage 2:
    • warum wird mir das so angezeigt in IoBroker?
      ** unterhalb der alten ID---alles ok
      ** unter der neuen ID wird zusätzlich die alte ID mit aufgelistet, jedoch einmal true und einmal false
      e99501af-479f-43da-a0e0-f953751c04ba-image.png

    auf Adapter v0.5.4 aktualisiert, alles soweit unverändert

    EDIT:

    • kompletten Ordner iogo.0 gelöscht und neu anlegen lassen
      b53ba918-25e6-4c95-91f8-68803d99a917-image.png
      20200209_133334.jpg

    umgestiegen von Proxmox auf Unraid

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

      @crunchip sagte in Beta-Test Android App ioGo 2.1.x:

      wie kann man einen Eintrag in Locations in der App wieder entfernen?

      In der App kannst du eine Location wieder löschen mit dem kleinen "Mülltonne" Symbol, wenn du in der Detailansicht einer Location bist.

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

        @crunchip sagte in Beta-Test Android App ioGo 2.1.x:

        warum wird mir das so angezeigt in IoBroker?
        ** unterhalb der alten ID---alles ok
        ** unter der neuen ID wird zusätzlich die alte ID mit aufgelistet, jedoch einmal true und einmal false

        Wenn du deine DeviceID änderst wird ein neues Device unter iogo.0 angelegt.
        Das alte Device wir aktuell nicht automatisch gelöscht, es sollte aber funktionieren wenn du die Objekte in ioBroker manuell löscht.

        Unter dem neuen Device werde auch alle Locations angelegt, die zu dem Zeitpunkt auf deinem Smartphone angelegt waren.

        crunchipC 1 Antwort Letzte Antwort
        0
        • ? Ein ehemaliger Benutzer

          @crunchip sagte in Beta-Test Android App ioGo 2.1.x:

          wie kann man einen Eintrag in Locations in der App wieder entfernen?

          In der App kannst du eine Location wieder löschen mit dem kleinen "Mülltonne" Symbol, wenn du in der Detailansicht einer Location bist.

          crunchipC Abwesend
          crunchipC Abwesend
          crunchip
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #54

          @nis aaaaah, jetzt....hatte zich mal drauf geklickt, da ging aber nichts auf

          umgestiegen von Proxmox auf Unraid

          1 Antwort Letzte Antwort
          0
          • ? Ein ehemaliger Benutzer

            @crunchip sagte in Beta-Test Android App ioGo 2.1.x:

            warum wird mir das so angezeigt in IoBroker?
            ** unterhalb der alten ID---alles ok
            ** unter der neuen ID wird zusätzlich die alte ID mit aufgelistet, jedoch einmal true und einmal false

            Wenn du deine DeviceID änderst wird ein neues Device unter iogo.0 angelegt.
            Das alte Device wir aktuell nicht automatisch gelöscht, es sollte aber funktionieren wenn du die Objekte in ioBroker manuell löscht.

            Unter dem neuen Device werde auch alle Locations angelegt, die zu dem Zeitpunkt auf deinem Smartphone angelegt waren.

            crunchipC Abwesend
            crunchipC Abwesend
            crunchip
            Forum Testing Most Active
            schrieb am zuletzt editiert von crunchip
            #55

            @nis sagte in Beta-Test Android App ioGo 2.1.x:

            Unter dem neuen Device werde auch alle Locations angelegt, die zu dem Zeitpunkt auf deinem Smartphone angelegt waren.

            das fehlt ja eben, siehe Edit von oben
            habe alles nochmal gelöscht und neu eingerichtet, hatte scheinbar etwas länger gedauert, bis die alten Einträge aus dem System verschwinden

            umgestiegen von Proxmox auf Unraid

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

              Nachricht senden lassen.

              Geht bei mir nur teilweise, wie ist die Richtige Vorgehensweise.
              Welche DP kann man sich senden lassen?

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

              crunchipC 1 Antwort Letzte Antwort
              0
              • sigi234S sigi234

                Nachricht senden lassen.

                Geht bei mir nur teilweise, wie ist die Richtige Vorgehensweise.
                Welche DP kann man sich senden lassen?

                crunchipC Abwesend
                crunchipC Abwesend
                crunchip
                Forum Testing Most Active
                schrieb am zuletzt editiert von crunchip
                #57

                @sigi234
                ob man sich alles senden lassen kann, bin ich überfragt, dazu müsste @nis was sagen...glaube aber mal gelesen zu haben, das manches nicht geht.
                aber in dem Fall, was du wissen wolltest.
                wenn sich der DP ändert/aktualisiert...oder wenn du einfach den DWD Adapter neu startes, müsste eine Push Benachrichtigung auf deinem Handy erscheinen
                bc42ce81-e0a8-4597-926e-ebd93663be96-image.png
                d959ec9a-cc73-4045-bc0a-65463e855ba9-image.png
                Screenshot_20200210-001152_iogo.jpg

                umgestiegen von Proxmox auf Unraid

                sigi234S 1 Antwort Letzte Antwort
                0
                • crunchipC crunchip

                  @sigi234
                  ob man sich alles senden lassen kann, bin ich überfragt, dazu müsste @nis was sagen...glaube aber mal gelesen zu haben, das manches nicht geht.
                  aber in dem Fall, was du wissen wolltest.
                  wenn sich der DP ändert/aktualisiert...oder wenn du einfach den DWD Adapter neu startes, müsste eine Push Benachrichtigung auf deinem Handy erscheinen
                  bc42ce81-e0a8-4597-926e-ebd93663be96-image.png
                  d959ec9a-cc73-4045-bc0a-65463e855ba9-image.png
                  Screenshot_20200210-001152_iogo.jpg

                  sigi234S Online
                  sigi234S Online
                  sigi234
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von
                  #58

                  @crunchip

                  Aha, ich dachte es kommt der Text vom DP

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

                  crunchipC 1 Antwort Letzte Antwort
                  0
                  • sigi234S sigi234

                    @crunchip

                    Aha, ich dachte es kommt der Text vom DP

                    crunchipC Abwesend
                    crunchipC Abwesend
                    crunchip
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von
                    #59

                    @sigi234 ja kommt doch

                    umgestiegen von Proxmox auf Unraid

                    sigi234S 1 Antwort Letzte Antwort
                    0
                    • crunchipC crunchip

                      @sigi234 ja kommt doch

                      sigi234S Online
                      sigi234S Online
                      sigi234
                      Forum Testing Most Active
                      schrieb am zuletzt editiert von sigi234
                      #60

                      @crunchip sagte in Beta-Test Android App ioGo 2.1.x:

                      @sigi234 ja kommt doch

                      Nein, vielleicht weil es aus einen Skript kommt?

                      Screenshot (1625)_LI.jpg

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

                      crunchipC 3 Antworten Letzte Antwort
                      0
                      • sigi234S sigi234

                        @crunchip sagte in Beta-Test Android App ioGo 2.1.x:

                        @sigi234 ja kommt doch

                        Nein, vielleicht weil es aus einen Skript kommt?

                        Screenshot (1625)_LI.jpg

                        crunchipC Abwesend
                        crunchipC Abwesend
                        crunchip
                        Forum Testing Most Active
                        schrieb am zuletzt editiert von crunchip
                        #61

                        @sigi234 müsste ich mal testen, hab das script aktuell nicht laufen

                        Edit, script läuft sogar, aber keine Meldungen :confused:

                        umgestiegen von Proxmox auf Unraid

                        1 Antwort Letzte Antwort
                        0
                        • sigi234S sigi234

                          @crunchip sagte in Beta-Test Android App ioGo 2.1.x:

                          @sigi234 ja kommt doch

                          Nein, vielleicht weil es aus einen Skript kommt?

                          Screenshot (1625)_LI.jpg

                          crunchipC Abwesend
                          crunchipC Abwesend
                          crunchip
                          Forum Testing Most Active
                          schrieb am zuletzt editiert von
                          #62

                          @sigi234 weiss du zufällig, ob an dem script was geändert wurde?

                          umgestiegen von Proxmox auf Unraid

                          sigi234S 1 Antwort Letzte Antwort
                          0
                          • crunchipC crunchip

                            @sigi234 weiss du zufällig, ob an dem script was geändert wurde?

                            sigi234S Online
                            sigi234S Online
                            sigi234
                            Forum Testing Most Active
                            schrieb am zuletzt editiert von sigi234
                            #63

                            @crunchip sagte in Beta-Test Android App ioGo 2.1.x:

                            @sigi234 weiss du zufällig, ob an dem script was geändert wurde?

                            Nö, ID Richtig? Gib dir mal meines was geht. WARNCELLID ändern

                            var debuglevel = 1;
                            var debugchannel = 'debug';
                            
                            function dwmlog( message, level, channel) {
                                if (typeof channel === 'undefined') {
                                    channel = debugchannel;
                                }
                                if ( typeof level === 'undefined')
                                {
                                    level = debuglevel;
                                }
                                if ( debuglevel >= level ) {
                                    log (message, channel );
                                }
                            }
                            
                            var AdapterId = "javascript."+instance;
                            var ChannelId = "UWZ";
                            
                            var forceInitStates = false;
                            var numOfWarnings = 7;
                            
                            var url='http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=de&areaID=XXXAREAXXX';
                            
                            
                            /********************* Hier die Warnzellen-Id's eintragen *****************************/
                            var warncellid = ['xxxxxxxxx'];
                            /**************************************************************************************/
                            
                            
                            var UWZTypesArray=["n/a","unbekannt","Sturm/Orkan","Schneefall","Starkregen","Extremfrost","Waldbrandgefahr","Gewitter","Glätte","Hitze","Glatteisregen","Bodenfrost"];
                            
                            function createStates(n){
                                var AreaChannelID = null;
                                
                                for (var j=0; j<warncellid.length; j++) {
                                    AreaChannelId=ChannelId+"."+warncellid[j];        
                                    for (var i=0; i<n; i++) {
                                        createState(AreaChannelId+".warning."+i+".ShortText","",forceInitStates,{type: 'string'});
                                        createState(AreaChannelId+".warning."+i+".LongText","",forceInitStates,{type: 'string'});
                                        createState(AreaChannelId+".warning."+i+".object","",forceInitStates,{type: 'string'});
                                        createState(AreaChannelId+".warning."+i+".begin","",forceInitStates,{type: 'string'});
                                        createState(AreaChannelId+".warning."+i+".end","",forceInitStates,{type: 'string'});
                                        createState(AreaChannelId+".warning."+i+".severity",0,forceInitStates,{type: 'number'});
                                        createState(AreaChannelId+".warning."+i+".type",0,forceInitStates,{min:0, max:11, type: 'number',states:UWZTypesArray});
                                        createState(AreaChannelId+".warning."+i+".uwzLevel",0,forceInitStates,{min:0, max:5, type: 'number'});
                                        createState(AreaChannelId+".warning."+i+".uwzColor",0,forceInitStates,{type:'number'});
                                        createState(AreaChannelId+".warning."+i+".HTMLShort","",forceInitStates,{type: 'string'});
                                        createState(AreaChannelId+".warning."+i+".HTMLLong","",forceInitStates,{type: 'string'});
                                    }
                                }
                            }
                            
                            function getUWZLevel (warnName){
                                var result = -1; // -1 is an error!
                                var alert = warnName.split("_");
                                var colors = ["green","darkgreen","yellow","orange","red","violet"];
                                
                                if (alert[0]=="notice") { result = 1; }
                                else if (alert[1] == "forewarn") { result = 2; }
                                else {
                                    result = colors.indexOf(alert[2]);
                                }
                                return result;
                            }
                            
                            function getUWZUrgency (warnName){
                                var result = 0;
                                
                                var alert = warnName.split("_");
                                if (alert[1] == "forewarn") { 
                                    result = 1; 
                                }
                                else {
                                    result = 2; // immediate;
                                }
                                return result;
                            }
                            
                            function getLevelColor(uwzLevel) {
                                var uwzColor = [
                                    0x00ff00, // 0 - Grün
                                    0x009b00, // 1 - Dunkelgrün
                                    0xffff00, // 2 - Gelb Wetterwarnungen (Stufe 1)
                                    0xffb400, // 3 - Orange Warnungen vor markantem Wetter (Stufe 2)
                                    0xff0000, // 4 - Rot Unwetterwarnungen (Stufe 3)
                                    0xff00ff, // 5 - Violett Warnungen vor extremem Unwetter (Stufe 4)
                                ];
                                if (uwzLevel>=0 && uwzLevel<=5)
                                    return uwzColor[uwzLevel];
                                else
                                    return 0;
                            }
                            
                            function createHTMLShort(w){
                                var html = '<div style="background: #'+w.uwzColor.toString(16)+'" border:"10px">';
                                
                                var theData = JSON.parse(w.object);
                                
                                html += '<h3>';
                                if (w.uwzUrgency==1) html+="Vorwarnung vor "; else html+="Warnung vor ";
                                html += UWZTypesArray[w.type];
                                html +="</h3>";
                                html += "<p>Zeitraum von "+formatDate(new Date(theData.dtgStart*1000),"WW, DD. OO YYYY hh:mm")+" Uhr bis "+formatDate(new Date(theData.dtgEnd*1000),"WW, DD. OO YYYY hh:mm")+" Uhr </p>";
                                html += '<p>'+w.ShortText+'</p>';
                                html += "</div>";
                                return html;
                            }
                            
                            function createHTMLLong(w){
                                var html = '<div style="background: #'+w.uwzColor.toString(16)+'" border:"10px">';
                                
                                var theData = JSON.parse(w.object);
                                
                                html += '<h3>';
                                if (w.uwzUrgency==1) html+="Vorwarnung vor "; else html+="Warnung vor ";
                                html += UWZTypesArray[w.type];
                                html +="</h3>";
                                html += "<p>Zeitraum von "+formatDate(new Date(theData.dtgStart*1000),"WW, DD. OO YYYY hh:mm")+" Uhr bis "+formatDate(new Date(theData.dtgEnd*1000),"WW, DD. OO YYYY hh:mm")+" Uhr </p>";
                                html += '<p>'+w.LongText+'</p>';
                                html += "</div>";
                                return html;    
                            }
                            
                            function processResultEntry(w) {
                                this.object = JSON.stringify(w);
                            
                                this.begin=formatDate(new Date(w.dtgStart*1000),"DD.MM.YYYY hh:mm");
                                this.end=formatDate(new Date(w.dtgEnd*1000),"DD.MM.YYYY hh:mm");
                                
                                // dwmlog (formatDate(this.begin,"DD.MM.YYYY hh:mm"),4);
                                // dwmlog (formatDate(this.end,"DD.MM.YYYY hh:mm"),4);
                                
                                this.LongText = w.payload.translationsLongText.DE;
                                this.ShortText = w.payload.translationsShortText.DE;
                                
                                this.severity = w.severity;
                                this.type = w.type;
                                this.uwzLevel = getUWZLevel(w.payload.levelName);
                                this.uwzUrgency = getUWZUrgency(w.payload.levelName);
                                this.uwzColor = getLevelColor(this.uwzLevel);
                                var x = this;
                                this.HTMLShort = createHTMLShort(x);
                                this.HTMLLong  = createHTMLLong(x);
                            }
                            
                            function processData(Area,data) {
                                if (!data) {
                                   return;
                                }
                                var AreaChannelId=ChannelId+"."+Area;
                                
                                var thedata = JSON.parse(data);
                                var warnings= [];
                                
                                if (thedata.results.length>0) {
                                    for (i=0; i<thedata.results.length; i++) {
                                        warnings.push(new processResultEntry(thedata.results[i]));
                                    }
                                }
                                
                                warnings.sort(function(a,b){
                                    var asort = a.severity; 
                                    var bsort = b.severity;
                                    
                                    return bsort-asort;
                                });
                                
                                
                                dwmlog(JSON.stringify(warnings));
                                
                                for (i=0; i<numOfWarnings; i++) {
                                    if (i<warnings.length) {
                                        setState(AreaChannelId+".warning."+i+".LongText",warnings[i].LongText);
                                        setState(AreaChannelId+".warning."+i+".ShortText",warnings[i].ShortText);
                                        setState(AreaChannelId+".warning."+i+".object",warnings[i].object);
                                        setState(AreaChannelId+".warning."+i+".begin",warnings[i].begin);
                                        setState(AreaChannelId+".warning."+i+".end",warnings[i].end);
                                        setState(AreaChannelId+".warning."+i+".severity",warnings[i].severity);
                                        setState(AreaChannelId+".warning."+i+".type",warnings[i].type);
                                        setState(AreaChannelId+".warning."+i+".uwzLevel",warnings[i].uwzLevel);
                                        setState(AreaChannelId+".warning."+i+".uwzColor",warnings[i].uwzColor);
                                        setState(AreaChannelId+".warning."+i+".HTMLShort",warnings[i].HTMLShort);
                                        setState(AreaChannelId+".warning."+i+".HTMLLong",warnings[i].HTMLLong);
                                    } else {
                                        setState(AreaChannelId+".warning."+i+".LongText","");
                                        setState(AreaChannelId+".warning."+i+".ShortText","");
                                        setState(AreaChannelId+".warning."+i+".object","{}");
                                        setState(AreaChannelId+".warning."+i+".begin","");
                                        setState(AreaChannelId+".warning."+i+".end","");
                                        setState(AreaChannelId+".warning."+i+".severity",0);
                                        setState(AreaChannelId+".warning."+i+".type",0);
                                        setState(AreaChannelId+".warning."+i+".uwzLevel",0);
                                        setState(AreaChannelId+".warning."+i+".uwzColor",0);
                                        setState(AreaChannelId+".warning."+i+".HTMLShort","");
                                        setState(AreaChannelId+".warning."+i+".HTMLLong","");
                                  }
                                }
                            }
                            
                            function getAreaFromURI(uri) {
                                var searchstr = "&areaID=";
                                var n = uri.search(searchstr);
                                var result = uri.slice(n+searchstr.length,uri.length);
                                return result;
                            }
                            
                            createStates(numOfWarnings);
                            // processData(jsond2);
                            
                            var request = require('request');
                            schedule ("* * * * *", function(){
                                for (var i=0; i<warncellid.length; i++) {
                                        request({  
                                            uri: url.replace("XXXAREAXXX",warncellid[i]),
                                            method: "GET",
                                            timeout: 10000,
                                            followRedirect: true,
                                            maxRedirects: 10
                                        }, function(error, response, body) {
                                            // dwmlog("UWZ Error" + error,2);
                                            // dwmlog("UWZ Response: " + JSON.stringify(response),4);
                                            dwmlog("AREA: "+getAreaFromURI(response.request.uri.href),4);
                                            dwmlog("UWZ Body: " + body,4);
                                            if (response.statusCode == 200) {
                                                processData(getAreaFromURI(response.request.uri.href),body);
                                            }
                                        });    
                                }
                            });
                            
                            

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

                            crunchipC 2 Antworten Letzte Antwort
                            1
                            • sigi234S sigi234

                              @crunchip sagte in Beta-Test Android App ioGo 2.1.x:

                              @sigi234 weiss du zufällig, ob an dem script was geändert wurde?

                              Nö, ID Richtig? Gib dir mal meines was geht. WARNCELLID ändern

                              var debuglevel = 1;
                              var debugchannel = 'debug';
                              
                              function dwmlog( message, level, channel) {
                                  if (typeof channel === 'undefined') {
                                      channel = debugchannel;
                                  }
                                  if ( typeof level === 'undefined')
                                  {
                                      level = debuglevel;
                                  }
                                  if ( debuglevel >= level ) {
                                      log (message, channel );
                                  }
                              }
                              
                              var AdapterId = "javascript."+instance;
                              var ChannelId = "UWZ";
                              
                              var forceInitStates = false;
                              var numOfWarnings = 7;
                              
                              var url='http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=de&areaID=XXXAREAXXX';
                              
                              
                              /********************* Hier die Warnzellen-Id's eintragen *****************************/
                              var warncellid = ['xxxxxxxxx'];
                              /**************************************************************************************/
                              
                              
                              var UWZTypesArray=["n/a","unbekannt","Sturm/Orkan","Schneefall","Starkregen","Extremfrost","Waldbrandgefahr","Gewitter","Glätte","Hitze","Glatteisregen","Bodenfrost"];
                              
                              function createStates(n){
                                  var AreaChannelID = null;
                                  
                                  for (var j=0; j<warncellid.length; j++) {
                                      AreaChannelId=ChannelId+"."+warncellid[j];        
                                      for (var i=0; i<n; i++) {
                                          createState(AreaChannelId+".warning."+i+".ShortText","",forceInitStates,{type: 'string'});
                                          createState(AreaChannelId+".warning."+i+".LongText","",forceInitStates,{type: 'string'});
                                          createState(AreaChannelId+".warning."+i+".object","",forceInitStates,{type: 'string'});
                                          createState(AreaChannelId+".warning."+i+".begin","",forceInitStates,{type: 'string'});
                                          createState(AreaChannelId+".warning."+i+".end","",forceInitStates,{type: 'string'});
                                          createState(AreaChannelId+".warning."+i+".severity",0,forceInitStates,{type: 'number'});
                                          createState(AreaChannelId+".warning."+i+".type",0,forceInitStates,{min:0, max:11, type: 'number',states:UWZTypesArray});
                                          createState(AreaChannelId+".warning."+i+".uwzLevel",0,forceInitStates,{min:0, max:5, type: 'number'});
                                          createState(AreaChannelId+".warning."+i+".uwzColor",0,forceInitStates,{type:'number'});
                                          createState(AreaChannelId+".warning."+i+".HTMLShort","",forceInitStates,{type: 'string'});
                                          createState(AreaChannelId+".warning."+i+".HTMLLong","",forceInitStates,{type: 'string'});
                                      }
                                  }
                              }
                              
                              function getUWZLevel (warnName){
                                  var result = -1; // -1 is an error!
                                  var alert = warnName.split("_");
                                  var colors = ["green","darkgreen","yellow","orange","red","violet"];
                                  
                                  if (alert[0]=="notice") { result = 1; }
                                  else if (alert[1] == "forewarn") { result = 2; }
                                  else {
                                      result = colors.indexOf(alert[2]);
                                  }
                                  return result;
                              }
                              
                              function getUWZUrgency (warnName){
                                  var result = 0;
                                  
                                  var alert = warnName.split("_");
                                  if (alert[1] == "forewarn") { 
                                      result = 1; 
                                  }
                                  else {
                                      result = 2; // immediate;
                                  }
                                  return result;
                              }
                              
                              function getLevelColor(uwzLevel) {
                                  var uwzColor = [
                                      0x00ff00, // 0 - Grün
                                      0x009b00, // 1 - Dunkelgrün
                                      0xffff00, // 2 - Gelb Wetterwarnungen (Stufe 1)
                                      0xffb400, // 3 - Orange Warnungen vor markantem Wetter (Stufe 2)
                                      0xff0000, // 4 - Rot Unwetterwarnungen (Stufe 3)
                                      0xff00ff, // 5 - Violett Warnungen vor extremem Unwetter (Stufe 4)
                                  ];
                                  if (uwzLevel>=0 && uwzLevel<=5)
                                      return uwzColor[uwzLevel];
                                  else
                                      return 0;
                              }
                              
                              function createHTMLShort(w){
                                  var html = '<div style="background: #'+w.uwzColor.toString(16)+'" border:"10px">';
                                  
                                  var theData = JSON.parse(w.object);
                                  
                                  html += '<h3>';
                                  if (w.uwzUrgency==1) html+="Vorwarnung vor "; else html+="Warnung vor ";
                                  html += UWZTypesArray[w.type];
                                  html +="</h3>";
                                  html += "<p>Zeitraum von "+formatDate(new Date(theData.dtgStart*1000),"WW, DD. OO YYYY hh:mm")+" Uhr bis "+formatDate(new Date(theData.dtgEnd*1000),"WW, DD. OO YYYY hh:mm")+" Uhr </p>";
                                  html += '<p>'+w.ShortText+'</p>';
                                  html += "</div>";
                                  return html;
                              }
                              
                              function createHTMLLong(w){
                                  var html = '<div style="background: #'+w.uwzColor.toString(16)+'" border:"10px">';
                                  
                                  var theData = JSON.parse(w.object);
                                  
                                  html += '<h3>';
                                  if (w.uwzUrgency==1) html+="Vorwarnung vor "; else html+="Warnung vor ";
                                  html += UWZTypesArray[w.type];
                                  html +="</h3>";
                                  html += "<p>Zeitraum von "+formatDate(new Date(theData.dtgStart*1000),"WW, DD. OO YYYY hh:mm")+" Uhr bis "+formatDate(new Date(theData.dtgEnd*1000),"WW, DD. OO YYYY hh:mm")+" Uhr </p>";
                                  html += '<p>'+w.LongText+'</p>';
                                  html += "</div>";
                                  return html;    
                              }
                              
                              function processResultEntry(w) {
                                  this.object = JSON.stringify(w);
                              
                                  this.begin=formatDate(new Date(w.dtgStart*1000),"DD.MM.YYYY hh:mm");
                                  this.end=formatDate(new Date(w.dtgEnd*1000),"DD.MM.YYYY hh:mm");
                                  
                                  // dwmlog (formatDate(this.begin,"DD.MM.YYYY hh:mm"),4);
                                  // dwmlog (formatDate(this.end,"DD.MM.YYYY hh:mm"),4);
                                  
                                  this.LongText = w.payload.translationsLongText.DE;
                                  this.ShortText = w.payload.translationsShortText.DE;
                                  
                                  this.severity = w.severity;
                                  this.type = w.type;
                                  this.uwzLevel = getUWZLevel(w.payload.levelName);
                                  this.uwzUrgency = getUWZUrgency(w.payload.levelName);
                                  this.uwzColor = getLevelColor(this.uwzLevel);
                                  var x = this;
                                  this.HTMLShort = createHTMLShort(x);
                                  this.HTMLLong  = createHTMLLong(x);
                              }
                              
                              function processData(Area,data) {
                                  if (!data) {
                                     return;
                                  }
                                  var AreaChannelId=ChannelId+"."+Area;
                                  
                                  var thedata = JSON.parse(data);
                                  var warnings= [];
                                  
                                  if (thedata.results.length>0) {
                                      for (i=0; i<thedata.results.length; i++) {
                                          warnings.push(new processResultEntry(thedata.results[i]));
                                      }
                                  }
                                  
                                  warnings.sort(function(a,b){
                                      var asort = a.severity; 
                                      var bsort = b.severity;
                                      
                                      return bsort-asort;
                                  });
                                  
                                  
                                  dwmlog(JSON.stringify(warnings));
                                  
                                  for (i=0; i<numOfWarnings; i++) {
                                      if (i<warnings.length) {
                                          setState(AreaChannelId+".warning."+i+".LongText",warnings[i].LongText);
                                          setState(AreaChannelId+".warning."+i+".ShortText",warnings[i].ShortText);
                                          setState(AreaChannelId+".warning."+i+".object",warnings[i].object);
                                          setState(AreaChannelId+".warning."+i+".begin",warnings[i].begin);
                                          setState(AreaChannelId+".warning."+i+".end",warnings[i].end);
                                          setState(AreaChannelId+".warning."+i+".severity",warnings[i].severity);
                                          setState(AreaChannelId+".warning."+i+".type",warnings[i].type);
                                          setState(AreaChannelId+".warning."+i+".uwzLevel",warnings[i].uwzLevel);
                                          setState(AreaChannelId+".warning."+i+".uwzColor",warnings[i].uwzColor);
                                          setState(AreaChannelId+".warning."+i+".HTMLShort",warnings[i].HTMLShort);
                                          setState(AreaChannelId+".warning."+i+".HTMLLong",warnings[i].HTMLLong);
                                      } else {
                                          setState(AreaChannelId+".warning."+i+".LongText","");
                                          setState(AreaChannelId+".warning."+i+".ShortText","");
                                          setState(AreaChannelId+".warning."+i+".object","{}");
                                          setState(AreaChannelId+".warning."+i+".begin","");
                                          setState(AreaChannelId+".warning."+i+".end","");
                                          setState(AreaChannelId+".warning."+i+".severity",0);
                                          setState(AreaChannelId+".warning."+i+".type",0);
                                          setState(AreaChannelId+".warning."+i+".uwzLevel",0);
                                          setState(AreaChannelId+".warning."+i+".uwzColor",0);
                                          setState(AreaChannelId+".warning."+i+".HTMLShort","");
                                          setState(AreaChannelId+".warning."+i+".HTMLLong","");
                                    }
                                  }
                              }
                              
                              function getAreaFromURI(uri) {
                                  var searchstr = "&areaID=";
                                  var n = uri.search(searchstr);
                                  var result = uri.slice(n+searchstr.length,uri.length);
                                  return result;
                              }
                              
                              createStates(numOfWarnings);
                              // processData(jsond2);
                              
                              var request = require('request');
                              schedule ("* * * * *", function(){
                                  for (var i=0; i<warncellid.length; i++) {
                                          request({  
                                              uri: url.replace("XXXAREAXXX",warncellid[i]),
                                              method: "GET",
                                              timeout: 10000,
                                              followRedirect: true,
                                              maxRedirects: 10
                                          }, function(error, response, body) {
                                              // dwmlog("UWZ Error" + error,2);
                                              // dwmlog("UWZ Response: " + JSON.stringify(response),4);
                                              dwmlog("AREA: "+getAreaFromURI(response.request.uri.href),4);
                                              dwmlog("UWZ Body: " + body,4);
                                              if (response.statusCode == 200) {
                                                  processData(getAreaFromURI(response.request.uri.href),body);
                                              }
                                          });    
                                  }
                              });
                              
                              
                              crunchipC Abwesend
                              crunchipC Abwesend
                              crunchip
                              Forum Testing Most Active
                              schrieb am zuletzt editiert von
                              #64

                              @sigi234 ja, ist richtig, hab grad den Thread rausgesucht...da hatte ich schon mal die Probleme, deshalb war das auch nicht mehr im gebrauch
                              https://forum.iobroker.net/post/270175

                              umgestiegen von Proxmox auf Unraid

                              1 Antwort Letzte Antwort
                              0
                              • sigi234S sigi234

                                @crunchip sagte in Beta-Test Android App ioGo 2.1.x:

                                @sigi234 weiss du zufällig, ob an dem script was geändert wurde?

                                Nö, ID Richtig? Gib dir mal meines was geht. WARNCELLID ändern

                                var debuglevel = 1;
                                var debugchannel = 'debug';
                                
                                function dwmlog( message, level, channel) {
                                    if (typeof channel === 'undefined') {
                                        channel = debugchannel;
                                    }
                                    if ( typeof level === 'undefined')
                                    {
                                        level = debuglevel;
                                    }
                                    if ( debuglevel >= level ) {
                                        log (message, channel );
                                    }
                                }
                                
                                var AdapterId = "javascript."+instance;
                                var ChannelId = "UWZ";
                                
                                var forceInitStates = false;
                                var numOfWarnings = 7;
                                
                                var url='http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=de&areaID=XXXAREAXXX';
                                
                                
                                /********************* Hier die Warnzellen-Id's eintragen *****************************/
                                var warncellid = ['xxxxxxxxx'];
                                /**************************************************************************************/
                                
                                
                                var UWZTypesArray=["n/a","unbekannt","Sturm/Orkan","Schneefall","Starkregen","Extremfrost","Waldbrandgefahr","Gewitter","Glätte","Hitze","Glatteisregen","Bodenfrost"];
                                
                                function createStates(n){
                                    var AreaChannelID = null;
                                    
                                    for (var j=0; j<warncellid.length; j++) {
                                        AreaChannelId=ChannelId+"."+warncellid[j];        
                                        for (var i=0; i<n; i++) {
                                            createState(AreaChannelId+".warning."+i+".ShortText","",forceInitStates,{type: 'string'});
                                            createState(AreaChannelId+".warning."+i+".LongText","",forceInitStates,{type: 'string'});
                                            createState(AreaChannelId+".warning."+i+".object","",forceInitStates,{type: 'string'});
                                            createState(AreaChannelId+".warning."+i+".begin","",forceInitStates,{type: 'string'});
                                            createState(AreaChannelId+".warning."+i+".end","",forceInitStates,{type: 'string'});
                                            createState(AreaChannelId+".warning."+i+".severity",0,forceInitStates,{type: 'number'});
                                            createState(AreaChannelId+".warning."+i+".type",0,forceInitStates,{min:0, max:11, type: 'number',states:UWZTypesArray});
                                            createState(AreaChannelId+".warning."+i+".uwzLevel",0,forceInitStates,{min:0, max:5, type: 'number'});
                                            createState(AreaChannelId+".warning."+i+".uwzColor",0,forceInitStates,{type:'number'});
                                            createState(AreaChannelId+".warning."+i+".HTMLShort","",forceInitStates,{type: 'string'});
                                            createState(AreaChannelId+".warning."+i+".HTMLLong","",forceInitStates,{type: 'string'});
                                        }
                                    }
                                }
                                
                                function getUWZLevel (warnName){
                                    var result = -1; // -1 is an error!
                                    var alert = warnName.split("_");
                                    var colors = ["green","darkgreen","yellow","orange","red","violet"];
                                    
                                    if (alert[0]=="notice") { result = 1; }
                                    else if (alert[1] == "forewarn") { result = 2; }
                                    else {
                                        result = colors.indexOf(alert[2]);
                                    }
                                    return result;
                                }
                                
                                function getUWZUrgency (warnName){
                                    var result = 0;
                                    
                                    var alert = warnName.split("_");
                                    if (alert[1] == "forewarn") { 
                                        result = 1; 
                                    }
                                    else {
                                        result = 2; // immediate;
                                    }
                                    return result;
                                }
                                
                                function getLevelColor(uwzLevel) {
                                    var uwzColor = [
                                        0x00ff00, // 0 - Grün
                                        0x009b00, // 1 - Dunkelgrün
                                        0xffff00, // 2 - Gelb Wetterwarnungen (Stufe 1)
                                        0xffb400, // 3 - Orange Warnungen vor markantem Wetter (Stufe 2)
                                        0xff0000, // 4 - Rot Unwetterwarnungen (Stufe 3)
                                        0xff00ff, // 5 - Violett Warnungen vor extremem Unwetter (Stufe 4)
                                    ];
                                    if (uwzLevel>=0 && uwzLevel<=5)
                                        return uwzColor[uwzLevel];
                                    else
                                        return 0;
                                }
                                
                                function createHTMLShort(w){
                                    var html = '<div style="background: #'+w.uwzColor.toString(16)+'" border:"10px">';
                                    
                                    var theData = JSON.parse(w.object);
                                    
                                    html += '<h3>';
                                    if (w.uwzUrgency==1) html+="Vorwarnung vor "; else html+="Warnung vor ";
                                    html += UWZTypesArray[w.type];
                                    html +="</h3>";
                                    html += "<p>Zeitraum von "+formatDate(new Date(theData.dtgStart*1000),"WW, DD. OO YYYY hh:mm")+" Uhr bis "+formatDate(new Date(theData.dtgEnd*1000),"WW, DD. OO YYYY hh:mm")+" Uhr </p>";
                                    html += '<p>'+w.ShortText+'</p>';
                                    html += "</div>";
                                    return html;
                                }
                                
                                function createHTMLLong(w){
                                    var html = '<div style="background: #'+w.uwzColor.toString(16)+'" border:"10px">';
                                    
                                    var theData = JSON.parse(w.object);
                                    
                                    html += '<h3>';
                                    if (w.uwzUrgency==1) html+="Vorwarnung vor "; else html+="Warnung vor ";
                                    html += UWZTypesArray[w.type];
                                    html +="</h3>";
                                    html += "<p>Zeitraum von "+formatDate(new Date(theData.dtgStart*1000),"WW, DD. OO YYYY hh:mm")+" Uhr bis "+formatDate(new Date(theData.dtgEnd*1000),"WW, DD. OO YYYY hh:mm")+" Uhr </p>";
                                    html += '<p>'+w.LongText+'</p>';
                                    html += "</div>";
                                    return html;    
                                }
                                
                                function processResultEntry(w) {
                                    this.object = JSON.stringify(w);
                                
                                    this.begin=formatDate(new Date(w.dtgStart*1000),"DD.MM.YYYY hh:mm");
                                    this.end=formatDate(new Date(w.dtgEnd*1000),"DD.MM.YYYY hh:mm");
                                    
                                    // dwmlog (formatDate(this.begin,"DD.MM.YYYY hh:mm"),4);
                                    // dwmlog (formatDate(this.end,"DD.MM.YYYY hh:mm"),4);
                                    
                                    this.LongText = w.payload.translationsLongText.DE;
                                    this.ShortText = w.payload.translationsShortText.DE;
                                    
                                    this.severity = w.severity;
                                    this.type = w.type;
                                    this.uwzLevel = getUWZLevel(w.payload.levelName);
                                    this.uwzUrgency = getUWZUrgency(w.payload.levelName);
                                    this.uwzColor = getLevelColor(this.uwzLevel);
                                    var x = this;
                                    this.HTMLShort = createHTMLShort(x);
                                    this.HTMLLong  = createHTMLLong(x);
                                }
                                
                                function processData(Area,data) {
                                    if (!data) {
                                       return;
                                    }
                                    var AreaChannelId=ChannelId+"."+Area;
                                    
                                    var thedata = JSON.parse(data);
                                    var warnings= [];
                                    
                                    if (thedata.results.length>0) {
                                        for (i=0; i<thedata.results.length; i++) {
                                            warnings.push(new processResultEntry(thedata.results[i]));
                                        }
                                    }
                                    
                                    warnings.sort(function(a,b){
                                        var asort = a.severity; 
                                        var bsort = b.severity;
                                        
                                        return bsort-asort;
                                    });
                                    
                                    
                                    dwmlog(JSON.stringify(warnings));
                                    
                                    for (i=0; i<numOfWarnings; i++) {
                                        if (i<warnings.length) {
                                            setState(AreaChannelId+".warning."+i+".LongText",warnings[i].LongText);
                                            setState(AreaChannelId+".warning."+i+".ShortText",warnings[i].ShortText);
                                            setState(AreaChannelId+".warning."+i+".object",warnings[i].object);
                                            setState(AreaChannelId+".warning."+i+".begin",warnings[i].begin);
                                            setState(AreaChannelId+".warning."+i+".end",warnings[i].end);
                                            setState(AreaChannelId+".warning."+i+".severity",warnings[i].severity);
                                            setState(AreaChannelId+".warning."+i+".type",warnings[i].type);
                                            setState(AreaChannelId+".warning."+i+".uwzLevel",warnings[i].uwzLevel);
                                            setState(AreaChannelId+".warning."+i+".uwzColor",warnings[i].uwzColor);
                                            setState(AreaChannelId+".warning."+i+".HTMLShort",warnings[i].HTMLShort);
                                            setState(AreaChannelId+".warning."+i+".HTMLLong",warnings[i].HTMLLong);
                                        } else {
                                            setState(AreaChannelId+".warning."+i+".LongText","");
                                            setState(AreaChannelId+".warning."+i+".ShortText","");
                                            setState(AreaChannelId+".warning."+i+".object","{}");
                                            setState(AreaChannelId+".warning."+i+".begin","");
                                            setState(AreaChannelId+".warning."+i+".end","");
                                            setState(AreaChannelId+".warning."+i+".severity",0);
                                            setState(AreaChannelId+".warning."+i+".type",0);
                                            setState(AreaChannelId+".warning."+i+".uwzLevel",0);
                                            setState(AreaChannelId+".warning."+i+".uwzColor",0);
                                            setState(AreaChannelId+".warning."+i+".HTMLShort","");
                                            setState(AreaChannelId+".warning."+i+".HTMLLong","");
                                      }
                                    }
                                }
                                
                                function getAreaFromURI(uri) {
                                    var searchstr = "&areaID=";
                                    var n = uri.search(searchstr);
                                    var result = uri.slice(n+searchstr.length,uri.length);
                                    return result;
                                }
                                
                                createStates(numOfWarnings);
                                // processData(jsond2);
                                
                                var request = require('request');
                                schedule ("* * * * *", function(){
                                    for (var i=0; i<warncellid.length; i++) {
                                            request({  
                                                uri: url.replace("XXXAREAXXX",warncellid[i]),
                                                method: "GET",
                                                timeout: 10000,
                                                followRedirect: true,
                                                maxRedirects: 10
                                            }, function(error, response, body) {
                                                // dwmlog("UWZ Error" + error,2);
                                                // dwmlog("UWZ Response: " + JSON.stringify(response),4);
                                                dwmlog("AREA: "+getAreaFromURI(response.request.uri.href),4);
                                                dwmlog("UWZ Body: " + body,4);
                                                if (response.statusCode == 200) {
                                                    processData(getAreaFromURI(response.request.uri.href),body);
                                                }
                                            });    
                                    }
                                });
                                
                                
                                crunchipC Abwesend
                                crunchipC Abwesend
                                crunchip
                                Forum Testing Most Active
                                schrieb am zuletzt editiert von
                                #65

                                @sigi234 jetzt kommt wieder was :+1:
                                scheinbar ein Fehler bei mir im script gewesen
                                ich teste gleich mal, wegen pushbenachrichtigung

                                umgestiegen von Proxmox auf Unraid

                                1 Antwort Letzte Antwort
                                0
                                • sigi234S sigi234

                                  @crunchip sagte in Beta-Test Android App ioGo 2.1.x:

                                  @sigi234 ja kommt doch

                                  Nein, vielleicht weil es aus einen Skript kommt?

                                  Screenshot (1625)_LI.jpg

                                  crunchipC Abwesend
                                  crunchipC Abwesend
                                  crunchip
                                  Forum Testing Most Active
                                  schrieb am zuletzt editiert von crunchip
                                  #66

                                  @sigi234 also, als Push Benachrichtigung klappt es nicht.
                                  eingetragen bei Funktion, hab ich die Meldung drin, jedoch unschön, wegen dem "zweizeiler"
                                  Screenshot_20200210-004645_iogo.jpg

                                  umgestiegen von Proxmox auf Unraid

                                  sigi234S ? 3 Antworten Letzte Antwort
                                  0
                                  • crunchipC crunchip

                                    @sigi234 also, als Push Benachrichtigung klappt es nicht.
                                    eingetragen bei Funktion, hab ich die Meldung drin, jedoch unschön, wegen dem "zweizeiler"
                                    Screenshot_20200210-004645_iogo.jpg

                                    sigi234S Online
                                    sigi234S Online
                                    sigi234
                                    Forum Testing Most Active
                                    schrieb am zuletzt editiert von
                                    #67

                                    @crunchip

                                    Jupp bei mir auch.

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

                                    1 Antwort Letzte Antwort
                                    0
                                    • crunchipC crunchip

                                      @sigi234 also, als Push Benachrichtigung klappt es nicht.
                                      eingetragen bei Funktion, hab ich die Meldung drin, jedoch unschön, wegen dem "zweizeiler"
                                      Screenshot_20200210-004645_iogo.jpg

                                      ? Offline
                                      ? Offline
                                      Ein ehemaliger Benutzer
                                      schrieb am zuletzt editiert von
                                      #68

                                      @crunchip @sigi234 ich kann euch nicht ganz folgen. Klappen die Push Messages oder gibt es da noch Fragen?

                                      E 1 Antwort Letzte Antwort
                                      0
                                      • ? Ein ehemaliger Benutzer

                                        @crunchip @sigi234 ich kann euch nicht ganz folgen. Klappen die Push Messages oder gibt es da noch Fragen?

                                        E Offline
                                        E Offline
                                        e-s
                                        schrieb am zuletzt editiert von
                                        #69

                                        @nis
                                        Ich glaube die meinen das selbe wie ich. wenn man einen langen Text in einem dp hat, dann wird dieser als massege super angezeigt.
                                        Als dp in Funktionen oder Räume aber falsch und nicht vollständig.

                                        crunchipC 1 Antwort Letzte Antwort
                                        0
                                        • E e-s

                                          @nis
                                          Ich glaube die meinen das selbe wie ich. wenn man einen langen Text in einem dp hat, dann wird dieser als massege super angezeigt.
                                          Als dp in Funktionen oder Räume aber falsch und nicht vollständig.

                                          crunchipC Abwesend
                                          crunchipC Abwesend
                                          crunchip
                                          Forum Testing Most Active
                                          schrieb am zuletzt editiert von crunchip
                                          #70

                                          @e-s @nis ein DP mit Text, wird abgeschnitten angezeigt, wenn man den DP z.b. einer Funktion zu weißt.
                                          Wenn ich aber einen DP via Push einrichte. Funktioniert es eben nicht mit allen DP.
                                          Als Beispiel gestern, die Wettermeldung vom DWD Adapter als push funktioniert.
                                          Wenn man aber Z.b die Wettermeldung, welche über das UWZ- Script erzeugt wird, als Push einrichte, funktioniert es nicht.
                                          In beiden Fällen ein String vom Typ state

                                          umgestiegen von Proxmox auf Unraid

                                          ? 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

                                          390

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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