Structure schaltet nicht alle Geräte

Begonnen von FHEMGerd, 09 Juni 2020, 22:12:34

Vorheriges Thema - Nächstes Thema

FHEMGerd

Hallo,

es gibt zu meinem Problem einen Beitrag aus 2012, aber da werde ich nicht schlau draus, und die Commandref zu structure habe ich auch schon rauf und runtergelesen.
Wahrscheinlich übersehe ich was.

Meine structure besteht aus 3 Geräten, die Netzwerkeingänge auf 2 Siemens Logo 0BA7 ansprechen und sieht so aus:
define Jal_Haus_Zentral_ab structure Jal_DG_Zentral_ab Jal_EG_Zentral_ab Jal_OG_Zentral_ab
attr Jal_Haus_Zentral_ab async_delay 0.3
attr Jal_Haus_Zentral_ab clientstate_behavior last
attr Jal_Haus_Zentral_ab eventMap trigger:ab
attr Jal_Haus_Zentral_ab group Haus
attr Jal_Haus_Zentral_ab room Jalousien
attr Jal_Haus_Zentral_ab webCmd ab


Beispielhaft ein device (also ein Netzwerkeingang), hier der Jalousie Zentraltaster Dachgeschoss (DG), woher das attribut structexclude kommt weiß ich nicht, ich hab es nicht gesetzt:
define Jal_DG_Zentral_ab S7_DWrite db 0 0.0
attr Jal_DG_Zentral_ab userattr Jal_EG_Zentral_ab Jal_EG_Zentral_ab_map structexclude
attr Jal_DG_Zentral_ab IODev LogoDG
attr Jal_DG_Zentral_ab event-on-change-reading state
attr Jal_DG_Zentral_ab eventMap trigger:ab
attr Jal_DG_Zentral_ab group Zentral
attr Jal_DG_Zentral_ab room Jalousien
attr Jal_DG_Zentral_ab webCmd ab


Das Problem ist, dass nur 2 der 3 Geräte angesprochen werden. Ich habe die Struktur mal gelöscht und neu definiert, dabei habe ich bemerkt, dass die Reihenfolge, in der die Geräte aufgeführt sind scheinbar eine Rolle spielt.

Im Eventmonitor sieht man, nachdem das WebCmd "ab" für die Struktur betätigt wurde, dass nur 2 Geräte (EG und OG) angesprochen werden, DG nicht:
2020-06-09 21:15:59 structure Jal_Haus_Zentral_ab ab
2020-06-09 21:15:59 S7_DWrite Jal_EG_Zentral_ab ab
2020-06-09 21:15:59 structure Jal_Haus_Zentral_ab ab
2020-06-09 21:15:59 S7_DWrite Jal_OG_Zentral_ab ab
2020-06-09 21:15:59 structure Jal_Haus_Zentral_ab on
2020-06-09 21:15:59 S7_DWrite Jal_OG_Zentral_ab on
2020-06-09 21:15:59 S7_DRead Jal_EG_HAR_Mot_ab on
2020-06-09 21:15:59 S7_DRead Jal_EG_Wozi4_Mot_ab on
2020-06-09 21:15:59 structure Jal_Haus_Zentral_ab on
2020-06-09 21:15:59 S7_DWrite Jal_EG_Zentral_ab on
2020-06-09 21:15:59 S7_DRead Jal_EG_Abstell_Mot_ab on
2020-06-09 21:16:00 structure Jal_Haus_Zentral_ab off
2020-06-09 21:16:00 S7_DWrite Jal_EG_Zentral_ab off
2020-06-09 21:16:00 structure Jal_Haus_Zentral_ab off
2020-06-09 21:16:00 S7_DWrite Jal_OG_Zentral_ab off
2020-06-09 21:16:00 S7_DRead Jal_OG_Schlaf_Mot_ab on
2020-06-09 21:16:00 S7_DRead Jal_OG_Florian_Mot_ab on


Ich hab async_delay 0,3s ausprobiert, so wie ich verstanden habe werden dann die Geräte der Struktur im Abstand von 0,3s angesprochen, das hat aber nichts gebracht.

Freue mich, wenn jemand eine Idee hat
Gerd

amenomade

Poste mal bitte lieber ein "list" vom structure Device. Dort sieht man die registrierte Mitglieder
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

FHEMGerd

Du meinst sowas:
Internals:
   ATTR       Jal_DG_Zentral_ab
   CFGFN     
   CHANGEDCNT 20
   DEF        Jal_DG_Zentral_ab Jal_EG_Zentral_ab Jal_OG_Zentral_ab
   NAME       Jal_Haus_Zentral_ab
   NR         96
   NTFY_ORDER 50-Jal_Haus_Zentral_ab
   STATE      off
   TYPE       structure
   READINGS:
     2020-06-09 21:16:18   LastDevice      Jal_OG_Zentral_ab
     2020-06-09 21:16:18   LastDevice_Abs  Jal_OG_Zentral_ab
     2020-06-09 21:16:18   state           off
