iobroker.waip-web 0.7.29 → 0.7.30

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.de.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  🇬🇧 [English version of this README](README.md)
6
6
 
7
- Inoffizieller ioBroker-Adapter für **Wachalarm IP-Web (WAIP-Web)**
7
+ ioBroker-Adapter für **Wachalarm IP-Web (WAIP-Web)**
8
8
 
9
9
  Verbindet sich per Socket.IO mit einem WAIP-Web-Wachalarm-Monitor und bildet
10
10
  Einsätze, Rückmeldungen, Routen und TTS-Ansagen als ioBroker-States ab –
@@ -31,7 +31,7 @@ ohne dass ein Browser-Tab dauerhaft offen sein muss.
31
31
 
32
32
  ## Über diesen Adapter
33
33
 
34
- Dieser Adapter ist ein **inoffizielles Community-Projekt** und steht in
34
+ Dieser Adapter ist ein **eigenständiges Community-Projekt** und steht in
35
35
  keiner Verbindung zum WAIP-Web-Projekt, zu Robert-112 oder zum Betreiber
36
36
  einer konkreten Instanz (z. B. der Integrierten Regionalleitstelle
37
37
  Lausitz). Er wurde entwickelt, indem das öffentlich über den Browser
@@ -182,9 +182,10 @@ Rettungsdienst-Wache:
182
182
  - Optionales Einsatzkarten-Bild: ein auf die Einsatz-Koordinaten
183
183
  zentriertes PNG, lokal aus OpenStreetMap-Kacheln zusammengesetzt, mit
184
184
  dem von WAIP-Web gesendeten Einsatzgebiet als Umriss in
