iobroker.eos-admin 7.9.76 → 7.9.78

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.
@@ -1,7 +1,7 @@
1
1
  (() => {
2
2
  'use strict';
3
3
 
4
- window.NEXOWATT_EOS_OBJECTS_STATE_TOOLS_VERSION = 'v76-universal-manual-write';
4
+ window.NEXOWATT_EOS_OBJECTS_STATE_TOOLS_VERSION = 'v76-universal-manual-state-editor';
5
5
  window.NEXOWATT_EOS_OBJECTS_STATE_TOOLS_MODE = 'passive-native-objectbrowser';
6
6
 
7
7
  // Keep this file intentionally passive. The datapoints page must use the
@@ -1,7 +1,7 @@
1
1
  (() => {
2
2
  'use strict';
3
3
 
4
- const VERSION = 'v76-universal-manual-write';
4
+ const VERSION = 'v76-universal-manual-state-editor';
5
5
  const existing = window.NEXOWATT_EOS_POLICY_CLIENT;
6
6
  if (existing?.version === VERSION) return;
7
7
  existing?.destroy?.();
@@ -1,7 +1,7 @@
1
1
  (() => {
2
2
  'use strict';
3
3
 
4
- window.NEXOWATT_EOS_ROLE_UI_VERSION = 'v76-universal-manual-write';
4
+ window.NEXOWATT_EOS_ROLE_UI_VERSION = 'v76-universal-manual-state-editor';
5
5
 
6
6
  const ASSET_BASE = (() => {
7
7
  const script = document.currentScript?.src || document.querySelector('script[src*="eos-role-ui.js"]')?.src || window.location.href;
@@ -1,7 +1,7 @@
1
1
  (() => {
2
2
  'use strict';
3
3
 
4
- const VERSION = 'v76-universal-manual-write';
4
+ const VERSION = 'v76-universal-manual-state-editor';
5
5
  const LEGACY_ADMIN = 'admin';
6
6
  const LEGACY_ADMIN_INSTANCE = 'admin.0';
7
7
  const CORE_PROTECTED_ADAPTERS = ['admin', 'eos-admin', 'backitup', 'nexowatt-devices', 'nexowatt-device', 'nexowatt-dev', 'nexowatt-ui'];
@@ -1 +1 @@
1
- {"id":"iobroker_admin","name":"iobroker_admin","metaData":{"name":"iobroker_admin","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"iobroker_admin"},"remoteEntry":{"name":"remoteEntry-v76.js","path":"","type":"module"},"ssrRemoteEntry":{"name":"remoteEntry-v76.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"iobroker_admin","pluginVersion":"0.2.5","publicPath":"./"},"shared":[{"id":"iobroker_admin:@emotion/react","name":"@emotion/react","version":"11.14.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/emotion-react.browser.esm-DrKG52pD.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@emotion/styled","name":"@emotion/styled","version":"11.14.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/emotion-styled.browser.esm-DOdpWCne.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@iobroker/adapter-react-v5","name":"@iobroker/adapter-react-v5","version":"8.2.9","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-D2ymscJA-v76.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@iobroker/json-config","name":"@iobroker/json-config","version":"8.4.7","requiredVersion":"*","assets":{"js":{"async":["assets/index-D9Ej0pc9.js"],"sync":["assets/index-mSK_krgD.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@iobroker/dm-gui-components","name":"@iobroker/dm-gui-components","version":"9.1.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-bCuipom1.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:date-fns","name":"date-fns","version":"4.1.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-Cqq5gIUF.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:date-fns/locale","name":"date-fns/locale","version":"4.1.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/locale-CLe3aX4T.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:leaflet","name":"leaflet","version":"1.9.4","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/leaflet-src-B651YTWC.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:leaflet-geosearch","name":"leaflet-geosearch","version":"4.2.2","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/geosearch.module-BA4ww39P.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:react-ace","name":"react-ace","version":"13.0.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-C_anklzA.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:react-dropzone","name":"react-dropzone","version":"15.0.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-CXZCHHB6.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:semver","name":"semver","version":"7.7.4","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-CkI9667U.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@mui/x-date-pickers","name":"@mui/x-date-pickers","version":"7.29.4","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-uASdmaE6.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:react","name":"react","version":"18.3.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-4wMOc304.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:react-dom","name":"react-dom","version":"18.3.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-D2Em8S_O.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@mui/material","name":"@mui/material","version":"6.5.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-8JYjTPhv.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@mui/icons-material","name":"@mui/icons-material","version":"6.5.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-jy_3EbfW.js"]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[]}
1
+ {"id":"iobroker_admin","name":"iobroker_admin","metaData":{"name":"iobroker_admin","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"iobroker_admin"},"remoteEntry":{"name":"remoteEntry-v76.js","path":"","type":"module"},"ssrRemoteEntry":{"name":"remoteEntry-v76.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"iobroker_admin","pluginVersion":"0.2.5","publicPath":"./"},"shared":[{"id":"iobroker_admin:@emotion/react","name":"@emotion/react","version":"11.14.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/emotion-react.browser.esm-DrKG52pD.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@emotion/styled","name":"@emotion/styled","version":"11.14.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/emotion-styled.browser.esm-DOdpWCne.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@iobroker/adapter-react-v5","name":"@iobroker/adapter-react-v5","version":"8.2.9","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-D2ymscJA-v76.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@iobroker/json-config","name":"@iobroker/json-config","version":"8.4.7","requiredVersion":"*","assets":{"js":{"async":["assets/index-D9Ej0pc9.js"],"sync":["assets/index-mSK_krgD.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@iobroker/dm-gui-components","name":"@iobroker/dm-gui-components","version":"9.1.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-bCuipom1.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:date-fns","name":"date-fns","version":"4.1.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-Cqq5gIUF.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:date-fns/locale","name":"date-fns/locale","version":"4.1.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/locale-CLe3aX4T.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:leaflet","name":"leaflet","version":"1.9.4","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/leaflet-src-B651YTWC.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:leaflet-geosearch","name":"leaflet-geosearch","version":"4.2.2","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/geosearch.module-BA4ww39P.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:react-ace","name":"react-ace","version":"13.0.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-C_anklzA.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:react-dropzone","name":"react-dropzone","version":"15.0.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-CXZCHHB6.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:semver","name":"semver","version":"7.7.4","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-CkI9667U.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@mui/x-date-pickers","name":"@mui/x-date-pickers","version":"7.29.4","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-uASdmaE6.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:react","name":"react","version":"18.3.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-4wMOc304.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:react-dom","name":"react-dom","version":"18.3.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-D2Em8S_O.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@mui/material","name":"@mui/material","version":"6.5.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-8JYjTPhv.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_admin:@mui/icons-material","name":"@mui/icons-material","version":"6.5.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-jy_3EbfW.js"]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[]}
@@ -1 +1 @@
1
- export * from "./remoteEntry-v76.js";
1
+ export * from "./remoteEntry-v75.js";
@@ -1,16 +1,21 @@
1
- # NexoWatt EOS manual datapoint write policy
1
+ # NexoWatt EOS – manuelle Datenpunkt-Bedienung
2
2
 
3
- The EOS Admin ObjectBrowser follows `common.write` as the mandatory ioBroker write flag.
3
+ Der EOS-Datenpunktbrowser verwendet `common.write` als verbindliche ioBroker-Schreibfreigabe.
4
4
 
5
- - `common.write === false`: always read-only.
6
- - writable button/trigger: writes `true` with `ack: false`.
7
- - writable boolean: toggles the current value with `ack: false`.
8
- - writable number/string/enum/JSON: opens the native value dialog.
9
- - safety-relevant commands: enabled only while expert mode is active.
5
+ - `common.write === false`: immer nur lesend.
6
+ - Button/Trigger: typgerechter Direktwert (`common.def`, sonst `true`, `1` oder `"true"`).
7
+ - Binärer Schalter: typgerechtes Umschalten, auch für `0/1`, `ON/OFF` und zweistufige `common.states`.
8
+ - Mehrstufiger Schalter/Enum: nativer Wertdialog statt falschem Boolean-Toggle.
9
+ - Number/String/Enum: nativer Wertdialog mit Typkonvertierung und Min-/Max-Prüfung.
10
+ - Array/Object/Mixed: universeller JSON-Editor; `mixed` kann Zahl, Boolean, String, Array oder Objekt enthalten.
11
+ - Schreibfehler schließen den Dialog nicht und werden mit der Datenpunkt-ID angezeigt.
12
+ - ioBroker-ACLs und adapterseitige Validierung bleiben maßgeblich und werden nicht umgangen.
10
13
 
11
- ## Explicit safety override
14
+ ## Sicherheitsrelevante Befehle
12
15
 
13
- Device adapters should explicitly mark safety-relevant command states where possible:
16
+ Sicherheitsrelevante Befehle sind nur im Expertenmodus manuell bedienbar. Dazu gehören insbesondere Reset-/Neustartbefehle sowie Lade-, Entlade-, Strom- und Leistungsgrenzen beziehungsweise Sollwerte.
17
+
18
+ Geräteadapter sollten die Einstufung möglichst ausdrücklich setzen:
14
19
 
15
20
  ```json
16
21
  {
@@ -29,14 +34,12 @@ Device adapters should explicitly mark safety-relevant command states where poss
29
34
  }
30
35
  ```
31
36
 
32
- To override a conservative heuristic for a known-safe command, set the same flag to `false`.
37
+ Eine nachweislich ungefährliche Schreibadresse kann mit `manualWriteExpertOnly: false` von einer konservativen automatischen Einstufung ausgenommen werden.
33
38
 
34
- Supported compatibility locations are:
39
+ Unterstützte Kompatibilitätsstellen:
35
40
 
36
41
  - `native.nexowatt.manualWriteExpertOnly`
37
42
  - `native.manualWriteExpertOnly`
38
43
  - `common.custom.nexowatt.manualWriteExpertOnly`
39
44
  - `common.custom["nexowatt.eos"].manualWriteExpertOnly`
40
45
  - `common.custom["eos-admin"].manualWriteExpertOnly`
41
-
42
- The ioBroker ACL remains authoritative. The EOS policy never bypasses socket permissions or adapter-side validation.
package/io-package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "eos-admin",
4
- "version": "7.9.76",
4
+ "version": "7.9.78",
5
5
  "titleLang": {
6
6
  "en": "NexoWatt EOS Admin",
7
7
  "de": "NexoWatt EOS Admin",
@@ -19,9 +19,9 @@
19
19
  "dataSource": "push",
20
20
  "news": {
21
21
  "7.9.76": {
22
- "en": "Universal manual datapoint writing: all native state types, write-only values, typed enums, buttons and switches are handled deterministically. Safety-relevant commands remain expert-only and repeated writes are queued instead of dropped.",
23
- "de": "Universelles manuelles Beschreiben von Datenpunkten: native State-Typen, reine Schreibwerte, typisierte Enums, Buttons und Schalter werden eindeutig behandelt. Sicherheitsrelevante Befehle bleiben dem Expertenmodus vorbehalten; wiederholte Schreibbefehle werden geordnet statt verworfen.",
24
- "nl": "Universeel handmatig schrijven van datapunten: native state-typen, write-only waarden, getypeerde enums, knoppen en schakelaars worden eenduidig verwerkt. Veiligheidsrelevante opdrachten blijven expert-only; herhaalde schrijfopdrachten worden in een wachtrij uitgevoerd."
22
+ "en": "Makes every writable datapoint operable by its native type: button/trigger, boolean switch, or scalar value dialog. Safety-relevant commands are available only in expert mode and direct writes are deduplicated.",
23
+ "de": "Macht jeden beschreibbaren Datenpunkt entsprechend seinem Grundtyp bedienbar: Button/Trigger, boolescher Schalter oder Wertdialog. Sicherheitsrelevante Befehle sind nur im Expertenmodus verfügbar und direkte Schreibbefehle werden gegen Doppelauslösung geschützt.",
24
+ "nl": "Maakt elk beschrijfbaar datapunt bedienbaar volgens het basistype: knop/trigger, booleaanse schakelaar of waardedialoog. Veiligheidsrelevante opdrachten zijn alleen beschikbaar in expertmodus en directe schrijfopdrachten worden tegen dubbele activering beveiligd."
25
25
  },
26
26
  "7.9.71": {
27
27
  "en": "Fixed Module filter popups: closed keep-mounted MUI menus can no longer become visible, menu anchors remain stable, popup DOM work is scoped to open overlays, and runtime cache paths were advanced.",
@@ -274,7 +274,7 @@
274
274
  "icon": "admin.svg",
275
275
  "messagebox": true,
276
276
  "enabled": true,
277
- "extIcon": "https://unpkg.com/iobroker.eos-admin@7.9.76/admin/admin.svg",
277
+ "extIcon": "https://unpkg.com/iobroker.eos-admin@7.9.78/admin/admin.svg",
278
278
  "keywords": [
279
279
  "NexoWatt",
280
280
  "EOS",
@@ -285,7 +285,7 @@
285
285
  "licensed"
286
286
  ],
287
287
  "compact": true,
288
- "readme": "https://unpkg.com/iobroker.eos-admin@7.9.76/README.md",
288
+ "readme": "https://unpkg.com/iobroker.eos-admin@7.9.78/README.md",
289
289
  "authors": [
290
290
  "bluefox <bluefox@ccu.io>",
291
291
  "hobbyquaker <hq@ccu.io>"
@@ -354,7 +354,7 @@
354
354
  "nondeletable": false,
355
355
  "allowAdapterUpdate": true,
356
356
  "allowAdapterDelete": false,
357
- "meta": "https://unpkg.com/iobroker.eos-admin@7.9.76/io-package.json",
357
+ "meta": "https://unpkg.com/iobroker.eos-admin@7.9.78/io-package.json",
358
358
  "npmPackage": "iobroker.eos-admin",
359
359
  "packetName": "iobroker.eos-admin"
360
360
  },
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "iobroker.eos-admin",
3
3
  "description": "NexoWatt EOS Admin stable runtime with reliable module filter popups and native datapoint semantics",
4
- "version": "7.9.76",
4
+ "version": "7.9.78",
5
5
  "contributors": [
6
6
  "bluefox <dogafox@gmail.com>",
7
7
  "apollon77",
@@ -138,7 +138,7 @@
138
138
  "nexowatt:repo-entry": "node tools/nexowatt-generate-repo-entry.cjs",
139
139
  "nexowatt:patch-repo": "node tools/nexowatt-patch-repo.cjs",
140
140
  "nexowatt:repair-update": "node tools/nexowatt-repair-eos-admin-update.cjs",
141
- "check:eos-stability": "node tools/nexowatt-stability-check.cjs && node tools/nexowatt-frontend-graph-check.cjs && node tools/nexowatt-policy-selftest.cjs && node tools/nexowatt-module-popup-selftest.cjs && node tools/nexowatt-datapoint-selftest.cjs && node tools/nexowatt-update-selftest.cjs && node tools/nexowatt-datapoint-interaction-selftest.cjs && node tools/nexowatt-manual-write-policy-selftest.cjs",
141
+ "check:eos-stability": "node tools/nexowatt-stability-check.cjs && node tools/nexowatt-frontend-graph-check.cjs && node tools/nexowatt-policy-selftest.cjs && node tools/nexowatt-module-popup-selftest.cjs && node tools/nexowatt-datapoint-selftest.cjs && node tools/nexowatt-update-selftest.cjs && node tools/nexowatt-datapoint-interaction-selftest.cjs && node tools/nexowatt-manual-write-policy-selftest.cjs && node tools/nexowatt-value-column-selftest.cjs",
142
142
  "nexowatt:patch-built-frontend": "node tools/nexowatt-patch-built-frontend.cjs"
143
143
  },
144
144
  "author": "NexoWatt",