FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Pati_Alpha am 31 Dezember 2019, 00:09:23

Titel: Problem mit mehreren Structures?
Beitrag von: Pati_Alpha am 31 Dezember 2019, 00:09:23
Hey,

mir ist grade was sehr merkwürdiges aufgefallen, was wie ein Bug auf mich wirkt:

Ich habe mehrere Structures für die Lampen in den jeweiligen Räumen.
Nun habe ich auch ein DOIF, welches, wenn die Personengruppe "Jemand" auf off geht, alles mögliche ausschaltet:
define WeggehNote DOIF ([Jemand:"off"]) (set Wohnzimmer_Lampen off ; set Wohnzimmer_Geraete off ; set Schlafzimmer_Lampen off ; set Kueche_Lampen off ; set HUEDevice65542 off ; set Badezimmer_Lampen off ; set BettLautsprecher off ; set HM_5CCB28 off)

Das spannende ist nun: seit Kurzem schaltet im ersten Structure (Wohnzimmer_Lampen) nicht mehr alles. Genauer gesagt bleibt nur beim Auslösen von diesem Code die "SchreibtischLampe" (Teil des Structures "Wohnzimmer_Lampen") auf on.

Ich habe das Ganze dann mal weiter eingeschränkt: Führe ich nur
set Wohnzimmer_Lampen off ; set Wohnzimmer_Geraete off ; set Schlafzimmer_Lampen off ; set Kueche_Lampen off
bzw. sogar nur set Wohnzimmer_Lampen off ; set Kueche_Lampen off
aus, besteht schon das Problem, dass "SchreibtischLampe" auf on bleibt.

Grundsätzlich funktioniert das Structure aber: Befehle ich NUR "set Wohnzimmer_Lampen off", geht SchreibtischLampe korrekt mit aus.

Dann dachte ich während der Fehlersuche: ich tausche die beiden mal:
Aus set Wohnzimmer_Lampen off ; set Kueche_Lampen off
wird set Kueche_Lampen off ; set Wohnzimmer_Lampen off

Und siehe da: Es geht. Aber nicht so voreilig!
Nun steht also im gesamten Konstrukt:
set Wohnzimmer_Lampen off ; set Wohnzimmer_Geraete off ; set Schlafzimmer_Lampen off ; set Kueche_Lampen off ; set HUEDevice65542 off ; set Badezimmer_Lampen off ; set BettLautsprecher off ; set HM_5CCB28 off
also das selbe wie vorher, nur eine andere Reihenfolge und peng...: nun schaltet ein Device aus dem Structure "Schlafzimmer_Lampen" nicht mehr!

Das ist doch verrückt?!
Habt ihr schon mal davon gehört, dass Structures nicht komplett/sauber/vollständig schalten, wenn man mehrere hintereinander/auf einmal schaltet?


Vermutlich braucht ihr mehr Infos über meine Config, oder? Ich lasse euch gerne alles zukommen. Ich weiß aber logisch grad überhaupt nicht, wie das passieren kann und bin daher nicht sicher, was ich euch noch posten soll.

Viele Grüße
Patrick
Titel: Antw:Problem mit mehreren Structures?
Beitrag von: KernSani am 31 Dezember 2019, 01:43:49
Moin,

ein "list" einer structure würde vielleicht helfen. Was ich mir vorstellen kann: Wenn so viel hintereinander geschaltet wird (ich weiß ja nicht wie, aber ich vermute viel Funk) überlagern sich die Signale und es kommt zu Fehlern. Möglicherweise hilft ein "async_delay" oder eine kleine Verzögerung mittels "wait"-Attribut im DOIF.

Grüße,

Oli
Titel: Antw:Problem mit mehreren Structures?
Beitrag von: CoolTux am 31 Dezember 2019, 07:52:55
Man kann es auch so machen das man einzelne Struktur Devices in eine große Haus oder Wohnungs Strukturen passt und dann nur diese schaltet wenn alles aus soll. Nur so als Tipp.
Titel: Antw:Problem mit mehreren Structures?
Beitrag von: Gasmast3r am 31 Dezember 2019, 08:29:59
Hy Habe sowas auch am laufen nur


