Gruppierung per structure klappt nicht

Begonnen von MisterEltako, 02 Januar 2013, 20:54:03

Vorheriges Thema - Nächstes Thema

MisterEltako

Hallo! Zunächst allen ein gesundes neues Jahr!

Ich habe in der fhem.cfg nachfolgendes definiert:

define Aussenlicht_Tuer CUL_HM XXXXXX
attr Aussenlicht_Tuer eventMap An:on on:An Aus:off off:Aus
attr FileLog_Aussenlicht_Tuer room CUL_HM

define Aussenlicht_Kueche CUL_HM XXXXXX
attr Aussenlicht_Tuer eventMap An:on on:An Aus:off off:Aus
attr FileLog_Aussenlicht_Tuer room CUL_HM

define Licht_all structure room Aussenlicht_Tuer Aussenlicht_Kueche
attr Licht_all eventMap An:on on:An Aus:off off:Aus
attr Licht_all room CUL_HM

Alles wird korrekt in Fhemweb angezeigt.

Befehl: "set Licht_all off" oder "set Licht_all Aus" schaltet die Devices nicht!

MfG, MisterEltako
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

UliM

Hi,
das eventmap sieht komisch aus.
Hast Du's erstmal ohne probiert?
=8-)
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

MisterEltako

Habe es auch ohne eventMap probiert. Funktioniert auch nicht. Im Log kein Hinweis auf eine Schaltung oder Fehler.

Das eventMap funktioniert bei den Schaltern einwandfrei. (z.B.: "set Aussenlicht_Kueche An", usw.)
Leider eben nicht als structure-Konstrukt....

MfG, MisterEltako.
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

MisterEltako

So habe es jetzt völlig ohne eventMap probiert. Also:

define Aussenlicht_Tuer CUL_HM XXXXXX
#attr Aussenlicht_Tuer eventMap An:on on:An Aus:off off:Aus
attr FileLog_Aussenlicht_Tuer room CUL_HM

define Aussenlicht_Kueche CUL_HM XXXXXX
#attr Aussenlicht_Tuer eventMap An:on on:An Aus:off off:Aus
attr FileLog_Aussenlicht_Tuer room CUL_HM

define Licht_all structure room Aussenlicht_Tuer Aussenlicht_Kueche
#attr Licht_all eventMap An:on on:An Aus:off off:Aus
attr Licht_all room CUL_HM

Dann wird tatsächlich ein Schaltbefehl ausgelöst, aber Status der beiden HM-Switches/Aktoren danach ist "Missing Ack" sowie auch des Status von Licht_all ebenfalls .....

MfG, MisterEltako
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

rudolfkoenig

>  Dann wird tatsächlich ein Schaltbefehl ausgelöst, aber Status der beiden HM-Switches/Aktoren danach ist "Missing Ack" sowie auch des Status von Licht_all ebenfalls .....

Das klingt nach einem HM-Problem: wenn Befehle in schneller reihenfolge gesendet werden, dann werden die ACK's nicht empfangen -> Bitte im MomeMatic Abschnitt ein thread oeffnen. Bitte da unbedingt erwaehnen, ob fuer HM ein CUL oder ein HMLAN verwendet wird.

MWn gabs das Problem schon, und wurde behoben.

MisterEltako

Hallo rudolfkoenig!

Ja die schnelle Reihenfolge ist tatsächlich das Problem. Habe einen älteren Thread bei "Fhem users" gefunden:

"HM mit Timer (AT) bei gleichzeitigen schalten bringt MISSING ACK"

In diesem wird das Problem durch Eintrag von:

"select(undef, undef, undef, 0.3);"

als letzte Zeile des Abschnittes HMLAN_write($$$) behoben.
Dann schaltet der structure-Befehl tatsächlich ohne "missing ack".

Warum ist das nach dem damaligen Thread nicht in die 00_HMLAN.pm übernommen worden? Gibt es irgendwelche Probleme mit FHEM, wenn ich diesen Eintrag belasse? Bei mir läuft es so prima.

Eine weitere Frage bleibt für die o.g. Überschrift, wenn ich eventMap wieder dazu verwenden möchte:

