Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Beta-Test Android App ioGo 2.1.x

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Beta-Test Android App ioGo 2.1.x

    This topic has been deleted. Only users with topic management privileges can see it.
    • crunchip
      crunchip Forum Testing Most Active @sigi234 last edited by

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

      sigi234 1 Reply Last reply Reply Quote 0
      • sigi234
        sigi234 Forum Testing Most Active @crunchip last edited by 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);
                        }
                    });    
            }
        });
        
        
        crunchip 2 Replies Last reply Reply Quote 1
        • crunchip
          crunchip Forum Testing Most Active @sigi234 last edited by

          @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

          1 Reply Last reply Reply Quote 0
          • crunchip
            crunchip Forum Testing Most Active @sigi234 last edited by

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

            1 Reply Last reply Reply Quote 0
            • crunchip
              crunchip Forum Testing Most Active @sigi234 last edited by 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

              sigi234 ? 3 Replies Last reply Reply Quote 0
              • sigi234
                sigi234 Forum Testing Most Active @crunchip last edited by

                @crunchip

                Jupp bei mir auch.

                1 Reply Last reply Reply Quote 0
                • ?
                  A Former User @crunchip last edited by

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

                  E 1 Reply Last reply Reply Quote 0
                  • E
                    e-s @Guest last edited by

                    @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.

                    crunchip 1 Reply Last reply Reply Quote 0
                    • crunchip
                      crunchip Forum Testing Most Active @e-s last edited by crunchip

                      @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

                      ? 1 Reply Last reply Reply Quote 0
                      • ?
                        A Former User @crunchip last edited by

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

                        @e-s @nis ein DP mit Text, wird abgeschnitten angezeigt, wenn man den DP z.b. einer Funktion zu weißt.

                        Verstande, das ist einfach zu viel Text. Ich werde den versuchen automatisch etwas zu kürzen. Und dann per Klick in einem neuen View komplett anzuzeigen.

                        Wenn ich aber einen DP via Push einrichte. Funktioniert es eben nicht mit allen DP.

                        Das verstehe ich noch nicht. Was genau funktioniert nicht? Kommt die Push Message nicht an? Wird etwas falsch angezeigt?

                        crunchip 1 Reply Last reply Reply Quote 0
                        • crunchip
                          crunchip Forum Testing Most Active @Guest last edited by crunchip

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

                          Was genau funktioniert nicht?

                          das sind die Objekte aus dem UWZ Script, wenn ich eine Push Benachrichtigung einstelle, kommt gar nix.
                          1755d8c8-4684-44f6-b1d4-f1e03a2f3626-image.png
                          mach ich das selbe mit dem DP aus dem DWD Adapter funktioniert es
                          da257a53-2ea2-4477-9ba4-27a8f9a3eefb-image.png

                          ? 1 Reply Last reply Reply Quote 0
                          • ?
                            A Former User @crunchip last edited by

                            @crunchip kann es sein dass bei den DP wo es nicht geht die neuen Werte nicht mit ack=true gesetzt werden? Es werden nur Push Messages versendet, wenn der Wert mit ack=true gesetzt wird.

                            crunchip 1 Reply Last reply Reply Quote 0
                            • crunchip
                              crunchip Forum Testing Most Active @Guest last edited by crunchip

                              @nis der Tip war richtig, hab auf true gesetzt und sofort kam die Meldung
                              das heisst dann, müsste von seitens script dann angepasst werden?

                              sigi234 ? 2 Replies Last reply Reply Quote 0
                              • sigi234
                                sigi234 Forum Testing Most Active @crunchip last edited by

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

                                @nis der Tip war richtig, hab auf true gesetzt und sofort kam die Meldung
                                das heisst dann, müsste von seitens script dann angepasst werden?

                                Ja geht bei mir auch, aber nur einmal. Was ist dann der Trigger bzw. wie löse ich ein senden der Meldung aus?

                                1 Reply Last reply Reply Quote 0
                                • ?
                                  A Former User @crunchip last edited by

                                  @crunchip ack=false bedeutet es ist ein "Command" was an eine weitere Hardware übertragen werden soll und von dort bestätigt wird mit dem gleichen Wert und ack=true. Daher habe ich die ack=false ausgenommen von den Push Messages.

                                  Wenn der Wert von einem Skript gesetzt wird und es niemanden gibt der den Wert nochmal bestätigen soll, dann macht es nur Sinn den Wert gleich mit ack=true zu setzen vom Skript.

                                  crunchip 1 Reply Last reply Reply Quote 0
                                  • crunchip
                                    crunchip Forum Testing Most Active @Guest last edited by

                                    @nis ok, dann weiss ich Bescheid, bei Javascript bin ich leider raus😁

                                    und Danke nochmal für die Info

                                    1 Reply Last reply Reply Quote 0
                                    • ?
                                      A Former User @crunchip last edited by

                                      @sigi234 @e-s @crunchip @ilovegym @Alex-0

                                      Es ist eine neue Beta Version (2.1.0-beta5) ist unterwegs...

                                      Ein paar Verbesserungen die enthalten sind:

                                      • Anzeige von langen Texten wie z.B. dem Wetterbericht von ioBroker.daswetter
                                      • Layout für Slider angepasst, damit dieser nicht die aktuelle Zahl überlappt
                                      • Layout auf CardStyle umgestellt
                                      ? crunchip E 3 Replies Last reply Reply Quote 3
                                      • ?
                                        A Former User @Guest last edited by

                                        Ganz vergessen, es wurde auch noch ein Bug behoben bei den Locations.
                                        Nach einem Reboot des Smartphone sind die Überwachungen der Geofence teilweise verloren gegangen, daher wird nun automatisch nach jedem Reboot die gesamte Liste der Geofence neu registriert zur Überwachung

                                        crunchip 1 Reply Last reply Reply Quote 0
                                        • crunchip
                                          crunchip Forum Testing Most Active @Guest last edited by

                                          @nis hab übrigens vorhin von unterwegs eine 2. Location angelegt, selbe Koordinaten, mit Radius 101m, wurde sofort in IoBroker mit false angezeigt. Mal sehn ob es wechselt, wenn ich zu hause bin.

                                          1 Reply Last reply Reply Quote 0
                                          • crunchip
                                            crunchip Forum Testing Most Active @Guest last edited by crunchip

                                            @nis sieht gut aus 👌
                                            Wenn ich in der App auf Hosts klick, wird immer offline angezeigt, erst wenn man einmalig drauf klickt, wird es online. Passiert nach updates.
                                            Die Anzeige mit dem langen Text ist prima, dazu gleich mal eine Frage.
                                            Woran machst du das fest, das es so angezeigt wird?
                                            Hatte schonmal in der Vergangenheit danach gefragt, da ich z.b. mir die Raumnamen der geöffneten Fenster/Türen oder wo noch Licht brennt, anzeigen lasse. Da wäre so eine Anzeige auch super, da aktuell gerade mal 1 oder 2 Räume lesbar sind, je nach Wortlänge eben.
                                            Ansonsten aktuell nichts weiter negatives aufgefallen
                                            So sieht es aktuell aus
                                            Screenshot_20200227-034902_iogo.jpg
                                            Wäre natürlich cool, wenn das auch so wie hier gehen würde.
                                            20200227_035347.jpg

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            684
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            android beta geofence iogo test
                                            10
                                            272
                                            21905
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo