iobroker.waip-web 0.7.36 → 0.7.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -514,6 +514,16 @@ example.
514
514
 
515
515
  ## Changelog
516
516
 
517
+ ### 0.7.37 (2026-08-26)
518
+
519
+ - Fixed a bug where a routes update (`io.routes`) or TTS announcement
520
+ (`io.playtts`) arriving after an incident had already ended
521
+ (`io.standby`) could revive `einsatz.json.current`/`.routen`/
522
+ `einsatz.routenGesamt` or `einsatz.tts.last`/`.lastTimestamp` for the
523
+ already-finished incident, while every other `einsatz.*` field
524
+ correctly stayed cleared. Both handlers now ignore such events while
525
+ no incident is active.
526
+
517
527
  ### 0.7.36 (2026-08-25)
518
528
 
519
529
  - Object structure change: `einsatz.rueckmeldungAnzahl` is now
@@ -560,15 +570,6 @@ example.
560
570
  marker dot's size isn't configurable) is now hidden while **Show
561
571
  incident-area polygon** is off.
562
572
 
563
- ### 0.7.32 (2026-08-24)
564
-
565
- - Fixed a startup-only error: if the adapter was stopped while it was
566
- still creating its ioBroker objects (e.g. a fast restart right after
567
- an update), a "Connection is closed" failure could surface as an
568
- `unhandled promise rejection` error in the log instead of being
569
- caught - harmless, but noisy. Object initialization now stops
570
- cleanly and logs a single warning instead.
571
-
572
573
  Older entries have moved to [CHANGELOG_OLD.md](CHANGELOG_OLD.md) - this
573
574
  section shows only the 5 most recent versions.
574
575
 
@@ -26,8 +26,8 @@
26
26
  "Match": "Abgleich",
27
27
  "Maximum time to wait for the map image (OSM tile download and composition) to finish before continuing to process the incident. If it isn't ready within this time, a warning is logged and einsatz.kartenbildPfad stays empty for this incident.": "Maximale Wartezeit auf die Fertigstellung des Kartenbilds (OSM-Kachel-Download und -Zusammensetzung), bevor mit der Verarbeitung des Einsatzes fortgefahren wird. Ist es nicht rechtzeitig fertig, wird eine Warnung geloggt und einsatz.kartenbildPfad bleibt für diesen Einsatz leer.",
28
28
  "Monitor ID": "Monitor-ID",
29
- "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "OpenStreetMap-Zoomstufe (1 = ganze Welt, 19 = Gebäudeebene). Fester Wert für die Punkt-Markierung; Maximalwert für den Polygon-Umriss, wird bei Bedarf automatisch reduziert, damit er vollständig sichtbar bleibt (siehe 'Einsatzgebiet-Polygon anzeigen').",
30
29
  "OSM timeout (s)": "OSM-Timeout (s)",
30
+ "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "OpenStreetMap-Zoomstufe (1 = ganze Welt, 19 = Gebäudeebene). Fester Wert für die Punkt-Markierung; Maximalwert für den Polygon-Umriss, wird bei Bedarf automatisch reduziert, damit er vollständig sichtbar bleibt (siehe 'Einsatzgebiet-Polygon anzeigen').",
31
31
  "Outline thickness (px)": "Umriss-Strichstärke (px)",
32
32
  "Process rescue-service incidents": "Rettungsdienst-Einsätze verarbeiten",
33
33
  "Reconnect delay (s)": "Wiederverbindungs-Verzögerung (s)",
@@ -26,8 +26,8 @@
26
26
  "Match": "Fósforo",
27
27
  "Maximum time to wait for the map image (OSM tile download and composition) to finish before continuing to process the incident. If it isn't ready within this time, a warning is logged and einsatz.kartenbildPfad stays empty for this incident.": "Tiempo máximo de espera para que la imagen del mapa (descarga y composición de teselas OSM) se complete antes de continuar procesando el incidente. Si no está lista dentro de este tiempo, se registra una advertencia y einsatz.kartenbildPfad permanece vacío para este incidente.",
28
28
  "Monitor ID": "Identificador del monitor",
29
- "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "Nivel de zoom de OpenStreetMap (1 = mundo entero, 19 = nivel de edificio). Zoom fijo para el punto marcador; un máximo para el contorno del polígono, reducido automáticamente si es necesario para mantenerlo completamente visible (ver 'Mostrar polígono del área del incidente').",
30
29
  "OSM timeout (s)": "Tiempo de espera de OSM (s)",
30
+ "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "Nivel de zoom de OpenStreetMap (1 = mundo entero, 19 = nivel de edificio). Zoom fijo para el punto marcador; un máximo para el contorno del polígono, reducido automáticamente si es necesario para mantenerlo completamente visible (ver 'Mostrar polígono del área del incidente').",
31
31
  "Outline thickness (px)": "Grosor del contorno (px)",
