# Externe Integration: Meteo France

**URL:** <https://community.gladysassistant.com/t/integration-externe-meteo-france/10322>\
**Category:** Développement\
**Tags:** intégration, méteo, integration-externe\
**Created:** [4. Juli 2026 um 15:14 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322 "2026-07-04T15:14:35Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![mutmut](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/mutmut/32/14064_2.png) [@mutmut](https://community.gladysassistant.com/u/mutmut)\
**Post date:** [7. Juli 2026 um 22:13 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322/21 "2026-07-07T22:13:29Z")

</div>

👌

> [@Will\_71](#):
>
> Das Widget konfiguriert sich neu, basierend auf der in der Integration festgelegten Quelle

Und behältst du die API-Infos, wenn man von einem Dienst zum anderen wechselt?

Kleine Anmerkung zu deinem zweiten Absatz:  
 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/b/5/b5e93d21acb8e02a539a982320f0b3a086e4df7e.png)  
Ich denke, wir können `Frankreich` entfernen, um einfach nur `Wetter` als generische Option für die Widget-Auswahl zu haben.

---

<div class="post-metadata">

**Author:** ![Will\_71](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/will_71/32/9582_2.png) [@Will\_71](https://community.gladysassistant.com/u/Will_71)\
**Post date:** [7. Juli 2026 um 22:23 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322/22 "2026-07-07T22:23:33Z")

</div>

Ja, die API-Schlüssel bleiben in der Datenbank gespeichert, sodass du von einer Quelle zur anderen wechseln kannst, ohne den Schlüssel erneut einzugeben. Und angesichts der Größe des Schlüssels von Meteo France ist das auch besser. Aber Meteo France bleibt optional, nur um die Karte anzuzeigen.

Ja, das ist für den Text geplant, aber da ich das alte Wetter-Widget noch nicht ersetzt habe, heißt es vorerst immer noch Meteo France. Ich werde es ändern, sobald die Arbeit erledigt ist.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [8. Juli 2026 um 06:56 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322/23 "2026-07-08T06:56:28Z")

</div>

> [@Will\_71](#):
>
> Oder zwei separate Integrationen von Openweather und Meteo France. Ein einziges Wetter-Widget mit der Wahl der Quelle als Widget-Parameter?

Ich bevorzuge diesen Ansatz! Ein einziges Wetter-Widget mit zwei separaten Integrationen.

Tatsächlich funktioniert Gladys so: Es gibt nur ein Widget pro Funktionsart, und jede Marke oder Technologie hat ihre eigene Integration, um die Kommunikation mit der Außenwelt von Gladys zu verwalten.

---

<div class="post-metadata">

**Author:** ![Will\_71](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/will_71/32/9582_2.png) [@Will\_71](https://community.gladysassistant.com/u/Will_71)\
**Post date:** [10. Juli 2026 um 22:54 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322/24 "2026-07-10T22:54:24Z")

</div>

Das Bild ist für alle, die es ausprobieren möchten, auf dem neuesten Stand:

`docker pull willde71/gladys-test:meteofrance_integration`

Es gibt also eine OpenWeather-Integration, die unverändert geblieben ist, und eine neue Meteo France-Integration, mit der Wetterdaten nur für Frankreich ohne API-Schlüssel abgerufen werden können.  
Ein optionaler API-Schlüssel ermöglicht den Zugriff auf die Meteo France-Warnkarten.

Das Wetter-Widget wurde vollständig mit dem neuen Design umgestellt. Beim Update wird das Dashboard aktualisiert.

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/9/5/95b7ed6433a22bc4fbb9305bbf6e87b29a63f0b6.png)

Die Widget-Konfiguration hat sich etwas geändert, da jetzt die Wahl der Wetterdatenquelle möglich ist:

- OpenWeather
- Meteo France  
 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/7/e/7e6aaa17a18f04c50cc56b400010d64467d2dcba.png)

Hier sind die Details der möglichen Konfigurationen je nach Quelle. OpenWeather in der kostenlosen Version bietet nicht die gleichen Daten wie Meteo France. Daher die Unterschiede.

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/f/5/f53881e26d9502d39f18f6c68600f839173c664e.png)

Hier sind einige Bilder

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/4/9/49c6901a02281f1bff6dc61f56cdebc01237004b.png)  
 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/d/1/d1643bd642496e05e087a5b2e9a405fc0e7bbfa9.png)  
 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/4/4/446b2105667344969d5316d8c38abeb56a213644.png)