Attributes:
   async_delay 0.3
   clientstate_behavior last
   eventMap   trigger:ab
   group      Haus
   room       Jalousien
   webCmd     ab

amenomade

Sorry. Kannst Du noch "attr global showIntervalues 1" setzen, und dann wieder das "list" posten?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

FHEMGerd

So - da sind nur 2 Geräte. Aber warum ist das so, und wie änder ich es:
Internals:
   .cachedHelp Unknown argument ?, choose one of OFF ON TRIGGER saveStructState restoreStructState
   .eventMapCmd ab
   ATTR       Jal_DG_Zentral_ab
   CFGFN     
   CHANGEDCNT 20
   DEF        Jal_DG_Zentral_ab Jal_EG_Zentral_ab Jal_OG_Zentral_ab
   FUUID      5edfdeb3-f33f-05ea-e3c0-dff442beec7b8683
   NAME       Jal_Haus_Zentral_ab
   NR         96
   NTFY_ORDER 50-Jal_Haus_Zentral_ab
   STATE      off
   TYPE       structure
   .asyncQueue:
   .attraggr:
   .attrminint:
   .memberHash:
     Jal_EG_Zentral_ab off
     Jal_OG_Zentral_ab off
   .memberList:
     Jal_EG_Zentral_ab
     Jal_OG_Zentral_ab
   READINGS:
     2020-06-09 21   LastDevice      Jal_OG_Zentral_ab
     2020-06-09 21   LastDevice_Abs  Jal_OG_Zentral_ab
     2020-06-09 21   state           off
Attributes:
   async_delay 0.3
   clientstate_behavior last
   eventMap   trigger
   group      Haus
   room       Jalousien
   webCmd     ab

amenomade

addstruct Jal_Haus_Zentral_ab Jal_DG_Zentral_abund dann wieder im "list" gucken
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

xenos1984

http://fhem.de/commandref.html#structure sagt:
define <name> structure <struct_type> <dev1> <dev2> ...
Ich vermute, Jal_DG_Zentral_ab wird als struct_type interpretiert, nicht als Gerätename. Und deshalb nicht aufgenommen. Anders gesagt, in deiner Definition fehlt ein struct_type.

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

FHEMGerd

Zitat von: amenomade am 09 Juni 2020, 23:11:24
addstruct Jal_Haus_Zentral_ab Jal_DG_Zentral_abund dann wieder im "list" gucken

Das war goldrichtig vielen Dank ! Ich spar mir jetzt mal das "list" - da ist das fehlende Gerät jetzt dabei.

Diesen Hinweis:

Zitat von: xenos1984 am 10 Juni 2020, 07:53:54
http://fhem.de/commandref.html#structure sagt:
define <name> structure <struct_type> <dev1> <dev2> ...
Ich vermute, Jal_DG_Zentral_ab wird als struct_type interpretiert, nicht als Gerätename. Und deshalb nicht aufgenommen. Anders gesagt, in deiner Definition fehlt ein struct_type.

versteh ich, aber nur halb. Welchen struct_type sollte ich denn wählen, kann ich einfach einen erfinden, wozu ist der gut ?
Ist das nur ein Ordnungsmerkmal, sowas wie ein room oder eine group ?
Die Beispiele in der commandref wählen "room" als struct_type. Verwirrend.

In einer anderen FHEM Installation (geringfügig ältere Version) hab ich auch 2 funktionierende structures, hab mir da nochmal die defines angeschaut.
Da gibt es tatsächlich einen struct_type, und der schaut mir frei erfunden aus. Ich kann mich nicht erinnern, den selbst vergeben zu haben, will es aber auch nicht abstreiten  :)

Und noch ne blöde frage - wieso erscheint in der fhem.cfg der ursprüngliche define Befehl - und wieso steht im list defmod ?

Vielen Dank für Eure Hilfe - ich glaube ich hätte das Thema eher unter "Anfängerfragen" starten sollen  ::)
Gerd

amenomade

#9
struct_type ist einfach ein Name, den Du frei auswählen kannst, und dann in jeweiligen Devices in <struct_type>_map benutzen kannst, um das Verhalten / die Interpretation vom Status zu verändern, wenn die Geräte nicht alle "gleich" sind.

Siehe CommandRef https://fhem.de/commandref_DE.html#structure

EDIT: im "list", ohne "-r" Parameter, erscheint weder "define" noch "defmod". Siehst Du hier: https://forum.fhem.de/index.php/topic,111976.msg1062706.html#msg1062706 ein defmod oder ein define?

Im "list" mit "-r" Parameter, erscheint nie "defmod", sondern nur "define"
Ich vermute, Du vertauschts das Ergebnis von "list <DeviceName>" in der Kommandozeile von Fhem, und die Raw Definition eines Geräts.

defmod ist wie define, nur für schon existierende Devices. Wenn Du "define XX blabla" machst, kriegst Du eine Fehlermeldung, wenn XX schon exisitiert. Mit defmod wird nur die Definition von XX geändert. Wiederum, siehe CommandRef https://fhem.de/commandref_DE.html#defmod
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus