Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Ulanzi T001 / AWTRIX Light Weather Script.

NEWS

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

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

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

Ulanzi T001 / AWTRIX Light Weather Script.

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
67 Beiträge 19 Kommentatoren 12.8k Aufrufe 18 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.
  • Olli_MO Olli_M

    @andy200877

    also bei mir hängt noch in der clock das alte script...obwohl ich das eigentlich gelöscht habe.... grad zeigt er es mir zweimal hintereinander an 😞

    hab den Adapter auch schon neu gestartet...

    kann ich das irgendwo clearen oder so? vielleicht ist im cache der Uhr noch irgendwo was 😕

    A Offline
    A Offline
    Andy200877
    schrieb am zuletzt editiert von Andy200877
    #49

    @olli_m
    Beim alten skript am besten vorher visible auf false und dann das skript beenden. Dadurch wird die app entfernt.
    Ansonsten Uhr mal neu starten, dann sind alle "User-Apps" auch erstmal entfernt.
    Werden aber durch den Adapter wieder zu Uhr geladen. Vorher natürlich mein altes Skript deaktivieren.

    https://github.com/Andy200877/intex_poollampe

    Olli_MO 2 Antworten Letzte Antwort
    0
    • A Andy200877

      @olli_m
      Beim alten skript am besten vorher visible auf false und dann das skript beenden. Dadurch wird die app entfernt.
      Ansonsten Uhr mal neu starten, dann sind alle "User-Apps" auch erstmal entfernt.
      Werden aber durch den Adapter wieder zu Uhr geladen. Vorher natürlich mein altes Skript deaktivieren.

      Olli_MO Offline
      Olli_MO Offline
      Olli_M
      schrieb am zuletzt editiert von
      #50

      @andy200877 hat geklappt:-)

      1 Antwort Letzte Antwort
      0
      • A Andy200877

        @olli_m
        Beim alten skript am besten vorher visible auf false und dann das skript beenden. Dadurch wird die app entfernt.
        Ansonsten Uhr mal neu starten, dann sind alle "User-Apps" auch erstmal entfernt.
        Werden aber durch den Adapter wieder zu Uhr geladen. Vorher natürlich mein altes Skript deaktivieren.

        Olli_MO Offline
        Olli_MO Offline
        Olli_M
        schrieb am zuletzt editiert von
        #51

        @andy200877

        Klappt bei dir das visible immer ? Bei mir nicht immer wenn ich den DP direkt ändere

        A 1 Antwort Letzte Antwort
        0
        • Olli_MO Olli_M

          @andy200877

          Klappt bei dir das visible immer ? Bei mir nicht immer wenn ich den DP direkt ändere

          A Offline
          A Offline
          Andy200877
          schrieb am zuletzt editiert von
          #52

          @olli_m
          Beim Awtrix Adapter oder bei meinem alten skript ?

          Wenn beim Adapter, dann bitte dort posten / anfragen.

          https://github.com/Andy200877/intex_poollampe

          Olli_MO 1 Antwort Letzte Antwort
          1
          • A Andy200877

            @olli_m
            Beim Awtrix Adapter oder bei meinem alten skript ?

            Wenn beim Adapter, dann bitte dort posten / anfragen.

            Olli_MO Offline
            Olli_MO Offline
            Olli_M
            schrieb am zuletzt editiert von
            #53

            @andy200877

            okay poste dort 🙂

            1 Antwort Letzte Antwort
            0
            • A Andy200877

              Ich habe mein Skript nun überarbeitet.
              Einfach im Awtrix.light Adapter unter ExpertenOptionen eine App "wetter" anlegen.

              Mein Skript füttert die entsprechenden Objekte des Adapters.

              Wie immer ´...

              • Icons auf die Uhr laden
              • Objektpfade anpassen von (Openweathermap und awtrix)
              //  **********************
              //  AB HIER BITTE ANPASSEN 
              //  **********************
              
              var obj_ulanzi_icon = "awtrix-light.0.apps.wetter.icon";
              var obj_ulanzi_text = "awtrix-light.0.apps.wetter.text";
              
              // Openweathermap
              var obj_wetter_url = "openweathermap.0.forecast.current.icon";      // Quelle für Wettersymbol
              var obj_temperatur = "openweathermap.0.forecast.current.temperature"; // Quelle für Temperaturwert
              
              
              
              // 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
              
              // *****************************************
              // AB HIER MUSS NICHTS MEHR ANGEPASST WERDEN
              // *****************************************
              
              
              console.log('Ulanzi Wetterscript start für Uhr ');
              
              var temperatureinheit = (await getObjectAsync(obj_temperatur)).common.unit;
              var wetter_url = getState(obj_wetter_url).val;
              var temperatur = getState(obj_temperatur).val;
              
              await update_wetter_icon(wetter_url);
              await update_wetter_temp(temperatur);
              
              
              on({ id: [].concat([obj_temperatur]), change: 'ne' }, async (obj) => {
                let value = obj.state.val;
                update_wetter_temp(value);
              });
              
              
              on({ id: [].concat([obj_wetter_url]), change: 'ne' }, async (obj) => {
                  let value = obj.state.val;
                  update_wetter_icon(value);
              });
              
              async function update_wetter_temp(wert) {
                  wert = Math.round(wert * 10) / 10;
                  setState(obj_ulanzi_text, wert+temperatureinheit);
              }
              
              
              async function update_wetter_icon(wetter_url) {
                  var ulanzi_weather_icon = "";
              
                  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;
                  }
                  setState(obj_ulanzi_icon, ulanzi_weather_icon);
              }
              
              
              B Offline
              B Offline
              Bibo*13
              schrieb am zuletzt editiert von Bibo*13
              #54

              @andy200877 Was muß ich denn tun um die Schriftfarbe anzupassen? Im Expertenmenue hab ich ja keine Eingabemöglichkeit. Ich möchte abhängig von der Temperatur die Farbe auf blau für minus oder rot für plus setzen.
              Gibt es dafür eine einfache Lösung?

              1 Antwort Letzte Antwort
              0
              • B Offline
                B Offline
                blacksheep587
                schrieb am zuletzt editiert von
                #55

                Vielen Dank für das Skript! Klappt sofort, aber ein Problem habe ich noch: Mir werden noch keine Werte angezeigt. Folgendes wird an die Ulanzi geschickt:

                javascript.0 (9822) script.js.Ulanzi-Wetter: exec: curl -X POST -u user:awtrix -d '{"text":"6.3undefined","textCase":2,"topText":false,"textOffset":0,"center":true,"color":"#FFFFFF","background":"#000000","rainbow":false,"icon":"11201","pushIcon":0,"duration":5,"repeat":1}' -H 'Content-Type: application/json' 'http://192.168.178.101/api/custom?name=Wetter'
                

                Habe ich was übersehen?

                1 Antwort Letzte Antwort
                0
                • haus-automatisierungH Online
                  haus-automatisierungH Online
                  haus-automatisierung
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #56

                  Weil hier manche gefragt haben, habe ich noch ein Beispiel für das Icon-Mapping von OpenWeatherMap in einer Experten-App des Awtrix-Light-Adpaters in die Doku übernommen:

                  https://github.com/klein0r/ioBroker.awtrix-light/blob/master/docs/de/weather-app.md

                  🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                  🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                  📚 Meine inoffizielle ioBroker Dokumentation

                  BTC_87B 1 Antwort Letzte Antwort
                  2
                  • haus-automatisierungH haus-automatisierung

                    Weil hier manche gefragt haben, habe ich noch ein Beispiel für das Icon-Mapping von OpenWeatherMap in einer Experten-App des Awtrix-Light-Adpaters in die Doku übernommen:

                    https://github.com/klein0r/ioBroker.awtrix-light/blob/master/docs/de/weather-app.md

                    BTC_87B Offline
                    BTC_87B Offline
                    BTC_87
                    schrieb am zuletzt editiert von
                    #57

                    @haus-automatisierung

                    Danke für den Link und auch für das Script. Funktioniert auch super. Allerdings wird mit immer der Wert "Treu" mit ausgegeben ... Auf meinem Display erscheint dann das Icon, die Temperatur, danach dann "true", dann meine anderen Sachen wieder. Kann man ausschalten, dass der Wert übermittelt wird?

                    Screenshot 2024-04-02 195047.png

                    1 Antwort Letzte Antwort
                    0
                    • A Andy200877

                      Ich habe mein Skript nun überarbeitet.
                      Einfach im Awtrix.light Adapter unter ExpertenOptionen eine App "wetter" anlegen.

                      Mein Skript füttert die entsprechenden Objekte des Adapters.

                      Wie immer ´...

                      • Icons auf die Uhr laden
                      • Objektpfade anpassen von (Openweathermap und awtrix)
                      //  **********************
                      //  AB HIER BITTE ANPASSEN 
                      //  **********************
                      
                      var obj_ulanzi_icon = "awtrix-light.0.apps.wetter.icon";
                      var obj_ulanzi_text = "awtrix-light.0.apps.wetter.text";
                      
                      // Openweathermap
                      var obj_wetter_url = "openweathermap.0.forecast.current.icon";      // Quelle für Wettersymbol
                      var obj_temperatur = "openweathermap.0.forecast.current.temperature"; // Quelle für Temperaturwert
                      
                      
                      
                      // 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
                      
                      // *****************************************
                      // AB HIER MUSS NICHTS MEHR ANGEPASST WERDEN
                      // *****************************************
                      
                      
                      console.log('Ulanzi Wetterscript start für Uhr ');
                      
                      var temperatureinheit = (await getObjectAsync(obj_temperatur)).common.unit;
                      var wetter_url = getState(obj_wetter_url).val;
                      var temperatur = getState(obj_temperatur).val;
                      
                      await update_wetter_icon(wetter_url);
                      await update_wetter_temp(temperatur);
                      
                      
                      on({ id: [].concat([obj_temperatur]), change: 'ne' }, async (obj) => {
                        let value = obj.state.val;
                        update_wetter_temp(value);
                      });
                      
                      
                      on({ id: [].concat([obj_wetter_url]), change: 'ne' }, async (obj) => {
                          let value = obj.state.val;
                          update_wetter_icon(value);
                      });
                      
                      async function update_wetter_temp(wert) {
                          wert = Math.round(wert * 10) / 10;
                          setState(obj_ulanzi_text, wert+temperatureinheit);
                      }
                      
                      
                      async function update_wetter_icon(wetter_url) {
                          var ulanzi_weather_icon = "";
                      
                          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;
                          }
                          setState(obj_ulanzi_icon, ulanzi_weather_icon);
                      }
                      
                      
                      spitzeS Offline
                      spitzeS Offline
                      spitze
                      schrieb am zuletzt editiert von
                      #58

                      @andy200877 Erst einmal ganz herzlichen Dank!

                      Ich bin absoluter Anfänger (weder programmiere ich, noch nutze ich - ansonsten - iobroker. Ich habe mir eine Ulanzi gekauft und möchte nur eine Wetteranzeige darauf installieren und habe dafür iobroker installiert und das Skript eingefügt). Die Variante über die Expertenapp hat für mich geklappt und die Uhr hat für ca. einen Tag das Wetter so angezeigt. Nunmehr aktualisieren sich die Wetterdaten aber nicht mehr. Das Problem scheint eher mit OpenWeatherMap zusammenzuhängen, aber evtl. kann mir hier jemand helfen oder hatte das gleiche Problem.

                      Nachdem es anfangs geklappt hat bekomme ich nunmehr den Error 400 (Beispiel aus dem iobroker Protokoll: "openweathermap.0 2024-05-03 19:42:21.497 error Error: 400") und die Daten bei OpenWeather "refreshen" sich nicht mehr. Ich habe nichts geändert. Nach mehrfachen "Neustarts" (und auch austesten der anderen Skriptvarianten, die Du hier zur Verfügung gestellt hast) hat es sich dann mal wieder (einmal) aktualisiert und jetzt bin ich wieder bei Error 400. Wie gesagt, habe ich gar nichts an den Einstellungen (iobroker, Instanzen, Skripte ...) geändert. Ich war nicht einmal auf den Oberflächen.

                      Hat jemand eine Idee woran es liegen kann bzw. was ich probieren kann?

                      1 Antwort Letzte Antwort
                      0
                      • Steffe.S.S Online
                        Steffe.S.S Online
                        Steffe.S.
                        schrieb am zuletzt editiert von
                        #59

                        Vielen Dank für das Skript. Super Arbeit

                        Wo kann ich denn die Zeit verstellen, dass das Wetter länger sichtbar ist.

                        B 1 Antwort Letzte Antwort
                        0
                        • Steffe.S.S Steffe.S.

                          Vielen Dank für das Skript. Super Arbeit

                          Wo kann ich denn die Zeit verstellen, dass das Wetter länger sichtbar ist.

                          B Offline
                          B Offline
                          bouster
                          schrieb am zuletzt editiert von
                          #60

                          @steffe-s Ich habe es in Zeile 192 angepasst. Ob das der "schöne" Weg ist weiß ich nicht, da ich mich selbst nicht so gut auskenne.

                          @Andy200877 Ich habe noch einen Vorschlag. Wenn die Uhr ausgeschaltet ist und wieder eingeschaltet wird muss ich das Skript manuell neustarten. Es wäre doch schön, wenn das automatisch passiert.

                          Steffe.S.S 1 Antwort Letzte Antwort
                          0
                          • B bouster

                            @steffe-s Ich habe es in Zeile 192 angepasst. Ob das der "schöne" Weg ist weiß ich nicht, da ich mich selbst nicht so gut auskenne.

                            @Andy200877 Ich habe noch einen Vorschlag. Wenn die Uhr ausgeschaltet ist und wieder eingeschaltet wird muss ich das Skript manuell neustarten. Es wäre doch schön, wenn das automatisch passiert.

                            Steffe.S.S Online
                            Steffe.S.S Online
                            Steffe.S.
                            schrieb am zuletzt editiert von Steffe.S.
                            #61

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

                            @steffe-s Ich habe es in Zeile 192 angepasst. Ob das der "schöne" Weg ist weiß ich nicht, da ich mich selbst nicht so gut auskenne.

                            vielen danke für Deine Antwort, hat super funktioniert.

                            ich habe noch eine Frage zu den Icons, bei mir flackern mache Icons, bzw. werden nicht richtig angezeigt (hier die Wolke unter der Sonne). Mir scheint es so, als würde das Bild immer wieder neu gestartet werden und kommt garnicht zum Ende. Kann ich das irgendwie fixen?

                            awtrix (1).gif

                            edit: es liegt an diesem einzigen Icon (13852). Ich habe mir das Icon etwas verändert und dann flackert es auch nicht mehr (60742).

                            awtrix (2).gif

                            Vielleicht kann mir jemand auch eine andere Lösung nennen.

                            Gruss S.

                            T 1 Antwort Letzte Antwort
                            1
                            • Steffe.S.S Online
                              Steffe.S.S Online
                              Steffe.S.
                              schrieb am zuletzt editiert von Steffe.S.
                              #62

                              falscher Beitrag, sorry

                              1 Antwort Letzte Antwort
                              0
                              • B Offline
                                B Offline
                                bouster
                                schrieb am zuletzt editiert von
                                #63

                                Hallo zusammen,
                                hat jemand eine Idee was geändert werden muss, damit das Wetter von "morgen" angezeigt wird?

                                arteckA 1 Antwort Letzte Antwort
                                0
                                • B bouster

                                  Hallo zusammen,
                                  hat jemand eine Idee was geändert werden muss, damit das Wetter von "morgen" angezeigt wird?

                                  arteckA Offline
                                  arteckA Offline
                                  arteck
                                  Developer Most Active
                                  schrieb am zuletzt editiert von
                                  #64

                                  @bouster

                                  var obj_wetter_url = "openweathermap.0.forecast.current.icon";      // Quelle für Wettersymbol
                                  var obj_temperatur = "openweathermap.0.forecast.current.temperature"; // Quelle für Temperaturwert
                                  

                                  tauche gegen

                                  var obj_wetter_url = "openweathermap.0.forecast.day1.icon";      // Quelle für Wettersymbol
                                  var obj_temperatur = "openweathermap.0.forecast.day1.temperatureMax"; // Quelle für Temperaturwert
                                  

                                  zigbee hab ich, zwave auch, nuc's genauso und HA auch

                                  1 Antwort Letzte Antwort
                                  0
                                  • A Andy200877

                                    Ich habe seit gestern auch eine Ulanzi T001 Pixeluhr.

                                    Das Skript erzeugt nach dem Start eine neue App auf der Uhr.
                                    Sollten sich nun die Datenpunkte für das Wettersymbol oder der Temperaturwert ändern, werden die geänderten Daten erneut zur Uhr gesendet.

                                    Im Skript lässt sich der Pfad zu den Skripteigenen Objekten anpassen.

                                    var bezeichnung_uhr = "Ulanzi_#1"; 
                                    var appname = "Wetter"; 
                                    var objektpfad = "0_userdata.0.Visualisierung.Ulanzi"; 
                                    

                                    Es werden in diesem Fall ein paar Objekte unter : "objektpfad.bezeichnung_uhr.appname " erstellt.
                                    In diesem Beispiel werden also unter : "0_userdata.0.Visualisierung.Ulanzi.Ulanzi_#1.Wetter."
                                    folgende Objekte erstellt :

                                    • Text_center
                                    • backgroundcolor
                                    • fontcolor
                                    • rainbow
                                    • visible

                                    Über das Objekt visible lässt sich meine Wetter App auf der Uhr ein.-/ausschalten.
                                    Der Rest ist denke ich mal selbsterklärend.

                                    Als Wetterdienst habe ich mich für "openweathermap" entschieden, weil es dort auch unterschiedliche Symbole für Tag und Nacht gibt und das aktuelle Wetter als Symbol vorliegt.
                                    Für Openweathermap wird jedoch ein API-Key benötigt. Dieser ist aber kostenlos und schnell erstellt. Am besten dazu mal in den Openweathermap-Adapter schauen.
                                    Falls jemand einen anderen guten Wetterdienst kennt, immer raus mit der Sprache, dann passe ich mein Skript dafür an....

                                    Anpassen / Einrichtung des Skripts
                                    Eigentlich müsst Ihr nur die Zeilen 6-16 nach Euren Bedürfnissen anpassen.
                                    Ihr müsst natürlich die IP-Adresse und Eure Zugangsdaten, falls Ihr welche auf der Uhr habt im Skript anpassen.
                                    In Zeile 15 muss der "Link" zum Openweathermap Icon angegeben werden. Evtl. muss bei Euch die Instanz Nummer geändert werden.
                                    In Zeile 16 wird der Link zum Temperaturwert eingetragen, bei mir ist dort z.B. meine Wetterstation eingetragen. Somit bekomme ich Livewerte. (Die Temperaturwerte werden auf 1 Nachkommastelle gerundet)

                                    Zum Schluss müssen natürlich noch die Wettersymbole auf Eure Uhr geladen werden. Die entsprechenden ID's sind Zeile 22-39 im Skript angegeben. (var wettericon1-18)

                                    Einige Symbole finde ich nicht besonders schön und sie "springen" bei der Anzeige, aber das liegt wohl an den Icons. Wenn jemand andere schönere / fehlerfreie Icons hat, immer her damit.... 😉

                                    Und zum Schluss nochmal vielen Dank, für die User welche mich unterstützt und Verbesserungen zum Skript haben. Ich bin nur ein "Hobbyprogrammierer".

                                    Hier mein Code / JavaScript :

                                    //  **********************
                                    //  AB HIER BITTE ANPASSEN 
                                    //  **********************
                                    
                                    // IP-Adresse der Uhr
                                    var ipadresse = "192.168.14.220";                       // IP-Adrersse der Uhr
                                    var username = "user";                                  // Benutzername, falls unter AwTrix unter Auth eins eingerichtet ist.
                                    var password = "awtrix";                                // Passwort, falls unter Awtrix unter Auth eins eingerichtet ist.
                                    var bezeichnung_uhr = "Ulanzi_#1";                      // Bezeichnung der Uhr, falls man mehrere besitzt.
                                    var appname = "Wetter";                                 // Bezeichnung der App auf der Uhr
                                    var objektpfad = "0_userdata.0.Visualisierung.Ulanzi";  // Dort werden die Objekte zum steuern erstellt. z.B. 0_userdata.0.Visualisierung.Ulanzi.Ulanzi_#1.Wetter
                                    var debug = false;                                       // (true/false) Debug Modus mehr Logausgaben beim Betrieb
                                    
                                    // Openweathermap
                                    var obj_wetter_url = 'openweathermap.0.forecast.current.icon';      // Quelle für Wettersymbol
                                    var obj_temperatur = 'wiffi-wz.0.root.192_168_14_117.w_temperatur'; // Quelle für Temperaturwert
                                    
                                    
                                    
                                    // 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
                                    
                                    // *****************************************
                                    // AB HIER MUSS NICHTS MEHR ANGEPASST WERDEN
                                    // *****************************************
                                    
                                    
                                    console.log('Ulanzi Wetterscript start für Uhr ' + bezeichnung_uhr + "(" + ipadresse + ")");
                                    
                                    var objekte = objektpfad + '.' + bezeichnung_uhr + '.' + appname
                                    createState(objekte + '.visible', true, {read: true, write: true,  type: "boolean", name: "App visible"});
                                    createState(objekte + '.fontcolor', '#FFFFFF', {read: true, write: true,  type: "string", name: "Fontcolor"});
                                    createState(objekte + '.backgroundcolor', '#000000', {read: true, write: true,  type: "string", name: "Backgroundcolor"});
                                    createState(objekte + '.rainbow', false, {read: true, write: true,  type: "boolean", name: "Rainbow Font"});
                                    createState(objekte + '.Text_center', true, {read: true, write: true,  type: "boolean", name: "Center text"});
                                    
                                    
                                    
                                    await wait(2000);
                                    
                                    
                                    
                                    var wetter_url = getState(obj_wetter_url).val;
                                    var temperatur = getState(obj_temperatur).val;
                                    var schriftfarbe = getState(objekte + '.fontcolor').val;
                                    var hintergrundfarbe = getState(objekte + '.backgroundcolor').val;
                                    var regenbogen = getState(objekte + '.rainbow').val;
                                    var zentriert = getState(objekte + '.Text_center').val;
                                    var temperatureinheit = (await getObjectAsync(obj_temperatur)).common.unit;
                                    
                                    
                                    if (getState(objekte + '.visible').val == true) {
                                        await update_wetter();
                                    }
                                    
                                    
                                    on({ id: [].concat([obj_wetter_url]).concat([obj_temperatur]), change: 'ne' }, async (obj) => {
                                        wetter_url = getState(obj_wetter_url).val;
                                        temperatur = getState(obj_temperatur).val;
                                        temperatureinheit = (await getObjectAsync(obj_temperatur)).common.unit;
                                        if (getState(objekte + '.visible').val == true) {
                                            await update_wetter();
                                        }
                                    });
                                    
                                    
                                    on({ id: [].concat([objekte + '.visible']), change: 'ne' }, async (obj) => {
                                        setState(obj.id, obj.state.val, true);
                                      if ((obj.state ? obj.state.val : "") == true) {
                                        await update_wetter();
                                      } else {
                                        await delete_wetter();
                                      }
                                    });
                                    
                                    on({ id: [].concat([objekte + '.fontcolor']), change: 'ne' }, async (obj) => {
                                        setState(obj.id, obj.state.val, true);
                                        schriftfarbe = (obj.state ? obj.state.val : "");
                                        await update_wetter();
                                    });
                                    
                                    on({ id: [].concat([objekte + '.backgroundcolor']), change: 'ne' }, async (obj) => {
                                        setState(obj.id, obj.state.val, true);
                                        hintergrundfarbe = (obj.state ? obj.state.val : "");
                                        await update_wetter();
                                    });
                                    
                                    on({ id: [].concat([objekte + '.rainbow']), change: 'ne' }, async (obj) => {
                                        setState(obj.id, obj.state.val, true);
                                        regenbogen = (obj.state ? obj.state.val : "");
                                        await update_wetter();
                                    });
                                    
                                    on({ id: [].concat([objekte + '.Text_center']), change: 'ne' }, async (obj) => {
                                        setState(obj.id, obj.state.val, true);
                                        zentriert = (obj.state ? obj.state.val : "");
                                        await update_wetter();
                                    });
                                    
                                    
                                    async function update_wetter() {
                                        var ulanzi_weather_icon = "";
                                        var result ="";
                                    // 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 ipadress = ipadresse;
                                      let dataObj = {};
                                      dataObj.text = '' + temperatur + temperatureinheit;
                                      dataObj.textCase = 2; // 2 so wie gesendet, 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 -u " + username + ":" + password + " -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() {
                                        let ipadress = ipadresse;
                                        var post = "curl -X POST -u " + username + ":" + password + " -d  '' -H \'Content-Type: application/json\' \'http://"+ipadress+"/api/custom?name=" + appname + "'";
                                        exec(post, async (error, result, stderr) => {
                                          if (debug) {
                                              console.log("Deaktiviere " + appname);
                                              console.log(post);
                                              console.log(result);
                                          }
                                        });
                                    }
                                    
                                    

                                    Changelog
                                    11.11.2023 : Benutzername / Kennwort eingefügt, bessere Debug Informationen, mehr Kommentare im Skript.

                                    S Offline
                                    S Offline
                                    srutster
                                    schrieb am zuletzt editiert von srutster
                                    #65

                                    @andy200877 Hi,

                                    ich versuche gerade das Skript einzurichten, den Openweathermap Adapter habe ich bereits mit der API eingerichtet. Allerdings verstehe ich nicht ganz was bei Zeile 15 und 16 eingetragen werden muss. Könntest du das bitte nochmal etwas genauer erklären. Was ist "der "Link" zum Openweathermap Icon", bzw wo bekomme ich den her? Und der Link zum Temperaturwert sollte ja auch von Openweathermap kommen oder verstehe ich das falsch?

                                    Danke
                                    LG

                                    EDIT: jetzt funktioniert es, das Problem war das der richtige code bez. der beiden Punkte in den kommentaren war und nicht ganz oben im startpost

                                    1 Antwort Letzte Antwort
                                    0
                                    • S Offline
                                      S Offline
                                      Spiecky
                                      schrieb am zuletzt editiert von
                                      #66

                                      Hallo zusammen,

                                      habe mir auch die Instanz Awtrix-light installiert und über eine Experten App mit dem Java-Script alles zum laufen bekommen. Hier schon mal vielen Dank für den genialen Adapter und das Script. Habe leider quasi keine Java Programmierkenntnisse. Kopiere/klaue mir immer alles zusammen und dann try and error.....

                                      Damit komme ich jetzt aber leider nicht weiter. Deshalb hier meine bescheidene Frage bzw. Wunsch:

                                      Ich habe einen Datenpunkt True/False vom Regensensor und würde damit gerne z.B. den Hintergundeffekt Matrix in Blau bei der Wetter-App einbauen. Also das beim Anzeigen der App und Regen, der Effekt Matrix (in blau) eingeschaltet wird.
                                      Die Option gibt es leider nur bei den "normalen" Apps. Ich habe leider nicht mal den Java Befehl gefunden um einen Effect zu aktivieren.

                                      Vielleicht ist es ja ganz einfach.....falls nicht....muss ja nicht sein 😉

                                      Vielen Dank schon mal im Voraus für Eure immer wieder grandiose Arbeit hier......

                                      1 Antwort Letzte Antwort
                                      0
                                      • Steffe.S.S Steffe.S.

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

                                        @steffe-s Ich habe es in Zeile 192 angepasst. Ob das der "schöne" Weg ist weiß ich nicht, da ich mich selbst nicht so gut auskenne.

                                        vielen danke für Deine Antwort, hat super funktioniert.

                                        ich habe noch eine Frage zu den Icons, bei mir flackern mache Icons, bzw. werden nicht richtig angezeigt (hier die Wolke unter der Sonne). Mir scheint es so, als würde das Bild immer wieder neu gestartet werden und kommt garnicht zum Ende. Kann ich das irgendwie fixen?

                                        awtrix (1).gif

                                        edit: es liegt an diesem einzigen Icon (13852). Ich habe mir das Icon etwas verändert und dann flackert es auch nicht mehr (60742).

                                        awtrix (2).gif

                                        Vielleicht kann mir jemand auch eine andere Lösung nennen.

                                        Gruss S.

                                        T Offline
                                        T Offline
                                        tom_33
                                        schrieb am zuletzt editiert von
                                        #67

                                        @steffe-s vielen dank!!

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


                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        751

                                        Online

                                        32.4k

                                        Benutzer

                                        81.4k

                                        Themen

                                        1.3m

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

                                        • Du hast noch kein Konto? Registrieren

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