structure_Bewohner:absent.* set HUEGroup0,BOSE_D05FB8AAE204,BOSE_50722498B361,BOSE_50722498905A,GHoma_d35994,ESPEasy_Sonoff7_PUMP,
ESPEasy_Sonoff4_PUMP,ESPEasy_Sonoff5_PUMP,ESPEasy_Sonoff12_PUMP,ESPEasy_Sonoff2_PUMP off



und es wird immer alles geschaltet
Titel: Antw:Problem mit mehreren Structures?
Beitrag von: Pati_Alpha am 01 Januar 2020, 23:42:55
Hey,

ja, dass es generell funktioniert weiß ich ja auch. ;) Spannend ist eben nur warum das hier nicht 100% der Fall ist und so unerklärbare Ausfälle, die aber reproduzierbar sind zeigt.

Hier die "list" von Wohnzimmer_Lampen:
Internals:
   ATTR       room
   CHANGEDCNT 4
   DEF        room KommodeLampe SchreibtischLampe RegalLampe VitrineLampe TetrisLampe KnubbigLampe SubwooferLampe KerzeLichterketteLampe HUEDevice65538 HUEDevice65537
   FUUID      5cd0935b-f33f-0d46-af4a-aba987afcbe95980
   NAME       Wohnzimmer_Lampen
   NR         177
   NTFY_ORDER 50-Wohnzimmer_Lampen
   STATE      on
   TYPE       structure
   READINGS:
     2020-01-01 23:37:33   LastDevice      HUEDevice65538
     2020-01-01 23:37:33   LastDevice_Abs  HUEDevice65538
     2020-01-01 23:37:33   state           on
Attributes:
   alias      Lampen
   clientstate_behavior relative
   clientstate_priority on off
   genericDeviceType switch
   group      Generalschalter
   homebridgeMapping On=state,valueOn=on,valueOff=off,cmdOn=on,cmdOff=off
   room       Wohnzimmer,HomeKit01


und Kueche_Lampen:
Internals:
   ATTR       room
   CHANGEDCNT 1
   DEF        room ErkerLampe TischLampe KlemmLampe DunstabzugshaubeLampe HUEDevice65541
   FUUID      5cd0935b-f33f-0d46-0756-5219d661f5efde7f
   NAME       Kueche_Lampen
   NR         280
   NTFY_ORDER 50-Kueche_Lampen
   STATE      off
   TYPE       structure
   READINGS:
     2020-01-01 23:36:57   LastDevice      HUEDevice65541
     2020-01-01 23:36:57   LastDevice_Abs  HUEDevice65541
     2020-01-01 23:36:57   state           off
Attributes:
   alias      Lampen
   clientstate_behavior relative
   clientstate_priority on off
   genericDeviceType switch
   group      Generalschalter
   homebridgeMapping On=state,valueOn=on,valueOff=off,cmdOn=on,cmdOff=off
   room       Küche,HomeKit01


Danke euch. :)
Titel: Antw:Problem mit mehreren Structures?
Beitrag von: Gasmast3r am 02 Januar 2020, 06:32:26
Hy du schaltest alles per HUE?

Dann Bau doch mal so um wie ich das habe, meine bei dem Aufbau wie du früher mal Probleme gehabt zu haben.