Ich habe auch einen Auslöser und Aktionen in den Szenen hinzugefügt:

Ein Auslöser für den Warnlevel

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/4/c/4c6869faaf6f8d31cc6ce7c9d4b54646287c5410.png)

Eine Aktion, um die Meteo France-Warnung abzurufen

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/d/1/d11545e3b5669de5adc47ef36a87fffd44bbc3fe.png)  
Die Variablen, die für die Verwendung in Nachrichten freigegeben werden.  
 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/1/7/1718b7227bb60326fc938737bfcf17bbc27efcdc.png)

Eine Aktion, um die Meteo France-Warnkarte zu senden

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/3/c/3c319a21b3904ab79ddbe504f6e1d24ae0bd42e6.png)

Beispiel in Telegram

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/7/7/77cb21405404cfaec3960d630a874e462201e914.png)  
 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/b/1/b1c3a440fe08764277d3f297ec263bfdfe6af614.png)

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [13. Juli 2026 um 08:56 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322/25 "2026-07-13T08:56:10Z")

</div>

Ich konnte es testen und es ist perfekt 🙂  
Ich habe keine Fehler auf meiner Seite gefunden 😉

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [1. August 2026 um 13:52 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322/26 "2026-08-01T13:52:10Z")

</div>

Hallo @Will_71,

Ich habe Fable 5 für dich auf dem Gebiet der externen Integrationen vom Typ **„Wetter“** freigeschaltet. 🙂

Das Ziel ist es, dir zu ermöglichen, deine Integration in eine externe Integration zu migrieren, damit du sie eigenständig weiterentwickeln kannst.

Was das Widget betrifft, werden wir das Bestehende definitiv weiterentwickeln und uns von deinem hervorragenden Vorschlag inspirieren lassen. Danke für all die Arbeit, die du investiert hast – es ist wirklich eine sehr gute Grundlage!

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [2. August 2026 um 08:33 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322/27 "2026-08-02T08:33:10Z")

</div>

@Will_71 :

