[gelöst] structure und add/delstruct "im laufenden Betrieb" funktioniert nicht

Begonnen von Stütti, 25 Oktober 2019, 22:21:31

Vorheriges Thema - Nächstes Thema

Stütti

Hallo,

ich habe Folgendes vor:
Über structure möchte ich n Rolladen-Dummies zusammenfassen und wie in der Commandref beschrieben "im laufenden Betrieb" (ohne Save) per addstruct / delstruct ein zusätzliches Device hinzufügen bzw. wieder entfernen.

Meine Definition:
define JalEgAll structure structJal JalEgGr2 JalEgGrHaus
Wobei JalEgGr.* Dummies sind.

Nach folgendem Befehl wird das Device JalEgGr3 zwar in der DEF hinzugefügt (siehe List unten), aber nicht mit gesteuert.
addstruct JalEgAll JalEgGr3

Genauso kann ich über delstruct das Device wieder aus DEF entfernen.

Wenn ich direkt die Definition editiere, wird anschließend auch das Device JalEgGr3 gesteuert.

Ebenfalls irritierend ist, dass ich ohne propagateAttr=^$ bei
addstruct JalEgAll JalEgGr3
folgende "Last unsaved structural changes" bekomme:
  attr JalEgGr2 structJal JalEgAll
  attr JalEgGrHaus structJal JalEgAll


Und bei
delstruct JalEgAll JalEgGr3
bekomme ich
  deleteAttr JalEgGr2 structJal
  deleteAttr JalEgGrHaus structJal

obwohl ich nur das Device JalEgGr3 hinzufüge oder entferne. Das hinzugefügte Device bekommt keine neuen, zusätzlichen Attribute.

List von JalEgAll
Internals:
   ATTR       structJal
   CFGFN     
   CHANGEDCNT 2
   DEF        structJal JalEgGr2 JalEgGrHaus
   FUUID      5da165bc-f33f-1686-75f2-60accac3c3d5dec3
   NAME       JalEgAll
   NR         7000
   NTFY_ORDER 50-JalEgAll
   STATE      undefined
   TYPE       structure
   READINGS:
     2019-10-25 21:38:15   LastDevice      JalEgGrHaus
     2019-10-25 21:38:15   LastDevice_Abs  JalEgGrHaus
     2019-10-25 21:38:15   state           undefined
Attributes:
   async_delay 1
   clientstate_behavior absolute
   comment    EgAll
   group      ROLLO
   propagateAttr ^$
   room       03_Jalousien
   verbose    5
   webCmd     auf:ab


List von JalEgAll nach addstruct
Internals:
   ATTR       structJal
   CFGFN     
   CHANGEDCNT 2
   DEF        structJal JalEgGr2 JalEgGrHaus JalEgGr3
   FUUID      5da165bc-f33f-1686-75f2-60accac3c3d5dec3
   NAME       JalEgAll
   NR         7000
   NTFY_ORDER 50-JalEgAll
   STATE      undefined
   TYPE       structure
   READINGS:
     2019-10-25 21:38:15   LastDevice      JalEgGrHaus
     2019-10-25 21:38:15   LastDevice_Abs  JalEgGrHaus
     2019-10-25 21:38:15   state           undefined
Attributes:
   async_delay 1
   clientstate_behavior absolute
   comment    EgAll
   group      ROLLO
   propagateAttr ^$
   room       03_Jalousien
   verbose    5
   webCmd     auf:ab


Version von structure
98_structure.pm             20272 2019-09-29 08:33:23Z rudolfkoenig

Danke & Gruß
Stütti
FHEM auf Pi 4 + FTUI auf Pi 3, Eltako 14, SignalESP, JeeLink, EasyESP, ArduCounter, eBus-Koppler, openDTU

rudolfkoenig

Danke fuer die Hinweise, ich meine die Probleme behoben zu haben, bitte testen.

Stütti

Danke, das hinzugefügte Device erhält nun ebenfalls die Set-Befehle.

Allerdings habe ich noch keine Möglichkeit gefunden, add/delstruct ohne Save zu verwenden. Oder ist das gar nicht so gedacht?
Ich habe weiter propagateAttr=^$ gesetzt, bekomme aber nach einem addstruct und anschließendem delstruct folgenden Hinweis:

Last unsaved structural changes:
  attr JalEgGr3 structJal JalEgAll
  addstruct JalEgAll JalEgGr3
  deleteAttr JalEgGr3 structJal
  delstruct JalEgAll JalEgGr3
FHEM auf Pi 4 + FTUI auf Pi 3, Eltako 14, SignalESP, JeeLink, EasyESP, ArduCounter, eBus-Koppler, openDTU

rudolfkoenig

addstruct/delstruct ist korrekt, weil die Definition der Struktur sich geaendert hat.

attr/deleteattr auch, weil structure aus historischen Gruenden bei jedem Mitglied dieses Attribut setzt, unabhaengig von der eigentlichen attr Funktion, die wiederum propageteAttr beruecksichtigt.

Stütti

FHEM auf Pi 4 + FTUI auf Pi 3, Eltako 14, SignalESP, JeeLink, EasyESP, ArduCounter, eBus-Koppler, openDTU