Bei meinem Heizungs DOIF bei dem jeder Raum andere Werte bekommt klappt es mit Semikolon ([Aussen:temperature] < 12 and [structure_Bewohner] eq "present") (set Bad desiredTemperature 19;set FL desiredTemperature 17;set KU desiredTemperature 18;set WCO desiredTemperature 16;set WCU desiredTemperature 17;set ZU desiredTemperature 19;set WZ desiredTemperature 20;set Esszimmer_structure desiredTemperature 18.5;set Schlafzimmer_structure desiredTemperature 18;set Zimmer_Oben_structure desiredTemperature 18.5) DOELSEIF ([Aussen:temperature] < 12 and [structure_Bewohner] eq "absent") (set Bad desiredTemperature 16;set FL desiredTemperature 16;set KU desiredTemperature 16;set WCU desiredTemperature 16;set ZU desiredTemperature 16;set WZ desiredTemperature 16;set Esszimmer_structure desiredTemperature 16;set Schlafzimmer_structure desiredTemperature 16;set Zimmer_Oben_structure desiredTemperature 16) DOELSEIF ([Aussen:temperature] > 12) (set Bad desiredTemperature 4.5;set FL desiredTemperature 4.5;set KU desiredTemperature 4.5;set WCO desiredTemperature 4.5;set WCU desiredTemperature 4.5;set ZU desiredTemperature 4.5;set WZ desiredTemperature 4.5;set Esszimmer_structure desiredTemperature 4.5;set Schlafzimmer_structure desiredTemperature 4.5;set Zimmer_Oben_structure desiredTemperature 4.5) DOELSE
wenn alle den selben Befehl bekommen mit kommastructure_Bewohner:absent.* set HUEGroup0,BOSE_D05FB8AAE204,BOSE_50722498B361,BOSE_50722498905A,GHoma_d35994,ESPEasy_Sonoff7_PUMP,
ESPEasy_Sonoff4_PUMP,ESPEasy_Sonoff5_PUMP,ESPEasy_Sonoff12_PUMP,ESPEasy_Sonoff2_PUMP off

ich weiß nicht warum aber es ist so.
Titel: Antw:Problem mit mehreren Structures?
Beitrag von: Pati_Alpha am 15 April 2020, 23:50:00
Das Problem tritt aktuell wieder / immer noch auf.
Titel: Antw:Problem mit mehreren Structures?
Beitrag von: rudolfkoenig am 16 April 2020, 09:47:26
Um helfen zu koennen muss das Problem eingegrenzt werden:
- gibt es Probleme, wen man die Befehle _ohne_ DOIF ausfuehrt: wenn nein, bitte an DOIF wenden, sonst bitte alle weiteren Experimente ohne DOIF
- gibt es Probleme, wenn man einen der Strukturen alleine ausfuehrt? Wenn nein: welche Strukturen braucht man?
- sind im FHEM-Log im Problemfall  alle set Befehle aufgefuehrt?  Wenn nein: bitte ein "attr global verbose 5" Log des Schaltens zeigen.
- Sonst ist das vmtl. ein Funkproblem, evtl. hilft async_delay in den Strukturen, bzw ein FHEM-sleep zwischen set der unterschiedlichen Strukturen.
Titel: Antw:Problem mit mehreren Structures?
Beitrag von: KyleK am 16 April 2020, 14:18:24
Ist das Trennzeichen für mehrere Befehle in einem DOIF-Zweig nicht das Komma?
So wie ich das sehe verwendest du ein Semikolon.
Titel: Antw:Problem mit mehreren Structures?
Beitrag von: Pati_Alpha am 05 Mai 2020, 13:42:13
Zitat von: rudolfkoenig am 16 April 2020, 09:47:26
Um helfen zu koennen muss das Problem eingegrenzt werden:
- gibt es Probleme, wen man die Befehle _ohne_ DOIF ausfuehrt: wenn nein, bitte an DOIF wenden, sonst bitte alle weiteren Experimente ohne DOIF
- gibt es Probleme, wenn man einen der Strukturen alleine ausfuehrt? Wenn nein: welche Strukturen braucht man?
- sind im FHEM-Log im Problemfall  alle set Befehle aufgefuehrt?  Wenn nein: bitte ein "attr global verbose 5" Log des Schaltens zeigen.
- Sonst ist das vmtl. ein Funkproblem, evtl. hilft async_delay in den Strukturen, bzw ein FHEM-sleep zwischen set der unterschiedlichen Strukturen.

Hey, danke für deine Antwort!

Ja, ohne DOIF gibts den Fehler auch.
Das mit dem Verbose 5 werde ich mal testen! Danke für den Tipp.
Funkproblem ist es leider definitiv nicht. Ich kann in der Structure die Reihenfolge der Geräte ändern, dann schaltet in dieser Konstellation genau ein anderes nicht. :/
Titel: Antw:Problem mit mehreren Structures?
Beitrag von: rudolfkoenig am 05 Mai 2020, 16:24:51
ZitatFunkproblem ist es leider definitiv nicht. Ich kann in der Structure die Reihenfolge der Geräte ändern, dann schaltet in dieser Konstellation genau ein anderes nicht. :/
Klingt nach Funkproblem fuer mich :), und wuerde mit async_delay anfangen.
Titel: Antw:Problem mit mehreren Structures?
Beitrag von: Gasmast3r am 05 Mai 2020, 16:33:14
Mach mal mehrere doif mit den einzelnen paaren die zusammen funktionieren.