> <https://github.com/GladysAssistant/Gladys/pull/2738>
>
> \### Description
> 
> Implements phase 2 workstream B.18: external weather integratio…ns. This allows third-party weather providers to be installed as external integrations and automatically takes precedence over the built-in OpenWeather service.
> 
> \*\*Key changes:\*\*
> 
> 1. \*\*Weather provider interface\*\*: External integrations with \`type: 'weather'\` in their manifest now expose a \`weather.get(options)\` capability that mirrors the internal OpenWeather service interface, enabling duck-typed provider switching.
> 
> 2. \*\*Payload normalization\*\*: Added \`externalIntegration.normalizeWeather()\` that validates and bounds weather payloads from unaudited external code:
> - Whitelists all fields (unknown fields dropped)
> - Coerces numbers to finite values, dates to valid Date objects
> - Caps arrays (24 hours, 8 days, 10 alerts) and string lengths
> - Coerces unknown weather conditions to 'unknown'
> - Enforces CAP-style alert severities (minor/moderate/severe/extreme)
> 
> 3. \*\*Provider selection logic\*\*: Updated \`weather.get()\` to iterate through all available weather providers (external + internal) sorted by name, with \`ext-\*\` selectors taking precedence over \`openweather\`. Falls back gracefully when a provider fails, distinguishing between "not configured" and real errors.
> 
> 4. \*\*UI enhancements\*\*:
> - Weather box now displays alerts with severity-based color coding (blue/yellow/orange/red)
> - Shows sunrise/sunset times and UV index when available
> - Updated error messages to reference generic weather configuration rather than OpenWeather specifically
> - Added weather icon mappings for drizzle and thunderstorm conditions
> 
> 5. \*\*Manifest schema\*\*: Extended to accept \`type: 'weather'\` for external integrations.
> 
> 6. \*\*WebSocket protocol\*\*: Added \`WEATHER\_GET\` message type with 15s timeout (matching camera image freshness requirement).
> 
> All changes are covered by comprehensive unit tests validating normalization edge cases, provider fallback behavior, and integration with the proxy service system.
> 
> \### Checklist
> 
> \- \[x\] Tests pass: Added 262 lines of test coverage for weather normalization and provider selection
> \- \[x\] Linter and prettier pass
> \- \[x\] No breaking changes: Weather provider selection is backward compatible; existing OpenWeather setups continue to work
> 
> https://claude.ai/code/session\_01FuafgHvr5244RxZ5KKTN3a
> 
> 
> \## Summary by CodeRabbit
> 
> \* \*\*New Features\*\*
> \* Added support for weather-provider integrations alongside device and communication integrations.
> \* Weather retrieval supports provider fallback and location, language, and unit options.
> \* Enhanced weather dashboards with alerts, sunrise/sunset times, humidity, wind, UV index, and additional forecast icons.
> \* Added weather-specific installation guidance and localized messaging.
> 
> \* \*\*Bug Fixes\*\*
> \* Improved handling of incomplete forecasts, unavailable icons, future dates, and missing weather details.
> \* Added validation and limits for weather data to support reliable display.

Für Info habe ich dich zum Gladys-Repo eingeladen, damit du zu PR-Reviews eingeladen werden kannst 🙂

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [2. August 2026 um 13:47 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322/28 "2026-08-02T13:47:37Z")

</div>

@Will_71 Der PR des SDKs:

> <https://github.com/GladysAssistant/integration-sdk-js/pull/19>
>
> Implements SDK support for the \*\*"weather" integration type\*\* shipped in Gladys …core by GladysAssistant/Gladys#2738 (spec \*\*B.18\*\*): a weather provider (Météo France, Open-Meteo…) installs from the store and feeds the dashboard weather widget, the assistant and the weather-alert scene triggers, with no provider-specific code in the core.
> 
> \## What the SDK adds
> 
> \- \*\*\`WEATHER\_GET\` WebSocket message type\*\* (\`external-integration.weather.get\`), routed like every command and auto-acked.
> \- \*\*\`gladys.onWeatherGet(callback)\`\*\* — \`(options) =\> Promise\<pivot weather\>\` with \`options = { latitude, longitude, language, units }\`. The resolved object is acked back as \`data.weather\` (the core awaits it under \*\*15 s\*\*, the same exception to the 5 s rule as \`camera.get-image\`); throwing acks the command as failed so the core's provider loop falls through to the next provider. This is exactly the SDK surface the B.18 spec documents in its contract C.8 table.
> \- \*\*\`gladys.onWeatherGetImage(callback)\`\*\* — \`(key) =\> Promise\<string\>\` (B.18 point 6, provider images: vigilance map, rain radar…). The pivot payload only declares \*\*metadata\*\* (\`images\`, ≤ 3 entries of \`{ key, label? }\`); the bytes travel on demand over \`external-integration.weather.get-image\`: resolve the raw base64 (no data-URI prefix) of a PNG/JPEG ≤ 500 KB decoded, acked as \`data.image\` under 15 s — validated (magic numbers + size) and cached 10 min by the core, served to the browser from the Gladys origin.
> \- \*\*\`gladys.requestWeatherRefresh()\`\*\* — fire-and-forget freshness nudge (B.18 point 5, "trigger, not data") over \`external-integration.weather.refresh\`: "re-pull me now and re-evaluate the weather-alert scene triggers". No payload, no ack; rate-limited core-side (1/min per integration, silently dropped beyond) and dropped silently while disconnected.
> \- \*\*Constants\*\* exported from CJS and ESM entry points:
> - \`WEATHER\_CONDITIONS\` — the pivot condition enum (\`clear\` | \`partly-cloudy\` | \`cloud\` | \`fog\` | \`drizzle\` | \`rain\` | \`pouring\` | \`sleet\` | \`hail\` | \`snow\` | \`thunderstorm\` | \`wind\` | \`night\` | \`unknown\`; anything else is coerced to \`unknown\` by the core; \`night\` is deprecated for providers — send the real condition plus \`is\_day: false\`);
> - \`WEATHER\_ALERT\_SEVERITIES\` — the CAP-style alert severities (\`minor\` | \`moderate\` | \`severe\` | \`extreme\`);
> - \`WEATHER\_ALERT\_TYPES\` — the alert phenomenon types (\`wind\` | \`rain\` | \`flood\` | \`thunderstorm\` | \`snow\` | \`heat\` | \`cold\` | \`avalanche\` | \`coastal\` | \`fog\`; optional metadata — an invalid type is dropped by the core, the alert is kept);
> - internal mirror of the core-side bounds (≤ 24 hours, ≤ 8 days, ≤ 10 alerts, ≤ 3 images, event ≤ 100 chars, description ≤ 5000 chars, image ≤ 500 KB decoded, label ≤ 50 chars).
> \- \*\*TypeScript typings\*\* of the whole pivot format: \`WeatherGetOptions\`, \`WeatherUnits\` (\`'metric' | 'us'\`), \`WeatherCondition\`, \`WeatherPayload\` (including the \`is\_day\` strict boolean on the current conditions and each \`hours\` entry, and the \`images\` metadata), \`WeatherHourForecast\`, \`WeatherDayForecast\`, \`WeatherAlert\` (with the optional \`type\`), \`WeatherAlertSeverity\`, \`WeatherAlertType\`, \`WeatherImage\`, plus the \`onWeatherGet\`/\`onWeatherGetImage\`/\`requestWeatherRefresh\` members and the \`WEATHER\_GET\`/\`WEATHER\_GET\_IMAGE\`/\`WEATHER\_REFRESH\` message types.
> \- \*\*README\*\*: \`onWeatherGet(cb)\`/\`onWeatherGetImage(cb)\` rows in the Handlers table, \`requestWeatherRefresh()\` row in the Methods table, and a dedicated \*\*"Weather providers"\*\* section (manifest \`type: "weather"\`, unit systems, condition mapping, \`is\_day\` day/night signal, typed alerts, provider images, freshness nudge, 15 s ack, core-side normalization and bounds), mirroring the existing "Communication channels" section.
> 
> \## Design notes
> 
> The SDK passes the resolved payloads through as-is (like \`onGetImage\`): per B.18 they are \*\*never trusted\*\* and are normalized/bounded by the Gladys core (\`normalizeWeather\`/\`normalizeWeatherImage\` — whitelisted fields, finite numbers, clamped percentages, capped arrays, strict-boolean \`is\_day\`, magic-number image checks, \`units\` stamped from the request). The SDK documents the contract thoroughly (typings + README) instead of duplicating the normalization.
> 
> The weather-alert scene trigger of B.18 point 4 is \*\*core-owned\*\* (a gated 30-min scheduled diff on the normalized alerts) — the integration has nothing to implement for it; \`requestWeatherRefresh()\` is the optional cooperation path that beats the 30-min floor.
> 
> Kept in sync with the latest revision of the Gladys PR (extended condition enum with \`partly-cloudy\`/\`pouring\`/\`hail\`, \`is\_day\` day/night signal, typed alerts, provider images, freshness nudge, alert description bound raised to 5000).
> 
> \## Tests
> 
> \- \`test/weather.test.js\` — WS command acks against the fake Gladys server: \`weather.get\` success with a full pivot payload (current + hours + days + typed alerts + \`is\_day\` + \`images\` metadata), \`us\` unit system pass-through, handler failure → \`success:false\` with the error message, no handler → \`"not implemented"\`; \`weather.get-image\` success/failure/not-implemented acks; \`weather.refresh\` emission (empty payload) and silent drop while disconnected; plus the exported constants and message types.
> \- \`test/types/api.test-d.ts\` — compile-time check of the new typings.
> \- Full suite: \*\*193 tests pass\*\*, ESLint, \`tsc\` and Prettier clean.
> 
> 🤖 Generated with \[Claude Code\](https://claude.com/claude-code)
> 
> https://claude.ai/code/session\_01BPXiFG8AQAUprvrRNCtaKF
> 
> 
> 
> \## Summary by CodeRabbit
> 
> \* \*\*New Features\*\*
> \* Added weather data and weather image retrieval handlers.
> \* Added refresh requests for updating weather information.
> \* Added standardized forecasts, alerts, conditions, units, day/night details, and normalized responses.
> \* Added weather messaging and exported condition, alert severity, and alert type constants.
> \* Added TypeScript definitions for weather requests, forecasts, alerts, images, and responses.
> 
> \* \*\*Documentation\*\*
> \* Documented provider fallback, validation, payload limits, errors, timeouts, image handling, caching, and supported versions.

Kannst du mal schauen, ob dir der API-Vertrag gut erscheint?

---

<div class="post-metadata">

**Author:** ![Will\_71](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/will_71/32/9582_2.png) [@Will\_71](https://community.gladysassistant.com/u/Will_71)\
**Post date:** [2. August 2026 um 14:42 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322/29 "2026-08-02T14:42:20Z")

</div>

Ich schaue mal und halte dich auf dem Laufenden.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [2. August 2026 um 14:49 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322/30 "2026-08-02T14:49:47Z")

</div>

Super! Claude sagt mir, dass der gewählte Ansatz und das Format normalerweise ausreichen und vollständig kompatibel mit dem Ansatz sind, den du mit Météo France verfolgt hast.

Also normalerweise kannst du das neue Widget und eine externe Integration von Météo France auf dieser Grundlage vorschlagen 🙂

---

<div class="post-metadata">

**Author:** ![Will\_71](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/will_71/32/9582_2.png) [@Will\_71](https://community.gladysassistant.com/u/Will_71)\
**Post date:** [2. August 2026 um 14:51 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322/31 "2026-08-02T14:51:36Z")

</div>

danach können wir auch anpassen, falls nötig

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [2. August 2026 um 14:54 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322/32 "2026-08-02T14:54:03Z")

</div>

Ja, das einzige Problem ist, dass wir jetzt, wo wir eine API bereitstellen, rückwärtskompatibel bleiben und bei Änderungen mit Breaking Changes versionieren müssen.

Also kein Recht, das API-Format alle paar Tage zu ändern!

Aber ich bin eher zuversichtlich.

Ich werde auf meiner Seite eine externe Integration `gladys-openweather` durchführen.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [2. August 2026 um 15:02 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322/33 "2026-08-02T15:02:16Z")

</div>

Flieg jetzt mal los, kleiner Claude:

 ![Capture d’écran 2026-08-02 à 17.01.18](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/8/7/873b5085bcbecea2f1129a3e329b2001e7419535.png)

---

<div class="post-metadata">

**Author:** ![Will\_71](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/will_71/32/9582_2.png) [@Will\_71](https://community.gladysassistant.com/u/Will_71)\
**Post date:** [2. August 2026 um 16:00 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322/34 "2026-08-02T16:00:33Z")

</div>

Ich habe deinen PR zum SDK angesehen.

Hier sind die Punkte, die ich bemerkt habe

- Warnkarte — WeatherPayload hat kein Bildfeld. Kein Kanal. Wird nicht funktionieren.

- Die Beschreibung der Warnungen ist auf 2000 Zeichen begrenzt. Nicht sicher, ob das mit der vollständigen Wettervorhersage von Meteo France klappt, aber es gibt auch eine kurze Zusammenfassung.  
Von meiner Seite habe ich:

- Szenenauslöser in Abhängigkeit vom Warnzustand  
In meinem PR meteo france alle 15 Minuten, fragt checkVigilance() die API für jedes Haus ab. Die aktuelle Farbe wird mit der des vorherigen Durchgangs verglichen.  
Wenn sie ansteigt und mindestens 2 (gelb) erreicht, sendet der Dienst EVENTS.METEO\_FRANCE.NEW\_VIGILANCE. scene.triggers.js:105 empfängt das Ereignis und startet die betroffenen Szenen  
Es ist die Integration, die die Information an Gladys weiterleitet, spontan.  
Dagegen macht onWeatherGet das Gegenteil: Gladys ruft die Integration auf, die Integration antwortet. Die Integration hat keine Möglichkeit zu sagen « etwas passiert gerade ». Das SDK bietet keinen Push-Kanal dafür.  
Folge: Die durch die Warnung ausgelösten Szenen funktionieren nicht mehr. Es sei denn, der Core beginnt selbst, die Wetterintegrationen in regelmäßigen Abständen abzufragen und die Übergänge zu erkennen

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [2. August 2026 um 16:28 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322/35 "2026-08-02T16:28:40Z")

</div>

Ich schau mal und komm dann wieder auf dich zu!

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [3. August 2026 um 11:53 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322/36 "2026-08-03T11:53:10Z")

</div>

Hallo @Will_71!

Vielen Dank für dein detailliertes Feedback, es war sehr treffend, die drei von dir aufgezeigten Mängel waren tatsächlich vorhanden. Wir haben sie gerade im PR des generischen Wetter-APIs ([#2738](https://github.com/GladysAssistant/Gladys/pull/2738)) behandelt, wobei wir jeweils die generischste Version beibehalten haben:

**1. Die Länge der Warntexten** 📄

Das Feld `description` wird von 2000 auf 5000 Zeichen erweitert: Deine Zusammenfassung und der vollständige Bulletin passen hinein (die Bulletins der NWS überschreiten auch regelmäßig 2000 Zeichen, das war nicht spezifisch für Météo France). Im Widget wird das Bulletin auf 3 Zeilen gefaltet und beim Klicken entfaltet, wie in deinem ursprünglichen PR.

**2. Die Szenen-Triggers auf die Warnung** ⚡

Das war der wichtigste Punkt. Wir haben zwei Dinge gemacht:

- **Zwei neue generische Szenen-Triggers im Core** : „Wetteralarm ausgelöst“ und „Wetteralarm beendet“, konfigurierbar pro Haus, Phänomentyp (Wind, Regen-Überschwemmung, Gewitter, Hitzewelle… die 9 Phänomene der MF-Warnung sind im Enum enthalten) und minimale Schwere. Der Core fragt das Wetter alle 30 Minuten ab und differenziert die Alarme: Ein Alarm, der erscheint oder sich verschlimmert, löst aus, ein Alarm, der endet, löst aus. Das funktioniert mit **allen** Anbietern, ohne etwas auf der Integrationsseite zu implementieren.
- **Ein „Nudge“ für die Frische** : Deine Integration, die weiß, wann sich die Warnung ändert, kann `external-integration.weather.refresh` senden (über `requestWeatherRefresh()` im SDK). Der Core startet dann sofort seinen Überprüfungszyklus: Die Szene geht in wenigen Sekunden los, anstatt auf die nächste Abfrage zu warten. Das ist absichtlich ein Signal ohne Daten (die Doktrin „Trigger, nicht Daten“, die wir bereits für Webhooks anwenden): Die Daten gehen immer über den normalisierten Weg.

**3. Die Warnkarten** 🗺

Das Pivot-Format erhält ein Feld `images`: Deine Integration deklariert bis zu 3 Bilder (Schlüssel + mehrsprachige Beschriftung), und der Core holt die Bytes auf Anfrage über `weather.get-image` (`onWeatherGetImage(cb)` im SDK). Der Core validiert (nur PNG/JPEG, ≤ 500 KB), speichert 10 Minuten im Cache und dient das Bild von der Gladys-Quelle: Der Browser lädt nie eine Drittanbieter-URL. Im Widget zeigt ein Kästchen „Bilder des Anbieters“ deine Karten für Tag und Tag+1 mit ihrer Beschriftung an. Und es ist generisch: Ein Anbieter kann dort auch ein Regenradar oder ein Satellitenbild einfügen.

Das SDK ist mit `onWeatherGetImage` und `requestWeatherRefresh` aktualisiert. Mit den feineren Bedingungen, die gerade hinzugefügt wurden (`partly-cloudy`, `pouring`, `hail` + das Flag `is_day` für die Nachtvarianten) und den typisierten Warnungen sollte jetzt alles, was dein Frontend anzeigt, über die generische API laufen.

Zögere nicht, wenn du noch einen Mangel siehst, indem du deine Integration vorantreibst, sie ist der Pilot des Wettertyps, deine Rückmeldungen kalibrieren den Vertrag für alle folgenden Anbieter. 🙏

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [7. August 2026 um 09:02 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322/37 "2026-08-07T09:02:41Z")

</div>

Also, ich habe viel iteriert, viele Tests mit der externen OpenWeather-Integration durchgeführt und bin mit dem Ergebnis ganz zufrieden 😃

 ![Capture d’écran 2026-08-07 à 11.01.52](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/9/b/9b41dfb67f4c6b7313dfd47c697f2e1ecead78ee.png)

Der Cursor ist gut, also werde ich mergen!

---

<div class="post-metadata">

**Author:** ![Chris75](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/c/6a8cbe/32.png) [@Chris75](https://community.gladysassistant.com/u/Chris75)\
**Post date:** [7. August 2026 um 18:17 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322/38 "2026-08-07T18:17:25Z")

</div>

Ich habe gerade die neue externe Integration von openweather installiert und den API-Schlüssel, den ich mit der alten Integration hatte, wiederhergestellt. Ich habe die Option „Kostenlos (Aktuelles Wetter + 5 Tage)“ gewählt, aber ich sehe keinen Unterschied zur alten Integration?

---

<div class="post-metadata">

**Author:** ![Will\_71](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/will_71/32/9582_2.png) [@Will\_71](https://community.gladysassistant.com/u/Will_71)\
**Post date:** [7. August 2026 um 18:30 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322/39 "2026-08-07T18:30:28Z")

</div>

Normalerweise gibt es da keinen Unterschied.

Das Wetter-Widget, das ich vorgeschlagen habe, war für Meteo France, also muss ich daran arbeiten, es zu extrahieren und durch dieses zu ersetzen. Außerdem muss ich die Integration von Meteo France bereitstellen.

---

<div class="post-metadata">

**Author:** ![Chris75](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/c/6a8cbe/32.png) [@Chris75](https://community.gladysassistant.com/u/Chris75)\
**Post date:** [7. August 2026 um 18:48 UTC](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322/40 "2026-08-07T18:48:30Z")

</div>

Okay, also ist es aktuell nicht möglich, ein Gerät vom Typ „Wetter“ zu erstellen, um es in einer Szene zu verwenden?  
Und kann man auch nicht die KI bitten, das Wetter des Tages zu geben?

[Vorherige Seite](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322.md?page=1)

[Nächste Seite](https://community.gladysassistant.com/t/integration-externe-meteo-france/10322.md?page=3)
