iobroker.waip-web 0.7.38 → 0.12.0

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
@@ -22,10 +22,11 @@ ohne dass ein Browser-Tab dauerhaft offen sein muss.
22
22
  - [Rettungsdienst](#rettungsdienst)
23
23
  - [Stichwort-Stammdaten](#stichwort-stammdaten)
24
24
  - [Einsatzkarte](#einsatzkarte)
25
+ - [Dashboard](#dashboard)
25
26
  - [States (unter `waip-web.0.*`)](#states-unter-waip-web0)
26
27
  - [info](#info) · [status](#status) · [einsatz](#einsatz) ·
27
28
  [einsatz.json](#einsatzjson) · [einsatz.tts](#einsatztts) ·
28
- [debug](#debug)
29
+ [dashboard](#dashboard-states) · [debug](#debug)
29
30
  - [Logging](#logging)
30
31
  - [Lizenz und Changelog](#lizenz-und-changelog)
31
32
 
@@ -188,6 +189,10 @@ Rettungsdienst-Wache:
188
189
  dass das gesamte Gebiet sichtbar bleibt, Dateipfad als State
189
190
  bereitgestellt -
190
191
  siehe [Einsatzkarte](#einsatzkarte)
192
+ - Optionales Dashboard: spiegelt die letzten N Einsätze, die zum
193
+ Monitor dieser Instanz passen, als `dashboard.einsatz1` … `einsatzN` -
194
+ wird periodisch über kurzlebige Verbindungen abgefragt (keine
195
+ dauerhafte Dashboard-Verbindung), siehe [Dashboard](#dashboard)
191
196
 
192
197
  ## Konfiguration
193
198
 
@@ -390,6 +395,65 @@ die Option **"Auch Instanzdaten löschen"** anhaken (seit js-controller
390
395
  > so weit reduzieren, dass riesige Gebiete abgedeckt werden, und das
391
396
  > Ganze nicht zu einem Massen-Kachel-Abruf ausbauen.
392
397
 
398
+ ### Dashboard
399
+
400
+ **Dashboard aktivieren** (Admin-Checkbox, standardmäßig aus): spiegelt
401
+ zusätzlich zum einzelnen aktuellen Einsatz unter [einsatz](#einsatz)
402
+ die letzten N Einsätze, die zum konfigurierten Monitor dieser Instanz
403
+ passen, als `dashboard.einsatz1` … `dashboard.einsatzN`. Sinnvoll bei
404
+ einer Monitor-ID, die auf "alle Wachalarme" (`0`) oder einen größeren
405
+ Kreis/Träger eingestellt ist, wo mehrere Einsätze gleichzeitig aktiv
406
+ sein können und `einsatz.*` allein immer nur den jeweils aktuellsten
407
+ zeigt.
408
+
409
+ Anders als die dauerhaft offene `/waip`-Verbindung dieses Adapters wird
410
+ das Dashboard periodisch aktualisiert: Der Adapter ruft die öffentliche
411
+ Einsatzübersichtsseite `/dbrd/` ab, filtert sie auf Einsätze, die zum
412
+ Monitor dieser Instanz passen (dieselbe `l`/`a`/`b`/`c`-Korrelation
413
+ Leitstelle/Kreis/Träger/Wache wie das Monitor-ID-Dropdown selbst –
414
+ siehe [Verbindung](#verbindung)), und öffnet für jeden der bis zu N
415
+ passenden Einsätze nacheinander (nie parallel) eine **kurzlebige**
416
+ Socket.IO-Verbindung, um dessen aktuellen Stand abzurufen, bevor sie
417
+ wieder geschlossen wird. Ein vollständiger Refresh dauert dadurch
418
+ realistisch einige Sekunden pro belegtem Slot, nicht Millisekunden –
419
+ das Minimum beim **Refresh-Intervall** unten trägt dem Rechnung.
420
+
421
+ | Feld | Beschreibung | Standard |
422
+ | --- | --- | --- |
423
+ | Number of incidents to show | Wie viele der aktuellsten passenden Einsätze angezeigt werden, `dashboard.einsatz1` … `einsatzN` (1–20) | `10` |
424
+ | Refresh interval (s) | Wie oft das Dashboard aktualisiert wird (30–300) | `60` |
425
+
426
+ Zusätzlich zum regulären Timer läuft ein Refresh auch einmal sofort
427
+ nach jedem (Neu-)Start des Adapters (damit das Dashboard nicht bis zum
428
+ konfigurierten Intervall leer bleibt) sowie einmal bei jedem neuen
429
+ Alarm für den eigenen Monitor dieser Instanz (`einsatz.*`). Ein
430
+ manueller Refresh lässt sich jederzeit über den Button-State
431
+ `dashboard.refreshNow` auslösen, z. B. per VIS-Button oder Skript.
432
+
433
+ Kartenbilder unter `dashboard.einsatzN.kartenbildPfad` werden **nicht**
434
+ eigens für Dashboard-Slots erzeugt – sie werden aus demselben
435
+ Datei-Fundus abgeleitet, den [Einsatzkarte](#einsatzkarte) für den
436
+ eigenen Monitor dieser Instanz bereits erzeugt hat. Ein Slot hat also
437
+ nur dann ein Kartenbild, wenn dieser Adapter für genau diesen Einsatz
438
+ über die eigene `einsatz.*`-Alarmverarbeitung bereits eines erzeugt
439
+ hat – am vollständigsten, wenn die **Monitor-ID** auf `0` (alle
440
+ Wachalarme) steht und **Kartenbild für jeden Einsatz erzeugen**
441
+ aktiviert ist, da dann jeder Einsatz, der im Dashboard erscheinen kann,
442
+ zuvor auch schon einmal `einsatz.*` durchlaufen hat. Bei einer
443
+ enger gefassten Monitor-ID fehlt Dashboard-Slots für Einsätze außerhalb
444
+ der eigenen Alarm-Historie das Kartenbild – das ist erwartetes
445
+ Verhalten, kein Fehler.
446
+
447
+ Wird das Feature deaktiviert, wird der komplette `dashboard.*`-Objekt-
448
+ baum entfernt (Kanäle und States, nicht nur deren Werte); wird **Number
449
+ of incidents to show** verringert, werden nur die dadurch nicht mehr
450
+ benötigten Slots am Ende entfernt (z. B. entfernt eine Reduzierung von
451
+ 10 auf 5 die Slots `dashboard.einsatz6` … `einsatz10`). Beide Änderungen
452
+ wirken erst nach dem **nächsten Adapter-Neustart** nach dem Speichern
453
+ (ioBroker startet die Instanz ohnehin bei jeder Konfigurationsänderung
454
+ neu – die Entfernung passiert nicht sofort, während der Admin-Dialog
455
+ noch offen ist).
456
+
393
457
  ## States (unter `waip-web.0.*`)
394
458
 
395
459
  Rückmeldungen und Routen sind pro Einsatz Listen (1:n). Sie liegen als
@@ -503,6 +567,55 @@ relevant, deshalb wird nur die jeweils letzte vorgehalten.
503
567
  | `last` | string (URL) | Vollständige, absolute URL zur mp3-Datei der letzten Sprachansage. Der Server sendet nur einen (oft relativen) Pfad, der als `audio.src` in einem Browser mit derselben Origin gedacht ist; der Adapter löst diesen gegen die konfigurierte WAIP-Server-URL auf, damit der Link auch außerhalb der WAIP-Web-Seite funktioniert (z.B. in einem VIS-Audio-Widget) |
504
568
  | `lastTimestamp` | string (date) | Zeitpunkt der letzten Ansage |
505
569
 
570
+ <a id="dashboard-states"></a>
571
+
572
+ ### dashboard
573
+
574
+ Nur vorhanden, wenn [Dashboard](#dashboard) aktiviert ist – siehe dort
575
+ für den Objektbaum-Lebenszyklus bei Aktivierung/Deaktivierung/
576
+ Größenänderung. `dashboard.einsatzN` (`N` = 1 … die konfigurierte
577
+ Slot-Anzahl) spiegelt dasselbe Schema wie `einsatz`/`einsatz.json`
578
+ oben, für den N-aktuellsten Einsatz, der zum Monitor dieser Instanz
579
+ passt – **nicht** beschränkt auf den einen aktuellen Einsatz. Alle
580
+ Felder eines belegten Slots werden bei jedem Refresh immer komplett
581
+ neu geschrieben (nicht nur bei Änderung), damit laufende Rückmeldungen
582
+ für einen Einsatz, der über mehrere Refreshs hinweg auf demselben Slot
583
+ bleibt, weiter aktualisiert werden; ein unbelegter Slot (weniger
584
+ passende Einsätze als konfigurierte Slots) trägt an allen Feldern den
585
+ Leerwert, genau wie `einsatz.*`, wenn kein Einsatz aktiv ist.
586
+
587
+ Bewusst **ohne** `restzeit`/`ablaufzeit` (WAIP-Webs `/dbrd/`-
588
+ Einsatzdetaildaten haben kein entsprechendes Feld, anders als der
589
+ Live-Alarmstream unter `/waip`) und ohne Entsprechung zu `einsatz.tts`
590
+ (kein TTS-Event im `/dbrd`-Namespace vorhanden). Umgekehrt hat
591
+ `dashboard.einsatzN.json.wachen` kein `einsatz.json.*`-Gegenstück – es
592
+ stammt aus einem Feld (`wachen[]`, die am Einsatz beteiligten Wachen),
593
+ das nur im `/dbrd`-Payload enthalten ist.
594
+
595
+ | State | Typ | Beschreibung |
596
+ | --- | --- | --- |
597
+ | `refreshNow` | boolean (Button) | `true` schreiben, um einen sofortigen Dashboard-Refresh auszulösen, z. B. per VIS-Button oder Skript. Setzt sich nach Abschluss des Refreshs selbst auf `false` zurück |
598
+ | `einsatzN.alarmAktiv` | boolean | `true`, solange der Slot mit einem passenden Einsatz belegt ist |
599
+ | `einsatzN.id` | number | Interne Einsatz-ID |
600
+ | `einsatzN.uuid` | string | Eindeutige Einsatz-UUID |
601
+ | `einsatzN.einsatzart` | string | Gleiche Bedeutung wie [einsatz.einsatzart](#einsatz) |
602
+ | `einsatzN.stichwort` | string | Alarmstichwort |
603
+ | `einsatzN.beschreibung` | string | Beschreibung zum Stichwort, ermittelt wie bei [einsatz.beschreibung](#einsatz) |
604
+ | `einsatzN.ort` | string | Ort |
605
+ | `einsatzN.ortsteil` | string | Ortsteil (falls abweichend von `ort`) |
606
+ | `einsatzN.alarmierungszeit` | string (date) | Alarmierungszeitpunkt |
607
+ | `einsatzN.sondersignal` | number | `1` = Sondersignal (Blaulicht & Martinshorn), sonst keins |
608
+ | `einsatzN.latitude` / `einsatzN.longitude` | number | Einsatzort, gleiche Normalisierung wie bei [einsatz](#einsatz) |
609
+ | `einsatzN.kartenbildPfad` | string | Pfad zu einem passenden, bereits erzeugten Einsatzkarten-Bild – siehe [Dashboard](#dashboard) oben. Leer, falls keins gefunden wurde |
610
+ | `einsatzN.routenGesamt` | number | Anzahl Routen für den Einsatz dieses Slots |
611
+ | `einsatzN.rueckmeldungenGesamt` | number | Rückmeldungen gesamt für den Einsatz dieses Slots |
612
+ | `einsatzN.rueckmeldungen.rollen.*` / `.funktionen.*` | number | Dieselben acht Rückmeldungs-Zähler wie bei [einsatz.rueckmeldungen](#einsatz), pro Slot |
613
+ | `einsatzN.json.current` | string (JSON-Array) | Flache Einsatzdaten dieses Slots, gleiches Schema wie `einsatz.json.current` (ohne `registeredMonitor`/`registeredMonitorName`) |
614
+ | `einsatzN.json.routen` | string (JSON-Array) | Routen des Einsatzes dieses Slots, gleiches Schema wie `einsatz.json.routen` |
615
+ | `einsatzN.json.rueckmeldungen` | string (JSON-Array) | Rückmeldungen des Einsatzes dieses Slots |
616
+ | `einsatzN.json.emAlarmiert` | string (JSON-Array) | Alarmierte Einsatzmittel des Einsatzes dieses Slots |
617
+ | `einsatzN.json.wachen` | string (JSON-Array) | Am Einsatz dieses Slots beteiligte Wachen (`em_station_id`/`em_station_name`) – nur über `/dbrd` verfügbar, kein `einsatz.json.*`-Gegenstück |
618
+
506
619
  ### debug
507
620
 
508
621
  | State | Typ | Beschreibung |
package/README.md CHANGED
@@ -31,10 +31,11 @@ open.
31
31
  - [Rescue service](#rescue-service)
32
32
  - [Keyword descriptions](#keyword-descriptions)
33
33
  - [Incident map image](#incident-map-image)
34
+ - [Dashboard](#dashboard)
34
35
  - [States (under `waip-web.0.*`)](#states-under-waip-web0)
35
36
  - [info](#info) · [status](#status) · [einsatz](#einsatz) ·
36
37
  [einsatz.json](#einsatzjson) · [einsatz.tts](#einsatztts) ·
37
- [debug](#debug)
38
+ [dashboard](#dashboard-states) · [debug](#debug)
38
39
  - [Logging](#logging)
39
40
  - [Changelog](#changelog)
40
41
  - [License](#license)
@@ -188,6 +189,10 @@ adapter provides – typical use in a fire station/EMS environment:
188
189
  color/thickness (switchable to a plain marker dot instead), automatically
189
190
  zoomed out as needed to keep the whole area visible, file path
190
191
  exposed as a state - see [Incident map image](#incident-map-image)
192
+ - Optional dashboard: mirrors the last N incidents matching this
193
+ instance's monitor as `dashboard.einsatz1` … `einsatzN`, polled
194
+ periodically via short-lived connections (no permanent dashboard
195
+ connection) - see [Dashboard](#dashboard)
191
196
 
192
197
  ## Configuration
193
198
 
@@ -376,6 +381,62 @@ js-controller 4.0 / Admin 5 for any adapter's instance data directory
376
381
  > level to cover huge areas or otherwise turn this into bulk tile
377
382
  > fetching.
378
383
 
384
+ ### Dashboard
385
+
386
+ **Enable dashboard** (admin checkbox, off by default): mirrors the
387
+ last N incidents matching this instance's configured monitor as
388
+ `dashboard.einsatz1` … `dashboard.einsatzN`, in addition to the single
389
+ current incident already available under [einsatz](#einsatz). This is
390
+ useful with a monitor ID scoped to "all dispatch monitors" (`0`) or to
391
+ a wider district/carrier, where several incidents can be active at
392
+ once and `einsatz.*` alone only ever shows the most recent one.
393
+
394
+ Unlike the always-on `/waip` connection this adapter otherwise keeps,
395
+ the dashboard is refreshed periodically: the adapter fetches the
396
+ public `/dbrd/` incident overview page, filters it down to incidents
397
+ matching this instance's monitor (same `l`/`a`/`b`/`c`
398
+ Leitstelle/Kreis/Träger/Wache correlation as the Monitor ID dropdown
399
+ itself - see [Connection](#connection)), and for each of up to N
400
+ matching incidents opens one **short-lived** Socket.IO connection in
401
+ turn (never in parallel) to collect its current state, then closes it
402
+ again. A full refresh therefore realistically takes a few seconds per
403
+ occupied slot, not milliseconds - the minimum **Refresh interval**
404
+ below reflects that.
405
+
406
+ | Field | Description | Default |
407
+ | --- | --- | --- |
408
+ | Number of incidents to show | How many of the most recent matching incidents to show, `dashboard.einsatz1` … `einsatzN` (1-20) | `10` |
409
+ | Refresh interval (s) | How often the dashboard is refreshed (30-300) | `60` |
410
+
411
+ A refresh also runs once immediately after every adapter (re)start (so
412
+ the dashboard doesn't stay empty for up to the configured interval),
413
+ and once whenever a new alarm is received for this instance's own
414
+ monitor (`einsatz.*`) - in addition to the regular timer. A manual
415
+ refresh can be triggered any time via the `dashboard.refreshNow`
416
+ button state, e.g. from a VIS button or a script.
417
+
418
+ Map images shown as `dashboard.einsatzN.kartenbildPfad` are **not**
419
+ generated separately for dashboard slots - they are looked up in the
420
+ same file history [Incident map image](#incident-map-image) already
421
+ produces for this instance's own monitor. A slot only has a map image
422
+ when this adapter has *already* generated one for that exact incident
423
+ via its own `einsatz.*` alarm handling - most complete when **Monitor
424
+ ID** is `0` (all dispatch monitors) and **Generate a map image for
425
+ each incident** is enabled, since then every incident that can appear
426
+ on the dashboard has also passed through `einsatz.*` at least once.
427
+ With a narrower Monitor ID, dashboard slots for incidents outside that
428
+ monitor's own alarm history will have no map image - this is expected,
429
+ not a bug.
430
+
431
+ Disabling the feature removes the entire `dashboard.*` object tree
432
+ (channels and states, not just their values); reducing **Number of
433
+ incidents to show** removes only the now-unused slots at the end
434
+ (e.g. going from 10 to 5 removes `dashboard.einsatz6` … `einsatz10`).
435
+ Both changes only take effect on the **next adapter restart** after
436
+ saving (ioBroker restarts the instance on any configuration change
437
+ anyway - the removal doesn't happen instantly while the admin dialog
438
+ is open).
439
+
379
440
  ## States (under `waip-web.0.*`)
380
441
 
381
442
  Feedback and routes are 1:n lists per incident. They are stored as
@@ -487,6 +548,54 @@ matters in the moment, so only the most recent one is kept.
487
548
  | `last` | string (URL) | Full absolute URL of the most recent voice announcement's mp3 file. The server sends only a bare (often relative) path meant to be used as `audio.src` in a browser that shares its origin; the adapter resolves that against the configured WAIP server URL so the link also works outside the WAIP-Web page (e.g. in a VIS audio widget) |
488
549
  | `lastTimestamp` | string (date) | Time of the last announcement |
489
550
 
551
+ <a id="dashboard-states"></a>
552
+
553
+ ### dashboard
554
+
555
+ Only present when [Dashboard](#dashboard) is enabled - see there for
556
+ the object-tree lifecycle on enable/disable/resize. `dashboard.einsatzN`
557
+ (`N` = 1 … the configured slot count) mirrors the same shape as
558
+ `einsatz`/`einsatz.json` above, for the Nth most recent incident
559
+ matching this instance's monitor - **not** limited to the single
560
+ current incident. All fields of an occupied slot are always rewritten
561
+ on every refresh (not just on change), so ongoing feedback for an
562
+ incident that stays on the same slot across refreshes keeps updating;
563
+ an unoccupied slot (fewer matching incidents than configured slots)
564
+ has all fields at their empty value, exactly like `einsatz.*` when no
565
+ incident is active.
566
+
567
+ Deliberately **without** `restzeit`/`ablaufzeit` (WAIP-Web's `/dbrd/`
568
+ incident-detail data has no equivalent field, unlike the live `/waip`
569
+ alarm stream) and without `einsatz.tts`'s equivalent (no TTS event
570
+ exists in the `/dbrd` namespace). `dashboard.einsatzN.json.wachen` has
571
+ no `einsatz.json.*` counterpart the other way around - it comes from a
572
+ field (`wachen[]`, the incident's participating stations) that only
573
+ the `/dbrd` payload includes.
574
+
575
+ | State | Type | Description |
576
+ | --- | --- | --- |
577
+ | `refreshNow` | boolean (button) | Write `true` to trigger an immediate dashboard refresh, e.g. from a VIS button or a script. Resets itself to `false` once the refresh completes |
578
+ | `einsatzN.alarmAktiv` | boolean | `true` while the slot is occupied by a matching incident |
579
+ | `einsatzN.id` | number | Internal incident ID |
580
+ | `einsatzN.uuid` | string | Unique incident UUID |
581
+ | `einsatzN.einsatzart` | string | Same meaning as [einsatz.einsatzart](#einsatz) |
582
+ | `einsatzN.stichwort` | string | Alarm keyword |
583
+ | `einsatzN.beschreibung` | string | Description for `stichwort`, resolved the same way as [einsatz.beschreibung](#einsatz) |
584
+ | `einsatzN.ort` | string | Location/town |
585
+ | `einsatzN.ortsteil` | string | District (if different from `ort`) |
586
+ | `einsatzN.alarmierungszeit` | string (date) | Alarm time |
587
+ | `einsatzN.sondersignal` | number | `1` = special signal (lights & siren), otherwise none |
588
+ | `einsatzN.latitude` / `einsatzN.longitude` | number | Incident location, same normalization as [einsatz](#einsatz) |
589
+ | `einsatzN.kartenbildPfad` | string | Path to a matching, previously generated incident map image - see [Dashboard](#dashboard) above. Empty if none was found |
590
+ | `einsatzN.routenGesamt` | number | Number of routes for this slot's incident |
591
+ | `einsatzN.rueckmeldungenGesamt` | number | Total feedback count for this slot's incident |
592
+ | `einsatzN.rueckmeldungen.rollen.*` / `.funktionen.*` | number | Same eight feedback counters as [einsatz.rueckmeldungen](#einsatz), per slot |
593
+ | `einsatzN.json.current` | string (JSON array) | This slot's flat incident data, same shape as `einsatz.json.current` (without `registeredMonitor`/`registeredMonitorName`) |
594
+ | `einsatzN.json.routen` | string (JSON array) | Routes of this slot's incident, same shape as `einsatz.json.routen` |
595
+ | `einsatzN.json.rueckmeldungen` | string (JSON array) | Feedback entries of this slot's incident |
596
+ | `einsatzN.json.emAlarmiert` | string (JSON array) | Alerted resources of this slot's incident |
597
+ | `einsatzN.json.wachen` | string (JSON array) | Participating stations of this slot's incident (`em_station_id`/`em_station_name`) - only available via `/dbrd`, no `einsatz.json.*` counterpart |
598
+
490
599
  ### debug
491
600
 
492
601
  | State | Type | Description |
@@ -520,7 +629,20 @@ example.
520
629
  Re-add it afterwards (or use `npm run release -- --addPlaceholder`).
521
630
  Collect changes for the upcoming release underneath it.
522
631
  -->
523
- ### **WORK IN PROGRESS**
632
+ ### 0.12.0 (2026-08-28)
633
+
634
+ - (no changes yet)
635
+
636
+ ### 0.11.0 (2026-08-28)
637
+
638
+ - New optional [Dashboard](#dashboard) feature: mirrors the last N
639
+ incidents matching this instance's monitor as `dashboard.einsatz1`
640
+ … `einsatzN` (off by default). Uses short-lived Socket.IO connections
641
+ to WAIP-Web's `/dbrd` namespace polled on a configurable interval,
642
+ not a permanent connection - see [Dashboard](#dashboard) and
643
+ [dashboard states](#dashboard-states) for the full behavior,
644
+ including the manual refresh button and the object-deletion behavior
645
+ when disabling the feature or reducing the slot count.
524
646
 
525
647
  ### 0.7.38 (2026-08-27)
526
648
 
@@ -565,25 +687,6 @@ example.
565
687
  on upgrade; scripts/VIS bindings referencing the old paths need to
566
688
  be updated - see [einsatz](#einsatz).
567
689
 
568
- ### 0.7.35 (2026-08-24)
569
-
570
- - Object structure change: the eight feedback counters under
571
- `einsatz.rueckmeldungAnzahl` are now grouped into two sub-channels -
572
- **rollen** (`ek`/`gf`/`zf`/`vf`, by role) and **funktionen**
573
- (`agt`/`fzf`/`ma`/`med`, by qualification) - instead of sitting flat
574
- next to each other. The old flat states are removed automatically on
575
- upgrade; scripts/VIS bindings referencing the old paths need to be
576
- updated to the new `einsatz.rueckmeldungAnzahl.rollen.*`/
577
- `.funktionen.*` paths - see [einsatz](#einsatz).
578
-
579
- ### 0.7.34 (2026-08-24)
580
-
581
- - [Incident map image](#incident-map-image): fixed the help texts for
582
- **Zoom level**, **Marker & outline color** and **Image width/height**
583
- - they referenced "both display modes below", which no longer made
584
- sense after 0.7.33 moved those fields above the display-mode
585
- checkbox. **Zoom level**'s text was also considerably shortened.
586
-
587
690
  Older entries have been moved to [CHANGELOG_OLD.md](CHANGELOG_OLD.md).
588
691
 
589
692
  ## License
@@ -4,11 +4,15 @@
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 marker dot, or of the polygon outline when one is drawn (see 'Show incident-area polygon').": "Farbe der Punkt-Markierung, bzw. des Polygon-Umrisses, wenn einer gezeichnet wird (siehe 'Einsatzgebiet-Polygon anzeigen').",
6
6
  "Connection": "Verbindung",
7
+ "Dashboard": "Armaturenbrett",
7
8
  "Description": "Beschreibung",
9
+ "Enable dashboard": "Dashboard aktivieren",
8
10
  "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.",
9
11
  "Generate a map image for each incident": "Kartenbild für jeden Einsatz erzeugen",
10
12
  "Height of the generated map image in pixels (applies to both the marker dot and the polygon outline).": "Höhe des erzeugten Kartenbilds in Pixeln (gilt sowohl für die Punkt-Markierung als auch für den Polygon-Umriss).",
11
13
  "How long to wait for the server to confirm the monitor registration before logging a warning; the connection itself keeps running either way.": "Wartezeit auf die Bestätigung der Monitor-Registrierung durch den Server, bevor eine Warnung geloggt wird; die Verbindung läuft in jedem Fall weiter.",
14
+ "How many of the most recent matching incidents to show (dashboard.einsatz1..einsatzN). Higher values create proportionally more states/channels.": "Wie viele der aktuellsten übereinstimmenden Vorfälle werden angezeigt (dashboard.einsatz1..einsatzN). Höhere Werte erzeugen proportional mehr Zustände/Kanäle.",
15
+ "How often the dashboard is refreshed. A full refresh connects to the server once per slot in sequence, so it realistically takes several seconds per active slot - the minimum here reflects that.": "Wie oft wird das Dashboard aktualisiert? Eine vollständige Aktualisierung stellt nacheinander einmal pro Slot eine Verbindung zum Server her, sodass es realistischerweise mehrere Sekunden pro aktivem Slot dauert – das hier angegebene Minimum spiegelt dies wider.",
12
16
  "Image height (px)": "Bildhöhe (px)",
13
17
  "Image width (px)": "Bildbreite (px)",
14
18
  "Incident map image": "Einsatzkarte",
@@ -21,20 +25,24 @@
21
25
  "Label for suffix p (polytrauma)": "Bezeichnung für Suffix p (Polytrauma)",
22
26
  "Line thickness of the incident-area outline, in pixels.": "Linienstärke des Einsatzgebiet-Umrisses in Pixeln.",
23
27
  "Loaded live from the configured server's /waip/ overview page - choose by Leitstelle, Kreis, Träger or Wache, or pick 'Alle Wachalarme' (ID 0) for every incident. If the server can't be reached, an ID can still be entered manually.": "Wird live von der /waip/-Übersichtsseite des konfigurierten Servers geladen - Auswahl nach Leitstelle, Kreis, Träger oder Wache, oder 'Alle Wachalarme' (ID 0) für jeden Einsatz. Ist der Server nicht erreichbar, kann die ID weiterhin manuell eingegeben werden.",
28
+ "Map images are derived from this adapter's own incident-map history (see 'Incident map image' tab) and are only available where it already generated one for a matching incident - most complete when Monitor ID is 0 and map images are enabled. A manual refresh can be triggered any time via the dashboard.refreshNow button state.": "Kartenbilder werden aus dem eigenen Vorfallkartenverlauf dieses Adapters abgeleitet (siehe Registerkarte „Vorfallkartenbild“) und sind nur verfügbar, wenn bereits eines für einen passenden Vorfall generiert wurde – am vollständigsten, wenn die Monitor-ID 0 ist und Kartenbilder aktiviert sind. Eine manuelle Aktualisierung kann jederzeit über den Status der Schaltfläche „dashboard.refreshNow“ ausgelöst werden.",
24
29
  "Maps einsatz.stichwort to einsatz.beschreibung. Comparison is case-insensitive and treats spaces/hyphens as equivalent (any run of either collapses to one before comparing), so e.g. \"H:VU mit P\" and \"H:VU-mit-P\" match the same row - no need for a separate row per spelling. If several rows match, the most specific (longest) pattern wins automatically - row order has no effect on matching, sort by any column freely. Pre-filled with an example fire/rescue keyword list as a starting point - it is not confirmed to match your own dispatch center's actual keywords, edit/replace as needed. To back up or transfer this table, use ioBroker's standard instance configuration export/import (JSON). After using that import, reload the Admin page before checking this table - the open config dialog doesn't refresh it from an external import automatically (a state-sync limitation of the Admin table component itself).": "Ordnet einsatz.stichwort eine Beschreibung für einsatz.beschreibung zu. Der Vergleich ist case-insensitiv und behandelt Leerzeichen/Bindestriche als gleichwertig (jede Folge aus beidem wird vor dem Vergleich zu einem Leerzeichen zusammengefasst), sodass z.B. \"H:VU mit P\" und \"H:VU-mit-P\" dieselbe Zeile matchen - keine eigene Zeile pro Schreibvariante nötig. Passen mehrere Zeilen, gewinnt automatisch das spezifischste (längste) Muster - die Zeilenreihenfolge hat keinen Einfluss auf den Abgleich, die Tabelle kann also frei nach jeder Spalte sortiert werden. Vorbefüllt mit einer beispielhaften Feuerwehr-/Rettungsdienst-Stichwortliste als Startpunkt - nicht bestätigt für eure eigene Leitstelle, bei Bedarf anpassen/ersetzen. Zum Sichern/Übertragen dieser Tabelle die Standard-Instanzkonfiguration von ioBroker exportieren/importieren (JSON). Nach einem solchen Import die Admin-Seite neu laden, bevor du diese Tabelle prüfst - der offene Konfigurationsdialog aktualisiert sie bei einem externen Import nicht automatisch (eine State-Sync-Einschränkung der Admin-Tabellenkomponente selbst).",
25
30
  "Marker & outline color": "Marker- & Umrissfarbe",
26
31
  "Match": "Abgleich",
27
32
  "Maximum time to wait for the map image (OSM tile download and composition) to finish before continuing to process the incident. If it isn't ready within this time, a warning is logged and einsatz.kartenbildPfad stays empty for this incident.": "Maximale Wartezeit auf die Fertigstellung des Kartenbilds (OSM-Kachel-Download und -Zusammensetzung), bevor mit der Verarbeitung des Einsatzes fortgefahren wird. Ist es nicht rechtzeitig fertig, wird eine Warnung geloggt und einsatz.kartenbildPfad bleibt für diesen Einsatz leer.",
28
33
  "Monitor ID": "Monitor-ID",
34
+ "Number of incidents to show": "Anzahl der anzuzeigenden Vorfälle",
29
35
  "OSM timeout (s)": "OSM-Timeout (s)",
30
36
  "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "OpenStreetMap-Zoomstufe (1 = ganze Welt, 19 = Gebäudeebene). Fester Wert für die Punkt-Markierung; Maximalwert für den Polygon-Umriss, wird bei Bedarf automatisch reduziert, damit er vollständig sichtbar bleibt (siehe 'Einsatzgebiet-Polygon anzeigen').",
31
37
  "Outline thickness (px)": "Umriss-Strichstärke (px)",
32
38
  "Process rescue-service incidents": "Rettungsdienst-Einsätze verarbeiten",
33
39
  "Reconnect delay (s)": "Wiederverbindungs-Verzögerung (s)",
40
+ "Refresh interval (s)": "Aktualisierungsintervall(e)",
34
41
  "Registration timeout (s)": "Registrierungs-Timeout (s)",
35
42
  "Rescue service": "Rettungsdienst",
36
43
  "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.",
37
44
  "Show incident-area polygon": "Einsatzgebiet-Polygon anzeigen",
45
+ "Shows the last N incidents (N = number below) matching this instance's Monitor ID (Connection tab) as dashboard.einsatz1..einsatzN, correlated via the incident's dispatch center/district/carrier/station IDs, same matching logic as the Monitor ID dropdown itself. Monitor ID 0 (all dispatch monitors) shows all incidents. Disabling the feature removes the entire dashboard object tree; reducing the count below removes only the now-unused slots. Both take effect on the next adapter restart after saving.": "Zeigt die letzten N Vorfälle (N = Zahl unten) an, die mit der Monitor-ID dieser Instanz (Registerkarte „Verbindung“) übereinstimmen, als „dashboard.einsatz1..einsatzN“, korreliert über die Versandzentrums-/Bezirks-/Träger-/Stations-IDs des Vorfalls, dieselbe Übereinstimmungslogik wie das Dropdown-Menü „Monitor-ID“ selbst. Monitor-ID 0 (alle Versandmonitore) zeigt alle Vorfälle an. Durch das Deaktivieren der Funktion wird der gesamte Dashboard-Objektbaum entfernt; Wenn Sie die Anzahl unten reduzieren, werden nur die jetzt nicht verwendeten Slots entfernt. Beide werden beim nächsten Neustart des Adapters nach dem Speichern wirksam.",
38
46
  "Text appended when the keyword ends in \"-NT\" or \" nt\".": "Text, der angehängt wird, wenn das Stichwort auf \"-NT\" oder \" nt\" endet.",
39
47
  "Text appended when the keyword ends in \"f\".": "Text, der angehängt wird, wenn das Stichwort auf \"f\" endet.",
40
48
  "Text appended when the keyword ends in \"p\".": "Text, der angehängt wird, wenn das Stichwort auf \"p\" endet.",
@@ -5,11 +5,15 @@
5
5
  "Color of the marker dot, or of the polygon outline when one is drawn (see 'Show incident-area polygon').": "Color of the marker dot, or of the polygon outline when one is drawn (see 'Show incident-area polygon').",
6
6
  "Connection": "Connection",
7
7
  "contains": "contains",
8
+ "Dashboard": "Dashboard",
8
9
  "Description": "Description",
10
+ "Enable dashboard": "Enable dashboard",
9
11
  "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.": "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.",
10
12
  "Generate a map image for each incident": "Generate a map image for each incident",
11
13
  "Height of the generated map image in pixels (applies to both the marker dot and the polygon outline).": "Height of the generated map image in pixels (applies to both the marker dot and the polygon outline).",
12
14
  "How long to wait for the server to confirm the monitor registration before logging a warning; the connection itself keeps running either way.": "How long to wait for the server to confirm the monitor registration before logging a warning; the connection itself keeps running either way.",
15
+ "How many of the most recent matching incidents to show (dashboard.einsatz1..einsatzN). Higher values create proportionally more states/channels.": "How many of the most recent matching incidents to show (dashboard.einsatz1..einsatzN). Higher values create proportionally more states/channels.",
16
+ "How often the dashboard is refreshed. A full refresh connects to the server once per slot in sequence, so it realistically takes several seconds per active slot - the minimum here reflects that.": "How often the dashboard is refreshed. A full refresh connects to the server once per slot in sequence, so it realistically takes several seconds per active slot - the minimum here reflects that.",
13
17
  "Image height (px)": "Image height (px)",
14
18
  "Image width (px)": "Image width (px)",
15
19
  "Incident map image": "Incident map image",
@@ -23,18 +27,22 @@
23
27
  "Line thickness of the incident-area outline, in pixels.": "Line thickness of the incident-area outline, in pixels.",
24
28
  "Loaded live from the configured server's /waip/ overview page - choose by Leitstelle, Kreis, Träger or Wache, or pick 'Alle Wachalarme' (ID 0) for every incident. If the server can't be reached, an ID can still be entered manually.": "Loaded live from the configured server's /waip/ overview page - choose by Leitstelle, Kreis, Träger or Wache, or pick 'Alle Wachalarme' (ID 0) for every incident. If the server can't be reached, an ID can still be entered manually.",
25
29
  "Maps einsatz.stichwort to einsatz.beschreibung. Comparison is case-insensitive and treats spaces/hyphens as equivalent (any run of either collapses to one before comparing), so e.g. \"H:VU mit P\" and \"H:VU-mit-P\" match the same row - no need for a separate row per spelling. If several rows match, the most specific (longest) pattern wins automatically - row order has no effect on matching, sort by any column freely. Pre-filled with an example fire/rescue keyword list as a starting point - it is not confirmed to match your own dispatch center's actual keywords, edit/replace as needed. To back up or transfer this table, use ioBroker's standard instance configuration export/import (JSON). After using that import, reload the Admin page before checking this table - the open config dialog doesn't refresh it from an external import automatically (a state-sync limitation of the Admin table component itself).": "Maps einsatz.stichwort to einsatz.beschreibung. Comparison is case-insensitive and treats spaces/hyphens as equivalent (any run of either collapses to one before comparing), so e.g. \"H:VU mit P\" and \"H:VU-mit-P\" match the same row - no need for a separate row per spelling. If several rows match, the most specific (longest) pattern wins automatically - row order has no effect on matching, sort by any column freely. Pre-filled with an example fire/rescue keyword list as a starting point - it is not confirmed to match your own dispatch center's actual keywords, edit/replace as needed. To back up or transfer this table, use ioBroker's standard instance configuration export/import (JSON). After using that import, reload the Admin page before checking this table - the open config dialog doesn't refresh it from an external import automatically (a state-sync limitation of the Admin table component itself).",
30
+ "Map images are derived from this adapter's own incident-map history (see 'Incident map image' tab) and are only available where it already generated one for a matching incident - most complete when Monitor ID is 0 and map images are enabled. A manual refresh can be triggered any time via the dashboard.refreshNow button state.": "Map images are derived from this adapter's own incident-map history (see 'Incident map image' tab) and are only available where it already generated one for a matching incident - most complete when Monitor ID is 0 and map images are enabled. A manual refresh can be triggered any time via the dashboard.refreshNow button state.",
26
31
  "Marker & outline color": "Marker & outline color",
27
32
  "Match": "Match",
28
33
  "Maximum time to wait for the map image (OSM tile download and composition) to finish before continuing to process the incident. If it isn't ready within this time, a warning is logged and einsatz.kartenbildPfad stays empty for this incident.": "Maximum time to wait for the map image (OSM tile download and composition) to finish before continuing to process the incident. If it isn't ready within this time, a warning is logged and einsatz.kartenbildPfad stays empty for this incident.",
29
34
  "Monitor ID": "Monitor ID",
35
+ "Number of incidents to show": "Number of incidents to show",
30
36
  "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').",
31
37
  "OSM timeout (s)": "OSM timeout (s)",
32
38
  "Outline thickness (px)": "Outline thickness (px)",
33
39
  "Process rescue-service incidents": "Process rescue-service incidents",
34
40
  "Reconnect delay (s)": "Reconnect delay (s)",
41
+ "Refresh interval (s)": "Refresh interval (s)",
35
42
  "Registration timeout (s)": "Registration timeout (s)",
36
43
  "Rescue service": "Rescue service",
37
44
  "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.",
45
+ "Shows the last N incidents (N = number below) matching this instance's Monitor ID (Connection tab) as dashboard.einsatz1..einsatzN, correlated via the incident's dispatch center/district/carrier/station IDs, same matching logic as the Monitor ID dropdown itself. Monitor ID 0 (all dispatch monitors) shows all incidents. Disabling the feature removes the entire dashboard object tree; reducing the count below removes only the now-unused slots. Both take effect on the next adapter restart after saving.": "Shows the last N incidents (N = number below) matching this instance's Monitor ID (Connection tab) as dashboard.einsatz1..einsatzN, correlated via the incident's dispatch center/district/carrier/station IDs, same matching logic as the Monitor ID dropdown itself. Monitor ID 0 (all dispatch monitors) shows all incidents. Disabling the feature removes the entire dashboard object tree; reducing the count below removes only the now-unused slots. Both take effect on the next adapter restart after saving.",
38
46
  "Show incident-area polygon": "Show incident-area polygon",
39
47
  "starts with": "starts with",
40
48
  "Text appended when the keyword ends in \"-NT\" or \" nt\".": "Text appended when the keyword ends in \"-NT\" or \" nt\".",
@@ -4,11 +4,15 @@
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 marker dot, or of the polygon outline when one is drawn (see 'Show incident-area polygon').": "Color del punto marcador, o del contorno del polígono cuando se dibuja uno (ver 'Mostrar polígono del área del incidente').",
6
6
  "Connection": "Conexión",
7
+ "Dashboard": "Panel",
7
8
  "Description": "Descripción",
9
+ "Enable dashboard": "Habilitar panel",
8
10
  "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.",
9
11
  "Generate a map image for each incident": "Generar una imagen de mapa para cada incidente",
10
12
  "Height of the generated map image in pixels (applies to both the marker dot and the polygon outline).": "Alto de la imagen de mapa generada en píxeles (se aplica tanto al punto marcador como al contorno del polígono).",
11
13
  "How long to wait for the server to confirm the monitor registration before logging a warning; the connection itself keeps running either way.": "Cuánto tiempo esperar para que el servidor confirme el registro del monitor antes de registrar una advertencia; la conexión en sí sigue funcionando en cualquier sentido.",
14
+ "How many of the most recent matching incidents to show (dashboard.einsatz1..einsatzN). Higher values create proportionally more states/channels.": "Cuántos de los incidentes coincidentes más recientes se mostrarán (dashboard.einsatz1..einsatzN). Los valores más altos crean proporcionalmente más estados/canales.",
15
+ "How often the dashboard is refreshed. A full refresh connects to the server once per slot in sequence, so it realistically takes several seconds per active slot - the minimum here reflects that.": "Con qué frecuencia se actualiza el panel. Una actualización completa se conecta al servidor una vez por ranura en secuencia, por lo que, de manera realista, lleva varios segundos por ranura activa; el mínimo aquí refleja eso.",
12
16
  "Image height (px)": "Alto de la imagen (px)",
13
17
  "Image width (px)": "Ancho de la imagen (px)",
14
18
  "Incident map image": "Imagen de mapa del incidente",
@@ -21,20 +25,24 @@
21
25
  "Label for suffix p (polytrauma)": "Etiqueta para el sufijo p (politraumatismo)",
22
26
  "Line thickness of the incident-area outline, in pixels.": "Grosor de línea del contorno del área del incidente, en píxeles.",
23
27
  "Loaded live from the configured server's /waip/ overview page - choose by Leitstelle, Kreis, Träger or Wache, or pick 'Alle Wachalarme' (ID 0) for every incident. If the server can't be reached, an ID can still be entered manually.": "Cargado en vivo desde la página de descripción general /waip/ del servidor configurado: elija Leitstelle, Kreis, Träger o Wache, o elija 'Alle Wachalarme' (ID 0) para cada incidente. Si no se puede acceder al servidor, aún se puede ingresar una identificación manualmente.",
28
+ "Map images are derived from this adapter's own incident-map history (see 'Incident map image' tab) and are only available where it already generated one for a matching incident - most complete when Monitor ID is 0 and map images are enabled. A manual refresh can be triggered any time via the dashboard.refreshNow button state.": "Las imágenes de mapas se derivan del propio historial de mapas de incidentes de este adaptador (consulte la pestaña 'Imagen de mapa de incidentes') y solo están disponibles cuando ya generó una para un incidente coincidente; son más completas cuando la ID del monitor es 0 y las imágenes de mapas están habilitadas. Se puede activar una actualización manual en cualquier momento a través del estado del botón Dashboard.refreshNow.",
24
29
  "Maps einsatz.stichwort to einsatz.beschreibung. Comparison is case-insensitive and treats spaces/hyphens as equivalent (any run of either collapses to one before comparing), so e.g. \"H:VU mit P\" and \"H:VU-mit-P\" match the same row - no need for a separate row per spelling. If several rows match, the most specific (longest) pattern wins automatically - row order has no effect on matching, sort by any column freely. Pre-filled with an example fire/rescue keyword list as a starting point - it is not confirmed to match your own dispatch center's actual keywords, edit/replace as needed. To back up or transfer this table, use ioBroker's standard instance configuration export/import (JSON). After using that import, reload the Admin page before checking this table - the open config dialog doesn't refresh it from an external import automatically (a state-sync limitation of the Admin table component itself).": "Asigna einsatz.stichwort a einsatz.beschreibung. La comparación no distingue mayúsculas/minúsculas y trata los espacios/guiones como equivalentes (cualquier secuencia de ambos se reduce a uno antes de comparar), de modo que, por ejemplo, \"H:VU mit P\" y \"H:VU-mit-P\" coinciden con la misma fila - no es necesaria una fila separada por cada variante de escritura. Si varias filas coinciden, el patrón más específico (el más largo) gana automáticamente; el orden de las filas no tiene ningún efecto en la coincidencia, ordene libremente por cualquier columna. Precompletado con una lista de palabras clave de ejemplo de incendio/rescate como punto de partida; no se confirma que coincida con las palabras clave reales de su propio centro de despacho, edite/reemplace según sea necesario. Para hacer una copia de seguridad o transferir esta tabla, utilice la exportación/importación estándar de la configuración de instancia de ioBroker (JSON). Después de usar esa importación estándar, recargue la página de administración antes de comprobar esta tabla - el cuadro de diálogo de configuración abierto no la actualiza automáticamente desde una importación externa (una limitación de sincronización de estado del propio componente de tabla de administración).",
25
30
  "Marker & outline color": "Color del marcador y del contorno",
26
31
  "Match": "Fósforo",
27
32
  "Maximum time to wait for the map image (OSM tile download and composition) to finish before continuing to process the incident. If it isn't ready within this time, a warning is logged and einsatz.kartenbildPfad stays empty for this incident.": "Tiempo máximo de espera para que la imagen del mapa (descarga y composición de teselas OSM) se complete antes de continuar procesando el incidente. Si no está lista dentro de este tiempo, se registra una advertencia y einsatz.kartenbildPfad permanece vacío para este incidente.",
28
33
  "Monitor ID": "Identificador del monitor",
34
+ "Number of incidents to show": "Número de incidentes a mostrar",
29
35
  "OSM timeout (s)": "Tiempo de espera de OSM (s)",
30
36
  "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "Nivel de zoom de OpenStreetMap (1 = mundo entero, 19 = nivel de edificio). Zoom fijo para el punto marcador; un máximo para el contorno del polígono, reducido automáticamente si es necesario para mantenerlo completamente visible (ver 'Mostrar polígono del área del incidente').",
31
37
  "Outline thickness (px)": "Grosor del contorno (px)",
32
38
  "Process rescue-service incidents": "Procesar incidentes del servicio de rescate",
33
39
  "Reconnect delay (s)": "Retardo(s) de reconexión",
40
+ "Refresh interval (s)": "Intervalo(s) de actualización",
34
41
  "Registration timeout (s)": "Tiempos de espera de registro",
35
42
  "Rescue service": "Servicio de rescate",
36
43
  "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.",
37
44
  "Show incident-area polygon": "Mostrar polígono del área del incidente",
45
+ "Shows the last N incidents (N = number below) matching this instance's Monitor ID (Connection tab) as dashboard.einsatz1..einsatzN, correlated via the incident's dispatch center/district/carrier/station IDs, same matching logic as the Monitor ID dropdown itself. Monitor ID 0 (all dispatch monitors) shows all incidents. Disabling the feature removes the entire dashboard object tree; reducing the count below removes only the now-unused slots. Both take effect on the next adapter restart after saving.": "Muestra los últimos N incidentes (N = número a continuación) que coinciden con el ID del monitor de esta instancia (pestaña Conexión) como panel.einsatz1..einsatzN, correlacionados a través de los ID del centro de despacho/distrito/operador/estación del incidente, la misma lógica de coincidencia que el menú desplegable ID del monitor. El ID de monitor 0 (todos los monitores de despacho) muestra todos los incidentes. Al deshabilitar la función se elimina todo el árbol de objetos del tablero; Al reducir el recuento a continuación, se eliminan solo las ranuras que ahora no se utilizan. Ambos entran en vigor en el siguiente reinicio del adaptador después de guardar.",
38
46
  "Text appended when the keyword ends in \"-NT\" or \" nt\".": "Texto añadido cuando la palabra clave termina en \"-NT\" o \" nt\".",
39
47
  "Text appended when the keyword ends in \"f\".": "Texto añadido cuando la palabra clave termina en \"f\".",
40
48
  "Text appended when the keyword ends in \"p\".": "Texto añadido cuando la palabra clave termina en \"p\".",
@@ -4,11 +4,15 @@
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 marker dot, or of the polygon outline when one is drawn (see 'Show incident-area polygon').": "Couleur du point marqueur, ou du contour du polygone lorsqu'il en est dessiné un (voir 'Afficher le polygone de la zone d'intervention').",
6
6
  "Connection": "Connexion",
7
+ "Dashboard": "Tableau de bord",
7
8
  "Description": "Description",
9
+ "Enable dashboard": "Activer le tableau de bord",
8
10
  "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.",
9
11
  "Generate a map image for each incident": "Générer une image de carte pour chaque incident",
10
12
  "Height of the generated map image in pixels (applies to both the marker dot and the polygon outline).": "Hauteur de l'image de carte générée en pixels (s'applique aussi bien au point marqueur qu'au contour du polygone).",
11
13
  "How long to wait for the server to confirm the monitor registration before logging a warning; the connection itself keeps running either way.": "Combien de temps attendre que le serveur confirme l'enregistrement du moniteur avant d'enregistrer un avertissement ; la connexion elle-même continue de fonctionner dans les deux sens.",
14
+ "How many of the most recent matching incidents to show (dashboard.einsatz1..einsatzN). Higher values create proportionally more states/channels.": "Nombre d'incidents correspondants les plus récents à afficher (dashboard.einsatz1..einsatzN). Des valeurs plus élevées créent proportionnellement plus d'états/canaux.",
15
+ "How often the dashboard is refreshed. A full refresh connects to the server once per slot in sequence, so it realistically takes several seconds per active slot - the minimum here reflects that.": "À quelle fréquence le tableau de bord est actualisé. Une actualisation complète se connecte au serveur une fois par emplacement dans l'ordre, cela prend donc de manière réaliste plusieurs secondes par emplacement actif - le minimum ici reflète cela.",
12
16
  "Image height (px)": "Hauteur de l'image (px)",
13
17
  "Image width (px)": "Largeur de l'image (px)",
14
18
  "Incident map image": "Image de carte de l'incident",
@@ -21,20 +25,24 @@
21
25
  "Label for suffix p (polytrauma)": "Étiquette pour le suffixe p (polytraumatisme)",
22
26
  "Line thickness of the incident-area outline, in pixels.": "Épaisseur de ligne du contour de la zone d'intervention, en pixels.",
23
27
  "Loaded live from the configured server's /waip/ overview page - choose by Leitstelle, Kreis, Träger or Wache, or pick 'Alle Wachalarme' (ID 0) for every incident. If the server can't be reached, an ID can still be entered manually.": "Chargé en direct depuis la page de présentation /waip/ du serveur configuré - choisissez par Leitstelle, Kreis, Träger ou Wache, ou choisissez 'Alle Wachalarme' (ID 0) pour chaque incident. Si le serveur n'est pas accessible, un identifiant peut toujours être saisi manuellement.",
28
+ "Map images are derived from this adapter's own incident-map history (see 'Incident map image' tab) and are only available where it already generated one for a matching incident - most complete when Monitor ID is 0 and map images are enabled. A manual refresh can be triggered any time via the dashboard.refreshNow button state.": "Les images cartographiques sont dérivées de l'historique de la carte d'incident de cet adaptateur (voir l'onglet « Image de la carte d'incident ») et ne sont disponibles que lorsqu'il en a déjà généré une pour un incident correspondant - plus complet lorsque l'ID du moniteur est 0 et que les images cartographiques sont activées. Une actualisation manuelle peut être déclenchée à tout moment via l’état du bouton Dashboard.refreshNow.",
24
29
  "Maps einsatz.stichwort to einsatz.beschreibung. Comparison is case-insensitive and treats spaces/hyphens as equivalent (any run of either collapses to one before comparing), so e.g. \"H:VU mit P\" and \"H:VU-mit-P\" match the same row - no need for a separate row per spelling. If several rows match, the most specific (longest) pattern wins automatically - row order has no effect on matching, sort by any column freely. Pre-filled with an example fire/rescue keyword list as a starting point - it is not confirmed to match your own dispatch center's actual keywords, edit/replace as needed. To back up or transfer this table, use ioBroker's standard instance configuration export/import (JSON). After using that import, reload the Admin page before checking this table - the open config dialog doesn't refresh it from an external import automatically (a state-sync limitation of the Admin table component itself).": "Mappe einsatz.stichwort à einsatz.beschreibung. La comparaison ne tient pas compte de la casse et traite les espaces/tirets comme équivalents (toute suite de l'un ou l'autre est ramenée à un seul avant la comparaison), de sorte que par exemple \"H:VU mit P\" et \"H:VU-mit-P\" correspondent à la même ligne - pas besoin d'une ligne distincte par variante d'orthographe. Si plusieurs lignes correspondent, le modèle le plus spécifique (le plus long) l'emporte automatiquement - l'ordre des lignes n'a aucun effet sur la correspondance, triez-la librement par n'importe quelle colonne. Pré-rempli avec un exemple de liste de mots-clés d'incendie/sauvetage comme point de départ - il n'est pas confirmé qu'il correspond aux mots-clés réels de votre propre centre de répartition, modifiez/remplacez si nécessaire. Pour sauvegarder ou transférer ce tableau, utilisez l'export/import standard de la configuration d'instance d'ioBroker (JSON). Après avoir utilisé cet import standard, rechargez la page Admin avant de vérifier ce tableau - la boîte de dialogue de configuration ouverte ne l'actualise pas automatiquement après un import externe (une limitation de synchronisation d'état du composant de tableau Admin lui-même).",
25
30
  "Marker & outline color": "Couleur du marqueur et du contour",
26
31
  "Match": "Correspondre",
27
32
  "Maximum time to wait for the map image (OSM tile download and composition) to finish before continuing to process the incident. If it isn't ready within this time, a warning is logged and einsatz.kartenbildPfad stays empty for this incident.": "Délai d'attente maximal pour que l'image de carte (téléchargement et composition des tuiles OSM) soit terminée avant de continuer à traiter l'intervention. Si elle n'est pas prête dans ce délai, un avertissement est consigné et einsatz.kartenbildPfad reste vide pour cette intervention.",
28
33
  "Monitor ID": "ID du moniteur",
34
+ "Number of incidents to show": "Nombre d'incidents à afficher",
29
35
  "OSM timeout (s)": "Délai d'attente OSM (s)",
30
36
  "OpenStreetMap zoom level (1 = whole world, 19 = building level). Fixed zoom for the marker dot; a maximum for the polygon outline, auto-reduced if needed to keep it fully visible (see 'Show incident-area polygon').": "Niveau de zoom OpenStreetMap (1 = monde entier, 19 = niveau du bâtiment). Zoom fixe pour le point marqueur ; un maximum pour le contour du polygone, réduit automatiquement si nécessaire pour le garder entièrement visible (voir 'Afficher le polygone de la zone d'intervention').",
31
37
  "Outline thickness (px)": "Épaisseur du contour (px)",
32
38
  "Process rescue-service incidents": "Traiter les incidents du service de secours",
33
39
  "Reconnect delay (s)": "Délai(s) de reconnexion",
40
+ "Refresh interval (s)": "Intervalle(s) d'actualisation",
34
41
  "Registration timeout (s)": "Délai(s) d'enregistrement",
35
42
  "Rescue service": "Service de secours",
36
43
  "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.",
37
44
  "Show incident-area polygon": "Afficher le polygone de la zone d'intervention",
45
+ "Shows the last N incidents (N = number below) matching this instance's Monitor ID (Connection tab) as dashboard.einsatz1..einsatzN, correlated via the incident's dispatch center/district/carrier/station IDs, same matching logic as the Monitor ID dropdown itself. Monitor ID 0 (all dispatch monitors) shows all incidents. Disabling the feature removes the entire dashboard object tree; reducing the count below removes only the now-unused slots. Both take effect on the next adapter restart after saving.": "Affiche les N derniers incidents (N = numéro ci-dessous) correspondant à l'ID de moniteur de cette instance (onglet Connexion) sous la forme Dashboard.einsatz1..einsatzN, corrélés via les ID de centre de répartition/district/transporteur/station de l'incident, même logique de correspondance que la liste déroulante ID de moniteur elle-même. L'ID du moniteur 0 (tous les moniteurs de répartition) affiche tous les incidents. La désactivation de la fonctionnalité supprime toute l'arborescence des objets du tableau de bord ; réduire le nombre ci-dessous supprime uniquement les emplacements désormais inutilisés. Les deux prennent effet au prochain redémarrage de l’adaptateur après l’enregistrement.",
38
46
  "Text appended when the keyword ends in \"-NT\" or \" nt\".": "Texte ajouté lorsque le mot-clé se termine par \"-NT\" ou \" nt\".",
39
47
  "Text appended when the keyword ends in \"f\".": "Texte ajouté lorsque le mot clé se termine par \"f\".",
40
48
  "Text appended when the keyword ends in \"p\".": "Texte ajouté lorsque le mot clé se termine par \"p\".",