185
- konfigurierbarer Farbe/Stärke eingezeichnet (Rückfall auf
186
- Punkt-Markierung), zoomt bei Bedarf automatisch so heraus, dass das
187
- gesamte Gebiet sichtbar bleibt, Dateipfad als State bereitgestellt -
185
+ konfigurierbarer Farbe/Stärke eingezeichnet (umschaltbar auf eine
186
+ einfache Punkt-Markierung), zoomt bei Bedarf automatisch so heraus,
187
+ dass das gesamte Gebiet sichtbar bleibt, Dateipfad als State
188
+ bereitgestellt -
188
189
  siehe [Einsatzkarte](#einsatzkarte)
189
190
 
190
191
  ## Konfiguration
@@ -313,21 +314,26 @@ Koordinaten vor, lädt der Adapter die dafür nötigen Kacheln vom
313
314
  öffentlichen Server `tile.openstreetmap.org` herunter, setzt sie zu
314
315
  einem einzigen PNG zusammen, zentriert auf den Einsatzort, und stempelt
315
316
  die von der ODbL-Lizenz vorgeschriebene OpenStreetMap-Attribution unten
316
- links auf. Das Einsatzgebiet, das WAIP-Web im `geometry`-Feld des
317
- Events sendet (meist ein kreisförmiges Polygon um den Einsatzort, nicht
318
- nur dessen Mittelpunkt), wird als Umriss in konfigurierbarer Farbe und
317
+ links auf.
318
+
319
+ Standardmäßig wird das Einsatzgebiet, das WAIP-Web im `geometry`-Feld
320
+ des Events sendet (meist ein kreisförmiges Polygon um den Einsatzort,
321
+ nicht nur dessen Mittelpunkt), als Umriss in konfigurierbarer Farbe und
319
322
  Strichstärke ins Bild eingezeichnet - also die vom Server original
320
- gesendete Form, keine Markierung an deren
321
- Mittelpunkt. Nur falls kein solches Polygon vorliegt (z.B. enthält das
322
- Event nur einen Punkt), fällt der Adapter auf eine einfache
323
- Punkt-Markierung in der Mitte zurück. Das Einsatzgebiet bleibt dabei
324
- immer vollständig sichtbar: passt es bei der konfigurierten Zoomstufe
325
- nicht ins Bild, zoomt der Adapter automatisch so weit heraus (nie
326
- hinein), wie nötig, damit das gesamte Gebiet hineinpasst, statt es am
327
- Rand abzuschneiden. Der Dateipfad wird in
328
- `einsatz.kartenbildPfad` geschrieben
329
- (siehe [einsatz](#einsatz)) – typische Verwendung ist der Versand dieser
330
- Datei aus einem Blockly-/JavaScript-Skript heraus, z.B. als
323
+ gesendete Form, keine Markierung an deren Mittelpunkt. **Einsatzgebiet-
324
+ Polygon anzeigen** (Admin-Checkbox, standardmäßig an) steuert das:
325
+ deaktivieren, um stattdessen immer eine einfache Punkt-Markierung in
326
+ der Mitte zu zeigen, auch wenn ein Polygon verfügbar wäre. Liegt gar
327
+ kein Polygon vor (z.B. enthält das Event nur einen Punkt), wird ohnehin
328
+ immer die Punkt-Markierung verwendet, unabhängig von der Checkbox. Das
329
+ Einsatzgebiet bleibt beim Zeichnen des Polygons immer vollständig
330
+ sichtbar: passt es bei der konfigurierten Zoomstufe nicht ins Bild,
331
+ zoomt der Adapter automatisch so weit heraus (nie hinein), wie nötig,
332
+ damit das gesamte Gebiet hineinpasst, statt es am Rand abzuschneiden.
333
+
334
+ Der Dateipfad wird in `einsatz.kartenbildPfad` geschrieben (siehe
335
+ [einsatz](#einsatz)) – typische Verwendung ist der Versand dieser Datei
336
+ aus einem Blockly-/JavaScript-Skript heraus, z.B. als
331
337
  Pushover-Benachrichtigungsanhang. Es werden nur die 10 zuletzt erzeugten
332
338
  Bilder aufgehoben, ältere werden automatisch gelöscht, sobald ein neues
333
339
  geschrieben wird. Die Bilderzeugung läuft im Hintergrund und verzögert
@@ -337,17 +343,24 @@ sonst bleibt nichts betroffen.
337
343
 
338
344
  | Feld | Beschreibung | Default |
339
345
  | --- | --- | --- |
346
+ | Einsatzgebiet-Polygon anzeigen | Das von WAIP-Web gesendete Original-Polygon zeichnen (an) vs. immer eine zentrierte Punkt-Markierung zeigen (aus) | *(an)* |
340
347
  | Bildbreite (px) | Breite des erzeugten PNGs | `600` |
341
348
  | Bildhöhe (px) | Höhe des erzeugten PNGs | `400` |
342
- | Zoomstufe | OpenStreetMap-Zoomstufe (1 = ganze Welt, 19 = Gebäudeebene) - ein Maximalwert, wird bei Bedarf automatisch reduziert, damit das Einsatzgebiet vollständig sichtbar bleibt | `16` |
349
+ | Zoomstufe | OpenStreetMap-Zoomstufe (1 = ganze Welt, 19 = Gebäudeebene) - ein Maximalwert, wird bei Bedarf automatisch reduziert, damit das Einsatzgebiet vollständig sichtbar bleibt | `19` |
343
350
  | Umrissfarbe | Farbe des Einsatzgebiet-Umrisses (und des Kerns der Fallback-Punkt-Markierung) | `#DD2020` |
344
- | Umriss-Strichstärke (px) | Linienstärke des Umrisses in Pixeln (1-12) | `3` |
351
+ | Umriss-Strichstärke (px) | Linienstärke des Umrisses in Pixeln (1-12) | `4` |
345
352
 
346
353
  Die Bilder liegen im eigenen Datenverzeichnis dieser Adapterinstanz
347
354
  (`iobroker-data/<instance>/maps/`), nicht als ioBroker-Dateiobjekte –
348
355
  `einsatz.kartenbildPfad` ist deshalb ein echter, absoluter
349
356
  Dateisystempfad, den ein auf demselben Host laufendes Skript direkt
350
- lesen kann.
357
+ lesen kann. Dieses Verzeichnis wird **nicht** automatisch gelöscht,
358
+ wenn der Adapter gestoppt oder seine Instanzkonfiguration
359
+ zurückgesetzt wird; um es bei einer Deinstallation zu entfernen,
360
+ im Bestätigungsdialog beim Löschen der Instanz/des Adapters in Admin
361
+ die Option **"Auch Instanzdaten löschen"** anhaken (seit js-controller
362
+ 4.0 / Admin 5 für das Instanzdaten-Verzeichnis jedes Adapters verfügbar
363
+ – standardmäßig nicht angehakt).
351
364
 
352
365
  > **Hinweis:** Genutzt wird der offizielle, kostenlose Server
353
366
  > `tile.openstreetmap.org`, der für gelegentliche/geringe Nutzung
@@ -425,7 +438,7 @@ stehen. Der zuletzt abgeschlossene Einsatz bleibt trotzdem über
425
438
  | `ablaufzeit` | string (date) | Ende der Standby-Anzeigedauer, Basis für `restzeit` |
426
439
  | `sondersignal` | number | `1` = Sondersignal, sonst kein Sondersignal |
427
440
  | `latitude` / `longitude` | number | Position des Einsatzortes (normalisiert aus wgs84-Feldern oder GeoJSON-Mittelpunkt) |
428
- | `kartenbildPfad` | string | Pfad zum zuletzt erzeugten Einsatzkarten-Bild (PNG) - siehe [Einsatzkarte](#einsatzkarte). Anders als die Felder oben wird dieser State bei `io.standby` **nicht** geleert (gleiches Muster wie `einsatz.tts.last`), bleibt also auch nach Einsatzende noch verfügbar |
441
+ | `kartenbildPfad` | string | Pfad zum zuletzt erzeugten Einsatzkarten-Bild (PNG) - siehe [Einsatzkarte](#einsatzkarte). Wird wie die übrigen Felder oben bei `io.standby` geleert; die zugrundeliegende Bild-Datei selbst wird dabei nicht gelöscht (nur das 10er-Rotationslimit entfernt Dateien, siehe [Einsatzkarte](#einsatzkarte)) |
429
442
  | `routenGesamt` | number | Anzahl Routen im aktuellen Einsatz |
430
443
  | `rueckmeldungGesamt` | number | Rückmeldungen gesamt im aktuellen Einsatz |
431
444
  | `rueckmeldungAnzahl.ek` | number | Anzahl Rückmeldungen als Einsatzkraft |
package/README.md CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  🇩🇪 [Deutsche Version dieser README](README.de.md)
14
14
 
15
- Unofficial ioBroker adapter for **Wachalarm IP-Web (WAIP-Web)**
15
+ ioBroker adapter for **Wachalarm IP-Web (WAIP-Web)**
16
16
 
17
17
  Connects via Socket.IO to a WAIP-Web dispatch monitor and mirrors incidents
18
18
  ("Einsatz"), responder feedback ("Rückmeldung"), routes and TTS
@@ -41,7 +41,7 @@ open.
41
41
 
42
42
  ## About this adapter
43
43
 
44
- This adapter is an **unofficial community project** and has no connection
44
+ This adapter is an **independent, community-built project** and has no connection
45
45
  to the WAIP-Web project, to Robert-112, or to the operator of any specific
46
46
  instance (e.g. the Integrated Regional Dispatch Center Lausitz /
47
47
  Integrierte Regionalleitstelle Lausitz). It was built by analyzing the
@@ -184,9 +184,9 @@ adapter provides – typical use in a fire station/EMS environment:
184
184
  - Optional incident map image: a PNG centered on the incident's
185
185
  coordinates, composed locally from OpenStreetMap tiles, with the
186
186
  incident area WAIP-Web sends drawn as an outline in a configurable
187
- color/thickness (falls back to a marker dot), automatically zoomed
188
- out as needed to keep the whole area visible, file path exposed as a
189
- state - see [Incident map image](#incident-map-image)
187
+ color/thickness (switchable to a plain marker dot instead), automatically
188
+ zoomed out as needed to keep the whole area visible, file path
189
+ exposed as a state - see [Incident map image](#incident-map-image)
190
190
 
191
191
  ## Configuration
192
192
 
@@ -305,37 +305,50 @@ adapter downloads the tiles it needs from the public
305
305
  `tile.openstreetmap.org` server, composites them into a single PNG
306
306
  centered on the incident's location, and stamps the OpenStreetMap
307
307
  attribution (required by its ODbL license) into the bottom-left corner.
308
- The incident area WAIP-Web sends in the `geometry` field of the event
309
- (usually a circle-shaped polygon around the location, not just its
310
- center) is drawn onto the image as an outline in a configurable color
311
- and thickness - the original shape the server sent, not a marker at
312
- its centroid. Only if no such polygon
313
- is available (e.g. the event carries just a point) does the adapter
314
- fall back to a simple marker dot at the center. The incident area is
315
- always kept fully visible: if it wouldn't fit into the image at the
316
- configured zoom level, the adapter automatically zooms out (never in)
317
- just enough for the whole area to fit, instead of clipping it at the
318
- edge. The file
319
- path is written to `einsatz.kartenbildPfad` (see [einsatz](#einsatz)) –
320
- typical use is attaching that file from a Blockly/JavaScript script,
321
- e.g. as a Pushover notification attachment. Only the 10 most recently
322
- generated images are kept on disk; older ones are deleted automatically
323
- whenever a new one is written. Image generation runs in the background
324
- and never delays alarm processing – a slow or failing tile download
325
- just means a missing/delayed image, nothing else is affected.
308
+
309
+ By default, the incident area WAIP-Web sends in the `geometry` field of
310
+ the event (usually a circle-shaped polygon around the location, not
311
+ just its center) is drawn onto the image as an outline in a
312
+ configurable color and thickness - the original shape the server sent,
313
+ not a marker at its centroid. **Show incident-area polygon** (admin
314
+ checkbox, on by default) controls this: uncheck it to always show a
315
+ simple marker dot at the center instead, even when a polygon is
316
+ available. The dot is also used automatically whenever the event
317
+ carries no polygon at all (e.g. just a point) - it is then the only
318
+ option regardless of the checkbox. The incident area is
319
+ always kept fully visible when the polygon is drawn: if it wouldn't
320
+ fit into the image at the configured zoom level, the adapter
321
+ automatically zooms out (never in) just enough for the whole area to
322
+ fit, instead of clipping it at the edge.
323
+
324
+ The file path is written to `einsatz.kartenbildPfad` (see
325
+ [einsatz](#einsatz)) – typical use is attaching that file from a
326
+ Blockly/JavaScript script, e.g. as a Pushover notification attachment.
327
+ Only the 10 most recently generated images are kept on disk; older
328
+ ones are deleted automatically whenever a new one is written. Image
329
+ generation runs in the background and never delays alarm processing –
330
+ a slow or failing tile download just means a missing/delayed image,
331
+ nothing else is affected.
326
332
 
327
333
  | Field | Description | Default |
328
334
  | --- | --- | --- |
335
+ | Show incident-area polygon | Draw the original polygon WAIP-Web sends (on) vs. always show a centered marker dot instead (off) | *(on)* |
329
336
  | Image width (px) | Width of the generated PNG | `600` |
330
337
  | Image height (px) | Height of the generated PNG | `400` |
331
- | Zoom level | OpenStreetMap zoom level (1 = whole world, 19 = building level) - a maximum, automatically reduced if needed to keep the incident area fully visible | `16` |
338
+ | Zoom level | OpenStreetMap zoom level (1 = whole world, 19 = building level) - a maximum, automatically reduced if needed to keep the incident area fully visible | `19` |
332
339
  | Outline color | Color of the incident-area outline (and the fallback marker dot's core) | `#DD2020` |
333
- | Outline thickness (px) | Line thickness of the outline, in pixels (1-12) | `3` |
340
+ | Outline thickness (px) | Line thickness of the outline, in pixels (1-12) | `4` |
334
341
 
335
342
  Images are stored under this adapter instance's own data directory
336
343
  (`iobroker-data/<instance>/maps/`), not as ioBroker file objects –
337
344
  `einsatz.kartenbildPfad` is therefore a real, absolute filesystem path
338
- that a script running on the same host can read directly.
345
+ that a script running on the same host can read directly. This
346
+ directory is **not** deleted automatically when the adapter is
347
+ stopped or its instance configuration is reset; to remove it when
348
+ uninstalling, tick **"Also delete instance data"** in the confirmation
349
+ dialog when deleting the instance/adapter in Admin (available since
350
+ js-controller 4.0 / Admin 5 for any adapter's instance data directory
351
+ – unchecked by default).
339
352
 
340
353
  > **Note:** This uses the official, free `tile.openstreetmap.org`
341
354
  > server, which is intended for occasional/low-volume use (see the
@@ -411,7 +424,7 @@ The most recently finished incident remains available via
411
424
  | `ablaufzeit` | string (date) | End of the standby display duration, basis for `restzeit` |
412
425
  | `sondersignal` | number | `1` = special signal (lights & siren), otherwise none |
413
426
  | `latitude` / `longitude` | number | Incident location (normalized from wgs84 fields or GeoJSON centroid) |
414
- | `kartenbildPfad` | string | Path to the most recently generated incident map image (PNG) - see [Incident map image](#incident-map-image). Unlike the fields above, **not** cleared on `io.standby` (same pattern as `einsatz.tts.last`), so it stays available to pick up the last incident's map after it ended |
427
+ | `kartenbildPfad` | string | Path to the most recently generated incident map image (PNG) - see [Incident map image](#incident-map-image). Cleared like the other fields above on `io.standby`; the underlying image file itself is not deleted (only the 10-image retention limit removes files, see [Incident map image](#incident-map-image)) |
415
428
  | `routenGesamt` | number | Number of routes in the current incident |
416
429
  | `rueckmeldungGesamt` | number | Total feedback count for the current incident |
417
430
  | `rueckmeldungAnzahl.ek` | number | Feedback count as team member ("Einsatzkraft") |
@@ -482,6 +495,31 @@ example.
482
495
 
483
496
  ## Changelog
484
497
 
498
+ ### 0.7.30 (2026-08-24)
499
+
500
+ - [Incident map image](#incident-map-image): new **Show incident-area
501
+ polygon** checkbox (on by default) - uncheck it to always show the
502
+ centered marker dot instead, even when the server sends a polygon.
503
+ The margin kept around the polygon when auto-zooming to fit it was
504
+ also reduced by 30%, so the area fills more of the image. Default
505
+ zoom level raised from 16 to 19, default outline thickness from 3 to
506
+ 4 px.
507
+ - `einsatz.kartenbildPfad` is now cleared on `io.standby` like the
508
+ other `einsatz.*` fields (previously kept, matching
509
+ `einsatz.tts.last`'s pattern) - the image file itself is unaffected,
510
+ only the 10-image retention limit ever deletes files.
511
+ - Documented that this adapter's own data directory (generated map
512
+ images) is only removed on instance/adapter deletion if "Also
513
+ delete instance data" is checked in Admin's deletion dialog - a
514
+ native js-controller/Admin feature (unchecked by default), not
515
+ something this adapter's code controls.
516
+ - Removed "Unofficial"/"Inoffiziell" from both READMEs' wording; the
517
+ disclaimer about having no connection to the WAIP-Web project/
518
+ Robert-112 itself is unchanged, just reworded without that word.
519
+ - This Changelog section now shows only the 5 most recent versions -
520
+ older entries move to [CHANGELOG_OLD.md](CHANGELOG_OLD.md) on every
521
+ release.
522
+
485
523
  ### 0.7.29 (2026-08-24)
486
524
 
487
525
  - [Incident map image](#incident-map-image): draws the actual incident
@@ -536,153 +574,8 @@ example.
536
574
  pattern`), and the table's help text was moved above the table
537
575
  instead of below - with many rows it used to sit far out of view.
538
576
 
539
- ### 0.7.25 (2026-08-23)
540
-
541
- - Updated the admin UI text for the [rescue-service decoder](#rescue-service)
542
- to reflect the two supported keyword spellings added in 0.7.23
543
- (Leitstelle Lausitz `R1N1p`/`R1N0-NT` and IRLS Brandenburg `R1N1 p`/
544
- `R1N0 nt`) - the checkbox label/help and the NT suffix label/help
545
- previously only mentioned the hyphenated no-space form.
546
-
547
- ### 0.7.24 (2026-08-23)
548
-
549
- - Extended the default [keyword table](#keyword-descriptions) with two
550
- more Brandenburg spelling variants: `B:Gebäude-Groß` and
551
- `B:Gebäude-Klein` (hyphen instead of space, as used by some dispatch
552
- centers) - same descriptions as the existing `B:Gebäude groß`/`B:Gebäude
553
- klein` entries. Only affects the shipped example table for new
554
- installs - existing configured tables are untouched.
555
-
556
- ### 0.7.23 (2026-08-23)
557
-
558
- - Extended the default [keyword table](#keyword-descriptions) with the
559
- 29 `K`/`V`/`M`/`S` keywords (Krankentransport, Verlegung, MANV,
560
- Sonderstichwörter) from the IRLS Brandenburg rescue-service catalog
561
- (v2.7) - previously only the `R<ambulance>N<physician-vehicle>`
562
- scheme and the Brand/THL (`B:`/`H:`) table were covered, so
563
- `einsatz.beschreibung` stayed `null` for these.
564
- - Fixed the [rescue-service keyword](#rescue-service) decoder
565
- (`decodeRettungsdienstStichwort`): it only accepted the Leitstelle
566
- Lausitz spelling without a space (`R1N1p`, `R1N0-NT`) and silently
567
- returned `null` for the IRLS Brandenburg spelling with a space
568
- (`R1N1 p`, `R1N0 nt`) - both are now recognized.
569
- - Only affects the shipped example table and the decoder logic for
570
- new installs/upgrades - existing configured tables are untouched.
571
-
572
- ### 0.7.22 (2026-08-23)
573
-
574
- - Extended the default [keyword table](#keyword-descriptions) with
575
- `H:Person-TMR` (technical human rescue) and corrected three entries
576
- whose pattern didn't match the actual dispatch keyword:
577
- `H:Flugunfall` → `H:Flugzeugunfall` (`klein`/`groß`), `H:Öl Wasser`
578
- → `H:Öl auf Wasser`, `H:Rettung aus Höhen/Tiefen` → `H:Rettung aus
579
- Höhen und Tiefen` (source: Regionalleitstellen Brandenburg keyword
580
- list, v7.1). Only affects the shipped example table for new
581
- installs - existing configured tables are untouched.
582
-
583
- ### 0.7.21 (2026-08-23)
584
-
585
- - Removed the keyword table's CSV export/import: a bug in ioBroker
586
- Admin's own `table` component corrupted German umlauts on CSV
587
- import (e.g. `ä`/`Ã` instead of `ä`/`ß`) - confirmed to be entirely
588
- inside the Admin UI, not this adapter's code. Use ioBroker's
589
- standard instance configuration export/import (JSON) instead - see
590
- [Keyword descriptions](#keyword-descriptions) for the reload caveat
591
- after using it.
592
- - Split the admin configuration UI into 3 tabs -
593
- [Connection](#connection), [Rescue-service
594
- keywords](#rescue-service),
595
- [Keyword descriptions](#keyword-descriptions) - each with a
596
- matching icon, replacing the single combined settings page.
597
- - Documentation: restructured the configuration section of the
598
- README to mirror the 3 admin tabs, fixed a stale reference to the
599
- removed CSV feature, and added a couple of small clarifications
600
- (mentioned `einsatz.beschreibung` in the practical-use-cases
601
- section, mentioned the 3-tab structure up front). All code comments
602
- in `main.js` are now bilingual (German + English).
603
-
604
- ### 0.7.20 (2026-08-22)
605
-
606
- - Added `einsatz.beschreibung`: a plain-language description for
607
- `einsatz.stichwort`, resolved entirely locally (also included in
608
- `einsatz.json.current`/`.history10`). Two sources, in order:
609
- - An optional decoder for the `R<RTW>N<NEF>[p][f][-NT]` rescue-service
610
- keyword scheme used by several dispatch centers - the label for
611
- each part is fully configurable via 5 new text fields.
612
- - A user-maintained keyword table (admin table, CSV export/import,
613
- pre-filled with an example fire/rescue keyword list) where the
614
- most specific (longest) matching pattern wins automatically,
615
- regardless of row order - the table can be freely sorted by
616
- keyword.
617
- - `null` if nothing matches. See
618
- [Alarm keyword descriptions](#alarm-keyword-descriptions).
619
-
620
- ### 0.7.19 (2026-08-22)
621
-
622
- - Fixed a bug where incoming feedback (`io.new_rmld`) was silently
623
- dropped as "wrong monitor" whenever the responding station's number
624
- (`wache_nr`) differed from the registered monitor ID:
625
- `payloadMonitorMatch()` incorrectly treated `wache_nr`/`wache_id`/
626
- `wacheId` as monitor-identifying fields, but confirmed against the
627
- WAIP-Web server source, `wache_nr` on a feedback event is the station
628
- number of the crew that submitted it, unrelated to the monitor/
629
- dispatch-center ID. Removed these three from the match candidates -
630
- alarms and routes were never affected (they don't carry these
631
- fields).
632
-
633
- ### 0.7.18 (2026-08-22)
634
-
635
- - Fixed `debug.lastEvent`/`debug.normalizedPosition` to hold a
636
- single-element JSON array instead of a bare object (matching
637
- `einsatz.json.current`), for direct VIS table-widget compatibility,
638
- and to correctly initialize to `[]` instead of `null` on a fresh
639
- install/restart.
640
- - Removed `einsatz.einsatznummer`/`.objekt`/`.objektteil`/
641
- `.besonderheiten`/`.strasse`/`.hausnummer`/`.einsatzdetails`/
642
- `.permissions` (and the corresponding fields in
643
- `einsatz.json.current`/`.history10`): confirmed via the WAIP-Web
644
- server source (`server/waip.js`,
645
- `db_user_check_permission_for_waip()`) that these fields are only
646
- ever populated for logged-in clients - since this adapter connects
647
- anonymously by design, they were always empty/`false`. Removed
648
- instead of permanently carrying dead states - see the note in the
649
- [`einsatz`](#einsatz) section.
650
-
651
- ### 0.7.17 (2026-08-22)
652
-
653
- - Fixed `cleanupObsoleteObjects()` incorrectly deleting and recreating
654
- the `einsatz.json` channel on every restart (it wasn't checking
655
- `obj.type`, so the current channel object was mistaken for a leftover
656
- state from before the 0.7.15 migration).
657
- - Fixed a spurious `status.registrationPending` "no existing object"
658
- warning that could occur if the adapter was stopped before object
659
- initialization had finished.
660
- - Reduced WAIP registration from three emits to a single emit - Socket.IO
661
- already delivers reliably once connected, and the existing registration
662
- timeout remains as the safety net for the rare case it doesn't confirm.
663
- - `permissions` inside `einsatz.json.current`/`.history10` is now always
664
- stringified consistently with the standalone `einsatz.permissions`
665
- state, and `einsatz.json.current` is wrapped in a single-element array
666
- (VIS table widgets require an array at the root, not a bare object).
667
- - Fixed `einsatz.json.history10`/`debug.monitorAudit` staying `null`
668
- instead of `[]` on a fresh install (they're excluded from the
669
- per-restart reset to preserve history, which previously also meant
670
- they were never initialized at all on first install).
671
- - Added `registeredMonitor`/`registeredMonitorName` fields to
672
- `einsatz.json.current`/`.history10`.
673
- - Reworked logging: translated all remaining German log text to
674
- English; implemented the official first-occurrence-`warn`/
675
- repeat-`debug`/recovery-`info` pattern for recurring failures (session
676
- cookie, registration, connection); capped noisy Socket.IO ping/pong
677
- debug logging; a sustained flood of wrong-monitor events now escalates
678
- to `warn` instead of staying at `info` indefinitely. See
679
- [LOGGING.md](LOGGING.md) for the full reference.
680
- - Documentation: added a table of contents, a practical-use-cases
681
- section, a known-limitation note (only the single most recently active
682
- incident is shown - see [`einsatz`](#einsatz)), and enforced the
683
- changelog's own 5-entry limit.
684
-
685
- Older entries have moved to [CHANGELOG_OLD.md](CHANGELOG_OLD.md).
577
+ Older entries have moved to [CHANGELOG_OLD.md](CHANGELOG_OLD.md) - this
578
+ section shows only the 5 most recent versions.
686
579
 
687
580
  ## License
688
581
 
@@ -4,7 +4,6 @@
4
4
  "Base URL of the WAIP dispatch server (Socket.IO endpoint, namespace /waip is appended automatically)": "Basis-URL des WAIP-Leitstellenservers (Socket.IO-Endpunkt, Namespace /waip wird automatisch angehängt)",
5
5
  "Color of the incident-area outline (and of the fallback marker dot's core, used when no area polygon is available).": "Farbe des Einsatzgebiet-Umrisses (und des Kerns der Fallback-Punkt-Markierung, wenn kein Gebiets-Polygon vorliegt).",
6
6
  "Connection": "Verbindung",
7
- "contains": "enthält",
8
7
  "Description": "Beschreibung",
9
8
  "For every incident with valid coordinates, downloads OpenStreetMap tiles and composes a PNG centered on the incident's location, with the incident area WAIP-Web sends drawn as an outline (falls back to a marker dot if no area polygon is available). The file path is written to the einsatz.kartenbildPfad state, e.g. for sending as a Pushover attachment from a Blockly/JavaScript script. Only the 10 most recent images are kept, older ones are deleted automatically. Uses the public tile.openstreetmap.org server - keep this to the intended one-image-per-incident use per the OSM Tile Usage Policy.": "Lädt für jeden Einsatz mit gültigen Koordinaten OpenStreetMap-Kacheln herunter und setzt sie zu einem PNG zusammen, zentriert auf den Einsatzort, mit dem von WAIP-Web gesendeten Einsatzgebiet als Umriss eingezeichnet (fällt auf einen Punkt-Marker zurück, falls kein Gebiets-Polygon vorliegt). Der Dateipfad wird in den State einsatz.kartenbildPfad geschrieben, z.B. um ihn per Blockly/JavaScript-Skript als Pushover-Anhang zu versenden. Es werden nur die 10 neuesten Bilder aufgehoben, ältere werden automatisch gelöscht. Nutzt den öffentlichen Server tile.openstreetmap.org - bitte bei der vorgesehenen Nutzung von einem Bild pro Einsatz bleiben, siehe OSM Tile Usage Policy.",
10
9
  "Generate a map image for each incident": "Kartenbild für jeden Einsatz erzeugen",
@@ -33,7 +32,7 @@
33
32
  "Registration timeout (s)": "Registrierungs-Timeout (s)",
34
33
  "Rescue service": "Rettungsdienst",
35
34
  "Rescue-service keyword scheme R<RTW>N<NEF>, optionally followed by a p/f modifier and/or an NT suffix (e.g. \"R1N0\" = 1 ambulance, no emergency physician). Two spellings are recognized: without a space and with a hyphen before NT (Leitstelle Lausitz, e.g. \"R1N1p\", \"R1N0-NT\") and with a space and without a hyphen (Leitstelle Brandenburg/IRLS, e.g. \"R1N1 p\", \"R1N0 nt\") - has no effect if your dispatch center doesn't use one of these patterns, since the keyword just won't match. Takes priority over the table on the Keyword descriptions tab when a keyword matches.": "Rettungsdienst-Stichwortschema R<RTW>N<NEF>, optional gefolgt von einem p/f-Modifikator und/oder einem NT-Suffix (z.B. \"R1N0\" = 1 Rettungswagen, kein Notarzt). Zwei Schreibweisen werden erkannt: ohne Leerzeichen und mit Bindestrich vor NT (Leitstelle Lausitz, z.B. \"R1N1p\", \"R1N0-NT\") sowie mit Leerzeichen und ohne Bindestrich (Leitstelle Brandenburg/IRLS, z.B. \"R1N1 p\", \"R1N0 nt\") - hat keine Auswirkung, falls eure Leitstelle keines dieser Muster verwendet, da das Stichwort dann einfach nicht passt. Hat Vorrang vor der Tabelle im Tab Stichwort-Stammdaten, wenn ein Stichwort passt.",
36
- "starts with": "beginnt mit",
35
+ "Show incident-area polygon": "Einsatzgebiet-Polygon anzeigen",
37
36
  "Text appended when the keyword ends in \"-NT\" or \" nt\".": "Text, der angehängt wird, wenn das Stichwort auf \"-NT\" oder \" nt\" endet.",
38
37
  "Text appended when the keyword ends in \"f\".": "Text, der angehängt wird, wenn das Stichwort auf \"f\" endet.",
39
38
  "Text appended when the keyword ends in \"p\".": "Text, der angehängt wird, wenn das Stichwort auf \"p\" endet.",
@@ -41,7 +40,10 @@
41
40
  "Text used in the generated description for the R<n> part, e.g. \"Rettungswagen: 1\".": "Text für den R<n>-Teil der erzeugten Beschreibung, z.B. \"Rettungswagen: 1\".",
42
41
  "WAIP server URL": "WAIP-Server-URL",
43
42
  "Wait time before the adapter automatically reconnects after a lost connection or a connection error.": "Wartezeit, bevor der Adapter nach einem Verbindungsabbruch oder -fehler automatisch neu verbindet.",
43
+ "When checked (default), the incident-area polygon WAIP-Web sends is drawn as an outline (falling back to a centered marker dot only when no polygon is available). Uncheck to always show the simple centered marker dot instead, even when a polygon is available.": "Wenn aktiviert (Standard), wird das von WAIP-Web gesendete Einsatzgebiet-Polygon als Umriss eingezeichnet (Rückfall auf eine zentrierte Punkt-Markierung nur, falls kein Polygon vorliegt). Deaktivieren, um stattdessen immer die einfache zentrierte Punkt-Markierung zu zeigen, auch wenn ein Polygon verfügbar wäre.",
44
44
  "When unchecked, incidents whose einsatzart identifies them as a rescue-service call (contains \"Rettung\" or \"Krankentransport\", case-insensitive) are ignored completely - no states are updated, no history entry is written, no TTS announcement is triggered. Useful because some WAIP dispatch centers only ever signal rescue-service incidents unreliably or not at all.": "Wenn deaktiviert, werden Einsätze, deren einsatzart auf einen Rettungsdienst-Einsatz hindeutet (enthält \"Rettung\" oder \"Krankentransport\", ohne Berücksichtigung von Groß-/Kleinschreibung), komplett ignoriert - keine States werden aktualisiert, kein History-Eintrag geschrieben, keine TTS-Ansage ausgelöst. Sinnvoll, weil manche WAIP-Leitstellen Rettungsdienst-Einsätze nur unzuverlässig oder gar nicht signalisieren.",
45
45
  "Width of the generated map image in pixels.": "Breite des erzeugten Kartenbilds in Pixeln.",
46
- "Zoom level": "Zoomstufe"
46
+ "Zoom level": "Zoomstufe",
47
+ "contains": "enthält",
48
+ "starts with": "beginnt mit"
47
49
  }
@@ -33,6 +33,7 @@
33
33
  "Registration timeout (s)": "Registration timeout (s)",
34
34
  "Rescue service": "Rescue service",
35
35
  "Rescue-service keyword scheme R<RTW>N<NEF>, optionally followed by a p/f modifier and/or an NT suffix (e.g. \"R1N0\" = 1 ambulance, no emergency physician). Two spellings are recognized: without a space and with a hyphen before NT (Leitstelle Lausitz, e.g. \"R1N1p\", \"R1N0-NT\") and with a space and without a hyphen (Leitstelle Brandenburg/IRLS, e.g. \"R1N1 p\", \"R1N0 nt\") - has no effect if your dispatch center doesn't use one of these patterns, since the keyword just won't match. Takes priority over the table on the Keyword descriptions tab when a keyword matches.": "Rescue-service keyword scheme R<RTW>N<NEF>, optionally followed by a p/f modifier and/or an NT suffix (e.g. \"R1N0\" = 1 ambulance, no emergency physician). Two spellings are recognized: without a space and with a hyphen before NT (Leitstelle Lausitz, e.g. \"R1N1p\", \"R1N0-NT\") and with a space and without a hyphen (Leitstelle Brandenburg/IRLS, e.g. \"R1N1 p\", \"R1N0 nt\") - has no effect if your dispatch center doesn't use one of these patterns, since the keyword just won't match. Takes priority over the table on the Keyword descriptions tab when a keyword matches.",
36
+ "Show incident-area polygon": "Show incident-area polygon",
36
37
  "starts with": "starts with",
37
38
  "Text appended when the keyword ends in \"-NT\" or \" nt\".": "Text appended when the keyword ends in \"-NT\" or \" nt\".",
38
39
  "Text appended when the keyword ends in \"f\".": "Text appended when the keyword ends in \"f\".",
@@ -41,6 +42,7 @@
41
42
  "Text used in the generated description for the R<n> part, e.g. \"Rettungswagen: 1\".": "Text used in the generated description for the R<n> part, e.g. \"Rettungswagen: 1\".",
42
43
  "WAIP server URL": "WAIP server URL",
43
44
  "Wait time before the adapter automatically reconnects after a lost connection or a connection error.": "Wait time before the adapter automatically reconnects after a lost connection or a connection error.",
45
+ "When checked (default), the incident-area polygon WAIP-Web sends is drawn as an outline (falling back to a centered marker dot only when no polygon is available). Uncheck to always show the simple centered marker dot instead, even when a polygon is available.": "When checked (default), the incident-area polygon WAIP-Web sends is drawn as an outline (falling back to a centered marker dot only when no polygon is available). Uncheck to always show the simple centered marker dot instead, even when a polygon is available.",
44
46
  "When unchecked, incidents whose einsatzart identifies them as a rescue-service call (contains \"Rettung\" or \"Krankentransport\", case-insensitive) are ignored completely - no states are updated, no history entry is written, no TTS announcement is triggered. Useful because some WAIP dispatch centers only ever signal rescue-service incidents unreliably or not at all.": "When unchecked, incidents whose einsatzart identifies them as a rescue-service call (contains \"Rettung\" or \"Krankentransport\", case-insensitive) are ignored completely - no states are updated, no history entry is written, no TTS announcement is triggered. Useful because some WAIP dispatch centers only ever signal rescue-service incidents unreliably or not at all.",
45
47
  "Width of the generated map image in pixels.": "Width of the generated map image in pixels.",
46
48
  "Zoom level": "Zoom level"
@@ -4,7 +4,6 @@
4
4
  "Base URL of the WAIP dispatch server (Socket.IO endpoint, namespace /waip is appended automatically)": "URL base del servidor de envío WAIP (punto final Socket.IO, el espacio de nombres /waip se agrega automáticamente)",
5
5
  "Color of the incident-area outline (and of the fallback marker dot's core, used when no area polygon is available).": "Color del contorno del área del incidente (y del núcleo del punto marcador de reserva, usado cuando no hay ningún polígono de área disponible).",
6
6
  "Connection": "Conexión",
7
- "contains": "contiene",
8
7
  "Description": "Descripción",
9
8
  "For every incident with valid coordinates, downloads OpenStreetMap tiles and composes a PNG centered on the incident's location, with the incident area WAIP-Web sends drawn as an outline (falls back to a marker dot if no area polygon is available). The file path is written to the einsatz.kartenbildPfad state, e.g. for sending as a Pushover attachment from a Blockly/JavaScript script. Only the 10 most recent images are kept, older ones are deleted automatically. Uses the public tile.openstreetmap.org server - keep this to the intended one-image-per-incident use per the OSM Tile Usage Policy.": "Para cada incidente con coordenadas válidas, descarga teselas de OpenStreetMap y compone un PNG centrado en la ubicación del incidente, con el área del incidente enviada por WAIP-Web dibujada como contorno (recurre a un punto marcador si no hay un polígono de área disponible). La ruta del archivo se escribe en el estado einsatz.kartenbildPfad, por ejemplo para enviarlo como adjunto de Pushover desde un script de Blockly/JavaScript. Solo se conservan las 10 imágenes más recientes, las más antiguas se eliminan automáticamente. Utiliza el servidor público tile.openstreetmap.org - mantén esto en el uso previsto de una imagen por incidente según la OSM Tile Usage Policy.",
10
9
  "Generate a map image for each incident": "Generar una imagen de mapa para cada incidente",
@@ -33,7 +32,7 @@
33
32
  "Registration timeout (s)": "Tiempos de espera de registro",
34
33
  "Rescue service": "Servicio de rescate",
35
34
  "Rescue-service keyword scheme R<RTW>N<NEF>, optionally followed by a p/f modifier and/or an NT suffix (e.g. \"R1N0\" = 1 ambulance, no emergency physician). Two spellings are recognized: without a space and with a hyphen before NT (Leitstelle Lausitz, e.g. \"R1N1p\", \"R1N0-NT\") and with a space and without a hyphen (Leitstelle Brandenburg/IRLS, e.g. \"R1N1 p\", \"R1N0 nt\") - has no effect if your dispatch center doesn't use one of these patterns, since the keyword just won't match. Takes priority over the table on the Keyword descriptions tab when a keyword matches.": "Esquema de palabras clave del servicio de rescate R<RTW>N<NEF>, seguido opcionalmente de un modificador p/f y/o un sufijo NT (p. ej. \"R1N0\" = 1 ambulancia, sin médico de urgencias). Se reconocen dos escrituras: sin espacio y con guion antes de NT (Leitstelle Lausitz, p. ej. \"R1N1p\", \"R1N0-NT\") y con espacio y sin guion (Leitstelle Brandeburgo/IRLS, p. ej. \"R1N1 p\", \"R1N0 nt\") - no tiene efecto si su central de despacho no utiliza ninguno de estos patrones, ya que la palabra clave simplemente no coincidirá. Tiene prioridad sobre la tabla de la pestaña Descripciones de palabras clave cuando una palabra clave coincide.",
36
- "starts with": "comienza con",
35
+ "Show incident-area polygon": "Mostrar polígono del área del incidente",
37
36
  "Text appended when the keyword ends in \"-NT\" or \" nt\".": "Texto añadido cuando la palabra clave termina en \"-NT\" o \" nt\".",
38
37
  "Text appended when the keyword ends in \"f\".": "Texto añadido cuando la palabra clave termina en \"f\".",
39
38
  "Text appended when the keyword ends in \"p\".": "Texto añadido cuando la palabra clave termina en \"p\".",
@@ -41,7 +40,10 @@
41
40
  "Text used in the generated description for the R<n> part, e.g. \"Rettungswagen: 1\".": "Texto utilizado en la descripción generada para la parte R<n>, p.e. \"Rettungswagen: 1\".",
42
41
  "WAIP server URL": "URL del servidor WAIP",
43
42
  "Wait time before the adapter automatically reconnects after a lost connection or a connection error.": "Tiempo de espera antes de que el adaptador se vuelva a conectar automáticamente después de una pérdida de conexión o un error de conexión.",
43
+ "When checked (default), the incident-area polygon WAIP-Web sends is drawn as an outline (falling back to a centered marker dot only when no polygon is available). Uncheck to always show the simple centered marker dot instead, even when a polygon is available.": "Cuando está marcado (por defecto), el polígono del área del incidente enviado por WAIP-Web se dibuja como un contorno (recurriendo a un punto marcador centrado solo cuando no hay ningún polígono disponible). Desmárquelo para mostrar siempre el simple punto marcador centrado en su lugar, incluso cuando haya un polígono disponible.",
44
44
  "When unchecked, incidents whose einsatzart identifies them as a rescue-service call (contains \"Rettung\" or \"Krankentransport\", case-insensitive) are ignored completely - no states are updated, no history entry is written, no TTS announcement is triggered. Useful because some WAIP dispatch centers only ever signal rescue-service incidents unreliably or not at all.": "Si se desactiva, los incidentes cuyo einsatzart los identifica como un aviso del servicio de rescate (contiene \"Rettung\" o \"Krankentransport\", sin distinguir mayúsculas/minúsculas) se ignoran por completo - no se actualiza ningún estado, no se escribe ninguna entrada en el historial, no se activa ningún aviso de voz (TTS). Útil porque algunas centrales de despacho de WAIP solo señalan los incidentes del servicio de rescate de forma poco fiable o no lo hacen en absoluto.",
45
45
  "Width of the generated map image in pixels.": "Ancho de la imagen de mapa generada en píxeles.",
46
- "Zoom level": "Nivel de zoom"
46
+ "Zoom level": "Nivel de zoom",
47
+ "contains": "contiene",
48
+ "starts with": "comienza con"
47
49
  }
@@ -4,7 +4,6 @@
4
4
  "Base URL of the WAIP dispatch server (Socket.IO endpoint, namespace /waip is appended automatically)": "URL de base du serveur de répartition WAIP (point de terminaison Socket.IO, l'espace de noms /waip est ajouté automatiquement)",
5
5
  "Color of the incident-area outline (and of the fallback marker dot's core, used when no area polygon is available).": "Couleur du contour de la zone d'intervention (et du centre du point marqueur de secours, utilisé lorsqu'aucun polygone de zone n'est disponible).",
6
6
  "Connection": "Connexion",
7
- "contains": "contient",
8
7
  "Description": "Description",
9
8
  "For every incident with valid coordinates, downloads OpenStreetMap tiles and composes a PNG centered on the incident's location, with the incident area WAIP-Web sends drawn as an outline (falls back to a marker dot if no area polygon is available). The file path is written to the einsatz.kartenbildPfad state, e.g. for sending as a Pushover attachment from a Blockly/JavaScript script. Only the 10 most recent images are kept, older ones are deleted automatically. Uses the public tile.openstreetmap.org server - keep this to the intended one-image-per-incident use per the OSM Tile Usage Policy.": "Pour chaque incident avec des coordonnées valides, télécharge des tuiles OpenStreetMap et compose un PNG centré sur l'emplacement de l'incident, avec la zone d'intervention envoyée par WAIP-Web dessinée en contour (revient à un point marqueur si aucun polygone de zone n'est disponible). Le chemin du fichier est écrit dans l'état einsatz.kartenbildPfad, par exemple pour l'envoyer en pièce jointe Pushover depuis un script Blockly/JavaScript. Seules les 10 images les plus récentes sont conservées, les plus anciennes sont supprimées automatiquement. Utilise le serveur public tile.openstreetmap.org - veillez à respecter l'usage prévu d'une image par incident selon la OSM Tile Usage Policy.",
10
9
  "Generate a map image for each incident": "Générer une image de carte pour chaque incident",
@@ -33,7 +32,7 @@
33
32
  "Registration timeout (s)": "Délai(s) d'enregistrement",
34
33
  "Rescue service": "Service de secours",
35
34
  "Rescue-service keyword scheme R<RTW>N<NEF>, optionally followed by a p/f modifier and/or an NT suffix (e.g. \"R1N0\" = 1 ambulance, no emergency physician). Two spellings are recognized: without a space and with a hyphen before NT (Leitstelle Lausitz, e.g. \"R1N1p\", \"R1N0-NT\") and with a space and without a hyphen (Leitstelle Brandenburg/IRLS, e.g. \"R1N1 p\", \"R1N0 nt\") - has no effect if your dispatch center doesn't use one of these patterns, since the keyword just won't match. Takes priority over the table on the Keyword descriptions tab when a keyword matches.": "Schéma de mots-clés des services de secours R<RTW>N<NEF>, éventuellement suivi d'un modificateur p/f et/ou d'un suffixe NT (par ex. \"R1N0\" = 1 ambulance, pas de médecin urgentiste). Deux orthographes sont reconnues : sans espace et avec un tiret avant NT (Leitstelle Lausitz, par ex. \"R1N1p\", \"R1N0-NT\") et avec un espace et sans tiret (Leitstelle Brandebourg/IRLS, par ex. \"R1N1 p\", \"R1N0 nt\") - n'a aucun effet si votre centre de répartition n'utilise aucun de ces modèles, le mot-clé ne correspondra alors simplement pas. Prioritaire sur la table de l'onglet Descriptions de mots-clés lorsqu'un mot-clé correspond.",
36
- "starts with": "commence par",
35
+ "Show incident-area polygon": "Afficher le polygone de la zone d'intervention",
37
36
  "Text appended when the keyword ends in \"-NT\" or \" nt\".": "Texte ajouté lorsque le mot-clé se termine par \"-NT\" ou \" nt\".",
38
37
  "Text appended when the keyword ends in \"f\".": "Texte ajouté lorsque le mot clé se termine par \"f\".",
39
38
  "Text appended when the keyword ends in \"p\".": "Texte ajouté lorsque le mot clé se termine par \"p\".",
@@ -41,7 +40,10 @@
41
40
  "Text used in the generated description for the R<n> part, e.g. \"Rettungswagen: 1\".": "Texte utilisé dans la description générée pour la pièce R<n>, par ex. \"Rettungswagen: 1\".",
42
41
  "WAIP server URL": "URL du serveur WAIP",
43
42
  "Wait time before the adapter automatically reconnects after a lost connection or a connection error.": "Temps d'attente avant que l'adaptateur ne se reconnecte automatiquement après une perte de connexion ou une erreur de connexion.",
43
+ "When checked (default), the incident-area polygon WAIP-Web sends is drawn as an outline (falling back to a centered marker dot only when no polygon is available). Uncheck to always show the simple centered marker dot instead, even when a polygon is available.": "Lorsque coché (par défaut), le polygone de la zone d'intervention envoyé par WAIP-Web est dessiné en contour (revenant à un point marqueur centré uniquement lorsqu'aucun polygone n'est disponible). Décochez pour toujours afficher le simple point marqueur centré à la place, même lorsqu'un polygone est disponible.",
44
44
  "When unchecked, incidents whose einsatzart identifies them as a rescue-service call (contains \"Rettung\" or \"Krankentransport\", case-insensitive) are ignored completely - no states are updated, no history entry is written, no TTS announcement is triggered. Useful because some WAIP dispatch centers only ever signal rescue-service incidents unreliably or not at all.": "Si désactivé, les incidents dont le einsatzart les identifie comme un appel du service de secours (contient \"Rettung\" ou \"Krankentransport\", sans distinction de casse) sont complètement ignorés - aucun état n'est mis à jour, aucune entrée d'historique n'est écrite, aucune annonce TTS n'est déclenchée. Utile car certains centres de répartition WAIP ne signalent les incidents du service de secours que de manière peu fiable, voire pas du tout.",
45
45
  "Width of the generated map image in pixels.": "Largeur de l'image de carte générée en pixels.",
46
- "Zoom level": "Niveau de zoom"
46
+ "Zoom level": "Niveau de zoom",
47
+ "contains": "contient",
48
+ "starts with": "commence par"
47
49
  }
@@ -4,7 +4,6 @@
4
4
  "Base URL of the WAIP dispatch server (Socket.IO endpoint, namespace /waip is appended automatically)": "URL di base del server di invio WAIP (endpoint Socket.IO, lo spazio dei nomi /waip viene aggiunto automaticamente)",
5
5
  "Color of the incident-area outline (and of the fallback marker dot's core, used when no area polygon is available).": "Colore del contorno dell'area dell'incidente (e del nucleo del punto marcatore di riserva, usato quando non è disponibile alcun poligono d'area).",
6
6
  "Connection": "Connessione",
7
- "contains": "contiene",
8
7
  "Description": "Descrizione",
9
8
  "For every incident with valid coordinates, downloads OpenStreetMap tiles and composes a PNG centered on the incident's location, with the incident area WAIP-Web sends drawn as an outline (falls back to a marker dot if no area polygon is available). The file path is written to the einsatz.kartenbildPfad state, e.g. for sending as a Pushover attachment from a Blockly/JavaScript script. Only the 10 most recent images are kept, older ones are deleted automatically. Uses the public tile.openstreetmap.org server - keep this to the intended one-image-per-incident use per the OSM Tile Usage Policy.": "Per ogni incidente con coordinate valide, scarica i tile di OpenStreetMap e compone un PNG centrato sulla posizione dell'incidente, con l'area dell'incidente inviata da WAIP-Web disegnata come contorno (torna a un punto marcatore se non è disponibile alcun poligono d'area). Il percorso del file viene scritto nello stato einsatz.kartenbildPfad, ad esempio per inviarlo come allegato Pushover da uno script Blockly/JavaScript. Vengono conservate solo le 10 immagini più recenti, quelle più vecchie vengono eliminate automaticamente. Utilizza il server pubblico tile.openstreetmap.org - attenersi all'uso previsto di un'immagine per incidente secondo la OSM Tile Usage Policy.",
10
9
  "Generate a map image for each incident": "Genera un'immagine della mappa per ogni incidente",
@@ -33,7 +32,7 @@
33
32
  "Registration timeout (s)": "Timeout registrazione(s)",
34
33
  "Rescue service": "Servizio di soccorso",
35
34
  "Rescue-service keyword scheme R<RTW>N<NEF>, optionally followed by a p/f modifier and/or an NT suffix (e.g. \"R1N0\" = 1 ambulance, no emergency physician). Two spellings are recognized: without a space and with a hyphen before NT (Leitstelle Lausitz, e.g. \"R1N1p\", \"R1N0-NT\") and with a space and without a hyphen (Leitstelle Brandenburg/IRLS, e.g. \"R1N1 p\", \"R1N0 nt\") - has no effect if your dispatch center doesn't use one of these patterns, since the keyword just won't match. Takes priority over the table on the Keyword descriptions tab when a keyword matches.": "Schema di parole chiave del servizio di soccorso R<RTW>N<NEF>, opzionalmente seguito da un modificatore p/f e/o un suffisso NT (ad es. \"R1N0\" = 1 ambulanza, nessun medico d'urgenza). Vengono riconosciute due grafie: senza spazio e con trattino prima di NT (Leitstelle Lausitz, ad es. \"R1N1p\", \"R1N0-NT\") e con spazio e senza trattino (Leitstelle Brandeburgo/IRLS, ad es. \"R1N1 p\", \"R1N0 nt\") - non ha alcun effetto se la propria centrale operativa non utilizza nessuno di questi modelli, poiché la parola chiave semplicemente non corrisponderà. Ha la priorità sulla tabella nella scheda Descrizioni delle parole chiave quando una parola chiave corrisponde.",
36
- "starts with": "inizia con",
35
+ "Show incident-area polygon": "Mostra il poligono dell'area dell'incidente",
37
36
  "Text appended when the keyword ends in \"-NT\" or \" nt\".": "Testo aggiunto quando la parola chiave termina con \"-NT\" o \" nt\".",
38
37
  "Text appended when the keyword ends in \"f\".": "Testo aggiunto quando la parola chiave termina con \"f\".",
39
38
  "Text appended when the keyword ends in \"p\".": "Testo aggiunto quando la parola chiave termina con \"p\".",
@@ -41,7 +40,10 @@
41
40
  "Text used in the generated description for the R<n> part, e.g. \"Rettungswagen: 1\".": "Testo utilizzato nella descrizione generata per la parte R<n>, ad es. \"Rettungswagen: 1\".",
42
41
  "WAIP server URL": "URL del server WAIP",
43
42
  "Wait time before the adapter automatically reconnects after a lost connection or a connection error.": "Tempo di attesa prima che l'adattatore si riconnetta automaticamente dopo una connessione persa o un errore di connessione.",
43
+ "When checked (default), the incident-area polygon WAIP-Web sends is drawn as an outline (falling back to a centered marker dot only when no polygon is available). Uncheck to always show the simple centered marker dot instead, even when a polygon is available.": "Se selezionato (predefinito), il poligono dell'area dell'incidente inviato da WAIP-Web viene disegnato come contorno (tornando a un punto marcatore centrato solo quando non è disponibile alcun poligono). Deselezionare per mostrare invece sempre il semplice punto marcatore centrato, anche quando è disponibile un poligono.",
44
44
  "When unchecked, incidents whose einsatzart identifies them as a rescue-service call (contains \"Rettung\" or \"Krankentransport\", case-insensitive) are ignored completely - no states are updated, no history entry is written, no TTS announcement is triggered. Useful because some WAIP dispatch centers only ever signal rescue-service incidents unreliably or not at all.": "Se disattivato, gli incidenti il cui einsatzart li identifica come una chiamata del servizio di soccorso (contiene \"Rettung\" o \"Krankentransport\", senza distinzione tra maiuscole e minuscole) vengono ignorati completamente - nessuno stato viene aggiornato, nessuna voce di cronologia viene scritta, nessun annuncio TTS viene attivato. Utile perché alcune centrali operative WAIP segnalano gli incidenti del servizio di soccorso solo in modo inaffidabile o per niente.",
45
45
  "Width of the generated map image in pixels.": "Larghezza dell'immagine della mappa generata in pixel.",
46
- "Zoom level": "Livello di zoom"
46
+ "Zoom level": "Livello di zoom",
47
+ "contains": "contiene",
48
+ "starts with": "inizia con"
47
49
  }
@@ -4,7 +4,6 @@
4
4
  "Base URL of the WAIP dispatch server (Socket.IO endpoint, namespace /waip is appended automatically)": "Basis-URL van de WAIP-verzendingsserver (Socket.IO-eindpunt, naamruimte /waip wordt automatisch toegevoegd)",
5
5
  "Color of the incident-area outline (and of the fallback marker dot's core, used when no area polygon is available).": "Kleur van de incidentgebied-contour (en van de kern van de reserve-puntmarkering, gebruikt wanneer er geen gebiedspolygoon beschikbaar is).",
6
6
  "Connection": "Verbinding",
7
- "contains": "bevat",
8
7
  "Description": "Beschrijving",
9
8
  "For every incident with valid coordinates, downloads OpenStreetMap tiles and composes a PNG centered on the incident's location, with the incident area WAIP-Web sends drawn as an outline (falls back to a marker dot if no area polygon is available). The file path is written to the einsatz.kartenbildPfad state, e.g. for sending as a Pushover attachment from a Blockly/JavaScript script. Only the 10 most recent images are kept, older ones are deleted automatically. Uses the public tile.openstreetmap.org server - keep this to the intended one-image-per-incident use per the OSM Tile Usage Policy.": "Downloadt voor elk incident met geldige coördinaten OpenStreetMap-tegels en stelt een PNG samen, gecentreerd op de locatie van het incident, met het door WAIP-Web verzonden incidentgebied als contour getekend (valt terug op een puntmarkering als er geen gebiedspolygoon beschikbaar is). Het bestandspad wordt geschreven naar de state einsatz.kartenbildPfad, bijvoorbeeld om als Pushover-bijlage te versturen vanuit een Blockly/JavaScript-script. Alleen de 10 meest recente afbeeldingen worden bewaard, oudere worden automatisch verwijderd. Gebruikt de openbare server tile.openstreetmap.org - houd dit bij het beoogde gebruik van één afbeelding per incident volgens het OSM Tile Usage Policy.",
10
9
  "Generate a map image for each incident": "Kaartafbeelding genereren voor elk incident",
@@ -33,7 +32,7 @@
33
32
  "Registration timeout (s)": "Time-out(s) voor registratie",
34
33
  "Rescue service": "Reddingsdienst",
35
34
  "Rescue-service keyword scheme R<RTW>N<NEF>, optionally followed by a p/f modifier and/or an NT suffix (e.g. \"R1N0\" = 1 ambulance, no emergency physician). Two spellings are recognized: without a space and with a hyphen before NT (Leitstelle Lausitz, e.g. \"R1N1p\", \"R1N0-NT\") and with a space and without a hyphen (Leitstelle Brandenburg/IRLS, e.g. \"R1N1 p\", \"R1N0 nt\") - has no effect if your dispatch center doesn't use one of these patterns, since the keyword just won't match. Takes priority over the table on the Keyword descriptions tab when a keyword matches.": "Trefwoordschema van de reddingsdienst R<RTW>N<NEF>, optioneel gevolgd door een p/f-modifier en/of een NT-achtervoegsel (bijv. \"R1N0\" = 1 ambulance, geen spoedarts). Twee schrijfwijzen worden herkend: zonder spatie en met een koppelteken vóór NT (meldkamer Lausitz, bijv. \"R1N1p\", \"R1N0-NT\") en met een spatie en zonder koppelteken (meldkamer Brandenburg/IRLS, bijv. \"R1N1 p\", \"R1N0 nt\") - heeft geen effect als uw meldkamer geen van deze patronen gebruikt, aangezien het trefwoord dan gewoon niet overeenkomt. Heeft voorrang op de tabel op het tabblad Trefwoordbeschrijvingen wanneer een trefwoord overeenkomt.",
36
- "starts with": "begint met",
35
+ "Show incident-area polygon": "Incidentgebied-polygoon tonen",
37
36
  "Text appended when the keyword ends in \"-NT\" or \" nt\".": "Tekst die wordt toegevoegd wanneer het trefwoord eindigt op \"-NT\" of \" nt\".",
38
37
  "Text appended when the keyword ends in \"f\".": "Tekst toegevoegd wanneer het trefwoord eindigt op \"f\".",
39
38
  "Text appended when the keyword ends in \"p\".": "Tekst toegevoegd wanneer het trefwoord eindigt op \"p\".",
@@ -41,7 +40,10 @@
41
40
  "Text used in the generated description for the R<n> part, e.g. \"Rettungswagen: 1\".": "Tekst gebruikt in de gegenereerde beschrijving voor het R<n>-deel, b.v. \"Rettungswagen: 1\".",
42
41
  "WAIP server URL": "WAIP-server-URL",
43
42
  "Wait time before the adapter automatically reconnects after a lost connection or a connection error.": "Wachttijd voordat de adapter automatisch opnieuw verbinding maakt na een verbroken verbinding of een verbindingsfout.",
43
+ "When checked (default), the incident-area polygon WAIP-Web sends is drawn as an outline (falling back to a centered marker dot only when no polygon is available). Uncheck to always show the simple centered marker dot instead, even when a polygon is available.": "Indien aangevinkt (standaard), wordt de door WAIP-Web verzonden incidentgebied-polygoon als contour getekend (valt alleen terug op een gecentreerde puntmarkering als er geen polygoon beschikbaar is). Vink uit om in plaats daarvan altijd de eenvoudige gecentreerde puntmarkering te tonen, ook wanneer een polygoon beschikbaar is.",
44
44
  "When unchecked, incidents whose einsatzart identifies them as a rescue-service call (contains \"Rettung\" or \"Krankentransport\", case-insensitive) are ignored completely - no states are updated, no history entry is written, no TTS announcement is triggered. Useful because some WAIP dispatch centers only ever signal rescue-service incidents unreliably or not at all.": "Indien uitgeschakeld, worden incidenten waarvan einsatzart aangeeft dat het om een reddingsdienstmelding gaat (bevat \"Rettung\" of \"Krankentransport\", niet hoofdlettergevoelig) volledig genegeerd - er worden geen states bijgewerkt, geen geschiedenisregel geschreven, geen TTS-melding geactiveerd. Nuttig omdat sommige WAIP-meldkamers reddingsdienstincidenten alleen onbetrouwbaar of helemaal niet signaleren.",
45
45
  "Width of the generated map image in pixels.": "Breedte van de gegenereerde kaartafbeelding in pixels.",
46
- "Zoom level": "Zoomniveau"
46
+ "Zoom level": "Zoomniveau",
47
+ "contains": "bevat",
48
+ "starts with": "begint met"
47
49
  }
@@ -4,7 +4,6 @@
4
4
  "Base URL of the WAIP dispatch server (Socket.IO endpoint, namespace /waip is appended automatically)": "Podstawowy adres URL serwera wysyłkowego WAIP (punkt końcowy Socket.IO, przestrzeń nazw /waip jest dodawana automatycznie)",
5
5
  "Color of the incident-area outline (and of the fallback marker dot's core, used when no area polygon is available).": "Kolor konturu obszaru zdarzenia (oraz rdzenia zapasowego znacznika punktowego, używanego, gdy brak jest dostępnego poligonu obszaru).",
6
6
  "Connection": "Połączenie",
7
- "contains": "zawiera",
8
7
  "Description": "Opis",
9
8
  "For every incident with valid coordinates, downloads OpenStreetMap tiles and composes a PNG centered on the incident's location, with the incident area WAIP-Web sends drawn as an outline (falls back to a marker dot if no area polygon is available). The file path is written to the einsatz.kartenbildPfad state, e.g. for sending as a Pushover attachment from a Blockly/JavaScript script. Only the 10 most recent images are kept, older ones are deleted automatically. Uses the public tile.openstreetmap.org server - keep this to the intended one-image-per-incident use per the OSM Tile Usage Policy.": "Dla każdego zdarzenia z prawidłowymi współrzędnymi pobiera kafelki OpenStreetMap i tworzy plik PNG wyśrodkowany na lokalizacji zdarzenia, z obszarem zdarzenia przesłanym przez WAIP-Web narysowanym jako kontur (jeśli brak dostępnego poligonu obszaru, używany jest znacznik punktowy). Ścieżka pliku jest zapisywana w stanie einsatz.kartenbildPfad, np. do wysłania jako załącznik Pushover ze skryptu Blockly/JavaScript. Przechowywanych jest tylko 10 najnowszych obrazów, starsze są usuwane automatycznie. Wykorzystuje publiczny serwer tile.openstreetmap.org - należy trzymać się zamierzonego użycia jednego obrazu na zdarzenie zgodnie z OSM Tile Usage Policy.",
10
9
  "Generate a map image for each incident": "Generuj obraz mapy dla każdego zdarzenia",
@@ -33,7 +32,7 @@
33
32
  "Registration timeout (s)": "Limit czasu rejestracji (s)",
34
33
  "Rescue service": "Ratownictwo medyczne",
35
34
  "Rescue-service keyword scheme R<RTW>N<NEF>, optionally followed by a p/f modifier and/or an NT suffix (e.g. \"R1N0\" = 1 ambulance, no emergency physician). Two spellings are recognized: without a space and with a hyphen before NT (Leitstelle Lausitz, e.g. \"R1N1p\", \"R1N0-NT\") and with a space and without a hyphen (Leitstelle Brandenburg/IRLS, e.g. \"R1N1 p\", \"R1N0 nt\") - has no effect if your dispatch center doesn't use one of these patterns, since the keyword just won't match. Takes priority over the table on the Keyword descriptions tab when a keyword matches.": "Schemat słów kluczowych pogotowia ratunkowego R<RTW>N<NEF>, opcjonalnie po którym następuje modyfikator p/f i/lub sufiks NT (np. \"R1N0\" = 1 karetka, brak lekarza ratunkowego). Rozpoznawane są dwa zapisy: bez spacji i z myślnikiem przed NT (centrala Lausitz, np. \"R1N1p\", \"R1N0-NT\") oraz ze spacją i bez myślnika (centrala Brandenburgia/IRLS, np. \"R1N1 p\", \"R1N0 nt\") - nie ma żadnego efektu, jeśli twoja centrala dyspozytorska nie używa żadnego z tych wzorców, ponieważ słowo kluczowe po prostu nie będzie pasować. Ma pierwszeństwo przed tabelą na karcie Opisy słów kluczowych, gdy słowo kluczowe pasuje.",
36
- "starts with": "zaczyna się od",
35
+ "Show incident-area polygon": "Pokaż poligon obszaru zdarzenia",
37
36
  "Text appended when the keyword ends in \"-NT\" or \" nt\".": "Tekst dodawany, gdy słowo kluczowe kończy się na \"-NT\" lub \" nt\".",
38
37
  "Text appended when the keyword ends in \"f\".": "Tekst dołączany, gdy słowo kluczowe kończy się na „f”.",
39
38
  "Text appended when the keyword ends in \"p\".": "Tekst dołączany, gdy słowo kluczowe kończy się na „p”.",
@@ -41,7 +40,10 @@
41
40
  "Text used in the generated description for the R<n> part, e.g. \"Rettungswagen: 1\".": "Tekst użyty w wygenerowanym opisie dla części R<n>, np. „Rettungswagen: 1”.",
42
41
  "WAIP server URL": "Adres URL serwera WAIP",
43
42
  "Wait time before the adapter automatically reconnects after a lost connection or a connection error.": "Czas oczekiwania, zanim adapter automatycznie ponownie połączy się po utracie połączenia lub błędzie połączenia.",
43
+ "When checked (default), the incident-area polygon WAIP-Web sends is drawn as an outline (falling back to a centered marker dot only when no polygon is available). Uncheck to always show the simple centered marker dot instead, even when a polygon is available.": "Gdy zaznaczone (domyślnie), poligon obszaru zdarzenia wysyłany przez WAIP-Web jest rysowany jako kontur (powrót do wyśrodkowanego znacznika punktowego tylko wtedy, gdy brak jest dostępnego poligonu). Odznacz, aby zamiast tego zawsze pokazywać prosty wyśrodkowany znacznik punktowy, nawet gdy poligon jest dostępny.",
44
44
  "When unchecked, incidents whose einsatzart identifies them as a rescue-service call (contains \"Rettung\" or \"Krankentransport\", case-insensitive) are ignored completely - no states are updated, no history entry is written, no TTS announcement is triggered. Useful because some WAIP dispatch centers only ever signal rescue-service incidents unreliably or not at all.": "Gdy odznaczone, zdarzenia, których einsatzart wskazuje na wezwanie ratownictwa medycznego (zawiera \"Rettung\" lub \"Krankentransport\", bez rozróżniania wielkości liter) są całkowicie ignorowane - żadne stany nie są aktualizowane, nie zapisuje się wpisu w historii, nie jest uruchamiane żadne powiadomienie TTS. Przydatne, ponieważ niektóre centra dyspozytorskie WAIP sygnalizują zdarzenia ratownictwa medycznego tylko zawodnie lub wcale.",
45
45
  "Width of the generated map image in pixels.": "Szerokość wygenerowanego obrazu mapy w pikselach.",
46
- "Zoom level": "Poziom powiększenia"
46
+ "Zoom level": "Poziom powiększenia",
47
+ "contains": "zawiera",
48
+ "starts with": "zaczyna się od"
47
49
  }
@@ -4,7 +4,6 @@
4
4
  "Base URL of the WAIP dispatch server (Socket.IO endpoint, namespace /waip is appended automatically)": "URL base do servidor de despacho WAIP (endpoint Socket.IO, namespace /waip é anexado automaticamente)",
5
5
  "Color of the incident-area outline (and of the fallback marker dot's core, used when no area polygon is available).": "Cor do contorno da área da ocorrência (e do núcleo do ponto marcador de reserva, usado quando nenhum polígono de área está disponível).",
6
6
  "Connection": "Conexão",
7
- "contains": "contém",
8
7
  "Description": "Descrição",
9
8
  "For every incident with valid coordinates, downloads OpenStreetMap tiles and composes a PNG centered on the incident's location, with the incident area WAIP-Web sends drawn as an outline (falls back to a marker dot if no area polygon is available). The file path is written to the einsatz.kartenbildPfad state, e.g. for sending as a Pushover attachment from a Blockly/JavaScript script. Only the 10 most recent images are kept, older ones are deleted automatically. Uses the public tile.openstreetmap.org server - keep this to the intended one-image-per-incident use per the OSM Tile Usage Policy.": "Para cada ocorrência com coordenadas válidas, baixa blocos do OpenStreetMap e compõe um PNG centrado na localização da ocorrência, com a área da ocorrência enviada pelo WAIP-Web desenhada como contorno (recorre a um ponto marcador se nenhum polígono de área estiver disponível). O caminho do arquivo é gravado no estado einsatz.kartenbildPfad, por exemplo para envio como anexo do Pushover a partir de um script Blockly/JavaScript. Apenas as 10 imagens mais recentes são mantidas, as mais antigas são excluídas automaticamente. Usa o servidor público tile.openstreetmap.org - mantenha isso dentro do uso pretendido de uma imagem por ocorrência conforme a OSM Tile Usage Policy.",
10
9
  "Generate a map image for each incident": "Gerar uma imagem de mapa para cada ocorrência",
@@ -33,7 +32,7 @@
33
32
  "Registration timeout (s)": "Tempo limite de registro(s)",
34
33
  "Rescue service": "Serviço de resgate",
35
34
  "Rescue-service keyword scheme R<RTW>N<NEF>, optionally followed by a p/f modifier and/or an NT suffix (e.g. \"R1N0\" = 1 ambulance, no emergency physician). Two spellings are recognized: without a space and with a hyphen before NT (Leitstelle Lausitz, e.g. \"R1N1p\", \"R1N0-NT\") and with a space and without a hyphen (Leitstelle Brandenburg/IRLS, e.g. \"R1N1 p\", \"R1N0 nt\") - has no effect if your dispatch center doesn't use one of these patterns, since the keyword just won't match. Takes priority over the table on the Keyword descriptions tab when a keyword matches.": "Esquema de palavras-chave do serviço de resgate R<RTW>N<NEF>, opcionalmente seguido por um modificador p/f e/ou um sufixo NT (por exemplo, \"R1N0\" = 1 ambulância, sem médico de emergência). Duas grafias são reconhecidas: sem espaço e com hífen antes de NT (central de Lausitz, por exemplo, \"R1N1p\", \"R1N0-NT\") e com espaço e sem hífen (central de Brandemburgo/IRLS, por exemplo, \"R1N1 p\", \"R1N0 nt\") - não tem efeito se a sua central de despacho não usar nenhum desses padrões, já que a palavra-chave simplesmente não corresponderá. Tem prioridade sobre a tabela na aba Descrições de palavras-chave quando uma palavra-chave corresponde.",
36
- "starts with": "começa com",
35
+ "Show incident-area polygon": "Mostrar polígono da área da ocorrência",
37
36
  "Text appended when the keyword ends in \"-NT\" or \" nt\".": "Texto adicionado quando a palavra-chave termina em \"-NT\" ou \" nt\".",
38
37
  "Text appended when the keyword ends in \"f\".": "Texto acrescentado quando a palavra-chave termina em \"f\".",
39
38
  "Text appended when the keyword ends in \"p\".": "Texto acrescentado quando a palavra-chave termina em “p”.",
@@ -41,7 +40,10 @@
41
40
  "Text used in the generated description for the R<n> part, e.g. \"Rettungswagen: 1\".": "Texto usado na descrição gerada para a parte R<n>, por exemplo. \"Rettungswagen: 1\".",
42
41
  "WAIP server URL": "URL do servidor WAIP",
43
42
  "Wait time before the adapter automatically reconnects after a lost connection or a connection error.": "Aguarde o tempo antes que o adaptador se reconecte automaticamente após uma conexão perdida ou um erro de conexão.",
43
+ "When checked (default), the incident-area polygon WAIP-Web sends is drawn as an outline (falling back to a centered marker dot only when no polygon is available). Uncheck to always show the simple centered marker dot instead, even when a polygon is available.": "Quando marcado (padrão), o polígono da área da ocorrência enviado pelo WAIP-Web é desenhado como contorno (recorrendo a um ponto marcador centralizado apenas quando nenhum polígono está disponível). Desmarque para sempre mostrar o simples ponto marcador centralizado, mesmo quando um polígono estiver disponível.",
44
44
  "When unchecked, incidents whose einsatzart identifies them as a rescue-service call (contains \"Rettung\" or \"Krankentransport\", case-insensitive) are ignored completely - no states are updated, no history entry is written, no TTS announcement is triggered. Useful because some WAIP dispatch centers only ever signal rescue-service incidents unreliably or not at all.": "Se desmarcado, as ocorrências cujo einsatzart as identifica como um chamado do serviço de resgate (contém \"Rettung\" ou \"Krankentransport\", sem diferenciar maiúsculas/minúsculas) são completamente ignoradas - nenhum estado é atualizado, nenhuma entrada de histórico é gravada, nenhum aviso de voz (TTS) é acionado. Útil porque algumas centrais de despacho WAIP só sinalizam ocorrências do serviço de resgate de forma pouco confiável ou não sinalizam de forma alguma.",
45
45
  "Width of the generated map image in pixels.": "Largura da imagem de mapa gerada em pixels.",
46
- "Zoom level": "Nível de zoom"
46
+ "Zoom level": "Nível de zoom",
47
+ "contains": "contém",
48
+ "starts with": "começa com"
47
49
  }
@@ -4,7 +4,6 @@
4
4
  "Base URL of the WAIP dispatch server (Socket.IO endpoint, namespace /waip is appended automatically)": "Базовый URL-адрес сервера отправки WAIP (конечная точка Socket.IO, пространство имен /waip добавляется автоматически)",
5
5
  "Color of the incident-area outline (and of the fallback marker dot's core, used when no area polygon is available).": "Цвет контура зоны вызова (и ядра резервной точки-маркера, используемой при отсутствии доступного полигона зоны).",
6
6
  "Connection": "Подключение",
7
- "contains": "содержит",
8
7
  "Description": "Описание",
9
8
  "For every incident with valid coordinates, downloads OpenStreetMap tiles and composes a PNG centered on the incident's location, with the incident area WAIP-Web sends drawn as an outline (falls back to a marker dot if no area polygon is available). The file path is written to the einsatz.kartenbildPfad state, e.g. for sending as a Pushover attachment from a Blockly/JavaScript script. Only the 10 most recent images are kept, older ones are deleted automatically. Uses the public tile.openstreetmap.org server - keep this to the intended one-image-per-incident use per the OSM Tile Usage Policy.": "Для каждого вызова с корректными координатами загружает тайлы OpenStreetMap и собирает PNG-изображение, центрированное на месте вызова, с зоной вызова, присланной WAIP-Web, нарисованной в виде контура (если полигон зоны недоступен, используется точка-маркер). Путь к файлу записывается в состояние einsatz.kartenbildPfad, например для отправки в виде вложения Pushover из скрипта Blockly/JavaScript. Хранятся только 10 самых последних изображений, более старые удаляются автоматически. Используется публичный сервер tile.openstreetmap.org - придерживайтесь предполагаемого использования одного изображения на вызов согласно OSM Tile Usage Policy.",
10
9
  "Generate a map image for each incident": "Создавать изображение карты для каждого вызова",
@@ -33,7 +32,7 @@
33
32
  "Registration timeout (s)": "Таймаут регистрации (с)",
34
33
  "Rescue service": "Скорая помощь",
35
34
  "Rescue-service keyword scheme R<RTW>N<NEF>, optionally followed by a p/f modifier and/or an NT suffix (e.g. \"R1N0\" = 1 ambulance, no emergency physician). Two spellings are recognized: without a space and with a hyphen before NT (Leitstelle Lausitz, e.g. \"R1N1p\", \"R1N0-NT\") and with a space and without a hyphen (Leitstelle Brandenburg/IRLS, e.g. \"R1N1 p\", \"R1N0 nt\") - has no effect if your dispatch center doesn't use one of these patterns, since the keyword just won't match. Takes priority over the table on the Keyword descriptions tab when a keyword matches.": "Схема ключевых слов службы спасения R<RTW>N<NEF>, за которой может следовать модификатор p/f и/или суффикс NT (например, \"R1N0\" = 1 машина скорой помощи, без врача). Распознаются два варианта написания: без пробела и с дефисом перед NT (диспетчерская Lausitz, например, \"R1N1p\", \"R1N0-NT\") и с пробелом и без дефиса (диспетчерская Brandenburg/IRLS, например, \"R1N1 p\", \"R1N0 nt\") - не имеет эффекта, если ваша диспетчерская не использует ни один из этих шаблонов, поскольку ключевое слово просто не совпадёт. Имеет приоритет над таблицей на вкладке Описания ключевых слов при совпадении ключевого слова.",
36
- "starts with": "начинается с",
35
+ "Show incident-area polygon": "Показывать полигон зоны вызова",
37
36
  "Text appended when the keyword ends in \"-NT\" or \" nt\".": "Текст, добавляемый, если ключевое слово заканчивается на \"-NT\" или \" nt\".",
38
37
  "Text appended when the keyword ends in \"f\".": "Текст добавляется, когда ключевое слово заканчивается на «f».",
39
38
  "Text appended when the keyword ends in \"p\".": "Текст добавляется, когда ключевое слово заканчивается на «p».",
@@ -41,7 +40,10 @@
41
40
  "Text used in the generated description for the R<n> part, e.g. \"Rettungswagen: 1\".": "Текст, используемый в сгенерированном описании части R<n>, например. «Реттунгсваген: 1».",
42
41
  "WAIP server URL": "URL-адрес WAIP-сервера",
43
42
  "Wait time before the adapter automatically reconnects after a lost connection or a connection error.": "Время ожидания, прежде чем адаптер автоматически подключится после потери соединения или ошибки соединения.",
43
+ "When checked (default), the incident-area polygon WAIP-Web sends is drawn as an outline (falling back to a centered marker dot only when no polygon is available). Uncheck to always show the simple centered marker dot instead, even when a polygon is available.": "Если отмечено (по умолчанию), полигон зоны вызова, присылаемый WAIP-Web, рисуется в виде контура (переход на центрированную точку-маркер только при отсутствии полигона). Снимите отметку, чтобы всегда показывать простую центрированную точку-маркер, даже если полигон доступен.",
44
44
  "When unchecked, incidents whose einsatzart identifies them as a rescue-service call (contains \"Rettung\" or \"Krankentransport\", case-insensitive) are ignored completely - no states are updated, no history entry is written, no TTS announcement is triggered. Useful because some WAIP dispatch centers only ever signal rescue-service incidents unreliably or not at all.": "Если флажок снят, вызовы, у которых einsatzart указывает на вызов скорой помощи (содержит \"Rettung\" или \"Krankentransport\", без учёта регистра), полностью игнорируются - состояния не обновляются, запись в историю не делается, голосовое оповещение (TTS) не запускается. Полезно, поскольку некоторые диспетчерские WAIP сигнализируют о вызовах скорой помощи ненадёжно или вообще не сигнализируют.",
45
45
  "Width of the generated map image in pixels.": "Ширина создаваемого изображения карты в пикселях.",
46
- "Zoom level": "Уровень масштабирования"
46
+ "Zoom level": "Уровень масштабирования",
47
+ "contains": "содержит",
48
+ "starts with": "начинается с"
47
49
  }
@@ -4,7 +4,6 @@
4
4
  "Base URL of the WAIP dispatch server (Socket.IO endpoint, namespace /waip is appended automatically)": "Базова URL-адреса диспетчерського сервера WAIP (кінцева точка Socket.IO, простір імен /waip додається автоматично)",
5
5
  "Color of the incident-area outline (and of the fallback marker dot's core, used when no area polygon is available).": "Колір контуру зони виклику (і ядра резервної точки-маркера, що використовується за відсутності доступного полігона зони).",
6
6
  "Connection": "З'єднання",
7
- "contains": "містить",
8
7
  "Description": "опис",
9
8
  "For every incident with valid coordinates, downloads OpenStreetMap tiles and composes a PNG centered on the incident's location, with the incident area WAIP-Web sends drawn as an outline (falls back to a marker dot if no area polygon is available). The file path is written to the einsatz.kartenbildPfad state, e.g. for sending as a Pushover attachment from a Blockly/JavaScript script. Only the 10 most recent images are kept, older ones are deleted automatically. Uses the public tile.openstreetmap.org server - keep this to the intended one-image-per-incident use per the OSM Tile Usage Policy.": "Для кожного виклику з коректними координатами завантажує тайли OpenStreetMap і формує PNG-зображення, центроване на місці виклику, з зоною виклику, надісланою WAIP-Web, намальованою у вигляді контуру (якщо полігон зони недоступний, використовується точка-маркер). Шлях до файлу записується у стан einsatz.kartenbildPfad, наприклад для надсилання як вкладення Pushover зі скрипту Blockly/JavaScript. Зберігаються лише 10 останніх зображень, старіші видаляються автоматично. Використовується публічний сервер tile.openstreetmap.org - дотримуйтесь передбаченого використання одного зображення на виклик згідно з OSM Tile Usage Policy.",
10
9
  "Generate a map image for each incident": "Створювати зображення карти для кожного виклику",
@@ -33,7 +32,7 @@
33
32
  "Registration timeout (s)": "Час очікування реєстрації (с)",
34
33
  "Rescue service": "Швидка допомога",
35
34
  "Rescue-service keyword scheme R<RTW>N<NEF>, optionally followed by a p/f modifier and/or an NT suffix (e.g. \"R1N0\" = 1 ambulance, no emergency physician). Two spellings are recognized: without a space and with a hyphen before NT (Leitstelle Lausitz, e.g. \"R1N1p\", \"R1N0-NT\") and with a space and without a hyphen (Leitstelle Brandenburg/IRLS, e.g. \"R1N1 p\", \"R1N0 nt\") - has no effect if your dispatch center doesn't use one of these patterns, since the keyword just won't match. Takes priority over the table on the Keyword descriptions tab when a keyword matches.": "Схема ключових слів служби порятунку R<RTW>N<NEF>, після якої може йти модифікатор p/f та/або суфікс NT (наприклад, \"R1N0\" = 1 машина швидкої допомоги, без лікаря). Розпізнаються два варіанти написання: без пробілу та з дефісом перед NT (диспетчерська Lausitz, наприклад, \"R1N1p\", \"R1N0-NT\") та з пробілом і без дефіса (диспетчерська Brandenburg/IRLS, наприклад, \"R1N1 p\", \"R1N0 nt\") - не має жодного ефекту, якщо ваша диспетчерська не використовує жодного з цих шаблонів, оскільки ключове слово просто не збігатиметься. Має пріоритет над таблицею на вкладці Описи ключових слів, якщо ключове слово збігається.",
36
- "starts with": "починається з",
35
+ "Show incident-area polygon": "Показувати полігон зони виклику",
37
36
  "Text appended when the keyword ends in \"-NT\" or \" nt\".": "Текст, що додається, якщо ключове слово закінчується на \"-NT\" або \" nt\".",
38
37
  "Text appended when the keyword ends in \"f\".": "Текст додається, коли ключове слово закінчується на \"f\".",
39
38
  "Text appended when the keyword ends in \"p\".": "Текст додається, коли ключове слово закінчується на \"p\".",
@@ -41,7 +40,10 @@
41
40
  "Text used in the generated description for the R<n> part, e.g. \"Rettungswagen: 1\".": "Текст, який використовується в створеному описі для частини R<n>, напр. \"Rettungswagen: 1\".",
42
41
  "WAIP server URL": "URL-адреса сервера WAIP",
43
42
  "Wait time before the adapter automatically reconnects after a lost connection or a connection error.": "Час очікування, перш ніж адаптер автоматично відновить з’єднання після втрати з’єднання або помилки з’єднання.",
43
+ "When checked (default), the incident-area polygon WAIP-Web sends is drawn as an outline (falling back to a centered marker dot only when no polygon is available). Uncheck to always show the simple centered marker dot instead, even when a polygon is available.": "Якщо позначено (типово), полігон зони виклику, надісланий WAIP-Web, малюється у вигляді контуру (перехід на центровану точку-маркер лише за відсутності полігона). Зніміть позначку, щоб завжди показувати просту центровану точку-маркер, навіть якщо полігон доступний.",
44
44
  "When unchecked, incidents whose einsatzart identifies them as a rescue-service call (contains \"Rettung\" or \"Krankentransport\", case-insensitive) are ignored completely - no states are updated, no history entry is written, no TTS announcement is triggered. Useful because some WAIP dispatch centers only ever signal rescue-service incidents unreliably or not at all.": "Якщо прапорець знято, виклики, у яких einsatzart вказує на виклик швидкої допомоги (містить \"Rettung\" або \"Krankentransport\", без урахування регістру), повністю ігноруються - жодні стани не оновлюються, запис в історію не робиться, голосове сповіщення (TTS) не запускається. Корисно, оскільки деякі диспетчерські WAIP сигналізують про виклики швидкої допомоги лише ненадійно або взагалі не сигналізують.",
45
45
  "Width of the generated map image in pixels.": "Ширина створюваного зображення карти в пікселях.",
46
- "Zoom level": "Рівень масштабування"
46
+ "Zoom level": "Рівень масштабування",
47
+ "contains": "містить",
48
+ "starts with": "починається з"
47
49
  }
@@ -4,7 +4,6 @@
4
4
  "Base URL of the WAIP dispatch server (Socket.IO endpoint, namespace /waip is appended automatically)": "WAIP 调度服务器的基本 URL(Socket.IO 端点,命名空间 /waip 自动附加)",
5
5
  "Color of the incident-area outline (and of the fallback marker dot's core, used when no area polygon is available).": "事件区域轮廓的颜色(以及在没有可用区域多边形时使用的备用圆点标记核心的颜色)。",
6
6
  "Connection": "连接",
7
- "contains": "包含",
8
7
  "Description": "描述",
9
8
  "For every incident with valid coordinates, downloads OpenStreetMap tiles and composes a PNG centered on the incident's location, with the incident area WAIP-Web sends drawn as an outline (falls back to a marker dot if no area polygon is available). The file path is written to the einsatz.kartenbildPfad state, e.g. for sending as a Pushover attachment from a Blockly/JavaScript script. Only the 10 most recent images are kept, older ones are deleted automatically. Uses the public tile.openstreetmap.org server - keep this to the intended one-image-per-incident use per the OSM Tile Usage Policy.": "对于每个具有有效坐标的事件,下载 OpenStreetMap 瓦片并合成一张以事件位置为中心的 PNG 图像,将 WAIP-Web 发送的事件区域绘制为轮廓(如果没有可用的区域多边形,则回退为圆点标记)。文件路径写入状态 einsatz.kartenbildPfad,例如可从 Blockly/JavaScript 脚本作为 Pushover 附件发送。仅保留最近的 10 张图像,较旧的会自动删除。使用公共服务器 tile.openstreetmap.org——请遵守 OSM Tile Usage Policy 中每个事件一张图像的预期用途。",
10
9
  "Generate a map image for each incident": "为每个事件生成地图图像",
@@ -33,7 +32,7 @@
33
32
  "Registration timeout (s)": "注册超时(秒)",
34
33
  "Rescue service": "急救服务",
35
34
  "Rescue-service keyword scheme R<RTW>N<NEF>, optionally followed by a p/f modifier and/or an NT suffix (e.g. \"R1N0\" = 1 ambulance, no emergency physician). Two spellings are recognized: without a space and with a hyphen before NT (Leitstelle Lausitz, e.g. \"R1N1p\", \"R1N0-NT\") and with a space and without a hyphen (Leitstelle Brandenburg/IRLS, e.g. \"R1N1 p\", \"R1N0 nt\") - has no effect if your dispatch center doesn't use one of these patterns, since the keyword just won't match. Takes priority over the table on the Keyword descriptions tab when a keyword matches.": "救援服务关键字方案 R<RTW>N<NEF>,可选地后跟 p/f 修饰符和/或 NT 后缀(例如 \"R1N0\" = 1辆救护车,无急诊医生)。可识别两种写法:不带空格且NT前带连字符(勒鲁西茨调度中心写法,例如 \"R1N1p\"、\"R1N0-NT\")以及带空格且不带连字符(勃兰登堡/IRLS调度中心写法,例如 \"R1N1 p\"、\"R1N0 nt\")——如果你的调度中心不使用这些格式中的任何一种,此选项也不会有任何影响,因为关键字只是不会匹配。当关键字匹配时,优先于\"关键字描述\"标签页中的表格。",
36
- "starts with": "开始于",
35
+ "Show incident-area polygon": "显示事件区域多边形",
37
36
  "Text appended when the keyword ends in \"-NT\" or \" nt\".": "当关键字以 \"-NT\" 或 \" nt\" 结尾时附加的文本。",
38
37
  "Text appended when the keyword ends in \"f\".": "当关键字以“f”结尾时附加的文本。",
39
38
  "Text appended when the keyword ends in \"p\".": "当关键字以“p”结尾时附加的文本。",
@@ -41,7 +40,10 @@
41
40
  "Text used in the generated description for the R<n> part, e.g. \"Rettungswagen: 1\".": "生成的 R<n> 部分描述中使用的文本,例如“Rettungswagen:1”。",
42
41
  "WAIP server URL": "WAIP 服务器 URL",
43
42
  "Wait time before the adapter automatically reconnects after a lost connection or a connection error.": "连接丢失或连接错误后适配器自动重新连接之前的等待时间。",
43
+ "When checked (default), the incident-area polygon WAIP-Web sends is drawn as an outline (falling back to a centered marker dot only when no polygon is available). Uncheck to always show the simple centered marker dot instead, even when a polygon is available.": "选中时(默认),将 WAIP-Web 发送的事件区域多边形绘制为轮廓(仅在没有可用多边形时才回退为居中的圆点标记)。取消选中则始终显示简单的居中圆点标记,即使有多边形可用。",
44
44
  "When unchecked, incidents whose einsatzart identifies them as a rescue-service call (contains \"Rettung\" or \"Krankentransport\", case-insensitive) are ignored completely - no states are updated, no history entry is written, no TTS announcement is triggered. Useful because some WAIP dispatch centers only ever signal rescue-service incidents unreliably or not at all.": "取消勾选后,einsatzart 表明为急救服务呼叫的事件(包含 \"Rettung\" 或 \"Krankentransport\",不区分大小写)将被完全忽略——不更新任何状态,不写入历史记录,不触发语音播报(TTS)。这在某些 WAIP 调度中心只能不可靠地或根本不发出急救服务事件信号时很有用。",
45
45
  "Width of the generated map image in pixels.": "生成的地图图像宽度(像素)。",
46
- "Zoom level": "缩放级别"
46
+ "Zoom level": "缩放级别",
47
+ "contains": "包含",
48
+ "starts with": "开始于"
47
49
  }
@@ -214,6 +214,17 @@
214
214
  "lg": 12,
215
215
  "xl": 12
216
216
  },
217
+ "mapImageShowPolygon": {
218
+ "type": "checkbox",
219
+ "label": "Show incident-area polygon",
220
+ "help": "When checked (default), the incident-area polygon WAIP-Web sends is drawn as an outline (falling back to a centered marker dot only when no polygon is available). Uncheck to always show the simple centered marker dot instead, even when a polygon is available.",
221
+ "hidden": "!data.mapImageEnabled",
222
+ "xs": 12,
223
+ "sm": 12,
224
+ "md": 12,
225
+ "lg": 12,
226
+ "xl": 12
227
+ },
217
228
  "mapImageWidth": {
218
229
  "type": "number",
219
230
  "label": "Image width (px)",
package/io-package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "waip-web",
4
- "version": "0.7.29",
4
+ "version": "0.7.30",
5
5
  "news": {
6
+ "0.7.30": {
7
+ "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.",
8
+ "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.",
9
+ "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.",
10
+ "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.",
11
+ "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.",
12
+ "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.",
13
+ "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.",
14
+ "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.",
15
+ "ru": "Новый флажок \"Показывать полигон зоны вызова\" для изображения карты вызова (по умолчанию включён, можно переключить на центрированную точку); отступ автоматического масштабирования вокруг полигона уменьшен на 30%, масштаб по умолчанию увеличен до 19, толщина контура по умолчанию до 4px. einsatz.kartenbildPfad теперь очищается при io.standby, как и другие поля. Задокументирована опция Admin \"удалить данные экземпляра\" для удаления сгенерированных изображений карты при удалении. Из обоих README удалено слово \"Unofficial\". В журнале изменений теперь отображаются только 5 последних версий.",
16
+ "uk": "Новий прапорець \"Показувати полігон зони виклику\" для зображення карти виклику (типово увімкнено, можна перемкнути на центровану точку); відступ автоматичного масштабування навколо полігона зменшено на 30%, типовий масштаб збільшено до 19, типову товщину контуру до 4px. einsatz.kartenbildPfad тепер очищається при io.standby, як і інші поля. Задокументовано опцію Admin \"видалити дані екземпляра\" для видалення згенерованих зображень карти при видаленні. З обох README видалено слово \"Unofficial\". Журнал змін тепер показує лише 5 останніх версій.",
17
+ "zh-cn": "为事件地图图像新增\"显示事件区域多边形\"复选框(默认启用,可切换为居中圆点);多边形周围自动缩放适配的边距缩小了30%,默认缩放级别提高到19,默认轮廓粗细提高到4px。einsatz.kartenbildPfad 现在会像其他字段一样在 io.standby 时清空。已记录 Admin 中用于卸载时删除生成的地图图像的\"删除实例数据\"选项。已从两个 README 中删除\"Unofficial\"一词。更新日志现在仅显示最近的5个版本。"
18
+ },
6
19
  "0.7.29": {
7
20
  "en": "Incident map image now draws the actual incident area WAIP-Web sends (usually a circle polygon), not just a marker dot at its center - falls back to the dot if no polygon is available. Rescue-service keyword decoding now defaults to on for new installations (previously off), matching the rescue-service processing checkbox. Trimmed a redundant justification sentence from both checkboxes' descriptions. The incident area now also always stays fully visible - the adapter automatically zooms out past the configured zoom level if needed, instead of clipping it at the image edge. Outline color and thickness are now configurable too.",
8
21
  "de": "Die Einsatzkarte zeichnet jetzt das tatsächliche vom WAIP-Web gesendete Einsatzgebiet (meist ein kreisförmiges Polygon) statt nur eine Punkt-Markierung in dessen Mitte - fällt auf den Punkt zurück, falls kein Polygon vorliegt. Die Rettungsdienst-Stichwort-Dekodierung ist bei Neuinstallationen jetzt standardmäßig aktiviert (vorher deaktiviert), passend zur Checkbox für die Rettungsdienst-Verarbeitung. Ein redundanter Begründungssatz wurde aus beiden Checkbox-Beschreibungen entfernt. Das Einsatzgebiet bleibt jetzt außerdem immer vollständig sichtbar - der Adapter zoomt bei Bedarf automatisch über die konfigurierte Zoomstufe hinaus heraus, statt es am Bildrand abzuschneiden. Umrissfarbe und -stärke sind jetzt ebenfalls konfigurierbar.",
@@ -519,11 +532,12 @@
519
532
  "rdLabelF": "First Responder",
520
533
  "rdLabelNT": "Notfalltransport mit Notfallkrankenwagen",
521
534
  "mapImageEnabled": false,
535
+ "mapImageShowPolygon": true,
522
536
  "mapImageWidth": 600,
523
537
  "mapImageHeight": 400,
524
- "mapImageZoom": 16,
538
+ "mapImageZoom": 19,
525
539
  "mapImageOutlineColor": "#dd2020",
526
- "mapImageOutlineThickness": 3
540
+ "mapImageOutlineThickness": 4
527
541
  },
528
542
  "objects": [],
529
543
  "instanceObjects": [
package/main.js CHANGED
@@ -155,9 +155,9 @@ const OSM_MIN_AUTO_ZOOM = 3;
155
155
  const OSM_TILE_USER_AGENT = 'ioBroker.waip-web (+https://github.com/rnc11/ioBroker.waip-web)';
156
156
  const DEFAULT_MAP_IMAGE_WIDTH = 600;
157
157
  const DEFAULT_MAP_IMAGE_HEIGHT = 400;
158
- const DEFAULT_MAP_IMAGE_ZOOM = 16;
158
+ const DEFAULT_MAP_IMAGE_ZOOM = 19;
159
159
  const DEFAULT_MAP_IMAGE_OUTLINE_COLOR = '#dd2020';
160
- const DEFAULT_MAP_IMAGE_OUTLINE_THICKNESS = 3;
160
+ const DEFAULT_MAP_IMAGE_OUTLINE_THICKNESS = 4;
161
161
  const MAP_IMAGE_OUTLINE_THICKNESS_MIN = 1;
162
162
  const MAP_IMAGE_OUTLINE_THICKNESS_MAX = 12;
163
163
  // DE: Wie viele erzeugte Kartenbilder maximal aufgehoben werden - ältere werden nach jeder
@@ -972,11 +972,13 @@ function fitZoomToPolygon(rings, maxZoom, width, height) {
972
972
  }
973
973
 
974
974
  // DE: Rand, damit die (mit gewisser Strichstärke gezeichnete) Umrisslinie nicht exakt am
975
- // Bildrand klebt.
975
+ // Bildrand klebt. 4,2 %/6px statt 6 %/8px (30 % kleinerer Rand) - das Einsatzgebiet-
976
+ // Polygon soll den Bildausschnitt großzügiger ausfüllen.
976
977
  // EN: Margin so the (drawn with some line thickness) outline doesn't sit exactly at the
977
- // image edge.
978
- const marginX = Math.max(8, Math.round(width * 0.06));
979
- const marginY = Math.max(8, Math.round(height * 0.06));
978
+ // image edge. 4.2%/6px instead of 6%/8px (30% smaller margin) - the incident-area
979
+ // polygon should fill more of the image area.
980
+ const marginX = Math.max(6, Math.round(width * 0.042));
981
+ const marginY = Math.max(6, Math.round(height * 0.042));
980
982
  const availableWidth = Math.max(1, width - 2 * marginX);
981
983
  const availableHeight = Math.max(1, height - 2 * marginY);
982
984
 
@@ -1137,6 +1139,13 @@ class WaipWeb extends utils.Adapter {
1137
1139
  // width/height/zoom are defensively clamped in case the admin configuration (e.g.
1138
1140
  // via an external JSON import) contains a nonsensical value.
1139
1141
  this.mapImageEnabled = !!this.config.mapImageEnabled;
1142
+ // DE: Default true - zeigt das vom Server gesendete Einsatzgebiet-Polygon, falls
1143
+ // vorhanden (siehe buildEinsatzMapImage()). false erzwingt immer den zentrierten
1144
+ // Punkt-Marker, auch wenn ein Polygon verfügbar wäre.
1145
+ // EN: Defaults to true - shows the incident-area polygon sent by the server, if
1146
+ // available (see buildEinsatzMapImage()). false always forces the centered marker
1147
+ // dot, even when a polygon would be available.
1148
+ this.mapImageShowPolygon = this.config.mapImageShowPolygon !== false;
1140
1149
  this.mapImageWidth = clampNumber(this.config.mapImageWidth, 100, 2000, DEFAULT_MAP_IMAGE_WIDTH);
1141
1150
  this.mapImageHeight = clampNumber(this.config.mapImageHeight, 100, 2000, DEFAULT_MAP_IMAGE_HEIGHT);
1142
1151
  this.mapImageZoom = clampNumber(this.config.mapImageZoom, 1, OSM_MAX_ZOOM, DEFAULT_MAP_IMAGE_ZOOM);
@@ -2036,15 +2045,18 @@ class WaipWeb extends utils.Adapter {
2036
2045
  canvas background color, but a total failure of all tiles propagates via
2037
2046
  Promise.all(). Throws on a hard failure (e.g. not a single tile loadable) - caller
2038
2047
  generateEinsatzMapImage() catches that.
2039
- Zoom level: if an incident-area polygon is supplied, the actual zoom used deviates
2040
- downward (zooms out) from the configured this.mapImageZoom as needed, so the full
2041
- area stays visible in the image instead of being clipped at the edge - see
2042
- fitZoomToPolygon(). Without a polygon (falling back to the point marker), it stays at
2043
- the configured zoom. */
2048
+ Zoom level: if an incident-area polygon is supplied (and mapImageShowPolygon is on),
2049
+ the actual zoom used deviates downward (zooms out) from the configured
2050
+ this.mapImageZoom as needed, so the full area stays visible in the image instead of
2051
+ being clipped at the edge - see fitZoomToPolygon(). Without a polygon (falling back
2052
+ to the point marker), it stays at the configured zoom.
2053
+ mapImageShowPolygon: when off, the polygon is never extracted/drawn at all - the
2054
+ function behaves exactly as if the incident carried no geometry, always falling back
2055
+ to the centered marker dot at the configured zoom. */
2044
2056
  async buildEinsatzMapImage(lat, lon, geometry) {
2045
2057
  const width = this.mapImageWidth;
2046
2058
  const height = this.mapImageHeight;
2047
- const rings = extractPolygonRings(geometry);
2059
+ const rings = this.mapImageShowPolygon ? extractPolygonRings(geometry) : [];
2048
2060
  let zoom = this.mapImageZoom;
2049
2061
  if (rings.length) {
2050
2062
  const fittedZoom = fitZoomToPolygon(rings, zoom, width, height);
@@ -2804,6 +2816,14 @@ class WaipWeb extends utils.Adapter {
2804
2816
  tasks.push(this.setStateAsync('einsatz.beschreibung', null, true));
2805
2817
  tasks.push(this.setStateAsync('einsatz.latitude', null, true));
2806
2818
  tasks.push(this.setStateAsync('einsatz.longitude', null, true));
2819
+ // DE: Anders als einsatz.tts.last (dessen Vorbild ursprünglich für kartenbildPfad
2820
+ // übernommen wurde) wird kartenbildPfad jetzt doch wie die übrigen einsatz.*-Felder
2821
+ // geleert - kein Alarm aktiv soll auch bedeuten, dass kein Kartenbild mehr referenziert
2822
+ // wird.
2823
+ // EN: Unlike einsatz.tts.last (whose pattern was originally borrowed for
2824
+ // kartenbildPfad), kartenbildPfad is now cleared like the other einsatz.* fields
2825
+ // after all - no active alarm should also mean no map image is referenced anymore.
2826
+ tasks.push(this.setStateAsync('einsatz.kartenbildPfad', null, true));
2807
2827
  tasks.push(this.writeJsonArrayState('einsatz.json.current', []));
2808
2828
  tasks.push(this.writeJsonArrayState('einsatz.json.routen', []));
2809
2829
  tasks.push(this.writeJsonArrayState('einsatz.json.rueckmeldungen', []));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.waip-web",
3
- "version": "0.7.29",
3
+ "version": "0.7.30",
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",