iobroker.waip-web 0.7.29 → 0.7.31
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 +45 -27
- package/README.md +89 -181
- package/admin/i18n/de.json +7 -3
- package/admin/i18n/en.json +4 -0
- package/admin/i18n/es.json +7 -3
- package/admin/i18n/fr.json +7 -3
- package/admin/i18n/it.json +7 -3
- package/admin/i18n/nl.json +7 -3
- package/admin/i18n/pl.json +7 -3
- package/admin/i18n/pt.json +7 -3
- package/admin/i18n/ru.json +7 -3
- package/admin/i18n/uk.json +7 -3
- package/admin/i18n/zh-cn.json +7 -3
- package/admin/jsonConfig.json +24 -0
- package/io-package.json +31 -16
- package/main.js +163 -31
- package/package.json +1 -1
package/README.de.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
🇬🇧 [English version of this README](README.md)
|
|
6
6
|
|
|
7
|
-
|
|
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 **
|
|
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 (
|
|
186
|
-
Punkt-Markierung), zoomt bei Bedarf automatisch so heraus,
|
|
187
|
-
gesamte Gebiet sichtbar bleibt, Dateipfad als State
|
|
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,41 +314,58 @@ 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.
|
|
317
|
-
|
|
318
|
-
|
|
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
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
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
|
-
geschrieben wird. Die
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
339
|
+
geschrieben wird. Die Alarmverarbeitung wartet auf die Fertigstellung
|
|
340
|
+
des Bildes, bevor sie fortfährt – `einsatz.kartenbildPfad` trägt daher
|
|
341
|
+
garantiert schon den richtigen Wert, sobald auch die übrigen Felder des
|
|
342
|
+
Einsatzes (z.B. `einsatz.alarmAktiv`) verfügbar werden – allerdings
|
|
343
|
+
höchstens bis zum konfigurierbaren **OSM-Timeout**: Ist der
|
|
344
|
+
Kachel-Download/die Bildzusammensetzung bis dahin nicht fertig, wird
|
|
345
|
+
eine Warnung geloggt und `einsatz.kartenbildPfad` bleibt für diesen
|
|
346
|
+
Einsatz leer, ohne die Alarmverarbeitung unbegrenzt zu blockieren.
|
|
337
347
|
|
|
338
348
|
| Feld | Beschreibung | Default |
|
|
339
349
|
| --- | --- | --- |
|
|
350
|
+
| Einsatzgebiet-Polygon anzeigen | Das von WAIP-Web gesendete Original-Polygon zeichnen (an) vs. immer eine zentrierte Punkt-Markierung zeigen (aus) | *(an)* |
|
|
340
351
|
| Bildbreite (px) | Breite des erzeugten PNGs | `600` |
|
|
341
352
|
| 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 | `
|
|
353
|
+
| 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
354
|
| 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) | `
|
|
355
|
+
| Umriss-Strichstärke (px) | Linienstärke des Umrisses in Pixeln (1-12) | `4` |
|
|
356
|
+
| OSM-Timeout (s) | Maximale Wartezeit auf das Bild (Kachel-Download und -Zusammensetzung), bevor ohne es fortgefahren wird (1-60) | `10` |
|
|
345
357
|
|
|
346
358
|
Die Bilder liegen im eigenen Datenverzeichnis dieser Adapterinstanz
|
|
347
359
|
(`iobroker-data/<instance>/maps/`), nicht als ioBroker-Dateiobjekte –
|
|
348
360
|
`einsatz.kartenbildPfad` ist deshalb ein echter, absoluter
|
|
349
361
|
Dateisystempfad, den ein auf demselben Host laufendes Skript direkt
|
|
350
|
-
lesen kann.
|
|
362
|
+
lesen kann. Dieses Verzeichnis wird **nicht** automatisch gelöscht,
|
|
363
|
+
wenn der Adapter gestoppt oder seine Instanzkonfiguration
|
|
364
|
+
zurückgesetzt wird; um es bei einer Deinstallation zu entfernen,
|
|
365
|
+
im Bestätigungsdialog beim Löschen der Instanz/des Adapters in Admin
|
|
366
|
+
die Option **"Auch Instanzdaten löschen"** anhaken (seit js-controller
|
|
367
|
+
4.0 / Admin 5 für das Instanzdaten-Verzeichnis jedes Adapters verfügbar
|
|
368
|
+
– standardmäßig nicht angehakt).
|
|
351
369
|
|
|
352
370
|
> **Hinweis:** Genutzt wird der offizielle, kostenlose Server
|
|
353
371
|
> `tile.openstreetmap.org`, der für gelegentliche/geringe Nutzung
|
|
@@ -425,7 +443,7 @@ stehen. Der zuletzt abgeschlossene Einsatz bleibt trotzdem über
|
|
|
425
443
|
| `ablaufzeit` | string (date) | Ende der Standby-Anzeigedauer, Basis für `restzeit` |
|
|
426
444
|
| `sondersignal` | number | `1` = Sondersignal, sonst kein Sondersignal |
|
|
427
445
|
| `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).
|
|
446
|
+
| `kartenbildPfad` | string | Pfad zum zuletzt erzeugten Einsatzkarten-Bild (PNG) - siehe [Einsatzkarte](#einsatzkarte). Leer bis das Bild für den aktuellen Einsatz fertig ist; wird außerdem zu Beginn eines neuen Einsatzes, bei einem Fehlschlag der Erzeugung oder falls das OSM-Timeout überschritten wird geleert (bzw. bleibt leer), sowie - wie die übrigen Felder oben - bei `io.standby`. Die zugrundeliegende Bild-Datei selbst wird beim Leeren des States nicht gelöscht (nur das 10er-Rotationslimit entfernt Dateien, siehe [Einsatzkarte](#einsatzkarte)) |
|
|
429
447
|
| `routenGesamt` | number | Anzahl Routen im aktuellen Einsatz |
|
|
430
448
|
| `rueckmeldungGesamt` | number | Rückmeldungen gesamt im aktuellen Einsatz |
|
|
431
449
|
| `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
|
-
|
|
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 **
|
|
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 (
|
|
188
|
-
out as needed to keep the whole area visible, file path
|
|
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,56 @@ 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
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
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. Alarm
|
|
329
|
+
processing waits for the image to finish before continuing, so
|
|
330
|
+
`einsatz.kartenbildPfad` is guaranteed to already hold the correct
|
|
331
|
+
value by the time the rest of the incident's fields (e.g.
|
|
332
|
+
`einsatz.alarmAktiv`) become available – but only up to the
|
|
333
|
+
configurable **OSM timeout**: if the tile download/composition isn't
|
|
334
|
+
done within that time, a warning is logged and
|
|
335
|
+
`einsatz.kartenbildPfad` stays empty for that incident, without
|
|
336
|
+
blocking alarm processing indefinitely.
|
|
326
337
|
|
|
327
338
|
| Field | Description | Default |
|
|
328
339
|
| --- | --- | --- |
|
|
340
|
+
| Show incident-area polygon | Draw the original polygon WAIP-Web sends (on) vs. always show a centered marker dot instead (off) | *(on)* |
|
|
329
341
|
| Image width (px) | Width of the generated PNG | `600` |
|
|
330
342
|
| 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 | `
|
|
343
|
+
| 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
344
|
| 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) | `
|
|
345
|
+
| Outline thickness (px) | Line thickness of the outline, in pixels (1-12) | `4` |
|
|
346
|
+
| OSM timeout (s) | Maximum time to wait for the image (tile download and composition) before continuing without it (1-60) | `10` |
|
|
334
347
|
|
|
335
348
|
Images are stored under this adapter instance's own data directory
|
|
336
349
|
(`iobroker-data/<instance>/maps/`), not as ioBroker file objects –
|
|
337
350
|
`einsatz.kartenbildPfad` is therefore a real, absolute filesystem path
|
|
338
|
-
that a script running on the same host can read directly.
|
|
351
|
+
that a script running on the same host can read directly. This
|
|
352
|
+
directory is **not** deleted automatically when the adapter is
|
|
353
|
+
stopped or its instance configuration is reset; to remove it when
|
|
354
|
+
uninstalling, tick **"Also delete instance data"** in the confirmation
|
|
355
|
+
dialog when deleting the instance/adapter in Admin (available since
|
|
356
|
+
js-controller 4.0 / Admin 5 for any adapter's instance data directory
|
|
357
|
+
– unchecked by default).
|
|
339
358
|
|
|
340
359
|
> **Note:** This uses the official, free `tile.openstreetmap.org`
|
|
341
360
|
> server, which is intended for occasional/low-volume use (see the
|
|
@@ -411,7 +430,7 @@ The most recently finished incident remains available via
|
|
|
411
430
|
| `ablaufzeit` | string (date) | End of the standby display duration, basis for `restzeit` |
|
|
412
431
|
| `sondersignal` | number | `1` = special signal (lights & siren), otherwise none |
|
|
413
432
|
| `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).
|
|
433
|
+
| `kartenbildPfad` | string | Path to the most recently generated incident map image (PNG) - see [Incident map image](#incident-map-image). Empty until the first image for the current incident is ready; also cleared (stays empty) at the start of a new incident, if generation fails, or if it doesn't finish within the OSM timeout, and - like the other fields above - on `io.standby`. The underlying image file itself is not deleted when the state is cleared (only the 10-image retention limit removes files, see [Incident map image](#incident-map-image)) |
|
|
415
434
|
| `routenGesamt` | number | Number of routes in the current incident |
|
|
416
435
|
| `rueckmeldungGesamt` | number | Total feedback count for the current incident |
|
|
417
436
|
| `rueckmeldungAnzahl.ek` | number | Feedback count as team member ("Einsatzkraft") |
|
|
@@ -482,6 +501,47 @@ example.
|
|
|
482
501
|
|
|
483
502
|
## Changelog
|
|
484
503
|
|
|
504
|
+
### 0.7.31 (2026-08-24)
|
|
505
|
+
|
|
506
|
+
- Fixed two `einsatz.kartenbildPfad` timing/staleness issues:
|
|
507
|
+
- Alarm processing now **waits** for the
|
|
508
|
+
[incident map image](#incident-map-image) to finish before
|
|
509
|
+
continuing, instead of generating it in the background - so
|
|
510
|
+
`einsatz.kartenbildPfad` and `einsatz.alarmAktiv` become available
|
|
511
|
+
together. The wait is capped by a new configurable **OSM timeout**
|
|
512
|
+
(1-60s, default 10s): if the image isn't ready in time, a warning
|
|
513
|
+
is logged and `kartenbildPfad` stays empty for that incident
|
|
514
|
+
instead of blocking alarm processing indefinitely.
|
|
515
|
+
- `einsatz.kartenbildPfad` is now reset immediately when a new
|
|
516
|
+
incident starts, instead of possibly still showing a previous
|
|
517
|
+
incident's stale image path (e.g. when the new incident has no
|
|
518
|
+
coordinates, or the map image feature just got disabled).
|
|
519
|
+
|
|
520
|
+
### 0.7.30 (2026-08-24)
|
|
521
|
+
|
|
522
|
+
- [Incident map image](#incident-map-image): new **Show incident-area
|
|
523
|
+
polygon** checkbox (on by default) - uncheck it to always show the
|
|
524
|
+
centered marker dot instead, even when the server sends a polygon.
|
|
525
|
+
The margin kept around the polygon when auto-zooming to fit it was
|
|
526
|
+
also reduced by 30%, so the area fills more of the image. Default
|
|
527
|
+
zoom level raised from 16 to 19, default outline thickness from 3 to
|
|
528
|
+
4 px.
|
|
529
|
+
- `einsatz.kartenbildPfad` is now cleared on `io.standby` like the
|
|
530
|
+
other `einsatz.*` fields (previously kept, matching
|
|
531
|
+
`einsatz.tts.last`'s pattern) - the image file itself is unaffected,
|
|
532
|
+
only the 10-image retention limit ever deletes files.
|
|
533
|
+
- Documented that this adapter's own data directory (generated map
|
|
534
|
+
images) is only removed on instance/adapter deletion if "Also
|
|
535
|
+
delete instance data" is checked in Admin's deletion dialog - a
|
|
536
|
+
native js-controller/Admin feature (unchecked by default), not
|
|
537
|
+
something this adapter's code controls.
|
|
538
|
+
- Removed "Unofficial"/"Inoffiziell" from both READMEs' wording; the
|
|
539
|
+
disclaimer about having no connection to the WAIP-Web project/
|
|
540
|
+
Robert-112 itself is unchanged, just reworded without that word.
|
|
541
|
+
- This Changelog section now shows only the 5 most recent versions -
|
|
542
|
+
older entries move to [CHANGELOG_OLD.md](CHANGELOG_OLD.md) on every
|
|
543
|
+
release.
|
|
544
|
+
|
|
485
545
|
### 0.7.29 (2026-08-24)
|
|
486
546
|
|
|
487
547
|
- [Incident map image](#incident-map-image): draws the actual incident
|
|
@@ -529,160 +589,8 @@ example.
|
|
|
529
589
|
already case-insensitive before this change. Admin UI help text
|
|
530
590
|
updated accordingly.
|
|
531
591
|
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
- [Keyword descriptions](#keyword-descriptions) tab: `Description` and
|
|
535
|
-
`Match` columns are now sortable too (previously only `Keyword /
|
|
536
|
-
pattern`), and the table's help text was moved above the table
|
|
537
|
-
instead of below - with many rows it used to sit far out of view.
|
|
538
|
-
|
|
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).
|
|
592
|
+
Older entries have moved to [CHANGELOG_OLD.md](CHANGELOG_OLD.md) - this
|
|
593
|
+
section shows only the 5 most recent versions.
|
|
686
594
|
|
|
687
595
|
## License
|
|
688
596
|
|
package/admin/i18n/de.json
CHANGED
|
@@ -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",
|
|
@@ -24,8 +23,10 @@
|
|
|
24
23
|
"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.",
|
|
25
24
|
"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).",
|
|
26
25
|
"Match": "Abgleich",
|
|
26
|
+
"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.",
|
|
27
27
|
"Monitor ID": "Monitor-ID",
|
|
28
28
|
"OpenStreetMap zoom level (1 = whole world, 19 = building level). Higher values show a smaller area in more detail. This is a maximum, not a fixed value: if the incident area sent by the server wouldn't fully fit in the image at this zoom, the adapter automatically zooms out (never in) just enough to keep the whole area visible.": "OpenStreetMap-Zoomstufe (1 = ganze Welt, 19 = Gebäudeebene). Höhere Werte zeigen einen kleineren Ausschnitt in mehr Detail. Das ist ein Maximalwert, kein fester Wert: Passt das vom Server gesendete Einsatzgebiet bei dieser Zoomstufe nicht vollständig ins Bild, zoomt der Adapter automatisch so weit heraus (nie hinein), wie nötig, um das gesamte Gebiet sichtbar zu halten.",
|
|
29
|
+
"OSM timeout (s)": "OSM-Timeout (s)",
|
|
29
30
|
"Outline color": "Umrissfarbe",
|
|
30
31
|
"Outline thickness (px)": "Umriss-Strichstärke (px)",
|
|
31
32
|
"Process rescue-service incidents": "Rettungsdienst-Einsätze verarbeiten",
|
|
@@ -33,7 +34,7 @@
|
|
|
33
34
|
"Registration timeout (s)": "Registrierungs-Timeout (s)",
|
|
34
35
|
"Rescue service": "Rettungsdienst",
|
|
35
36
|
"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
|
-
"
|
|
37
|
+
"Show incident-area polygon": "Einsatzgebiet-Polygon anzeigen",
|
|
37
38
|
"Text appended when the keyword ends in \"-NT\" or \" nt\".": "Text, der angehängt wird, wenn das Stichwort auf \"-NT\" oder \" nt\" endet.",
|
|
38
39
|
"Text appended when the keyword ends in \"f\".": "Text, der angehängt wird, wenn das Stichwort auf \"f\" endet.",
|
|
39
40
|
"Text appended when the keyword ends in \"p\".": "Text, der angehängt wird, wenn das Stichwort auf \"p\" endet.",
|
|
@@ -41,7 +42,10 @@
|
|
|
41
42
|
"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
43
|
"WAIP server URL": "WAIP-Server-URL",
|
|
43
44
|
"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.",
|
|
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.": "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
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.": "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
47
|
"Width of the generated map image in pixels.": "Breite des erzeugten Kartenbilds in Pixeln.",
|
|
46
|
-
"Zoom level": "Zoomstufe"
|
|
48
|
+
"Zoom level": "Zoomstufe",
|
|
49
|
+
"contains": "enthält",
|
|
50
|
+
"starts with": "beginnt mit"
|
|
47
51
|
}
|
package/admin/i18n/en.json
CHANGED
|
@@ -24,8 +24,10 @@
|
|
|
24
24
|
"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
25
|
"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).",
|
|
26
26
|
"Match": "Match",
|
|
27
|
+
"Maximum time to wait for the map image (OSM tile download and composition) to finish before continuing to process the incident. If it isn't ready within this time, a warning is logged and einsatz.kartenbildPfad stays empty for this incident.": "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.",
|
|
27
28
|
"Monitor ID": "Monitor ID",
|
|
28
29
|
"OpenStreetMap zoom level (1 = whole world, 19 = building level). Higher values show a smaller area in more detail. This is a maximum, not a fixed value: if the incident area sent by the server wouldn't fully fit in the image at this zoom, the adapter automatically zooms out (never in) just enough to keep the whole area visible.": "OpenStreetMap zoom level (1 = whole world, 19 = building level). Higher values show a smaller area in more detail. This is a maximum, not a fixed value: if the incident area sent by the server wouldn't fully fit in the image at this zoom, the adapter automatically zooms out (never in) just enough to keep the whole area visible.",
|
|
30
|
+
"OSM timeout (s)": "OSM timeout (s)",
|
|
29
31
|
"Outline color": "Outline color",
|
|
30
32
|
"Outline thickness (px)": "Outline thickness (px)",
|
|
31
33
|
"Process rescue-service incidents": "Process rescue-service incidents",
|
|
@@ -33,6 +35,7 @@
|
|
|
33
35
|
"Registration timeout (s)": "Registration timeout (s)",
|
|
34
36
|
"Rescue service": "Rescue service",
|
|
35
37
|
"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.",
|
|
38
|
+
"Show incident-area polygon": "Show incident-area polygon",
|
|
36
39
|
"starts with": "starts with",
|
|
37
40
|
"Text appended when the keyword ends in \"-NT\" or \" nt\".": "Text appended when the keyword ends in \"-NT\" or \" nt\".",
|
|
38
41
|
"Text appended when the keyword ends in \"f\".": "Text appended when the keyword ends in \"f\".",
|
|
@@ -41,6 +44,7 @@
|
|
|
41
44
|
"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
45
|
"WAIP server URL": "WAIP server URL",
|
|
43
46
|
"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.",
|
|
47
|
+
"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
48
|
"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
49
|
"Width of the generated map image in pixels.": "Width of the generated map image in pixels.",
|
|
46
50
|
"Zoom level": "Zoom level"
|
package/admin/i18n/es.json
CHANGED
|
@@ -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",
|
|
@@ -24,8 +23,10 @@
|
|
|
24
23
|
"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.",
|
|
25
24
|
"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).",
|
|
26
25
|
"Match": "Fósforo",
|
|
26
|
+
"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.",
|
|
27
27
|
"Monitor ID": "Identificador del monitor",
|
|
28
28
|
"OpenStreetMap zoom level (1 = whole world, 19 = building level). Higher values show a smaller area in more detail. This is a maximum, not a fixed value: if the incident area sent by the server wouldn't fully fit in the image at this zoom, the adapter automatically zooms out (never in) just enough to keep the whole area visible.": "Nivel de zoom de OpenStreetMap (1 = todo el mundo, 19 = nivel de edificio). Valores más altos muestran un área más pequeña con más detalle. Este es un valor máximo, no fijo: si el área del incidente enviada por el servidor no cupiera por completo en la imagen con este zoom, el adaptador aleja automáticamente el zoom (nunca lo acerca) lo justo para mantener toda el área visible.",
|
|
29
|
+
"OSM timeout (s)": "Tiempo de espera de OSM (s)",
|
|
29
30
|
"Outline color": "Color del contorno",
|
|
30
31
|
"Outline thickness (px)": "Grosor del contorno (px)",
|
|
31
32
|
"Process rescue-service incidents": "Procesar incidentes del servicio de rescate",
|
|
@@ -33,7 +34,7 @@
|
|
|
33
34
|
"Registration timeout (s)": "Tiempos de espera de registro",
|
|
34
35
|
"Rescue service": "Servicio de rescate",
|
|
35
36
|
"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
|
-
"
|
|
37
|
+
"Show incident-area polygon": "Mostrar polígono del área del incidente",
|
|
37
38
|
"Text appended when the keyword ends in \"-NT\" or \" nt\".": "Texto añadido cuando la palabra clave termina en \"-NT\" o \" nt\".",
|
|
38
39
|
"Text appended when the keyword ends in \"f\".": "Texto añadido cuando la palabra clave termina en \"f\".",
|
|
39
40
|
"Text appended when the keyword ends in \"p\".": "Texto añadido cuando la palabra clave termina en \"p\".",
|
|
@@ -41,7 +42,10 @@
|
|
|
41
42
|
"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
43
|
"WAIP server URL": "URL del servidor WAIP",
|
|
43
44
|
"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.",
|
|
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.": "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
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.": "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
47
|
"Width of the generated map image in pixels.": "Ancho de la imagen de mapa generada en píxeles.",
|
|
46
|
-
"Zoom level": "Nivel de zoom"
|
|
48
|
+
"Zoom level": "Nivel de zoom",
|
|
49
|
+
"contains": "contiene",
|
|
50
|
+
"starts with": "comienza con"
|
|
47
51
|
}
|