NEWS
Ulanzi T001 / AWTRIX Unwetterwarnung
-
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:

Beispiel 2:

📝 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:
🔹Es müssen 3 Experten-Apps angelegt sein:
unwettera
unwetterb
unwetterc
Da ich weder Progammierer noch Softwareentwickler bin, geht bei der Kritik milde mit mir um.
Um Verbesserungsvorschläge oder Ideen bin ich dankbar. -
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:

Beispiel 2:

📝 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:
🔹Es müssen 3 Experten-Apps angelegt sein:
unwettera
unwetterb
unwetterc
Da ich weder Progammierer noch Softwareentwickler bin, geht bei der Kritik milde mit mir um.
Um Verbesserungsvorschläge oder Ideen bin ich dankbar. -
solltest vielleicht noch dazu schreiben dass man dafür die experten apps anlegen muss

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