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. -
solltest vielleicht noch dazu schreiben dass man dafür die experten apps anlegen muss
-
@arteck Danke, ich habe es ergänzt!