32
32
  "Process rescue-service incidents": "Procesar incidentes del servicio de rescate",
33
33
  "Reconnect delay (s)": "Retardo(s) de reconexión",
@@ -26,8 +26,8 @@
26
26
  "Match": "Correspondre",
27
27
  "Maximum time to wait for the map image (OSM tile download and composition) to finish before continuing to process the incident. If it isn't ready within this time, a warning is logged and einsatz.kartenbildPfad stays empty for this incident.": "Délai d'attente maximal pour que l'image de carte (téléchargement et composition des tuiles OSM) soit terminée avant de continuer à traiter l'intervention. Si elle n'est pas prête dans ce délai, un avertissement est consigné et einsatz.kartenbildPfad reste vide pour cette intervention.",
28
28
  "Monitor ID": "ID du moniteur",
29
- "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "Niveau de zoom OpenStreetMap (1 = monde entier, 19 = niveau du bâtiment). Zoom fixe pour le point marqueur ; un maximum pour le contour du polygone, réduit automatiquement si nécessaire pour le garder entièrement visible (voir 'Afficher le polygone de la zone d'intervention').",
30
29
  "OSM timeout (s)": "Délai d'attente OSM (s)",
30
+ "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "Niveau de zoom OpenStreetMap (1 = monde entier, 19 = niveau du bâtiment). Zoom fixe pour le point marqueur ; un maximum pour le contour du polygone, réduit automatiquement si nécessaire pour le garder entièrement visible (voir 'Afficher le polygone de la zone d'intervention').",
31
31
  "Outline thickness (px)": "Épaisseur du contour (px)",
32
32
  "Process rescue-service incidents": "Traiter les incidents du service de secours",
33
33
  "Reconnect delay (s)": "Délai(s) de reconnexion",
@@ -26,8 +26,8 @@
26
26
  "Match": "Incontro",
27
27
  "Maximum time to wait for the map image (OSM tile download and composition) to finish before continuing to process the incident. If it isn't ready within this time, a warning is logged and einsatz.kartenbildPfad stays empty for this incident.": "Tempo massimo di attesa per il completamento dell'immagine della mappa (download e composizione dei tile OSM) prima di continuare a elaborare l'intervento. Se non è pronta entro questo tempo, viene registrato un avviso e einsatz.kartenbildPfad rimane vuoto per questo intervento.",
28
28
  "Monitor ID": "Monitorare l'identità",
29
- "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "Livello di zoom di OpenStreetMap (1 = mondo intero, 19 = livello edificio). Zoom fisso per il punto marcatore; un massimo per il contorno del poligono, ridotto automaticamente se necessario per mantenerlo completamente visibile (vedi 'Mostra il poligono dell'area dell'incidente').",
30
29
  "OSM timeout (s)": "Timeout OSM (s)",
30
+ "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "Livello di zoom di OpenStreetMap (1 = mondo intero, 19 = livello edificio). Zoom fisso per il punto marcatore; un massimo per il contorno del poligono, ridotto automaticamente se necessario per mantenerlo completamente visibile (vedi 'Mostra il poligono dell'area dell'incidente').",
31
31
  "Outline thickness (px)": "Spessore del contorno (px)",
32
32
  "Process rescue-service incidents": "Elaborare gli incidenti del servizio di soccorso",
33
33
  "Reconnect delay (s)": "Ritardo/i di riconnessione",
@@ -26,8 +26,8 @@
26
26
  "Match": "Overeenkomst",
27
27
  "Maximum time to wait for the map image (OSM tile download and composition) to finish before continuing to process the incident. If it isn't ready within this time, a warning is logged and einsatz.kartenbildPfad stays empty for this incident.": "Maximale wachttijd voor het voltooien van de kaartafbeelding (OSM-tegels downloaden en samenstellen) voordat wordt doorgegaan met het verwerken van het incident. Is deze niet op tijd klaar, dan wordt een waarschuwing gelogd en blijft einsatz.kartenbildPfad leeg voor dit incident.",
28
28
  "Monitor ID": "Monitor-ID",
29
- "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "OpenStreetMap-zoomniveau (1 = hele wereld, 19 = gebouwniveau). Vast zoomniveau voor de puntmarkering; een maximum voor de polygoon-contour, automatisch verlaagd indien nodig om deze volledig zichtbaar te houden (zie 'Incidentgebied-polygoon tonen').",
30
29
  "OSM timeout (s)": "OSM-time-out (s)",
30
+ "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "OpenStreetMap-zoomniveau (1 = hele wereld, 19 = gebouwniveau). Vast zoomniveau voor de puntmarkering; een maximum voor de polygoon-contour, automatisch verlaagd indien nodig om deze volledig zichtbaar te houden (zie 'Incidentgebied-polygoon tonen').",
31
31
  "Outline thickness (px)": "Contourdikte (px)",
32
32
  "Process rescue-service incidents": "Reddingsdienst-incidenten verwerken",
33
33
  "Reconnect delay (s)": "Vertraging(en) opnieuw verbinden",
@@ -26,8 +26,8 @@
26
26
  "Match": "Mecz",
27
27
  "Maximum time to wait for the map image (OSM tile download and composition) to finish before continuing to process the incident. If it isn't ready within this time, a warning is logged and einsatz.kartenbildPfad stays empty for this incident.": "Maksymalny czas oczekiwania na ukończenie obrazu mapy (pobranie i złożenie kafelków OSM) przed kontynuowaniem przetwarzania zdarzenia. Jeśli nie będzie gotowy w tym czasie, zostanie zarejestrowane ostrzeżenie, a einsatz.kartenbildPfad pozostanie puste dla tego zdarzenia.",
28
28
  "Monitor ID": "Identyfikator monitora",
29
- "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "Poziom powiększenia OpenStreetMap (1 = cały świat, 19 = poziom budynku). Stały poziom dla znacznika punktowego; maksimum dla konturu poligonu, automatycznie zmniejszane w razie potrzeby, aby pozostał w pełni widoczny (zobacz 'Pokaż poligon obszaru zdarzenia').",
30
29
  "OSM timeout (s)": "Limit czasu OSM (s)",
30
+ "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "Poziom powiększenia OpenStreetMap (1 = cały świat, 19 = poziom budynku). Stały poziom dla znacznika punktowego; maksimum dla konturu poligonu, automatycznie zmniejszane w razie potrzeby, aby pozostał w pełni widoczny (zobacz 'Pokaż poligon obszaru zdarzenia').",
31
31
  "Outline thickness (px)": "Grubość konturu (px)",
32
32
  "Process rescue-service incidents": "Przetwarzaj zdarzenia ratownictwa medycznego",
33
33
  "Reconnect delay (s)": "Opóźnienie ponownego podłączenia",
@@ -26,8 +26,8 @@
26
26
  "Match": "Corresponder",
27
27
  "Maximum time to wait for the map image (OSM tile download and composition) to finish before continuing to process the incident. If it isn't ready within this time, a warning is logged and einsatz.kartenbildPfad stays empty for this incident.": "Tempo máximo de espera para que a imagem do mapa (download e composição dos blocos OSM) seja concluída antes de continuar a processar a ocorrência. Se não estiver pronta dentro deste tempo, um aviso é registado e einsatz.kartenbildPfad permanece vazio para esta ocorrência.",
28
28
  "Monitor ID": "ID do monitor",
29
- "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "Nível de zoom do OpenStreetMap (1 = mundo inteiro, 19 = nível de edifício). Zoom fixo para o ponto marcador; um máximo para o contorno do polígono, reduzido automaticamente se necessário para mantê-lo totalmente visível (ver 'Mostrar polígono da área da ocorrência').",
30
29
  "OSM timeout (s)": "Tempo limite OSM (s)",
30
+ "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "Nível de zoom do OpenStreetMap (1 = mundo inteiro, 19 = nível de edifício). Zoom fixo para o ponto marcador; um máximo para o contorno do polígono, reduzido automaticamente se necessário para mantê-lo totalmente visível (ver 'Mostrar polígono da área da ocorrência').",
31
31
  "Outline thickness (px)": "Espessura do contorno (px)",
32
32
  "Process rescue-service incidents": "Processar ocorrências do serviço de resgate",
33
33
  "Reconnect delay (s)": "Atraso(s) de reconexão",
@@ -26,8 +26,8 @@
26
26
  "Match": "Соответствовать",
27
27
  "Maximum time to wait for the map image (OSM tile download and composition) to finish before continuing to process the incident. If it isn't ready within this time, a warning is logged and einsatz.kartenbildPfad stays empty for this incident.": "Максимальное время ожидания завершения создания карты (загрузка и сборка тайлов OSM) перед продолжением обработки вызова. Если изображение не готово за это время, регистрируется предупреждение, а einsatz.kartenbildPfad остаётся пустым для этого вызова.",
28
28
  "Monitor ID": "Идентификатор монитора",
29
- "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "Уровень масштабирования OpenStreetMap (1 = весь мир, 19 = уровень здания). Фиксированный масштаб для точечного маркера; максимум для контура полигона, автоматически уменьшается при необходимости, чтобы он оставался полностью видимым (см. 'Показывать полигон зоны вызова').",
30
29
  "OSM timeout (s)": "Тайм-аут OSM (с)",
30
+ "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "Уровень масштабирования OpenStreetMap (1 = весь мир, 19 = уровень здания). Фиксированный масштаб для точечного маркера; максимум для контура полигона, автоматически уменьшается при необходимости, чтобы он оставался полностью видимым (см. 'Показывать полигон зоны вызова').",
31
31
  "Outline thickness (px)": "Толщина контура (px)",
32
32
  "Process rescue-service incidents": "Обрабатывать вызовы скорой помощи",
33
33
  "Reconnect delay (s)": "Задержка повторного подключения (с)",
@@ -26,8 +26,8 @@
26
26
  "Match": "Матч",
27
27
  "Maximum time to wait for the map image (OSM tile download and composition) to finish before continuing to process the incident. If it isn't ready within this time, a warning is logged and einsatz.kartenbildPfad stays empty for this incident.": "Максимальний час очікування завершення створення карти (завантаження та складання тайлів OSM) перед продовженням обробки виклику. Якщо зображення не готове за цей час, реєструється попередження, а einsatz.kartenbildPfad залишається порожнім для цього виклику.",
28
28
  "Monitor ID": "ID монітора",
29
- "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "Рівень масштабування OpenStreetMap (1 = увесь світ, 19 = рівень будівлі). Фіксований масштаб для точкового маркера; максимум для контуру полігона, автоматично зменшується за потреби, щоб він залишався повністю видимим (див. 'Показувати полігон зони виклику').",
30
29
  "OSM timeout (s)": "Тайм-аут OSM (с)",
30
+ "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "Рівень масштабування OpenStreetMap (1 = увесь світ, 19 = рівень будівлі). Фіксований масштаб для точкового маркера; максимум для контуру полігона, автоматично зменшується за потреби, щоб він залишався повністю видимим (див. 'Показувати полігон зони виклику').",
31
31
  "Outline thickness (px)": "Товщина контуру (px)",
32
32
  "Process rescue-service incidents": "Обробляти виклики швидкої допомоги",
33
33
  "Reconnect delay (s)": "Затримка повторного підключення (с)",
@@ -26,8 +26,8 @@
26
26
  "Match": "匹配",
27
27
  "Maximum time to wait for the map image (OSM tile download and composition) to finish before continuing to process the incident. If it isn't ready within this time, a warning is logged and einsatz.kartenbildPfad stays empty for this incident.": "生成地图图片(下载并拼接 OSM 瓦片)的最长等待时间,超过后将继续处理该出警事件。如果在此时间内未能完成,将记录一条警告,且本次事件的 einsatz.kartenbildPfad 将保持为空。",
28
28
  "Monitor ID": "显示器ID",
29
- "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "OpenStreetMap 缩放级别(1 = 整个世界,19 = 建筑物级别)。标记点使用固定缩放级别;多边形轮廓使用最大缩放级别,必要时会自动缩小以保持完全可见(参见\"显示事件区域多边形\")。",
30
29
  "OSM timeout (s)": "OSM 超时(秒)",
30
+ "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "OpenStreetMap 缩放级别(1 = 整个世界,19 = 建筑物级别)。标记点使用固定缩放级别;多边形轮廓使用最大缩放级别,必要时会自动缩小以保持完全可见(参见\"显示事件区域多边形\")。",
31
31
  "Outline thickness (px)": "轮廓粗细(px)",
32
32
  "Process rescue-service incidents": "处理急救服务事件",
33
33
  "Reconnect delay (s)": "重新连接延迟(秒)",
package/io-package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "waip-web",
4
- "version": "0.7.36",
4
+ "version": "0.7.37",
5
5
  "news": {
6
+ "0.7.37": {
7
+ "en": "Fixed a bug where a routes update (io.routes) or TTS announcement (io.playtts) arriving after an incident had already ended (io.standby) could revive einsatz.json.current/.routen/einsatz.routenGesamt or einsatz.tts.last/.lastTimestamp for the already-finished incident, while every other einsatz.* field correctly stayed cleared. Both handlers now ignore such events while no incident is active.",
8
+ "de": "Einen Fehler behoben, bei dem eine Routen-Aktualisierung (io.routes) oder eine TTS-Ansage (io.playtts), die erst nach Abschluss eines Einsatzes (io.standby) eintraf, einsatz.json.current/.routen/einsatz.routenGesamt bzw. einsatz.tts.last/.lastTimestamp für den bereits beendeten Einsatz wiederbeleben konnte, während alle anderen einsatz.*-Felder korrekt geleert blieben. Beide Handler ignorieren solche Events jetzt, solange kein Einsatz aktiv ist.",
9
+ "ru": "Исправлена ​​ошибка, из-за которой обновление маршрутов (io.routes) или объявление TTS (io.playtts), поступившее после того, как инцидент уже завершился (io.standby), могло восстановить einsatz.json.current/.routen/einsatz.routenGesamt или einsatz.tts.last/.lastTimestamp для уже завершенного инцидента, в то время как все остальные поля einsatz.* корректно оставались очищенными. Оба обработчика теперь игнорируют такие события, пока ни один инцидент не активен.",
10
+ "pt": "Corrigido um bug onde uma atualização de rotas (io.routes) ou anúncio de TTS (io.playtts) chegando após um incidente já ter terminado (io.standby) poderia reviver einsatz.json.current/.routen/einsatz.routenGesamt ou einsatz.tts.last/.lastTimestamp para o incidente já concluído, enquanto todos os outros campos einsatz.* permaneciam corretamente limpos. Ambos os manipuladores agora ignoram tais eventos enquanto nenhum incidente estiver ativo.",
11
+ "nl": "Een bug opgelost waarbij een route-update (io.routes) of TTS-aankondiging (io.playtts) die binnenkwam nadat een incident al was geëindigd (io.standby) einsatz.json.current/.routen/einsatz.routenGesamt of einsatz.tts.last/.lastTimestamp voor het reeds voltooide incident kon doen herleven, terwijl elk ander einsatz.*-veld correct leeg bleef. Beide handlers negeren nu dergelijke gebeurtenissen terwijl er geen incident actief is.",
12
+ "fr": "Correction d'un bug où une mise à jour des itinéraires (io.routes) ou une annonce TTS (io.playtts) arrivant après la fin d'un incident (io.standby) pouvait relancer einsatz.json.current/.routen/einsatz.routenGesamt ou einsatz.tts.last/.lastTimestamp pour l'incident déjà terminé, tandis que tous les autres champs einsatz.* restaient correctement effacés. Les deux gestionnaires ignorent désormais ces événements tant qu’aucun incident n’est actif.",
13
+ "it": "Risolto un bug per il quale un aggiornamento dei percorsi (io.routes) o un annuncio TTS (io.playtts) arrivato dopo che un incidente era già terminato (io.standby) poteva riattivare einsatz.json.current/.routen/einsatz.routenGesamt o einsatz.tts.last/.lastTimestamp per l'incidente già terminato, mentre ogni altro campo einsatz.* rimaneva correttamente cancellato. Entrambi i gestori ora ignorano tali eventi mentre non è attivo alcun incidente.",
14
+ "es": "Se corrigió un error por el cual una actualización de rutas (io.routes) o un anuncio TTS (io.playtts) que llegaba después de que un incidente ya había finalizado (io.standby) podía reactivar einsatz.json.current/.routen/einsatz.routenGesamt o einsatz.tts.last/.lastTimestamp para el incidente ya finalizado, mientras que todos los demás campos einsatz.* permanecían correctamente despejados. Ambos controladores ahora ignoran dichos eventos mientras no haya ningún incidente activo.",
15
+ "pl": "Naprawiono błąd, który powodował, że aktualizacja tras (io.routes) lub ogłoszenie TTS (io.playtts) pojawiające się po zakończeniu incydentu (io.standby) mogły przywrócić einsatz.json.current/.routen/einsatz.routenGesamt lub einsatz.tts.last/.lastTimestamp dla już zakończonego zdarzenia, podczas gdy wszystkie pozostałe pola einsatz.* pozostały poprawnie wyczyszczone. Obydwa programy obsługi ignorują teraz takie zdarzenia, dopóki żadne zdarzenie nie jest aktywne.",
16
+ "uk": "Виправлено помилку, через яку оновлення маршрутів (io.routes) або повідомлення TTS (io.playtts), що надходить після завершення інциденту (io.standby), могло відновити einsatz.json.current/.routen/einsatz.routenGesamt або einsatz.tts.last/.lastTimestamp для вже завершеного інциденту, тоді як усі інші einsatz.* поле правильно залишилося очищеним. Обидва обробники тепер ігнорують такі події, поки немає активних інцидентів.",
17
+ "zh-cn": "修复了以下错误:在事件已经结束 (io.standby) 后到达的路线更新 (io.routes) 或 TTS 公告 (io.playtts) 可能会恢复已完成事件的 einsatz.json.current/.routen/einsatz.routenGesamt 或 einsatz.tts.last/.lastTimestamp,而所有其他 einsatz.* 字段正确保持清除状态。现在,当没有事件处于活动状态时,两个处理程序都会忽略此类事件。"
18
+ },
6
19
  "0.7.36": {
7
20
  "en": "Object structure change: einsatz.rueckmeldungAnzahl is now einsatz.rueckmeldungen (rollen.*/funktionen.* sub-channels unchanged), einsatz.rueckmeldungGesamt is now einsatz.rueckmeldungenGesamt, and einsatz.zeitstempel is now einsatz.alarmierungszeit. Old objects are automatically removed on upgrade (including now-orphaned channel/folder objects, not just states); scripts/VIS bindings referencing the old paths need to be updated.",
8
21
  "de": "Objektstruktur geändert: einsatz.rueckmeldungAnzahl heißt jetzt einsatz.rueckmeldungen (Unter-Kanäle rollen.*/funktionen.* unverändert), einsatz.rueckmeldungGesamt heißt jetzt einsatz.rueckmeldungenGesamt, und einsatz.zeitstempel heißt jetzt einsatz.alarmierungszeit. Alte Objekte werden beim Update automatisch entfernt (auch jetzt verwaiste Kanal-/Ordner-Objekte, nicht nur States); Skripte/VIS-Bindings, die die alten Pfade nutzen, müssen angepasst werden.",
@@ -80,19 +93,6 @@
80
93
  "ru": "Исправлены две проблемы синхронизации einsatz.kartenbildPfad: обработка тревоги теперь ожидает изображение карты вызова (ограничено новым настраиваемым тайм-аутом OSM, 1-60с, по умолчанию 10с) перед продолжением, поэтому kartenbildPfad и alarmAktiv становятся доступны одновременно, а не kartenbildPfad обновляется позже асинхронно. Если изображение не готово вовремя, регистрируется предупреждение, а kartenbildPfad остаётся пустым. Кроме того, kartenbildPfad теперь сразу сбрасывается в начале нового вызова, вместо того чтобы по-прежнему показывать устаревший путь изображения предыдущего вызова.",
81
94
  "uk": "Виправлено дві проблеми синхронізації einsatz.kartenbildPfad: обробка тривоги тепер очікує зображення карти виклику (обмежено новим налаштовуваним тайм-аутом OSM, 1-60с, типово 10с) перед продовженням, тому kartenbildPfad і alarmAktiv стають доступні одночасно, а не kartenbildPfad оновлюється пізніше асинхронно. Якщо зображення не готове вчасно, реєструється попередження, а kartenbildPfad залишається порожнім. Крім того, kartenbildPfad тепер одразу скидається на початку нового виклику, замість того щоб і далі показувати застарілий шлях зображення попереднього виклику.",
82
95
  "zh-cn": "修复了 einsatz.kartenbildPfad 的两个时序问题:警报处理现在会等待事件地图图片生成完毕(受新增可配置的 OSM 超时限制,1-60秒,默认10秒)后再继续,因此 kartenbildPfad 与 alarmAktiv 会同时可用,而不是 kartenbildPfad 之后才异步补上。如果图片未能按时生成,将记录一条警告,且 kartenbildPfad 保持为空。此外,kartenbildPfad 现在会在新事件开始时立即重置,而不是可能仍显示上一个事件的过期图片路径。"
83
- },
84
- "0.7.30": {
85
- "en": "New \"Show incident-area polygon\" checkbox for the incident map image (on by default, switch to a centered dot instead); the auto-zoom-fit margin around the polygon is 30% smaller, default zoom raised to 19, default outline thickness to 4px. einsatz.kartenbildPfad is now cleared on io.standby like other fields. Documented Admin's \"delete instance data\" option for removing generated map images on uninstall. Dropped \"Unofficial\" from both READMEs. Changelog now shows only the 5 most recent versions.",
86
- "de": "Neue Checkbox \"Einsatzgebiet-Polygon anzeigen\" für die Einsatzkarte (standardmäßig an, umschaltbar auf einen zentrierten Punkt); der Rand beim automatischen Heranzoomen an das Polygon ist 30% kleiner, Standard-Zoom auf 19 erhöht, Standard-Strichstärke auf 4px. einsatz.kartenbildPfad wird jetzt wie die übrigen Felder bei io.standby geleert. Admin-Option \"Instanzdaten löschen\" zum Entfernen der Kartenbilder bei Deinstallation dokumentiert. \"Inoffiziell\" aus beiden READMEs entfernt. Der Changelog zeigt jetzt nur noch die letzten 5 Versionen.",
87
- "es": "Nueva casilla \"Mostrar polígono del área del incidente\" para la imagen de mapa del incidente (activada por defecto, cambiable a un punto centrado); el margen del ajuste automático de zoom alrededor del polígono es un 30% más pequeño, el zoom predeterminado se elevó a 19, el grosor de contorno predeterminado a 4px. einsatz.kartenbildPfad ahora se borra en io.standby como los demás campos. Se documentó la opción \"eliminar datos de instancia\" de Admin para eliminar las imágenes de mapa generadas al desinstalar. Se eliminó \"Unofficial\" de ambos README. El registro de cambios ahora muestra solo las 5 versiones más recientes.",
88
- "fr": "Nouvelle case à cocher \"Afficher le polygone de la zone d'intervention\" pour l'image de carte de l'incident (activée par défaut, permet de basculer vers un point centré) ; la marge d'ajustement automatique du zoom autour du polygone est réduite de 30 %, le zoom par défaut passe à 19, l'épaisseur de contour par défaut à 4px. einsatz.kartenbildPfad est désormais effacé lors d'un io.standby comme les autres champs. Documentation de l'option \"supprimer les données d'instance\" d'Admin pour supprimer les images de carte générées lors de la désinstallation. Suppression de \"Unofficial\" des deux README. Le journal des modifications n'affiche désormais que les 5 versions les plus récentes.",
89
- "it": "Nuova casella \"Mostra il poligono dell'area dell'incidente\" per l'immagine della mappa dell'incidente (attiva per impostazione predefinita, passa a un punto centrato); il margine dello zoom automatico attorno al poligono è ridotto del 30%, lo zoom predefinito aumentato a 19, lo spessore del contorno predefinito a 4px. einsatz.kartenbildPfad ora viene cancellato su io.standby come gli altri campi. Documentata l'opzione \"elimina dati istanza\" di Admin per rimuovere le immagini della mappa generate alla disinstallazione. Rimosso \"Unofficial\" da entrambi i README. Il changelog ora mostra solo le 5 versioni più recenti.",
90
- "nl": "Nieuw selectievakje \"Incidentgebied-polygoon tonen\" voor de incidentkaartafbeelding (standaard aan, omschakelbaar naar een gecentreerde stip); de marge van de automatische zoom-aanpassing rond de polygoon is 30% kleiner, standaardzoom verhoogd naar 19, standaard contourdikte naar 4px. einsatz.kartenbildPfad wordt nu bij io.standby gewist zoals de andere velden. Admin-optie \"instantiegegevens verwijderen\" gedocumenteerd voor het verwijderen van gegenereerde kaartafbeeldingen bij deïnstallatie. \"Unofficial\" uit beide READMEs verwijderd. Changelog toont nu alleen de 5 meest recente versies.",
91
- "pl": "Nowe pole wyboru \"Pokaż poligon obszaru zdarzenia\" dla obrazu mapy zdarzenia (domyślnie włączone, można przełączyć na wyśrodkowany punkt); margines automatycznego dopasowania powiększenia wokół poligonu jest o 30% mniejszy, domyślne powiększenie zwiększone do 19, domyślna grubość konturu do 4px. einsatz.kartenbildPfad jest teraz czyszczony przy io.standby tak jak inne pola. Udokumentowano opcję Admina \"usuń dane instancji\" do usuwania wygenerowanych obrazów mapy przy odinstalowywaniu. Usunięto \"Unofficial\" z obu plików README. Dziennik zmian pokazuje teraz tylko 5 najnowszych wersji.",
92
- "pt": "Nova caixa de seleção \"Mostrar polígono da área da ocorrência\" para a imagem de mapa da ocorrência (ativada por padrão, pode ser alternada para um ponto centralizado); a margem de ajuste automático de zoom ao redor do polígono é 30% menor, zoom padrão aumentado para 19, espessura de contorno padrão para 4px. einsatz.kartenbildPfad agora é limpo no io.standby como os outros campos. Documentada a opção \"excluir dados da instância\" do Admin para remover imagens de mapa geradas ao desinstalar. Removido \"Unofficial\" de ambos os READMEs. O changelog agora mostra apenas as 5 versões mais recentes.",
93
- "ru": "Новый флажок \"Показывать полигон зоны вызова\" для изображения карты вызова (по умолчанию включён, можно переключить на центрированную точку); отступ автоматического масштабирования вокруг полигона уменьшен на 30%, масштаб по умолчанию увеличен до 19, толщина контура по умолчанию до 4px. einsatz.kartenbildPfad теперь очищается при io.standby, как и другие поля. Задокументирована опция Admin \"удалить данные экземпляра\" для удаления сгенерированных изображений карты при удалении. Из обоих README удалено слово \"Unofficial\". В журнале изменений теперь отображаются только 5 последних версий.",
94
- "uk": "Новий прапорець \"Показувати полігон зони виклику\" для зображення карти виклику (типово увімкнено, можна перемкнути на центровану точку); відступ автоматичного масштабування навколо полігона зменшено на 30%, типовий масштаб збільшено до 19, типову товщину контуру до 4px. einsatz.kartenbildPfad тепер очищається при io.standby, як і інші поля. Задокументовано опцію Admin \"видалити дані екземпляра\" для видалення згенерованих зображень карти при видаленні. З обох README видалено слово \"Unofficial\". Журнал змін тепер показує лише 5 останніх версій.",
95
- "zh-cn": "为事件地图图像新增\"显示事件区域多边形\"复选框(默认启用,可切换为居中圆点);多边形周围自动缩放适配的边距缩小了30%,默认缩放级别提高到19,默认轮廓粗细提高到4px。einsatz.kartenbildPfad 现在会像其他字段一样在 io.standby 时清空。已记录 Admin 中用于卸载时删除生成的地图图像的\"删除实例数据\"选项。已从两个 README 中删除\"Unofficial\"一词。更新日志现在仅显示最近的5个版本。"
96
96
  }
97
97
  },
98
98
  "titleLang": {
package/main.js CHANGED
@@ -3216,6 +3216,25 @@ class WaipWeb extends utils.Adapter {
3216
3216
  as an array within einsatz.json.routen[]. */
3217
3217
  async handleRoutes(incoming) {
3218
3218
  try {
3219
+ // DE: Ohne aktiven Einsatz ignorieren - anders als bei Rückmeldungen enthält die
3220
+ // Routen-Payload keine waip_uuid zum gezielten Abgleich (siehe README, Abschnitt
3221
+ // einsatz.json.routen), daher hier nur die schwächere Prüfung "läuft überhaupt
3222
+ // noch ein Einsatz". Verhindert, dass ein verspätetes io.routes-Event, das erst
3223
+ // NACH einem bereits verarbeiteten io.standby eintrifft, einsatz.json.current/
3224
+ // .routen und einsatz.routenGesamt für den bereits beendeten Einsatz wiederbelebt,
3225
+ // während alle anderen einsatz.*-Felder korrekt geleert bleiben.
3226
+ // EN: Ignore without an active incident - unlike feedback, the routes payload
3227
+ // carries no waip_uuid to match against (see README, einsatz.json.routen
3228
+ // section), so this only applies the weaker check "is an incident still being
3229
+ // tracked at all". Prevents a late io.routes event that arrives AFTER an
3230
+ // already-processed io.standby from reviving einsatz.json.current/.routen and
3231
+ // einsatz.routenGesamt for the already-finished incident, while every other
3232
+ // einsatz.* field correctly stays cleared.
3233
+ if (!this.currentEinsatzUuid) {
3234
+ this.log.debug('Ignoring routes update - no incident is currently active');
3235
+ return;
3236
+ }
3237
+
3219
3238
  let data = incoming;
3220
3239
  if (Array.isArray(incoming)) {
3221
3240
  data = incoming.map(i => normalizeData(i));
@@ -3257,6 +3276,22 @@ class WaipWeb extends utils.Adapter {
3257
3276
  explicitly resolved to a full absolute URL here. */
3258
3277
  async handleTTS(incoming) {
3259
3278
  try {
3279
+ // DE: Ohne aktiven Einsatz ignorieren - die io.playtts-Payload ist laut
3280
+ // client_waip.js nur eine nackte URL-Zeichenkette, enthält also keine waip_uuid
3281
+ // zum gezielten Abgleich (anders als bei Rückmeldungen). Verhindert, dass eine
3282
+ // verspätete TTS-Ansage, die erst NACH einem bereits verarbeiteten io.standby
3283
+ // eintrifft, einsatz.tts.last/.lastTimestamp für den bereits beendeten Einsatz
3284
+ // wiederbelebt.
3285
+ // EN: Ignore without an active incident - per client_waip.js the io.playtts
3286
+ // payload is just a bare URL string, so it carries no waip_uuid to match against
3287
+ // (unlike feedback). Prevents a late TTS announcement that arrives AFTER an
3288
+ // already-processed io.standby from reviving einsatz.tts.last/.lastTimestamp for
3289
+ // the already-finished incident.
3290
+ if (!this.currentEinsatzUuid) {
3291
+ this.log.debug('Ignoring TTS announcement - no incident is currently active');
3292
+ return;
3293
+ }
3294
+
3260
3295
  const data = normalizeData(incoming || {});
3261
3296
  const ts = new Date().toISOString();
3262
3297
  await this.setField('einsatz.tts.last', this.resolveTtsUrl(data));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.waip-web",
3
- "version": "0.7.36",
3
+ "version": "0.7.37",
4
4
  "description": "Wachalarm IP-Web (WAIP) Adapter für ioBroker – bindet Alarmierungen, Rückmeldungen, Routen und TTS-Ansagen per Socket.IO an ioBroker an.",
5
5
  "author": {
6
6
  "name": "rnc11",