iobroker.waip-web 0.7.4 → 0.7.7

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.
@@ -0,0 +1,385 @@
1
+ # Older changes
2
+
3
+ ### 0.7.2 (2026-08-21)
4
+
5
+ - README is now English-only (per the official ioBroker adapter checker,
6
+ which flags mixed-language READMEs); the German version moved to a
7
+ separate [README.de.md](README.de.md), linked near the top.
8
+ - Moved the License section to the very end of the file (was before the
9
+ Changelog) - the checker requires License to be the last section.
10
+ - `package.json`: raised `engines.node` to `>=20` and `@iobroker/adapter-core`
11
+ to `^3.4.1`.
12
+ - `io-package.json`: raised the `js-controller` dependency to `>=6.0.11`
13
+ and the `admin` dependency to `>=7.6.17`; removed the `0.7.0` news
14
+ entry (never published to npm, only `0.7.1` and later actually are).
15
+ - `admin/jsonConfig.json`: added the root `"i18n": true` attribute (now
16
+ required since the fields resolve translations from `admin/i18n/*.json`)
17
+ and explicit `xs`/`xl` grid sizes on all fields.
18
+ - `main.js`: `require('http')`/`require('https')`/`require('url')` now
19
+ use the `node:` prefix for Node's built-in modules.
20
+ - `.gitignore`: added `.commitinfo`.
21
+ - Removed `.npmignore` - redundant with the `files` allowlist already
22
+ used in `package.json`.
23
+ - CI: `adapter-tests` now explicitly declares `needs: check-and-lint`;
24
+ raised the Node.js version used by the `check-and-lint` and `deploy`
25
+ jobs.
26
+
27
+ ### 0.7.1 (2026-08-21)
28
+
29
+ - Added a License badge to the README.
30
+
31
+ ### 0.7.0 (2026-08-21)
32
+
33
+ - Prepared the admin UI for community translation via
34
+ [ioBroker's Weblate](https://weblate.iobroker.net/engage/adapters/):
35
+ added `@iobroker/adapter-dev` as a dev dependency (`npm run
36
+ translate`), converted `admin/jsonConfig.json`'s `label`/`help` fields
37
+ from inline `en`/`de` objects to plain English keys, and added
38
+ `admin/i18n/{en,de,ru,pt,nl,fr,it,es,pl,uk,zh-cn}.json` (German
39
+ curated manually, the rest auto-translated via the official
40
+ `translate-adapter` tool — the same tool that already maintains the
41
+ `io-package.json` translations). Added a "Translation status" badge to
42
+ the README; like the "installed"/"stable" badges, it only shows real
43
+ data once the adapter is actually registered as a component on
44
+ weblate.iobroker.net (not done yet).
45
+
46
+ ### 0.6.11 (2026-08-21)
47
+
48
+ - README: logo now shown enlarged (115×115) via a new
49
+ `admin/waip-web-logo.png`, nearest-neighbor-scaled from the 32×32
50
+ source icon for a crisp (if visibly pixelated) result instead of a
51
+ blurry interpolated one — no higher-resolution source exists anywhere
52
+ in the WAIP-Web ecosystem (checked the Lausitz instance and the
53
+ upstream project, both use the same 32×32 favicon). The actual
54
+ ioBroker adapter icon (`admin/waip-web.png`, referenced from
55
+ `io-package.json`) is unchanged.
56
+ - Simplified the README title back to "ioBroker.waip-web".
57
+
58
+ ### 0.6.10 (2026-08-21)
59
+
60
+ - Added the adapter logo and npm/installation badges (NPM version,
61
+ downloads, installed, stable) to the README, matching standard
62
+ ioBroker adapter conventions. The "installed"/"stable" badges won't
63
+ show meaningful data until the adapter is listed in the official
64
+ [ioBroker.repositories](https://github.com/ioBroker/ioBroker.repositories)
65
+ ("latest" repository PR pending), but will populate automatically once
66
+ it is.
67
+
68
+ ### 0.6.9 (2026-08-21)
69
+
70
+ - Fixed adapter-checker finding **[E254]**: removed `common.news` entries
71
+ for versions that were never actually published to npm (`0.6.1`–`0.6.5`,
72
+ `0.6.7` were only version bumps in git/GitHub, without a matching
73
+ tagged npm release). `common.news` now only lists versions that really
74
+ exist on the npm registry (`0.6.6`, `0.6.8`); the full history remains
75
+ in this changelog regardless of what was actually published.
76
+
77
+ ### 0.6.8 (2026-08-21)
78
+
79
+ - Renamed the README title to "ioBroker-Adapter (ioBroker.waip-web)".
80
+ - This release doubles as the first end-to-end test of the automatic
81
+ npm publish via Trusted Publishing introduced in 0.6.7.
82
+
83
+ ### 0.6.7 (2026-08-21)
84
+
85
+ - Enabled automatic npm publishing: the `deploy` job in
86
+ `.github/workflows/test-and-release.yml` is no longer commented out
87
+ and now runs on every version tag (`vX.Y.Z`), publishing to npm via
88
+ [Trusted Publishing](https://docs.npmjs.com/trusted-publishers) (OIDC,
89
+ no `NPM_TOKEN` secret needed).
90
+
91
+ ### 0.6.6 (2026-08-21)
92
+
93
+ - Added `.gitattributes` `eol=lf` so all contributors get consistent LF
94
+ line endings regardless of their local git `autocrlf` setting
95
+ (previously caused hundreds of spurious local lint errors on Windows
96
+ without affecting CI, since CI checkouts weren't affected).
97
+ - Added `package-lock.json` and switched CI to the default `npm ci` with
98
+ caching instead of `npm install` without caching, now that a lockfile
99
+ exists.
100
+
101
+ ### 0.6.5 (2026-08-21)
102
+
103
+ - Fixed all issues reported by the official [ioBroker adapter checker](https://adapter-check.iobroker.in/):
104
+ - Bumped the required `js-controller` dependency to `>=5.0.19` and `@iobroker/adapter-core` to `^3.2.2`
105
+ - Replaced the deprecated `common.license`/`common.title`/`common.main` fields with `common.licenseInformation`/`common.titleLang`; `common.main` is redundant with `package.json`'s `main` field
106
+ - Added the required `common.tier` (`2` - external/cloud data source)
107
+ - Added translations of `titleLang`, `desc` and the kept `common.news` entries into all 10 additional ioBroker admin languages (ru, pt, nl, fr, it, es, pl, uk, zh-cn)
108
+ - Trimmed `common.news` to the 7 most recent entries, as recommended (the repository builder truncates there anyway); the full history stays in this changelog
109
+
110
+ ### 0.6.4 (2026-08-21)
111
+
112
+ - New state `status.registeredMonitorName` shows the registered monitor
113
+ as text without the ID (e.g. "Leitstelle: Lausitz"), resolved once at
114
+ startup from the same `/waip/` overview page as the admin dropdown.
115
+ `status.registeredMonitor` is unchanged and keeps showing the ID.
116
+
117
+ ### 0.6.3 (2026-08-21)
118
+
119
+ - Admin UI: the Monitor ID field is now always full-width, placed on its
120
+ own row below the WAIP server URL, so the (sometimes long) dropdown
121
+ entries have enough room to display without being cramped.
122
+
123
+ ### 0.6.2 (2026-08-21)
124
+
125
+ - Monitor dropdown entries are now sorted by numeric monitor ID instead
126
+ of following the source page's (per-category) order.
127
+
128
+ ### 0.6.1 (2026-08-21)
129
+
130
+ - Monitor dropdown entries now start with the actual monitor ID, e.g.
131
+ "4 - Leitstelle: Lausitz", so the numeric ID stays visible even after
132
+ a monitor has been selected.
133
+
134
+ ### 0.6.0 (2026-08-21)
135
+
136
+ - **Admin UI:** Monitor ID is now a live dropdown (`selectSendTo`) instead
137
+ of a plain text field. The adapter fetches the configured server's
138
+ public `/waip/` overview page on demand and offers every monitor it
139
+ finds there, grouped by Leitstelle/Kreis/Träger/Wache, with "Alle
140
+ Wachalarme" (ID `0`) as an explicit first option. Manual entry remains
141
+ available if the server can't be reached or uses a different page
142
+ layout, so existing configurations keep working unchanged.
143
+ - Removed the static "session keepalive interval" info text from the
144
+ admin UI (the behavior itself is unchanged).
145
+ - Added help text to the "Registration timeout" and "Reconnect delay"
146
+ fields.
147
+
148
+ ### 0.5.1 (2026-08-21)
149
+
150
+ - **Logging:** Reclassified log levels so `warn` becomes a reliable signal
151
+ again. Session-cookie rotation, the known "Fehler beim Erneuern der
152
+ Session" server message, and detected server restarts are now logged
153
+ as `info` instead of `warn`, since they're part of this instance's
154
+ normal, self-healing ~10-minute session cycle. Events discarded for a
155
+ different monitor ID are now `info` (frequency remains tracked via
156
+ `debug.ignoredCount`). Failures that only affect internal housekeeping
157
+ (`debug.monitorAudit`, socket cleanup) are now `debug`. A duplicate
158
+ `connect_error` log line (logged once at `warn`, once at `info`) was
159
+ removed. Introduced `error` level for cases where an incident,
160
+ feedback, route or TTS event genuinely failed to be processed (actual
161
+ data loss), so these now stand out instead of being buried among
162
+ routine `warn` noise.
163
+
164
+ ### 0.5.0 (2026-08-20)
165
+
166
+ - **Behavior change:** On `io.standby`, all `einsatz.*` states (including
167
+ `einsatz.json` and all counters) are now cleared instead of leaving the
168
+ finished incident's data in place – matching the official frontend,
169
+ which also clears keyword, location data etc. on standby.
170
+ `status.alarmAktiv` is therefore now a reliable switch for whether
171
+ `einsatz.*` currently holds real live data. The finished incident
172
+ remains fully available via `einsatz.history10` (archived there first).
173
+
174
+ ### 0.4.9 (2026-08-20)
175
+
176
+ - **CI fix:** Reverted a self-introduced, unnecessary line wrap in
177
+ `connect()` (engine-packet preview) – `prettier/prettier` flagged it as
178
+ superfluous; the line actually fits on one line within the configured
179
+ print width.
180
+
181
+ ### 0.4.8 (2026-08-20)
182
+
183
+ - **CI fix:** Fixed the final 16 lint errors – this time the complete,
184
+ non-truncated error list including the exact desired replacement text
185
+ was available, so every location could be corrected precisely 1:1
186
+ (line wraps for overly long calls/objects, one `prefer-template`
187
+ case). Lint should now be fully green.
188
+
189
+ ### 0.4.7 (2026-08-20)
190
+
191
+ - **CI fix:** Fixed the remaining lint errors in `main.js` – consistently
192
+ applied `curly` (braces even for single-line `if`/`for`),
193
+ `no-unused-vars` for empty `catch` blocks (`catch (e) {}` → `catch {}`
194
+ where `e` isn't used), and `arrowParens: avoid` (removed parentheses
195
+ around single-parameter arrow functions). Purely mechanical code-style
196
+ fixes, no behavior change.
197
+
198
+ ### 0.4.6 (2026-08-20)
199
+
200
+ - **CI fix:** The `lint` step failed with hundreds of formatting errors
201
+ (e.g. "Replace 'x' with "x""). Cause: `@iobroker/eslint-config`
202
+ requires its own `prettier.config.mjs` in addition to
203
+ `eslint.config.mjs`, re-exporting the ioBroker formatting style
204
+ (single quotes, 4-space indentation, `trailingComma: 'all'`) – without
205
+ it, Prettier fell back to its own defaults (double quotes). File added.
206
+
207
+ ### 0.4.5 (2026-08-20)
208
+
209
+ - **CI fix:** The first pipeline run failed with "Dependencies lock file
210
+ is not found". Cause: `actions/setup-node`'s built-in npm caching
211
+ needs a `package-lock.json` for its cache key, independent of the
212
+ install command used. Since none is committed to the repo yet,
213
+ `package-cache: 'false'` is now set on both jobs.
214
+
215
+ ### 0.4.4 (2026-08-20)
216
+
217
+ - Set up the CI pipeline (`.github/workflows/test-and-release.yml`),
218
+ following the standard pattern of the official
219
+ `@iobroker/create-adapter` template: a `check-and-lint` job (ESLint
220
+ via `@iobroker/eslint-config`) and an `adapter-tests` matrix (Node
221
+ 20/22/24 × Ubuntu/Windows/macOS) via the central
222
+ `testing-action-check`/`testing-action-adapter` actions. Added
223
+ `test/package.js` and `test/integration.js` (`@iobroker/testing`)
224
+ plus `eslint.config.mjs` for this; bumped `@iobroker/testing` to
225
+ `^5.2.2`. Since no `package-lock.json` is committed yet, the pipeline
226
+ uses `npm install` instead of `npm ci`.
227
+ - Raised `engines.node` in `package.json` to `>=18` (matching the tested
228
+ Node versions and `@iobroker/testing` 5.x's requirements)
229
+ - A `deploy` job (automatic npm publishing) is prepared but commented
230
+ out until npm Trusted Publishing is set up
231
+
232
+ ### 0.4.3 (2026-08-20)
233
+
234
+ - **Bugfix:** `einsatz.id` and `einsatz.sondersignal` were declared as
235
+ `string`, but the server actually sends them as numbers
236
+ (`sondersignal`, per `client_waip.js`: `switch (data.sondersignal) {
237
+ case 1: ... }`) – ioBroker therefore logged a type warning on every
238
+ incident. Both states are now declared as `number`. Existing objects
239
+ with the old (wrong) type are automatically recreated on the next
240
+ adapter start (`migrateObjectTypes()`, generic for future type
241
+ corrections).
242
+
243
+ ### 0.4.2 (2026-08-20)
244
+
245
+ - Removed the "Session keepalive interval – upper bound" config field
246
+ again: the official `/js/session_keepalive.js` on the site hard-codes
247
+ this upper bound at 5 minutes and doesn't make it configurable. Having
248
+ an admin field for it wrongly suggested a fixed interval, even though
249
+ the actual renewal has long been fully automatic (see 0.4.1). The
250
+ upper bound is now likewise fixed at 5 minutes.
251
+
252
+ ### 0.4.1 (2026-08-20)
253
+
254
+ - **Robustness:** The session keepalive interval is now adaptive instead
255
+ of a fixed assumption. WAIP-Web's source code (`server/app_cfg.js`)
256
+ shows that the session cookie's lifetime is configurable per instance
257
+ via an environment variable (server default: 60s instead of the
258
+ previously assumed 10 minutes) – the adapter now derives the renewal
259
+ interval from the expiry time actually reported by the server
260
+ (matching `/js/session_keepalive.js` on the site: 80% of the observed
261
+ lifetime, min. 55s, at most the configured upper bound). The "Session
262
+ keepalive interval" config option is accordingly now an upper bound
263
+ rather than a fixed interval.
264
+ - Corrected a comment about `io.version`/server restarts: per
265
+ `server/auth.js`, WAIP-Web stores sessions persistently (SQLite), not
266
+ in-memory – a restart therefore normally doesn't clear them. The
267
+ proactive session refresh + reconnect on server restart remains as a
268
+ general safeguard, only the previous justification was inaccurate.
269
+
270
+ ### 0.4.0 (2026-08-20)
271
+
272
+ - **Restructured the object tree:** Feedback and routes are 1:n lists
273
+ per incident and now live as nested JSON arrays inside one overall
274
+ object `einsatz.json` (including `emAlarmiert[]`, `emWeitere[]`,
275
+ `routen[]`, `rueckmeldungen[]`) instead of several loose states.
276
+ - `einsatz.history10` replaces `history.last10` – now with the **full**
277
+ nested incident object per entry instead of just 6 reduced fields.
278
+ - New counters directly under `einsatz.*`: `routenGesamt`,
279
+ `rueckmeldungGesamt`, `rueckmeldungAnzahl.{ek,gf,zf,vf,agt,fzf,ma,med}`
280
+ (replaces `rueckmeldung.counts.*`).
281
+ - `einsatz.latitude`/`einsatz.longitude` replace
282
+ `geo.latitude`/`geo.longitude` (position is additionally available in
283
+ `einsatz.json.position`).
284
+ - New state `tts.history10` (last 10 TTS announcements).
285
+ - **Removed:** the entire `vis.*` channel, `json.raw`, `json.einsatz`,
286
+ `geo.position`, `rueckmeldung.last.json`, `routen.json`,
287
+ `routen.count`, `einsatz.emWeitere` (now part of `einsatz.json`).
288
+ - The adapter automatically removes all obsolete objects from the
289
+ previous structure on its first start after the update
290
+ (`cleanupObsoleteObjects()`).
291
+
292
+ ### 0.3.4 (2026-08-20)
293
+
294
+ - All state names (`common.name`) consistently switched to German
295
+ (previously a mix of English and German) – the adapter only makes
296
+ sense for German-speaking users anyway
297
+
298
+ ### 0.3.3 (2026-08-20)
299
+
300
+ - **Bugfix (potential data loss):** For a specific monitor ID (≠ `0`),
301
+ events were silently discarded ("unknownMonitor") after the
302
+ registration timeout elapsed, because real WAIP payloads, per
303
+ `client_waip.js`, **never** contain a monitor-identifying field – that
304
+ assignment happens entirely server-side via Socket.IO rooms. As a
305
+ result, alarm delivery could stop completely after 10s even though
306
+ the connection was technically up. `status.registrationAccepted`
307
+ stayed permanently `false` for the same reason, even for the global
308
+ monitor (`0`). Now any received event confirms the registration;
309
+ events are only discarded if a payload explicitly names a different
310
+ monitor ID.
311
+
312
+ ### 0.3.2 (2026-08-20)
313
+
314
+ - Also switched the "Registration timeout" and "Reconnect delay" config
315
+ fields from milliseconds to seconds (`registrationTimeout` →
316
+ `registrationTimeoutSec`, default `10`; `reconnectDelay` →
317
+ `reconnectDelaySec`, default `5`). Existing instances without a newly
318
+ set value automatically use the defaults.
319
+
320
+ ### 0.3.1 (2026-08-20)
321
+
322
+ - Switched the "Session keepalive interval" config field from
323
+ milliseconds to seconds (`sessionKeepaliveInterval` →
324
+ `sessionKeepaliveIntervalSec`, still defaulting to 5 min = `300`).
325
+ Existing instances without a newly set value automatically use the
326
+ default.
327
+
328
+ ### 0.3.0 (2026-08-20)
329
+
330
+ - **Bugfix:** `wgs84_x`/`wgs84_y` were swapped (latitude/longitude). Per
331
+ the official web frontend (`client_waip.js`), `wgs84_x = latitude,
332
+ wgs84_y = longitude` – contrary to the usual GIS convention.
333
+ `geo.latitude`/`geo.longitude` were therefore swapped for directly
334
+ transmitted coordinates (not the GeoJSON fallback path).
335
+ - Added the missing `io.standby` handler: `status.alarmAktiv` was
336
+ previously never reset when an incident ended
337
+ - Captured new incident fields (previously only contained in the raw
338
+ `json.raw`/`json.einsatz`, now as their own states): `zeitstempel`,
339
+ `einsatznummer`, `objekt`, `objektteil`, `strasse`, `hausnummer`,
340
+ `einsatzdetails`, `besonderheiten`, `permissions`
341
+ - `em_alarmiert` (alerted resources) is now stored in
342
+ `vis.fahrzeugTabelle`, `em_weitere` in `einsatz.emWeitere`
343
+ - Feedback is now collected per incident (`vis.rueckmeldungenTabelle`)
344
+ and aggregated into counters per role/capability
345
+ (`rueckmeldung.counts.*`), mirroring the live badges
346
+ (EK/GF/ZF/VF/AGT/FZF/MA/MED) on the web UI
347
+ - New handlers for `io.error` (→ `debug.lastError`) and `io.version`
348
+ (server-restart detection → session-cookie refresh + forced reconnect)
349
+ - Generalized `reconnectForRotatedSession()` into the more generic
350
+ `forceReconnect(reason)` (now also used on a server version change)
351
+
352
+ ### 0.2.1 (2026-08-20)
353
+
354
+ - Detected session-cookie rotation: if `/session/keepalive` returns a
355
+ different cookie value than before (e.g. because the old session was
356
+ already invalid server-side – a missed keepalive, a server restart
357
+ with an in-memory session store), an existing Socket.IO connection is
358
+ now actively rebuilt with the new session instead of waiting for a
359
+ silent failure
360
+
361
+ ### 0.2.0 (2026-08-20)
362
+
363
+ - Introduced session-cookie management: the adapter fetches and renews
364
+ the WAIP server's `connect.sid` session cookie itself (`GET
365
+ /session/keepalive`, matching `/js/session_keepalive.js` on the site)
366
+ and attaches it to the Socket.IO connection. Fixes alarm delivery
367
+ stopping after about 10 minutes without an active browser session.
368
+ - New state `debug.sessionExpires` and a new config option "Session
369
+ keepalive interval (ms)" (default `300000`)
370
+
371
+ ### 0.1.1 (2026-08-20)
372
+
373
+ - Adopted the favicon from `wachalarm.leitstelle-lausitz.de` as the
374
+ adapter icon (`admin/waip-web.png`), replacing the previous
375
+ placeholder
376
+ - Renamed the GitHub repository from `ioBroker.WAIP-Web` to
377
+ `ioBroker.waip-web` (uppercase letters in the repo name prevented
378
+ installation via `iobroker url` with `Process exited with code 25`);
379
+ updated all URLs in `package.json`/`io-package.json` accordingly
380
+
381
+ ### 0.1.0 (2026-08-20)
382
+
383
+ - Initial version: ported the original "WAIP Instrumented v3.9" ioBroker
384
+ JavaScript-adapter script into a standalone adapter. The URL/monitor
385
+ ID now come from the admin configuration instead of a runtime state.
package/README.md CHANGED
@@ -206,6 +206,33 @@ inside the JSON value, not their own ioBroker states.
206
206
 
207
207
  ## Changelog
208
208
 
209
+ ### 0.7.7 (2026-08-21)
210
+
211
+ - Fixed **[E254]**: removed the orphaned `0.7.5` entry from
212
+ `common.news` - like `0.7.0` and `0.7.3` before it, that version was
213
+ never actually tagged/published to npm (`0.7.4` was followed directly
214
+ by `0.7.6`, which is now confirmed live under `latest`).
215
+
216
+ ### 0.7.6 (2026-08-21)
217
+
218
+ - Fixed **[W6019]** and **[W0062]**: added `@alcalzone/release-script`
219
+ and `@alcalzone/release-script-plugin-iobroker` as dev dependencies
220
+ (with an `npm run release` script), and split this changelog - the 5
221
+ most recent entries stay here, everything older moved to
222
+ [CHANGELOG_OLD.md](CHANGELOG_OLD.md). Our existing manual
223
+ version-bump/tag workflow (see below) is unchanged; the tool is
224
+ available but not actively used for releasing yet.
225
+
226
+ ### 0.7.5 (2026-08-21)
227
+
228
+ *(Also never tagged/published to npm - superseded directly by 0.7.6.)*
229
+
230
+ - Fixed **[E2004]**: removed the orphaned `0.7.3` entry from
231
+ `common.news` in `io-package.json` - that version (see below) was
232
+ never actually tagged/published to npm, `0.7.2` was followed directly
233
+ by `0.7.4`. Confirmed via a bot recheck that every other finding from
234
+ the last two rounds is now fixed.
235
+
209
236
  ### 0.7.4 (2026-08-21)
210
237
 
211
238
  - Bumped the `ioBroker/testing-action-check` GitHub Action used by the
@@ -217,6 +244,9 @@ inside the JSON value, not their own ioBroker states.
217
244
 
218
245
  ### 0.7.3 (2026-08-21)
219
246
 
247
+ *(Never tagged/published to npm - superseded directly by 0.7.4; kept
248
+ here for a complete history of what was worked on.)*
249
+
220
250
  - Addressed further findings from the official ioBroker Check and
221
251
  Service Bot (which re-scans the repository after every push):
222
252
  - Removed the deprecated `common.materialize` field from
@@ -228,390 +258,7 @@ inside the JSON value, not their own ioBroker states.
228
258
  - Added `.github/dependabot.yml` for automated dependency updates
229
259
  (weekly `npm`/`github-actions` checks)
230
260
 
231
- ### 0.7.2 (2026-08-21)
232
-
233
- - README is now English-only (per the official ioBroker adapter checker,
234
- which flags mixed-language READMEs); the German version moved to a
235
- separate [README.de.md](README.de.md), linked near the top.
236
- - Moved the License section to the very end of the file (was before the
237
- Changelog) - the checker requires License to be the last section.
238
- - `package.json`: raised `engines.node` to `>=20` and `@iobroker/adapter-core`
239
- to `^3.4.1`.
240
- - `io-package.json`: raised the `js-controller` dependency to `>=6.0.11`
241
- and the `admin` dependency to `>=7.6.17`; removed the `0.7.0` news
242
- entry (never published to npm, only `0.7.1` and later actually are).
243
- - `admin/jsonConfig.json`: added the root `"i18n": true` attribute (now
244
- required since the fields resolve translations from `admin/i18n/*.json`)
245
- and explicit `xs`/`xl` grid sizes on all fields.
246
- - `main.js`: `require('http')`/`require('https')`/`require('url')` now
247
- use the `node:` prefix for Node's built-in modules.
248
- - `.gitignore`: added `.commitinfo`.
249
- - Removed `.npmignore` - redundant with the `files` allowlist already
250
- used in `package.json`.
251
- - CI: `adapter-tests` now explicitly declares `needs: check-and-lint`;
252
- raised the Node.js version used by the `check-and-lint` and `deploy`
253
- jobs.
254
-
255
- ### 0.7.1 (2026-08-21)
256
-
257
- - Added a License badge to the README.
258
-
259
- ### 0.7.0 (2026-08-21)
260
-
261
- - Prepared the admin UI for community translation via
262
- [ioBroker's Weblate](https://weblate.iobroker.net/engage/adapters/):
263
- added `@iobroker/adapter-dev` as a dev dependency (`npm run
264
- translate`), converted `admin/jsonConfig.json`'s `label`/`help` fields
265
- from inline `en`/`de` objects to plain English keys, and added
266
- `admin/i18n/{en,de,ru,pt,nl,fr,it,es,pl,uk,zh-cn}.json` (German
267
- curated manually, the rest auto-translated via the official
268
- `translate-adapter` tool — the same tool that already maintains the
269
- `io-package.json` translations). Added a "Translation status" badge to
270
- the README; like the "installed"/"stable" badges, it only shows real
271
- data once the adapter is actually registered as a component on
272
- weblate.iobroker.net (not done yet).
273
-
274
- ### 0.6.11 (2026-08-21)
275
-
276
- - README: logo now shown enlarged (115×115) via a new
277
- `admin/waip-web-logo.png`, nearest-neighbor-scaled from the 32×32
278
- source icon for a crisp (if visibly pixelated) result instead of a
279
- blurry interpolated one — no higher-resolution source exists anywhere
280
- in the WAIP-Web ecosystem (checked the Lausitz instance and the
281
- upstream project, both use the same 32×32 favicon). The actual
282
- ioBroker adapter icon (`admin/waip-web.png`, referenced from
283
- `io-package.json`) is unchanged.
284
- - Simplified the README title back to "ioBroker.waip-web".
285
-
286
- ### 0.6.10 (2026-08-21)
287
-
288
- - Added the adapter logo and npm/installation badges (NPM version,
289
- downloads, installed, stable) to the README, matching standard
290
- ioBroker adapter conventions. The "installed"/"stable" badges won't
291
- show meaningful data until the adapter is listed in the official
292
- [ioBroker.repositories](https://github.com/ioBroker/ioBroker.repositories)
293
- ("latest" repository PR pending), but will populate automatically once
294
- it is.
295
-
296
- ### 0.6.9 (2026-08-21)
297
-
298
- - Fixed adapter-checker finding **[E254]**: removed `common.news` entries
299
- for versions that were never actually published to npm (`0.6.1`–`0.6.5`,
300
- `0.6.7` were only version bumps in git/GitHub, without a matching
301
- tagged npm release). `common.news` now only lists versions that really
302
- exist on the npm registry (`0.6.6`, `0.6.8`); the full history remains
303
- in this changelog regardless of what was actually published.
304
-
305
- ### 0.6.8 (2026-08-21)
306
-
307
- - Renamed the README title to "ioBroker-Adapter (ioBroker.waip-web)".
308
- - This release doubles as the first end-to-end test of the automatic
309
- npm publish via Trusted Publishing introduced in 0.6.7.
310
-
311
- ### 0.6.7 (2026-08-21)
312
-
313
- - Enabled automatic npm publishing: the `deploy` job in
314
- `.github/workflows/test-and-release.yml` is no longer commented out
315
- and now runs on every version tag (`vX.Y.Z`), publishing to npm via
316
- [Trusted Publishing](https://docs.npmjs.com/trusted-publishers) (OIDC,
317
- no `NPM_TOKEN` secret needed).
318
-
319
- ### 0.6.6 (2026-08-21)
320
-
321
- - Added `.gitattributes` `eol=lf` so all contributors get consistent LF
322
- line endings regardless of their local git `autocrlf` setting
323
- (previously caused hundreds of spurious local lint errors on Windows
324
- without affecting CI, since CI checkouts weren't affected).
325
- - Added `package-lock.json` and switched CI to the default `npm ci` with
326
- caching instead of `npm install` without caching, now that a lockfile
327
- exists.
328
-
329
- ### 0.6.5 (2026-08-21)
330
-
331
- - Fixed all issues reported by the official [ioBroker adapter checker](https://adapter-check.iobroker.in/):
332
- - Bumped the required `js-controller` dependency to `>=5.0.19` and `@iobroker/adapter-core` to `^3.2.2`
333
- - Replaced the deprecated `common.license`/`common.title`/`common.main` fields with `common.licenseInformation`/`common.titleLang`; `common.main` is redundant with `package.json`'s `main` field
334
- - Added the required `common.tier` (`2` - external/cloud data source)
335
- - Added translations of `titleLang`, `desc` and the kept `common.news` entries into all 10 additional ioBroker admin languages (ru, pt, nl, fr, it, es, pl, uk, zh-cn)
336
- - Trimmed `common.news` to the 7 most recent entries, as recommended (the repository builder truncates there anyway); the full history stays in this changelog
337
-
338
- ### 0.6.4 (2026-08-21)
339
-
340
- - New state `status.registeredMonitorName` shows the registered monitor
341
- as text without the ID (e.g. "Leitstelle: Lausitz"), resolved once at
342
- startup from the same `/waip/` overview page as the admin dropdown.
343
- `status.registeredMonitor` is unchanged and keeps showing the ID.
344
-
345
- ### 0.6.3 (2026-08-21)
346
-
347
- - Admin UI: the Monitor ID field is now always full-width, placed on its
348
- own row below the WAIP server URL, so the (sometimes long) dropdown
349
- entries have enough room to display without being cramped.
350
-
351
- ### 0.6.2 (2026-08-21)
352
-
353
- - Monitor dropdown entries are now sorted by numeric monitor ID instead
354
- of following the source page's (per-category) order.
355
-
356
- ### 0.6.1 (2026-08-21)
357
-
358
- - Monitor dropdown entries now start with the actual monitor ID, e.g.
359
- "4 - Leitstelle: Lausitz", so the numeric ID stays visible even after
360
- a monitor has been selected.
361
-
362
- ### 0.6.0 (2026-08-21)
363
-
364
- - **Admin UI:** Monitor ID is now a live dropdown (`selectSendTo`) instead
365
- of a plain text field. The adapter fetches the configured server's
366
- public `/waip/` overview page on demand and offers every monitor it
367
- finds there, grouped by Leitstelle/Kreis/Träger/Wache, with "Alle
368
- Wachalarme" (ID `0`) as an explicit first option. Manual entry remains
369
- available if the server can't be reached or uses a different page
370
- layout, so existing configurations keep working unchanged.
371
- - Removed the static "session keepalive interval" info text from the
372
- admin UI (the behavior itself is unchanged - see [Why a session cookie
373
- is needed](#why-a-session-cookie-is-needed)).
374
- - Added help text to the "Registration timeout" and "Reconnect delay"
375
- fields.
376
-
377
- ### 0.5.1 (2026-08-21)
378
-
379
- - **Logging:** Reclassified log levels so `warn` becomes a reliable signal
380
- again. Session-cookie rotation, the known "Fehler beim Erneuern der
381
- Session" server message, and detected server restarts are now logged
382
- as `info` instead of `warn`, since they're part of this instance's
383
- normal, self-healing ~10-minute session cycle. Events discarded for a
384
- different monitor ID are now `info` (frequency remains tracked via
385
- `debug.ignoredCount`). Failures that only affect internal housekeeping
386
- (`debug.monitorAudit`, socket cleanup) are now `debug`. A duplicate
387
- `connect_error` log line (logged once at `warn`, once at `info`) was
388
- removed. Introduced `error` level for cases where an incident,
389
- feedback, route or TTS event genuinely failed to be processed (actual
390
- data loss), so these now stand out instead of being buried among
391
- routine `warn` noise.
392
-
393
- ### 0.5.0 (2026-08-20)
394
-
395
- - **Behavior change:** On `io.standby`, all `einsatz.*` states (including
396
- `einsatz.json` and all counters) are now cleared instead of leaving the
397
- finished incident's data in place – matching the official frontend,
398
- which also clears keyword, location data etc. on standby.
399
- `status.alarmAktiv` is therefore now a reliable switch for whether
400
- `einsatz.*` currently holds real live data. The finished incident
401
- remains fully available via `einsatz.history10` (archived there first).
402
-
403
- ### 0.4.9 (2026-08-20)
404
-
405
- - **CI fix:** Reverted a self-introduced, unnecessary line wrap in
406
- `connect()` (engine-packet preview) – `prettier/prettier` flagged it as
407
- superfluous; the line actually fits on one line within the configured
408
- print width.
409
-
410
- ### 0.4.8 (2026-08-20)
411
-
412
- - **CI fix:** Fixed the final 16 lint errors – this time the complete,
413
- non-truncated error list including the exact desired replacement text
414
- was available, so every location could be corrected precisely 1:1
415
- (line wraps for overly long calls/objects, one `prefer-template`
416
- case). Lint should now be fully green.
417
-
418
- ### 0.4.7 (2026-08-20)
419
-
420
- - **CI fix:** Fixed the remaining lint errors in `main.js` – consistently
421
- applied `curly` (braces even for single-line `if`/`for`),
422
- `no-unused-vars` for empty `catch` blocks (`catch (e) {}` → `catch {}`
423
- where `e` isn't used), and `arrowParens: avoid` (removed parentheses
424
- around single-parameter arrow functions). Purely mechanical code-style
425
- fixes, no behavior change.
426
-
427
- ### 0.4.6 (2026-08-20)
428
-
429
- - **CI fix:** The `lint` step failed with hundreds of formatting errors
430
- (e.g. "Replace 'x' with "x""). Cause: `@iobroker/eslint-config`
431
- requires its own `prettier.config.mjs` in addition to
432
- `eslint.config.mjs`, re-exporting the ioBroker formatting style
433
- (single quotes, 4-space indentation, `trailingComma: 'all'`) – without
434
- it, Prettier fell back to its own defaults (double quotes). File added.
435
-
436
- ### 0.4.5 (2026-08-20)
437
-
438
- - **CI fix:** The first pipeline run failed with "Dependencies lock file
439
- is not found". Cause: `actions/setup-node`'s built-in npm caching
440
- needs a `package-lock.json` for its cache key, independent of the
441
- install command used. Since none is committed to the repo yet,
442
- `package-cache: 'false'` is now set on both jobs.
443
-
444
- ### 0.4.4 (2026-08-20)
445
-
446
- - Set up the CI pipeline (`.github/workflows/test-and-release.yml`),
447
- following the standard pattern of the official
448
- `@iobroker/create-adapter` template: a `check-and-lint` job (ESLint
449
- via `@iobroker/eslint-config`) and an `adapter-tests` matrix (Node
450
- 20/22/24 × Ubuntu/Windows/macOS) via the central
451
- `testing-action-check`/`testing-action-adapter` actions. Added
452
- `test/package.js` and `test/integration.js` (`@iobroker/testing`)
453
- plus `eslint.config.mjs` for this; bumped `@iobroker/testing` to
454
- `^5.2.2`. Since no `package-lock.json` is committed yet, the pipeline
455
- uses `npm install` instead of `npm ci`.
456
- - Raised `engines.node` in `package.json` to `>=18` (matching the tested
457
- Node versions and `@iobroker/testing` 5.x's requirements)
458
- - A `deploy` job (automatic npm publishing) is prepared but commented
459
- out until npm Trusted Publishing is set up
460
-
461
- ### 0.4.3 (2026-08-20)
462
-
463
- - **Bugfix:** `einsatz.id` and `einsatz.sondersignal` were declared as
464
- `string`, but the server actually sends them as numbers
465
- (`sondersignal`, per `client_waip.js`: `switch (data.sondersignal) {
466
- case 1: ... }`) – ioBroker therefore logged a type warning on every
467
- incident. Both states are now declared as `number`. Existing objects
468
- with the old (wrong) type are automatically recreated on the next
469
- adapter start (`migrateObjectTypes()`, generic for future type
470
- corrections).
471
-
472
- ### 0.4.2 (2026-08-20)
473
-
474
- - Removed the "Session keepalive interval – upper bound" config field
475
- again: the official `/js/session_keepalive.js` on the site hard-codes
476
- this upper bound at 5 minutes and doesn't make it configurable. Having
477
- an admin field for it wrongly suggested a fixed interval, even though
478
- the actual renewal has long been fully automatic (see 0.4.1). The
479
- upper bound is now likewise fixed at 5 minutes.
480
-
481
- ### 0.4.1 (2026-08-20)
482
-
483
- - **Robustness:** The session keepalive interval is now adaptive instead
484
- of a fixed assumption. WAIP-Web's source code (`server/app_cfg.js`)
485
- shows that the session cookie's lifetime is configurable per instance
486
- via an environment variable (server default: 60s instead of the
487
- previously assumed 10 minutes) – the adapter now derives the renewal
488
- interval from the expiry time actually reported by the server
489
- (matching `/js/session_keepalive.js` on the site: 80% of the observed
490
- lifetime, min. 55s, at most the configured upper bound). The "Session
491
- keepalive interval" config option is accordingly now an upper bound
492
- rather than a fixed interval.
493
- - Corrected a comment about `io.version`/server restarts: per
494
- `server/auth.js`, WAIP-Web stores sessions persistently (SQLite), not
495
- in-memory – a restart therefore normally doesn't clear them. The
496
- proactive session refresh + reconnect on server restart remains as a
497
- general safeguard, only the previous justification was inaccurate.
498
-
499
- ### 0.4.0 (2026-08-20)
500
-
501
- - **Restructured the object tree:** Feedback and routes are 1:n lists
502
- per incident and now live as nested JSON arrays inside one overall
503
- object `einsatz.json` (including `emAlarmiert[]`, `emWeitere[]`,
504
- `routen[]`, `rueckmeldungen[]`) instead of several loose states.
505
- - `einsatz.history10` replaces `history.last10` – now with the **full**
506
- nested incident object per entry instead of just 6 reduced fields.
507
- - New counters directly under `einsatz.*`: `routenGesamt`,
508
- `rueckmeldungGesamt`, `rueckmeldungAnzahl.{ek,gf,zf,vf,agt,fzf,ma,med}`
509
- (replaces `rueckmeldung.counts.*`).
510
- - `einsatz.latitude`/`einsatz.longitude` replace
511
- `geo.latitude`/`geo.longitude` (position is additionally available in
512
- `einsatz.json.position`).
513
- - New state `tts.history10` (last 10 TTS announcements).
514
- - **Removed:** the entire `vis.*` channel, `json.raw`, `json.einsatz`,
515
- `geo.position`, `rueckmeldung.last.json`, `routen.json`,
516
- `routen.count`, `einsatz.emWeitere` (now part of `einsatz.json`).
517
- - The adapter automatically removes all obsolete objects from the
518
- previous structure on its first start after the update
519
- (`cleanupObsoleteObjects()`).
520
-
521
- ### 0.3.4 (2026-08-20)
522
-
523
- - All state names (`common.name`) consistently switched to German
524
- (previously a mix of English and German) – the adapter only makes
525
- sense for German-speaking users anyway
526
-
527
- ### 0.3.3 (2026-08-20)
528
-
529
- - **Bugfix (potential data loss):** For a specific monitor ID (≠ `0`),
530
- events were silently discarded ("unknownMonitor") after the
531
- registration timeout elapsed, because real WAIP payloads, per
532
- `client_waip.js`, **never** contain a monitor-identifying field – that
533
- assignment happens entirely server-side via Socket.IO rooms. As a
534
- result, alarm delivery could stop completely after 10s even though
535
- the connection was technically up. `status.registrationAccepted`
536
- stayed permanently `false` for the same reason, even for the global
537
- monitor (`0`). Now any received event confirms the registration;
538
- events are only discarded if a payload explicitly names a different
539
- monitor ID.
540
-
541
- ### 0.3.2 (2026-08-20)
542
-
543
- - Also switched the "Registration timeout" and "Reconnect delay" config
544
- fields from milliseconds to seconds (`registrationTimeout` →
545
- `registrationTimeoutSec`, default `10`; `reconnectDelay` →
546
- `reconnectDelaySec`, default `5`). Existing instances without a newly
547
- set value automatically use the defaults.
548
-
549
- ### 0.3.1 (2026-08-20)
550
-
551
- - Switched the "Session keepalive interval" config field from
552
- milliseconds to seconds (`sessionKeepaliveInterval` →
553
- `sessionKeepaliveIntervalSec`, still defaulting to 5 min = `300`).
554
- Existing instances without a newly set value automatically use the
555
- default.
556
-
557
- ### 0.3.0 (2026-08-20)
558
-
559
- - **Bugfix:** `wgs84_x`/`wgs84_y` were swapped (latitude/longitude). Per
560
- the official web frontend (`client_waip.js`), `wgs84_x = latitude,
561
- wgs84_y = longitude` – contrary to the usual GIS convention.
562
- `geo.latitude`/`geo.longitude` were therefore swapped for directly
563
- transmitted coordinates (not the GeoJSON fallback path).
564
- - Added the missing `io.standby` handler: `status.alarmAktiv` was
565
- previously never reset when an incident ended
566
- - Captured new incident fields (previously only contained in the raw
567
- `json.raw`/`json.einsatz`, now as their own states): `zeitstempel`,
568
- `einsatznummer`, `objekt`, `objektteil`, `strasse`, `hausnummer`,
569
- `einsatzdetails`, `besonderheiten`, `permissions`
570
- - `em_alarmiert` (alerted resources) is now stored in
571
- `vis.fahrzeugTabelle`, `em_weitere` in `einsatz.emWeitere`
572
- - Feedback is now collected per incident (`vis.rueckmeldungenTabelle`)
573
- and aggregated into counters per role/capability
574
- (`rueckmeldung.counts.*`), mirroring the live badges
575
- (EK/GF/ZF/VF/AGT/FZF/MA/MED) on the web UI
576
- - New handlers for `io.error` (→ `debug.lastError`) and `io.version`
577
- (server-restart detection → session-cookie refresh + forced reconnect)
578
- - Generalized `reconnectForRotatedSession()` into the more generic
579
- `forceReconnect(reason)` (now also used on a server version change)
580
-
581
- ### 0.2.1 (2026-08-20)
582
-
583
- - Detected session-cookie rotation: if `/session/keepalive` returns a
584
- different cookie value than before (e.g. because the old session was
585
- already invalid server-side – a missed keepalive, a server restart
586
- with an in-memory session store), an existing Socket.IO connection is
587
- now actively rebuilt with the new session instead of waiting for a
588
- silent failure
589
-
590
- ### 0.2.0 (2026-08-20)
591
-
592
- - Introduced session-cookie management: the adapter fetches and renews
593
- the WAIP server's `connect.sid` session cookie itself (`GET
594
- /session/keepalive`, matching `/js/session_keepalive.js` on the site)
595
- and attaches it to the Socket.IO connection. Fixes alarm delivery
596
- stopping after about 10 minutes without an active browser session.
597
- - New state `debug.sessionExpires` and a new config option "Session
598
- keepalive interval (ms)" (default `300000`)
599
-
600
- ### 0.1.1 (2026-08-20)
601
-
602
- - Adopted the favicon from `wachalarm.leitstelle-lausitz.de` as the
603
- adapter icon (`admin/waip-web.png`), replacing the previous
604
- placeholder
605
- - Renamed the GitHub repository from `ioBroker.WAIP-Web` to
606
- `ioBroker.waip-web` (uppercase letters in the repo name prevented
607
- installation via `iobroker url` with `Process exited with code 25`);
608
- updated all URLs in `package.json`/`io-package.json` accordingly
609
-
610
- ### 0.1.0 (2026-08-20)
611
-
612
- - Initial version: ported the original "WAIP Instrumented v3.9" ioBroker
613
- JavaScript-adapter script into a standalone adapter. The URL/monitor
614
- ID now come from the admin configuration instead of a runtime state.
261
+ Older entries have moved to [CHANGELOG_OLD.md](CHANGELOG_OLD.md).
615
262
 
616
263
  ## License
617
264
 
package/io-package.json CHANGED
@@ -1,8 +1,34 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "waip-web",
4
- "version": "0.7.4",
4
+ "version": "0.7.7",
5
5
  "news": {
6
+ "0.7.7": {
7
+ "en": "Fixed [E254]: removed the orphaned 0.7.5 news entry - like 0.7.0 and 0.7.3 before it, that version was never actually tagged/published to npm (0.7.4 was followed directly by 0.7.6).",
8
+ "de": "[E254] behoben: verwaisten 0.7.5-News-Eintrag entfernt - wie zuvor schon 0.7.0 und 0.7.3 wurde diese Version nie tatsächlich getaggt/bei npm veröffentlicht (auf 0.7.4 folgte direkt 0.7.6).",
9
+ "ru": "Исправлено [E254]: удалена осиротевшая запись новостей 0.7.5 - как и ранее 0.7.0 и 0.7.3, эта версия так и не была помечена тегом/опубликована на npm (после 0.7.4 сразу последовала 0.7.6).",
10
+ "pt": "Corrigido [E254]: removida a entrada de notícias órfã 0.7.5 - assim como 0.7.0 e 0.7.3 antes, essa versão nunca foi de fato marcada com tag/publicada no npm (0.7.4 foi seguida diretamente por 0.7.6).",
11
+ "nl": "[E254] opgelost: verweesd 0.7.5-nieuwsitem verwijderd - net als eerder 0.7.0 en 0.7.3 is die versie nooit daadwerkelijk getagd/gepubliceerd op npm (op 0.7.4 volgde direct 0.7.6).",
12
+ "fr": "Correction de [E254] : suppression de l'entrée de nouvelles orpheline 0.7.5 - comme 0.7.0 et 0.7.3 auparavant, cette version n'a jamais été réellement taguée/publiée sur npm (0.7.4 a été directement suivie de 0.7.6).",
13
+ "it": "Risolto [E254]: rimossa la voce di news orfana 0.7.5 - come già 0.7.0 e 0.7.3 in precedenza, quella versione non è mai stata effettivamente taggata/pubblicata su npm (a 0.7.4 è seguita direttamente 0.7.6).",
14
+ "es": "Se corrigió [E254]: se eliminó la entrada de noticias huérfana 0.7.5 - al igual que 0.7.0 y 0.7.3 antes, esa versión nunca se etiquetó/publicó realmente en npm (a 0.7.4 le siguió directamente 0.7.6).",
15
+ "pl": "Naprawiono [E254]: usunięto osierocony wpis news 0.7.5 - podobnie jak wcześniej 0.7.0 i 0.7.3, ta wersja nigdy nie została faktycznie otagowana/opublikowana w npm (po 0.7.4 nastąpiło bezpośrednio 0.7.6).",
16
+ "uk": "Виправлено [E254]: видалено осиротілий запис новин 0.7.5 - як і раніше 0.7.0 та 0.7.3, цю версію так і не було позначено тегом/опубліковано на npm (після 0.7.4 одразу йшла 0.7.6).",
17
+ "zh-cn": "修复了 [E254]:移除了孤立的 0.7.5 新闻条目——与之前的 0.7.0 和 0.7.3 一样,该版本从未真正打过标签/发布到 npm(0.7.4 之后直接跳到了 0.7.6)。"
18
+ },
19
+ "0.7.6": {
20
+ "en": "Fixed [W6019] and [W0062]: added @alcalzone/release-script and @alcalzone/release-script-plugin-iobroker as dev dependencies (with an npm run release script), and split the README changelog - the 5 most recent entries stay in README.md, everything older moved to a new CHANGELOG_OLD.md. Our existing manual version-bump/tag workflow is unchanged; the release-script tooling is available but not actively used for releasing yet.",
21
+ "de": "[W6019] und [W0062] behoben: @alcalzone/release-script sowie @alcalzone/release-script-plugin-iobroker als Dev-Dependencies ergänzt (mit npm run release-Skript), README-Changelog aufgeteilt - die 5 neuesten Einträge bleiben in README.md, alles Ältere ist in eine neue CHANGELOG_OLD.md ausgelagert. Unser bisheriger manueller Versions-/Tag-Workflow bleibt unverändert; das release-script-Tooling steht bereit, wird aber noch nicht aktiv zum Veröffentlichen genutzt.",
22
+ "ru": "Исправлены [W6019] и [W0062]: добавлены dev-зависимости @alcalzone/release-script и @alcalzone/release-script-plugin-iobroker (со скриптом npm run release), а changelog в README разделён — 5 последних записей остаются в README.md, всё более старое перенесено в новый файл CHANGELOG_OLD.md. Наш существующий ручной процесс повышения версии/тегирования не изменился; инструмент release-script доступен, но пока активно не используется для релизов.",
23
+ "pt": "Corrigidos [W6019] e [W0062]: adicionadas as dependências de desenvolvimento @alcalzone/release-script e @alcalzone/release-script-plugin-iobroker (com um script npm run release), e o changelog do README foi dividido - as 5 entradas mais recentes permanecem no README.md, tudo o que é mais antigo foi movido para um novo CHANGELOG_OLD.md. Nosso fluxo manual existente de aumento de versão/tag permanece inalterado; a ferramenta release-script está disponível, mas ainda não é usada ativamente para lançamentos.",
24
+ "nl": "[W6019] en [W0062] opgelost: @alcalzone/release-script en @alcalzone/release-script-plugin-iobroker toegevoegd als dev-dependencies (met een npm run release-script), en de README-changelog opgesplitst - de 5 meest recente items blijven in README.md, al het oudere is verplaatst naar een nieuwe CHANGELOG_OLD.md. Onze bestaande handmatige versie-/tag-workflow blijft ongewijzigd; de release-script-tooling is beschikbaar maar wordt nog niet actief gebruikt om te releasen.",
25
+ "fr": "Correction de [W6019] et [W0062] : ajout de @alcalzone/release-script et @alcalzone/release-script-plugin-iobroker comme dépendances de développement (avec un script npm run release), et division du changelog du README - les 5 entrées les plus récentes restent dans README.md, tout ce qui est plus ancien a été déplacé vers un nouveau CHANGELOG_OLD.md. Notre flux de travail manuel existant de bump de version/tag reste inchangé ; l'outillage release-script est disponible mais pas encore activement utilisé pour publier.",
26
+ "it": "Risolti [W6019] e [W0062]: aggiunte le dev-dependency @alcalzone/release-script e @alcalzone/release-script-plugin-iobroker (con uno script npm run release), e il changelog del README è stato suddiviso - le 5 voci più recenti restano in README.md, tutto ciò che è più vecchio è stato spostato in un nuovo CHANGELOG_OLD.md. Il nostro flusso di lavoro manuale esistente per bump di versione/tag resta invariato; lo strumento release-script è disponibile ma non ancora usato attivamente per i rilasci.",
27
+ "es": "Se corrigieron [W6019] y [W0062]: se añadieron @alcalzone/release-script y @alcalzone/release-script-plugin-iobroker como dependencias de desarrollo (con un script npm run release), y se dividió el changelog del README - las 5 entradas más recientes permanecen en README.md, todo lo más antiguo se movió a un nuevo CHANGELOG_OLD.md. Nuestro flujo de trabajo manual existente de incremento de versión/etiquetado no cambia; la herramienta release-script está disponible pero aún no se usa activamente para publicar.",
28
+ "pl": "Naprawiono [W6019] i [W0062]: dodano @alcalzone/release-script oraz @alcalzone/release-script-plugin-iobroker jako zależności deweloperskie (ze skryptem npm run release), a changelog w README podzielono - 5 najnowszych wpisów pozostaje w README.md, wszystko starsze przeniesiono do nowego pliku CHANGELOG_OLD.md. Nasz dotychczasowy ręczny proces podnoszenia wersji/tagowania pozostaje bez zmian; narzędzie release-script jest dostępne, ale nie jest jeszcze aktywnie używane do wydawania wersji.",
29
+ "uk": "Виправлено [W6019] і [W0062]: додано @alcalzone/release-script та @alcalzone/release-script-plugin-iobroker як dev-залежності (зі скриптом npm run release), а changelog у README розділено - 5 найновіших записів залишаються в README.md, усе старіше перенесено до нового файлу CHANGELOG_OLD.md. Наш наявний ручний процес підвищення версії/тегування не змінився; інструмент release-script доступний, але поки що активно не використовується для релізів.",
30
+ "zh-cn": "修复了 [W6019] 和 [W0062]:添加了 @alcalzone/release-script 和 @alcalzone/release-script-plugin-iobroker 作为开发依赖(附带 npm run release 脚本),并拆分了 README 的更新日志——最近的 5 个条目保留在 README.md 中,更早的全部移至新的 CHANGELOG_OLD.md。我们现有的手动版本提升/打标签流程保持不变;release-script 工具已就绪,但目前尚未积极用于发布。"
31
+ },
6
32
  "0.7.4": {
7
33
  "en": "Bumped the ioBroker/testing-action-check GitHub Action used by the check-and-lint CI job from v1 to v2 (Dependabot PR #10) - purely additive (adds an optional test-command: 'false' flag), no behavior change for us.",
8
34
  "de": "GitHub-Action ioBroker/testing-action-check im check-and-lint-CI-Job von v1 auf v2 angehoben (Dependabot-PR #10) - rein additiv (fügt eine optionale test-command: 'false'-Option hinzu), kein Verhaltensunterschied für uns.",
@@ -16,19 +42,6 @@
16
42
  "uk": "Оновлено GitHub Action ioBroker/testing-action-check, яку використовує завдання CI check-and-lint, з v1 до v2 (Dependabot PR #10) - суто адитивно (додає опціональний прапорець test-command: 'false'), без зміни поведінки для нас.",
17
43
  "zh-cn": "将 check-and-lint CI 任务使用的 ioBroker/testing-action-check GitHub Action 从 v1 升级到 v2(Dependabot PR #10)——纯增量更新(新增可选的 test-command: 'false' 标志),对我们没有行为影响。"
18
44
  },
19
- "0.7.3": {
20
- "en": "Addressed further ioBroker Check and Service Bot findings: removed the deprecated common.materialize field (superseded by common.adminUI.config), raised engines.node to >=22 and dropped Node.js 20 (reached End of Life 2026-04-30) from the CI test matrix, raised the admin dependency to >=7.8.23, moved the check-and-lint CI job to Node 24.x, and added a .github/dependabot.yml for automated dependency updates.",
21
- "de": "Weitere Findings des ioBroker Check and Service Bot behoben: veraltetes Feld common.materialize entfernt (abgelöst durch common.adminUI.config), engines.node auf >=22 angehoben und Node.js 20 (End of Life seit 2026-04-30) aus der CI-Testmatrix entfernt, admin-Dependency auf >=7.8.23 angehoben, CI-Job check-and-lint auf Node 24.x umgestellt, sowie .github/dependabot.yml für automatische Abhängigkeits-Updates ergänzt.",
22
- "ru": "Устранены дополнительные замечания ioBroker Check and Service Bot: удалено устаревшее поле common.materialize (заменено на common.adminUI.config), engines.node повышено до >=22, Node.js 20 (End of Life с 2026-04-30) удалён из тестовой матрицы CI, зависимость admin повышена до >=7.8.23, задача CI check-and-lint переведена на Node 24.x, добавлен .github/dependabot.yml для автоматических обновлений зависимостей.",
23
- "pt": "Resolvidos mais apontamentos do ioBroker Check and Service Bot: removido o campo obsoleto common.materialize (substituído por common.adminUI.config), engines.node elevado para >=22 e Node.js 20 (End of Life desde 2026-04-30) removido da matriz de testes do CI, dependência admin elevada para >=7.8.23, job de CI check-and-lint alterado para Node 24.x, e adicionado .github/dependabot.yml para atualizações automáticas de dependências.",
24
- "nl": "Verdere bevindingen van de ioBroker Check and Service Bot opgelost: verouderd veld common.materialize verwijderd (vervangen door common.adminUI.config), engines.node verhoogd naar >=22 en Node.js 20 (End of Life sinds 2026-04-30) uit de CI-testmatrix verwijderd, admin-dependency verhoogd naar >=7.8.23, CI-job check-and-lint overgezet naar Node 24.x, en .github/dependabot.yml toegevoegd voor automatische afhankelijkheidsupdates.",
25
- "fr": "Correction d'autres remarques du ioBroker Check and Service Bot : suppression du champ obsolète common.materialize (remplacé par common.adminUI.config), engines.node relevé à >=22 et Node.js 20 (End of Life depuis le 2026-04-30) retiré de la matrice de tests CI, dépendance admin relevée à >=7.8.23, job CI check-and-lint passé à Node 24.x, et ajout de .github/dependabot.yml pour les mises à jour automatiques des dépendances.",
26
- "it": "Risolte ulteriori segnalazioni del ioBroker Check and Service Bot: rimosso il campo deprecato common.materialize (sostituito da common.adminUI.config), engines.node elevato a >=22 e Node.js 20 (End of Life dal 2026-04-30) rimosso dalla matrice di test CI, dipendenza admin elevata a >=7.8.23, job CI check-and-lint passato a Node 24.x, e aggiunto .github/dependabot.yml per aggiornamenti automatici delle dipendenze.",
27
- "es": "Se resolvieron más hallazgos del ioBroker Check and Service Bot: se eliminó el campo obsoleto common.materialize (sustituido por common.adminUI.config), se elevó engines.node a >=22 y se eliminó Node.js 20 (End of Life desde el 2026-04-30) de la matriz de pruebas de CI, se elevó la dependencia admin a >=7.8.23, el job de CI check-and-lint pasó a Node 24.x, y se añadió .github/dependabot.yml para actualizaciones automáticas de dependencias.",
28
- "pl": "Naprawiono kolejne ustalenia ioBroker Check and Service Bot: usunięto przestarzałe pole common.materialize (zastąpione przez common.adminUI.config), podniesiono engines.node do >=22 i usunięto Node.js 20 (End of Life od 2026-04-30) z macierzy testów CI, podniesiono zależność admin do >=7.8.23, zadanie CI check-and-lint przełączono na Node 24.x oraz dodano .github/dependabot.yml do automatycznych aktualizacji zależności.",
29
- "uk": "Виправлено подальші зауваження ioBroker Check and Service Bot: видалено застаріле поле common.materialize (замінене на common.adminUI.config), engines.node підвищено до >=22, а Node.js 20 (End of Life з 2026-04-30) видалено з матриці тестів CI, залежність admin підвищено до >=7.8.23, завдання CI check-and-lint переведено на Node 24.x, додано .github/dependabot.yml для автоматичних оновлень залежностей.",
30
- "zh-cn": "解决了 ioBroker Check and Service Bot 的更多问题:移除了已弃用的 common.materialize 字段(由 common.adminUI.config 取代);将 engines.node 提升至 >=22,并从 CI 测试矩阵中移除 Node.js 20(已于 2026-04-30 终止支持);将 admin 依赖提升至 >=7.8.23;将 CI 的 check-and-lint 任务切换到 Node 24.x;并新增了 .github/dependabot.yml 以实现依赖项自动更新。"
31
- },
32
45
  "0.7.2": {
33
46
  "en": "Fixed all findings from the official ioBroker Check and Service Bot: raised Node.js/dependency minimums (engines.node >=20, @iobroker/adapter-core ^3.4.1, js-controller >=6.0.11, admin >=7.6.17), split the README into English-only (README.md) and German (README.de.md) since the checker requires English-only READMEs, moved License to the very last section, added the required i18n/size attributes to jsonConfig.json, switched to node: prefixes for built-in requires, removed the redundant .npmignore, and added .commitinfo to .gitignore. Also removed the orphaned 0.7.0 news entry (never actually published to npm).",
34
47
  "de": "Alle Findings des offiziellen ioBroker Check and Service Bot behoben: Mindestversionen angehoben (engines.node >=20, @iobroker/adapter-core ^3.4.1, js-controller >=6.0.11, admin >=7.6.17), README aufgeteilt in rein englisches README.md und deutsches README.de.md (der Checker verlangt rein englische READMEs), Lizenz-Abschnitt ans Dateiende verschoben, fehlende i18n-/Größenattribute in jsonConfig.json ergänzt, auf node:-Präfixe bei Built-in-Requires umgestellt, überflüssige .npmignore entfernt und .commitinfo zur .gitignore hinzugefügt. Außerdem den verwaisten 0.7.0-News-Eintrag entfernt (wurde nie tatsächlich bei npm veröffentlicht).",
@@ -80,19 +93,6 @@
80
93
  "pl": "Dodano logo adaptera oraz odznaki npm/instalacji (wersja NPM, pobrania, zainstalowano, stabilna) do README, zgodnie ze standardowymi konwencjami adapterów ioBroker.",
81
94
  "uk": "До README додано логотип адаптера та значки npm/встановлення (версія NPM, завантаження, встановлено, стабільна версія) відповідно до стандартних угод адаптерів ioBroker.",
82
95
  "zh-cn": "已在 README 中添加适配器徽标以及 npm/安装徽章(NPM 版本、下载量、已安装数量、稳定版),符合 ioBroker 适配器的标准约定。"
83
- },
84
- "0.6.9": {
85
- "en": "Removed common.news entries for versions that were never actually published to npm (0.6.1-0.6.5, 0.6.7 - only version bumps in git, no matching npm release), as reported by the official adapter checker.",
86
- "de": "common.news-Einträge für Versionen entfernt, die nie tatsächlich bei npm veröffentlicht wurden (0.6.1-0.6.5, 0.6.7 - nur Versionserhöhungen in git, keine passende npm-Veröffentlichung), wie vom offiziellen Adapter-Checker gemeldet.",
87
- "ru": "Удалены записи common.news для версий, которые фактически никогда не публиковались в npm (0.6.1–0.6.5, 0.6.7 — только повышения версии в git без соответствующего релиза npm), как сообщил официальный чекер адаптеров.",
88
- "pt": "Removidas entradas de common.news para versões que nunca foram realmente publicadas no npm (0.6.1-0.6.5, 0.6.7 - apenas incrementos de versão no git, sem lançamento npm correspondente), conforme relatado pelo verificador oficial de adaptadores.",
89
- "nl": "common.news-items verwijderd voor versies die nooit daadwerkelijk op npm zijn gepubliceerd (0.6.1-0.6.5, 0.6.7 - alleen versieverhogingen in git, geen bijbehorende npm-release), zoals gemeld door de officiële adapter-checker.",
90
- "fr": "Suppression des entrées common.news pour des versions qui n'ont jamais été réellement publiées sur npm (0.6.1-0.6.5, 0.6.7 - simples incréments de version dans git, sans publication npm correspondante), comme signalé par le vérificateur officiel d'adaptateurs.",
91
- "it": "Rimosse le voci common.news per versioni mai effettivamente pubblicate su npm (0.6.1-0.6.5, 0.6.7 - solo incrementi di versione in git, senza una release npm corrispondente), come segnalato dal checker ufficiale degli adapter.",
92
- "es": "Se eliminaron las entradas de common.news para versiones que nunca se publicaron realmente en npm (0.6.1-0.6.5, 0.6.7 - solo incrementos de versión en git, sin la correspondiente publicación en npm), según lo indicado por el verificador oficial de adaptadores.",
93
- "pl": "Usunięto wpisy common.news dla wersji, które nigdy nie zostały faktycznie opublikowane w npm (0.6.1-0.6.5, 0.6.7 - tylko podniesienia wersji w git, bez odpowiadającego wydania npm), zgodnie z raportem oficjalnego checkera adapterów.",
94
- "uk": "Видалено записи common.news для версій, які фактично ніколи не публікувалися в npm (0.6.1-0.6.5, 0.6.7 - лише підвищення версії в git без відповідного релізу npm), як повідомив офіційний перевірник адаптерів.",
95
- "zh-cn": "移除了从未真正发布到 npm 的版本的 common.news 条目(0.6.1-0.6.5、0.6.7——仅在 git 中提升了版本号,没有对应的 npm 发布),这是官方适配器检查器报告的问题。"
96
96
  }
97
97
  },
98
98
  "titleLang": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.waip-web",
3
- "version": "0.7.4",
3
+ "version": "0.7.7",
4
4
  "description": "Wachalarm IP-Web (WAIP) Adapter für ioBroker – bindet Alarmierungen, Rückmeldungen, Routen und TTS-Ansagen per Socket.IO an ioBroker an.",
5
5
  "author": {
6
6
  "name": "rnc11",
@@ -33,13 +33,16 @@
33
33
  "io-package.json",
34
34
  "main.js",
35
35
  "LICENSE",
36
- "README.de.md"
36
+ "README.de.md",
37
+ "CHANGELOG_OLD.md"
37
38
  ],
38
39
  "dependencies": {
39
40
  "@iobroker/adapter-core": "^3.4.1",
40
41
  "socket.io-client": "^4.7.5"
41
42
  },
42
43
  "devDependencies": {
44
+ "@alcalzone/release-script": "^5.2.1",
45
+ "@alcalzone/release-script-plugin-iobroker": "^5.2.0",
43
46
  "@iobroker/adapter-dev": "^1.5.0",
44
47
  "@iobroker/eslint-config": "^2.2.0",
45
48
  "@iobroker/testing": "^5.2.2"
@@ -49,6 +52,7 @@
49
52
  "test:integration": "mocha test/integration.js --exit",
50
53
  "test": "npm run test:package",
51
54
  "lint": "eslint -c eslint.config.mjs .",
52
- "translate": "translate-adapter"
55
+ "translate": "translate-adapter",
56
+ "release": "release-script"
53
57
  }
54
58
  }