ioBroker.devices icon indicating copy to clipboard operation
ioBroker.devices copied to clipboard

AirCondition DP Swing doppelt, überschreibt sich selbst im Alias

Open tt-tom17 opened this issue 1 year ago • 4 comments

Describe the bug
https://github.com/ioBroker/ioBroker.type-detector/blob/ad56c80de738870cfd94cae4950c4b69859e0327/src/TypePatterns.ts#L1439

es gibt zwei Rollen level.mode.swing und switch.mode.swing die den selben Datenpunkt anlegen und damit sich selbst überschreiben. Das Ergebnis sieht dann so aus.

{ "_id": "alias.0.NSPanel_EMU.TestKlimaVirtual.SWING", "native": {}, "type": "state", "common": { "alias": { "id": "0_userdata.0.Test.Klimaanlage.Swing2" }, "name": "SWING", "role": "switch.mode.swing", "write": true, "states": { "0": "AUTO", "1": "HORIZONTAL", "2": "STATIONARY", "3": "VERTICAL" }, "type": "boolean" }, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1729771316211 }

im Device-Manager weden auch beide Rollen gleichzeitig der gewählte DP gesetzt. Die Anmerkung/Hinweis auf die Rolle unter dem DP-Feld stimmen auch nicht. Bildschirmfoto 2024-10-24 um 14 05 14

To Reproduce
Steps to reproduce the behavior: Geräte-Manager eine Klimaanlage erstellen, besondere Beachtung beim Punkt "Swing"

Versions:

  • Adapter version: 1.1.5 Geräte-Manager
  • JS-Controller version: 7.0.1
  • Node version: 20.18.0
  • Operating system: Debian 12.0

tt-tom17 avatar Oct 24 '24 12:10 tt-tom17

Thanks for creating this issue. It is more an issue with devices adapter, though. Since the pattern is allowed and AirCondition is not the only devices that applies it. I'll try to look into it.

Garfonso avatar Nov 20 '24 12:11 Garfonso

Wäre Swinglevel und Swingstate nicht sinnvoller als nur Swing. Der Device Manager zieht sich die Daten/Config aus dem typedetector.

tt-tom17 avatar Nov 21 '24 12:11 tt-tom17

Zumindest bei den states, die das Objekt oben hat, wäre "Swinglevel" aber nicht passend.

Der Device Manager zieht sich die Daten/Config aus dem typedetector.

Ja, aber wie gesagt, es ist in den Pattern erlaubt, den gleichen state mehrfach zu haben mit verschiedenen typen. Insofern ist das kein Fehler im type-detector, das Pattern ist so richtig. Wenn du einen zustätzlichen State im Pattern vorschlagen willst, ist das natürlich was anderes. Da bräuchtest du dann eine passende Rolle usw. Mach das gerne. Allerdings wäre Swinglevel für den State, den du oben hast, m.E. nicht sehr passend.

Und der Fall "an,aus,auto" oder sowas, passt halt für den State. Meiner Meinung nach auch die Optionen, die du oben hast.

Garfonso avatar Nov 25 '24 09:11 Garfonso

okay, wenn das Pattern so erlaubt ist, muss der Fehler im Device-Manager gesucht werden. Ich müsste dann eine Möglichkeit haben die richtige Rolle auszuwählen und ein überschreiben verhindert werden. Es müsste für jede Rolle auch ein eigener Aliasdatenpunkt erstellt werden. Dies wird auch nicht gemacht, was ein überschreiben auslöst.

tt-tom17 avatar Nov 25 '24 22:11 tt-tom17

Please check next version 1.2.0

GermanBluefox avatar Apr 19 '25 12:04 GermanBluefox

@tt-tom17 please check with 1.2.1

Feuer-sturm avatar Apr 23 '25 09:04 Feuer-sturm

hallo immer noch das selbe Problem

Image

er trägt in beide Zeilen den selben Pfad ein, egal welchen ich als Erstes setze. Der Letzte überschreibt dann wieder den anderen. Was mir auch aufgefallen ist das jetzt beide Rollen level.mode.swing sind. Vorher war eine switch.mode.swing

