Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Ulanzi T001 / AWTRIX Light Weather Script.

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Ulanzi T001 / AWTRIX Light Weather Script.

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      BigChris last edited by

      Mir gefällt es sehr gut, vielen Dank!

      1 Reply Last reply Reply Quote 0
      • arteck
        arteck Developer Most Active @Andy200877 last edited by arteck

        @andy200877 sagte in Ulanzi T001 / AWTRIX Light Weather Script.:

        if (wetter_url == 'https://openweathermap.org/img/w/01d.png') {

        mach dich mal mit der switch case anweisung vertraut

        https://www.w3schools.com/js/js_switch.asp

        ist performaner

        1 Reply Last reply Reply Quote 0
        • M
          mrjeschke last edited by

          Gefällt mir auch. Das ganze mit switch müsste etwa so aussehen.

          //  AB HIER BITTE ANPASSEN 
          //  **********************
          // IP-Adresse der Uhr
          var ipaddresse = "awtrix.iot";
          
          // Openweathermap
          var obj_wetter_url = 'openweathermap.0.forecast.current.icon';
          
          // Temperaturwert
          var obj_temperatur = 'openweathermap.0.forecast.current.temperature';
          var temperatureinheit = '°C';
          
          // Wettersymbole-ID Nummern von https://developer.lametric.com/icons
          // Jedes Symbol muss auch auf die Uhr hochgeladen werden !
          var wettericon01 = '11201';     // klarer Himmel Tag
          var wettericon02 = '52163';     // klarer Himmel Nacht
          var wettericon03 = '22315';     // ein paar Wolken Tag (11-25% Wolken)
          var wettericon04 = '26088';     // ein paar Wolken Nacht (11-25% Wolken)
          var wettericon05 = '22378';     // aufgelockerte Bewölkung Tag (25-50% Wolken)
          var wettericon06 = '21907';     // aufgelockerte Bewölkung Nacht (25-50% Wolken)
          var wettericon07 = '13852';     // bewölkt Tag (51-100%)
          var wettericon08 = '52159';     // bewölkt Nacht (51-100%)
          var wettericon09 = '43706';     // Regenschauer Tag
          var wettericon10 = '43739';     // Regenschauer Nacht
          var wettericon11 = '22257';     // Regen Tag
          var wettericon12 = '72';        // Regen Nacht
          var wettericon13 = '43733';     // Gewitter Tag
          var wettericon14 = '43748';     // Gewitter Nacht
          var wettericon15 = '43732';     // Schnee Tag
          var wettericon16 = '26090';     // Schnee Nacht
          var wettericon17 = '43708';     // Nebel Tag
          var wettericon18 = '43741';     // Nebel Nacht
          
          var schriftfarbe = '#ffffff';       // Schriftfarbe für die Temperatur
          var hintergrundfarbe = '#000000';   // Hintergrundfarbe für die Temperatur
          var regenbogen = false;             // Regenbogeneffekt true/false
          var zentriert = true;               // Temperarurwert zentrieren
          
          // *****************************************
          // AB HIER MUSS NICHTS MEHR ANGEPASST WERDEN
          // *****************************************
          
          console.log('Ulanzi Wetterscript start...');
          var wetter_url = getState(obj_wetter_url).val;
          var temperatur = getState(obj_temperatur).val;
          
          await update_wetter();
          
          
          on({ id: [].concat([obj_wetter_url]).concat([obj_temperatur]), change: 'ne' }, async (obj) => {
              console.log('Updating...');
              wetter_url = getState(obj_wetter_url).val;
              temperatur = getState(obj_temperatur).val;
              await update_wetter();
          });
          
          async function update_wetter() {
              var ulanzi_weather_icon = "";
              // https://blueforcer.github.io/awtrix-light/#/api
              switch (wetter_url) {
                  case 'https://openweathermap.org/img/w/01d.png':
                      ulanzi_weather_icon = wettericon01;
                      break;
                  case 'https://openweathermap.org/img/w/01n.png':
                      ulanzi_weather_icon = wettericon02;
                      break;
                  case 'https://openweathermap.org/img/w/02d.png':
                      ulanzi_weather_icon = wettericon03;
                      break;
                  case 'https://openweathermap.org/img/w/02n.png':
                      ulanzi_weather_icon = wettericon04;
                      break;
                  case 'https://openweathermap.org/img/w/03d.png':
                      ulanzi_weather_icon = wettericon05;
                      break;
                  case 'https://openweathermap.org/img/w/03n.png':
                      ulanzi_weather_icon = wettericon06;
                      break;
                  case 'https://openweathermap.org/img/w/04d.png':
                      ulanzi_weather_icon = wettericon07;
                      break;
                  case 'https://openweathermap.org/img/w/04n.png':
                      ulanzi_weather_icon = wettericon08;
                      break;
                  case 'https://openweathermap.org/img/w/09d.png':
                      ulanzi_weather_icon = wettericon09;
                      break;
                  case 'https://openweathermap.org/img/w/09n.png':
                      ulanzi_weather_icon = wettericon10;
                      break;
                  case 'https://openweathermap.org/img/w/10d.png':
                      ulanzi_weather_icon = wettericon11;
                      break;
                  case 'https://openweathermap.org/img/w/10n.png':
                      ulanzi_weather_icon = wettericon12;
                      break;
                  case 'https://openweathermap.org/img/w/11d.png':
                      ulanzi_weather_icon = wettericon13;
                      break;
                  case 'https://openweathermap.org/img/w/11n.png':
                      ulanzi_weather_icon = wettericon14;
                      break;
                  case 'https://openweathermap.org/img/w/13d.png':
                      ulanzi_weather_icon = wettericon15;
                      break;
                  case 'https://openweathermap.org/img/w/13n.png':
                      ulanzi_weather_icon = wettericon16;
                      break;
                  case 'https://openweathermap.org/img/w/50d.png':
                      ulanzi_weather_icon = wettericon17;
                      break;
                  case 'https://openweathermap.org/img/w/50n.png':
                      ulanzi_weather_icon = wettericon18;
              }
          
              temperatur = Math.round(temperatur * 10) / 10;
              let ipaddress = ipaddresse;
              let dataObj = {};
              dataObj.text = '' + temperatur + temperatureinheit;
              dataObj.textCase = 2; // 2 so wie gesndet, 1= Uppercase, 0 = global settings
              dataObj.topText = false; // boolean	Draw the text on top.
              dataObj.textOffset = 0;
              dataObj.center = zentriert;
              dataObj.color = schriftfarbe;
              dataObj.background = hintergrundfarbe;
              dataObj.rainbow = regenbogen;
              dataObj.icon = ulanzi_weather_icon;
              dataObj.pushIcon = 0;
              dataObj.duration = 5;
              dataObj.repeat = 1;
              //console.log((['curl -X POST ','-d  \''+ JSON.stringify(dataObj)+'\' ','-H \'Content-Type: application/json\' ','\'http://'+ipaddress+'/api/custom?name=testapp\'',''].join(''))); 
              exec((['curl -X POST ', '-d  \'' + JSON.stringify(dataObj) + '\' ', '-H \'Content-Type: application/json\' ', '\'http://' + ipaddress + '/api/custom?name=wetter\'', ''].join('')));
          }
          

          Bin aber auch nur Hobbyprogrammierer.

          1 Reply Last reply Reply Quote 1
          • B
            BigChris last edited by

            Was mir auffällt ist, das die Animationen der Icons nicht gut laufen. Die sollten anders aussehen als sie dargestellt werden

            1 Reply Last reply Reply Quote 0
            • A
              Andy200877 last edited by Andy200877

              Edit 11.11.2023 :
              Das neuste Skript gibt es nun nur noch am Anfang des Threads.

              G Olli_M 2 Replies Last reply Reply Quote 3
              • G
                Gartenrosenzuechter @Andy200877 last edited by

                @andy200877 Leider wird bei mir nichts auf der Ulanzi angezeigt - Script läuft und Datenpunkte in userdata wurden angelegt, aber keine Anzeige am Display ... ?

                A 1 Reply Last reply Reply Quote 0
                • A
                  Andy200877 @Gartenrosenzuechter last edited by

                  @gartenrosenzuechter
                  Hast Du die IP-Adresse entsprechend angepasst ?
                  Taucht die App "Wetter" in der Uhr auf ?

                  G 1 Reply Last reply Reply Quote 0
                  • G
                    Gartenrosenzuechter @Andy200877 last edited by

                    @andy200877 Ip Adresse ist korrekt eingestellt - Awtrix version 0.90 App ist am Gerät nicht ersichtlich

                    R 1 Reply Last reply Reply Quote 0
                    • R
                      Rushmed Most Active @Gartenrosenzuechter last edited by

                      @gartenrosenzuechter Die AWTRIX Version wird beim Booten des Geräts angezeigt.

                      G 1 Reply Last reply Reply Quote 0
                      • G
                        Gartenrosenzuechter @Rushmed last edited by

                        @rushmed ja, wie geschrieben 0.90

                        G 1 Reply Last reply Reply Quote 0
                        • G
                          Gartenrosenzuechter @Gartenrosenzuechter last edited by

                          @gartenrosenzuechter Screenshot_19:08:27_03-11-2023.png wenn die erstellten Objekte im IObroker vorher wieder gelöscht werden, erzeugt das Script diesen log.

                          1 Reply Last reply Reply Quote 0
                          • G
                            Gartenrosenzuechter last edited by

                            @gartenrosenzuechter Screenshot_19:08:27_03-11-2023.png wenn die erstellten Objekte im IObroker vorher wieder gelöscht werden, erzeugt das Script diesen log.

                            arteck 1 Reply Last reply Reply Quote 0
                            • arteck
                              arteck Developer Most Active @Gartenrosenzuechter last edited by

                              @gartenrosenzuechter ja weil die dann neu erzeugt werden..
                              immer bei erstellen und erstmaligen Script lauf...

                              ist IMMER so .. egal welches script

                              1 Reply Last reply Reply Quote 0
                              • A
                                Andy200877 last edited by

                                Ich habe mein Skript nochmal angepasst, damit diese Warnungen beim ersten Start nicht mehr kommen.

                                @Gartenrosenzuechter

                                In den Einstellungen vom Javascript Adapter muss der Haken bei Kommando "exec" erlauben gesetzt sein.

                                Ansonsten nochmal mein überarbeitetes Skript von heute ausprobieren und die Debug Ausgabe posten.

                                G 1 Reply Last reply Reply Quote 0
                                • O
                                  Otti 0 last edited by

                                  @Andy200877
                                  Vielen Dank, dass Du dieses Script zur Verfügung stellst. Es wertet die Ulanzi T001 deutlich auf!!

                                  Frage am Rand: In den Awtrix Light Instanzeinstellungen kann ich ja eine benutzerdefinierte App erstellen. Ist es möglich, statt einer Symbol-Nummer (z.B. 43708) auch einen Datenpunkt oder eine Variable (mit einem entsprechenden Wert) anzugeben? Ich habe es nicht hingekriegt..

                                  A 1 Reply Last reply Reply Quote 0
                                  • A
                                    Andy200877 @Otti 0 last edited by

                                    @otti-0
                                    Das geht doch wunderbar mit dem ulanzi adapter über die "Experten Apps".
                                    Einfach dort einen App Namen eintragen und die entsprechenden objekte für das icon und den den text über blockly/javascript,.. eintragen lassen.

                                    1 Reply Last reply Reply Quote 0
                                    • G
                                      Gartenrosenzuechter @Andy200877 last edited by

                                      @andy200877 Exec erlauben ist im Javascript Adapter eingestellt - leider weiterhin keine Anzeige der "App" am Display. anbei der Log

                                      Screenshot_22:58:54_07-11-2023.png

                                      1 Reply Last reply Reply Quote 0
                                      • A
                                        Andy200877 last edited by

                                        @gartenrosenzuechter
                                        Ändere mein Skript mal bitte um diesen Bereich und dann nochmal eine Debug Ausgabe dazu :

                                          temperatur = Math.round(temperatur * 10) / 10;
                                          let ipadress = ipadresse;
                                          let dataObj = {};
                                          dataObj.text = '' + temperatur + temperatureinheit;
                                          dataObj.textCase = 2; // 2 so wie gesndet, 1= Uppercase, 0 = global settings
                                          dataObj.topText = false; // boolean	Draw the text on top.
                                          dataObj.textOffset = 0;
                                          dataObj.center = zentriert;
                                          dataObj.color = schriftfarbe;
                                          dataObj.background = hintergrundfarbe;
                                          dataObj.rainbow = regenbogen;
                                          dataObj.icon = ulanzi_weather_icon;
                                          dataObj.pushIcon = 0;
                                          dataObj.duration = 5;
                                          dataObj.repeat = 1;
                                          var post = "curl -X POST -d  '" + JSON.stringify(dataObj)+"\' -H \'Content-Type: application/json\' \'http://"+ipadress+"/api/custom?name=" + appname + "'";
                                          exec(post, async (error, result, stderr) => {
                                              if (debug) {
                                                  console.log(post);
                                                  console.log(result);
                                              }
                                            });
                                        
                                        }
                                        
                                        
                                        async function delete_wetter() {
                                        
                                        G 1 Reply Last reply Reply Quote 0
                                        • G
                                          Gartenrosenzuechter @Andy200877 last edited by

                                          @andy200877 ich hoffe ich habe es richtig verstanden - habe die Originalzeilen 175 - 198 durch den obigen Code (Zeile 1 - 25 ersetzt

                                          --> keine Änderung

                                          Screenshot_23:07:01_08-11-2023.png

                                          A 1 Reply Last reply Reply Quote 0
                                          • A
                                            Andy200877 @Gartenrosenzuechter last edited by Andy200877

                                            @gartenrosenzuechter
                                            Normalerweise sollte es so aussehen :

                                            19:43:48.851	info	javascript.0 (3934711) script.js.common.Visualisierung.Ulanzi_Wetter_#2: curl -X POST -d '{"text":"9.2°C","textCase":2,"topText":false,"textOffset":0,"center":true,"color":"#FFFFFF","background":"#000000","rainbow":false,"icon":"72","pushIcon":0,"duration":5,"repeat":1}' -H 'Content-Type: application/json' 'http://192.168.14.221/api/custom?name=Wetter'
                                            19:43:48.851	info	javascript.0 (3934711) script.js.common.Visualisierung.Ulanzi_Wetter_#2: OK
                                            

                                            Und ein "Ok" als Antwort von der Ulanzi zurück kommen.

                                            Ist die IP-Adresse wirklich richtig und AWTRIX Light auf der Uhr geflasht ?
                                            Läuft der Test Adapter Awtrix-Light Adapter bei Dir einwandfrei ?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            572
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            19
                                            67
                                            7241
                                            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