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 Unwetterwarnung

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Ulanzi T001 / AWTRIX Unwetterwarnung

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

      Hallo zusammen,
      inspiriert von dem Light Weather Script und der daraus entstanden Aufnahme in den Adapter Adapter awtrix-light habe ich folgende Erweiterung erstellt:

      Dieses Skript verarbeitet Unwetterwarnungen des DWD und stellt sie auf AWTRIX Light dar. Es setzt Warnstufen um, zeigt passende Icons und Farben an und steuert die Sichtbarkeit der Warnmeldungen.

      🔹 Funktionen des Skripts:
      ✔ Automatische Aktivierung der Unwetter-Apps, je nach Anzahl der Warnungen
      ✔ Dynamische Anpassung des Icons, passend zur Warnart (z. B. Gewitter, Sturm, Schnee)
      ✔ Änderung der Text- und Hintergrundfarbe, basierend auf der Warnstufe
      ✔ Verarbeitung von mehreren Warnmeldungen (bis zu drei gleichzeitig)

      Beispiel 1:
      awtrix.gif

      Beispiel 2:
      awtrix(1).gif

      📝 Der Code im Überblick:

      // Hilfsfunktion für Sichtbarkeit
      function setWarningVisibility(value) {
          setState('awtrix-light.0.apps.unwettera.visible', value >= 1);
          setState('awtrix-light.0.apps.unwetterb.visible', value >= 2);
          setState('awtrix-light.0.apps.unwetterc.visible', value >= 3);
      }
      
      /// Hilfsfunktion für Icons
      function setWarningIcon(app, type) {
          const icons = {
              0: '49299', // Thunderstorm
              1: '3363',  // Wind/Storm
              2: '49300', // Rain
              3: '2289',  // Snow
              4: '17055', // Fog
              5: '55543', // Frost
              6: '24231', // Ice
              7: '22866', // Thawing
              8: '55544', // Heat
              default: '16754'
          };
          setState(`awtrix-light.0.apps.${app}.icon`, icons[type] || icons.default);
      }
      
      // Hilfsfunktion für Farben
      function setWarningColor(app, level) {
          const colors = {
              0: { text: '#ffff00', bg: '#000000' },
              1: { text: '#ffff00', bg: '#000000' },
              2: { text: '#ffff00', bg: '#000000' },
              3: { text: '#ff0000', bg: '#000000' },
              4: { text: '#ffffff', bg: '#ff0000' },
              default: { text: '#ffffff', bg: '#000000' }
          };
          const color = colors[level] || colors.default;
          setState(`awtrix-light.0.apps.${app}.textColor`, color.text);
          setState(`awtrix-light.0.apps.${app}.backgroundColor`, color.bg);
      }
      
      // Sichtbarkeit aktualisieren
      on({ id: 'dwd.0.numberOfWarnings', change: 'ne' }, (obj) => {
          setWarningVisibility(obj.state?.val ?? 0);
      });
      
      // Warnungsdetails für alle drei Apps setzen
      ['unwettera', 'unwetterb', 'unwetterc'].forEach((app, index) => {
          on({ id: `dwd.0.warning${index}.type`, change: 'any' }, (obj) => {
              setWarningIcon(app, obj.state?.val ?? 0);
          });
      
          on({ id: `dwd.0.warning${index}.text`, change: 'any' }, (obj) => {
              setState(`awtrix-light.0.apps.${app}.text`, obj.state?.val || '');
          });
      
          on({ id: `dwd.0.warning${index}.level`, change: 'any' }, (obj) => {
              setWarningColor(app, obj.state?.val ?? 0);
          });
      });
      
      

      🛠 Voraussetzungen:
      🔹Awtrix Light Adapter
      🔹DWD Adapter
      🔹Folgende Icons auf dem Gerät installiert:


      49299 Thunderstorm
      3363 Wind/Storm
      49300 Rain
      17055 Fog
      55543 Frost
      24231 Ice
      22866 Thawing
      55544 Heat
      16754 default

      🔹Es müssen 3 Experten-Apps angelegt sein:
      unwettera
      unwetterb
      unwetterc


      Screenshot 2025-01-18 092520.jpg

      Da ich weder Progammierer noch Softwareentwickler bin, geht bei der Kritik milde mit mir um.
      Um Verbesserungsvorschläge oder Ideen bin ich dankbar.

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

        @fetzz

        solltest vielleicht noch dazu schreiben dass man dafür die experten apps anlegen muss
        b7a77a17-642a-4c83-80e0-18ee629bc9f5-grafik.png

        F 1 Reply Last reply Reply Quote 0
        • F
          fetzz @arteck last edited by

          @arteck Danke, ich habe es ergänzt!

          1 Reply Last reply Reply Quote 0
          • C
            ChefkochTS last edited by

            Mmmh, ich habe das soweit gleich eingerichtet.
            Bei mir sind die Seiten nur Schwarz wenn diese erscheinen.
            Wonach könnte ich schauen?
            Awtrix 0.98
            awitrix-light 1.4.1
            DWD 2.8.5
            Gruß Thorsten

            F 1 Reply Last reply Reply Quote 0
            • F
              fetzz @ChefkochTS last edited by

              @chefkochts Sind in deinem Gebiet derzeit Warnungen aktiv? Wenn ja, dann könntest du prüfen,ob die DWD Instanz auch Nummer 0 ist und ob die Datenpunkte dwd.0.warning.text und dwd.0.warning.type vorhanden sind.

              C 1 Reply Last reply Reply Quote 0
              • C
                ChefkochTS @fetzz last edited by

                @fetzz Das passt alles soweit.
                Ich habe im DWD aktuell warning Nebel, warning1 Frost, warning2 Glätte.
                Bei Nebel bleibt es wieder schwarz.
                Die anderen beide zeigt er an.

                F 1 Reply Last reply Reply Quote 0
                • F
                  fetzz @ChefkochTS last edited by

                  @chefkochts
                  Dann muss es irgendwo hier liegen:

                  // Hilfsfunktion für Farben
                  
                  function setWarningColor(app, level) {
                  
                      const colors = {
                  
                          0: { text: '#ffff00', bg: '#000000' },
                  
                          1: { text: '#ffff00', bg: '#000000' },
                  
                          2: { text: '#ffff00', bg: '#000000' },
                  
                          3: { text: '#ff0000', bg: '#000000' },
                  
                          4: { text: '#ffffff', bg: '#ff0000' },
                  
                          default: { text: '#ffffff', bg: '#000000' }
                  
                      };
                  
                      const color = colors[level] || colors.default;
                  
                      setState(`awtrix-light.0.apps.${app}.textColor`, color.text);
                  
                      setState(`awtrix-light.0.apps.${app}.backgroundColor`, color.bg);
                  

                  Das die Zuordnung des Level der Warnung nicht passt, aber dann sollte der default-Wert genommen werden.

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  929
                  Online

                  31.7k
                  Users

                  79.7k
                  Topics

                  1.3m
                  Posts

                  3
                  7
                  277
                  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