tt-tom17 avatar Apr 23 '25 10:04 tt-tom17

hallo immer noch das selbe Problem

Image er trägt in beide Zeilen den selben Pfad ein, egal welchen ich als Erstes setze. Der Letzte überschreibt dann wieder den anderen. Was mir auch aufgefallen ist das jetzt beide Rollen level.mode.swing sind. Vorher war eine switch.mode.swing

Welche iobroker.devices version?

GermanBluefox avatar Apr 23 '25 12:04 GermanBluefox

1.2.1 über die Katze oder soll ich von npm nochmal testen. Im normalen Beta war noch nix drin, vorhin.

Ich bin ja immer noch der Meinung, dass switch und level zwei separate Alias-Datenpunkte sein müssen. z.B. Swing und Swing_On

tt-tom17 avatar Apr 23 '25 15:04 tt-tom17

@tt-tom17 führe mal ein iob update in der Konsole aus, dann solltest du die 1.2.1 auch regulär im beta angeboten bekommen. Ansonsten über Katze -> npm tab -> devices bekommst du auch den neusten Stand aus dem Beta repository

Feuer-sturm avatar Apr 23 '25 15:04 Feuer-sturm

da ich die 1.2.1 drauf habe kommt sie nicht mehr in der Beta, habe nochmal über NPM installiert. Immer noch der selbe Effekt.
So sieht es im Alias dann aus. Es wird nur ein Swing angelegt. Einstellungen siehe oben, hat sich auch nicht geändert. Image

tt-tom17 avatar Apr 23 '25 15:04 tt-tom17

@tt-tom17 bitte einmal mit v1.2.2 testen

Feuer-sturm avatar Apr 26 '25 22:04 Feuer-sturm

@Feuer-sturm der Alias wird jetzt angelegt, aber bei erneuten öffnen der Konfiguration bleibt das Feld Swing_Boolean leer.

Version 1.2.4

Image Image
{
  "_id": "alias.0.NSPanel.Klimaanlage.SWING_BOOLEAN",
  "native": {},
  "type": "state",
  "common": {
    "alias": {
      "id": "0_userdata.0.Test.Klimaanlage.Swing2"
    },
    "name": "SWING_BOOLEAN",
    "role": "switch.mode.swing",
    "write": true,
    "type": "boolean"
  },
  "acl": {
    "object": 1636,
    "state": 1636,
    "owner": "system.user.admin",
    "ownerGroup": "system.group.administrator"
  },
  "from": "system.adapter.admin.0",
  "user": "system.user.admin",
  "ts": 1745916464638
}

tt-tom17 avatar Apr 29 '25 08:04 tt-tom17

@Feuer-sturm Kannst du das reproduzieren?

GermanBluefox avatar Apr 29 '25 15:04 GermanBluefox

@Feuer-sturm der Alias wird jetzt angelegt, aber bei erneuten öffnen der Konfiguration bleibt das Feld Swing_Boolean leer.

Version 1.2.4

Image Image

{
  "_id": "alias.0.NSPanel.Klimaanlage.SWING_BOOLEAN",
  "native": {},
  "type": "state",
  "common": {
    "alias": {
      "id": "0_userdata.0.Test.Klimaanlage.Swing2"
    },
    "name": "SWING_BOOLEAN",
    "role": "switch.mode.swing",
    "write": true,
    "type": "boolean"
  },
  "acl": {
    "object": 1636,
    "state": 1636,
    "owner": "system.user.admin",
    "ownerGroup": "system.group.administrator"
  },
  "from": "system.adapter.admin.0",
  "user": "system.user.admin",
  "ts": 1745916464638
}

Ich kann das nicht reproduzieren. Aber man solle nur einen Zustand verwenden. Entweder SWING oder SWING_BOOLEAN.

GermanBluefox avatar Apr 29 '25 15:04 GermanBluefox

Jetzt funktioniert es bei mir auch. Version 1.2.6 Ich schliesse hiermit das Issue

tt-tom17 avatar May 02 '25 00:05 tt-tom17