AirCondition DP Swing doppelt, überschreibt sich selbst im Alias
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.
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
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.
Wäre Swinglevel und Swingstate nicht sinnvoller als nur Swing. Der Device Manager zieht sich die Daten/Config aus dem typedetector.
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.
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.
Please check next version 1.2.0
@tt-tom17 please check with 1.2.1
hallo immer noch das selbe Problem
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
hallo immer noch das selbe Problem
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?
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 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
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.
@tt-tom17 bitte einmal mit v1.2.2 testen
@Feuer-sturm der Alias wird jetzt angelegt, aber bei erneuten öffnen der Konfiguration bleibt das Feld Swing_Boolean leer.
Version 1.2.4
{
"_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
}
@Feuer-sturm Kannst du das reproduzieren?
@Feuer-sturm der Alias wird jetzt angelegt, aber bei erneuten öffnen der Konfiguration bleibt das Feld Swing_Boolean leer.
Version 1.2.4
![]()
{ "_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.
Jetzt funktioniert es bei mir auch. Version 1.2.6 Ich schliesse hiermit das Issue
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