define Aussenlicht_Tuer CUL_HM XXXXXX
attr Aussenlicht_Tuer eventMap An:on on:An Aus:off off:Aus
attr FileLog_Aussenlicht_Tuer room CUL_HM

define Aussenlicht_Kueche CUL_HM XXXXXX
attr Aussenlicht_Tuer eventMap An:on on:An Aus:off off:Aus
attr FileLog_Aussenlicht_Tuer room CUL_HM

define Licht_all structure room Aussenlicht_Tuer Aussenlicht_Kueche
attr Licht_all eventMap An:on on:An Aus:off off:Aus
attr Licht_all room CUL_HM

... dann wird aus "Licht_all An" -> Aussenlicht_Tuer on Aussenlicht_Kueche on und es passiert wieder nix mehr :o( Einzeln klappt die Lampenschaltung mit An/Aus. Also ist das Problem, dass structure "An" zu "on" macht und die Lampen aber "An" erwarten. Was muß ich an eventMap ändern???

Ich möchte An/Aus im Fhemweb haben.

MfG, MisterEltako

HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

rudolfkoenig

> Gibt es irgendwelche Probleme mit FHEM, wenn ich diesen Eintrag belasse?

Diese Zeile blockiert fhem fuer 0.3 Sekunden, und das kann sich schnell zu eine stoerende Laenge aufschaukeln. Ich dachte das waere inzischen wie beim FS20 geloest, da wird das mit InternalTimer aus einer Warteschlange abgearbeitet. Wie auch immer, dieser Punkt gehoert in die HM Gruppe, da HM von Martin uebernommen wurde.

> attr Licht_all eventMap An:on on:An Aus:off off:Aus
> attr Aussenlicht_Tuer eventMap An:on on:An Aus:off off:Aus

Da ist zuviel des mappens: Licht_all mapped An auf on, und startet "set Aussenlicht_Tuer on", das wird aber wieder zu "set Aussenlicht_Tuer An". Folgendes muesste reichen:

attr Aussenlicht_Tuer eventMap on:An off:Aus
attr Licht_all eventMap on:An off:Aus

MisterEltako

Hallo @rudolfkoenig

Vielen Dank für den Tip mit dem eventMap. So funktioniert der structure-Befehl, aber nur mit dem o.g. select-Eintrag.
Zumindestens funktioniert das nun. Mit dem select-Problem habe ich im HM-Rubrik einen Thread aufgemacht (bisher leider ohne Resonanz, aber das wird sicher noch...).

Kannst du eventuell einen Anstoß geben, wo ich die von dir genannte Timerschleife von FS20 finde?
(bei ersten Überfliegen von 10_FS20.pm habe ich das nicht herausfinden können)

MfG, MisterEltako
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

rudolfkoenig

> Kannst du eventuell einen Anstoß geben, wo ich die von dir genannte Timerschleife von FS20 finde?

00_CUL.pm/CUL_Write() -> CUL_AddFS20Queue, da wird auch HomeMatic abgedeckt.
Aber evtl. verwendest Du ein HMLAN und kein CUL.

MisterEltako

Ja ich habe ein HMLAN.

Lässt sich "CUL_AddFS20Queue" einfach anstelle von select(undef, undef, undef, 0.3) mit entsprechender Namensänderung einbauen, oder muss das an anderer Stelle stehen?

Martin876 ist nicht begeistert von der 0.3ms-Variante, da es bei Anfragen von Devices an den HMLAN Schierigkeiten gibt und insgesamt die Geschwindeigkeit von FHEM leidet. Von einer Lösung 00_HMLAN.pm wie in CUL_AddFS20Queue hat er nicht geschrieben.

MfG, MisterEltako
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

MisterEltako

Also das Problem wurde gelöst durch eine Änderung von Martin an der Datei 00_HMLAN.pm, die er am 09.01.12 im Update zur Verfügung gestellt hat!

Vielen Dank an Martin876 auch an dieser Stelle!!!

Super - jetzt klappt es endlich ohne sleep- oder select-Variante.

Mfg, MisterEltako.
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310