feat: add weather source entity and weather-reactive CSS source type
Some checks failed
Lint & Test / test (push) Failing after 34s
Some checks failed
Lint & Test / test (push) Failing after 34s
New standalone WeatherSource entity with pluggable provider architecture (Open-Meteo v1, free, no API key). Full CRUD, test endpoint, browser geolocation, IconSelect provider picker, CardSection with test/clone/edit. WeatherColorStripStream maps WMO weather codes to ambient color palettes with temperature hue shifting and thunderstorm flash effects. Ref-counted WeatherManager polls API and caches data per source. CSS editor integration: weather type with EntitySelect source picker, speed and temperature influence sliders. Backup/restore support. i18n for en/ru/zh.
This commit is contained in:
@@ -1140,6 +1140,16 @@
|
||||
"color_strip.type.candlelight": "Candlelight",
|
||||
"color_strip.type.candlelight.desc": "Realistic flickering candle simulation",
|
||||
"color_strip.type.candlelight.hint": "Simulates realistic candle flickering across all LEDs with warm tones and organic flicker patterns.",
|
||||
"color_strip.type.weather": "Weather",
|
||||
"color_strip.type.weather.desc": "Weather-reactive ambient colors",
|
||||
"color_strip.type.weather.hint": "Maps real-time weather conditions to ambient LED colors. Requires a Weather Source entity.",
|
||||
"color_strip.weather.source": "Weather Source:",
|
||||
"color_strip.weather.source.hint": "The weather data source to use for ambient colors. Create one in the Weather tab first.",
|
||||
"color_strip.weather.speed": "Animation Speed:",
|
||||
"color_strip.weather.speed.hint": "Speed of the ambient color drift animation. Higher = faster movement.",
|
||||
"color_strip.weather.temperature_influence": "Temperature Influence:",
|
||||
"color_strip.weather.temperature_influence.hint": "How much the current temperature shifts the palette warm/cool. 0 = pure condition colors, 1 = strong shift.",
|
||||
"color_strip.weather.error.no_source": "Please select a weather source",
|
||||
"color_strip.candlelight.color": "Base Color:",
|
||||
"color_strip.candlelight.color.hint": "The warm base color of the candle flame. Default is a natural warm amber.",
|
||||
"color_strip.candlelight.intensity": "Flicker Intensity:",
|
||||
@@ -1704,6 +1714,35 @@
|
||||
"sync_clock.reset_done": "Clock reset to zero",
|
||||
"sync_clock.delete.confirm": "Delete this sync clock? Linked sources will lose synchronization and run at default speed.",
|
||||
"sync_clock.elapsed": "Elapsed time",
|
||||
"weather_source.group.title": "Weather Sources",
|
||||
"weather_source.add": "Add Weather Source",
|
||||
"weather_source.edit": "Edit Weather Source",
|
||||
"weather_source.name": "Name:",
|
||||
"weather_source.name.placeholder": "My Weather",
|
||||
"weather_source.name.hint": "A descriptive name for this weather data source",
|
||||
"weather_source.provider": "Provider:",
|
||||
"weather_source.provider.hint": "Weather data provider. Open-Meteo is free and requires no API key.",
|
||||
"weather_source.provider.open_meteo.desc": "Free, no API key required",
|
||||
"weather_source.location": "Location:",
|
||||
"weather_source.location.hint": "Your geographic coordinates. Use the auto-detect button or enter manually.",
|
||||
"weather_source.latitude": "Lat:",
|
||||
"weather_source.longitude": "Lon:",
|
||||
"weather_source.use_my_location": "Use my location",
|
||||
"weather_source.update_interval": "Update Interval:",
|
||||
"weather_source.update_interval.hint": "How often to fetch weather data. Lower values give more responsive changes.",
|
||||
"weather_source.description": "Description (optional):",
|
||||
"weather_source.description.placeholder": "Optional description",
|
||||
"weather_source.test": "Test",
|
||||
"weather_source.error.name_required": "Weather source name is required",
|
||||
"weather_source.error.load": "Failed to load weather source",
|
||||
"weather_source.created": "Weather source created",
|
||||
"weather_source.updated": "Weather source updated",
|
||||
"weather_source.deleted": "Weather source deleted",
|
||||
"weather_source.delete.confirm": "Delete this weather source? Linked color strip sources will lose weather data.",
|
||||
"weather_source.geo.success": "Location detected",
|
||||
"weather_source.geo.error": "Geolocation failed",
|
||||
"weather_source.geo.not_supported": "Geolocation is not supported by your browser",
|
||||
"streams.group.weather": "Weather",
|
||||
"color_strip.clock": "Sync Clock:",
|
||||
"color_strip.clock.hint": "Link to a sync clock to synchronize animation timing across sources. Speed is controlled on the clock.",
|
||||
"graph.title": "Graph",
|
||||
@@ -1814,6 +1853,7 @@
|
||||
"section.empty.color_strips": "No color strips yet. Click + to add one.",
|
||||
"section.empty.value_sources": "No value sources yet. Click + to add one.",
|
||||
"section.empty.sync_clocks": "No sync clocks yet. Click + to add one.",
|
||||
"section.empty.weather_sources": "No weather sources yet. Click + to add one.",
|
||||
"section.empty.cspt": "No CSS processing templates yet. Click + to add one.",
|
||||
"section.empty.automations": "No automations yet. Click + to add one.",
|
||||
"section.empty.scenes": "No scene presets yet. Click + to add one.",
|
||||
|
||||
Reference in New Issue
Block a user