Gesendet mit Tapatalk

Titel: Antw:Problem mit mehreren Structures?
Beitrag von: Pati_Alpha am 11 Mai 2020, 17:33:06
Zitat von: rudolfkoenig am 05 Mai 2020, 16:24:51
Klingt nach Funkproblem fuer mich :), und wuerde mit async_delay anfangen.

Sorry, aber ist definitiv kein Funkproblem. Vielleicht hab ich es komisch erklärt:
Ich kann das Device 30x individuell schalten, alles gut. In genau dieser Konstellation der Structures funktioniert es dann 10/10 mal NICHT (100% Fehlerquote). Tausche ich im Structure dieses Device in der Reihenfolge mit einem anderen (was ich 30x ohne Probleme schalten kann und auch auf ZigBee basiert, also viel weniger störungsanfällig ist) funktioniert das andere in dieser Structure-Konstellation nicht und das erste dann schon - wieder beides in 10/10 Fällen. Also definitiv ein Softwarebug irgendwo! :)

Das mit den mehreren DOIFs ginge zwar, klingt aber schon wieder nach einem Workaround um den eigentlich Bug, oder?
Titel: Antw:Problem mit mehreren Structures?
Beitrag von: rudolfkoenig am 11 Mai 2020, 17:56:24
Wenn man per Funk schaltet, dann werden fuer ein Schaltvorgang fuer mehrere ms lang Funksignale gesendet, bei FS20 z.Bsp. 210ms lang. Dies ist fuer Menschen kurz, fuer Computer eine Ewigkeit. Wenn man mehrere Geraete vom Programm schalten will, dann muss man das Ende von einem Schaltvorgang abwarten, bevor man mit dem naechsten anfaengt, sonst ueberlappen sich die Signale.

FHEM implementiert fuer bestimmte Protokolle diese Serialisierung (z.Bsp. ZWave, oder CUL-basierte Protokolle), aber nicht ueber unterschiedliche Protokolle hinweg, und manchmal auch nicht, wenn man mehr als einen Transceiver (vulgo USB-Stick) fuer das gleiche Protokoll verwendet. Zu ZigBee kann ich nichts sagen.

structure bietet mit async_delay die Moeglichkeit, die Ueberlappung der Signale zu vermeiden.
Bei mehreren unterschiedlichen structures muss man zusaetzlich dafuer sorgen, dass zwischen den Struktur-Aktionen eine passende Pause eingelegt wird, entweder mit (FHEM) sleep, oder mit einem ubergeordneten Struktur, und einen entsprechend groess gewaehlten async_delay.

Btw. die Theorie ist einfach im FHEM-Log zu pruefen: beim jedem Schalten sollte (bei der Voreinstellung verbose 3), eine Zeile im Log erscheinen. Wenn das nicht der Fall ist, dann sollte man verbose erhoehen, und das Log analysieren.
Titel: Antw:Problem mit mehreren Structures?
Beitrag von: Pati_Alpha am 12 Mai 2020, 22:19:03
Das erklärt nach wie vor nicht, dass es z.B. auch passiert, wenn ich an die Position im Struct des 433MHz Geräts dann das ZigBee Gerät schiebe.

Glaub mir - so unkomfortabel das sein mag - ich habe genug getestet: es ist KEIN Funkproblem, sondern ein Software-Bug. :D

Aber ja, das mit dem Log auf 5 werde ich sobald ich dazu komme auswerten.
Titel: Antw:Problem mit mehreren Structures?
Beitrag von: KyleK am 12 Mai 2020, 23:59:16
Ersetze doch bitte im Befehlsteil die Semikolons durch Kommas, so wie in der DOIF-CommandRef vorgeschrieben.
Vielleicht mag DOIF einfach keine Semikolons.