FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: monek am 06 September 2016, 12:07:39

Titel: fhem - Befehle werden langsam, dafür leider mehrfach umgesetzt
Beitrag von: monek am 06 September 2016, 12:07:39
Hallo liebe FHEM-Gemeinde,

ich habe mir über einen RasPi 2, fhem, einem 6-Tastenfeld, einer Funk-Sirene, 2 MP§-Gongs und diversen Türkontakten (allesamt von Homematic) eine kleine Alarmanlage zu Hause gebaut.
Es funktioniert auch alles, wie es soll (man, hab ich gebraucht, bis ich ein Statusmodell fertig hatte...) - allerdings nicht ohne Makel.
Wenn ich das Tastenfeld bediene (ein Knopfdruck zum entschärfen - Tastenfeld HM-PB-6-WM55), dann geschieht laut Log folgendes:
2016-09-06_05:52:09 Flur_Tastenfeld battery: ok
2016-09-06_05:52:09 Flur_Tastenfeld Taster_unscharf Short
2016-09-06_05:52:09 Flur_Tastenfeld Taster_unscharf Short

Und das, obwohl die Taste nur einmal kurz betätigt wurde.
Daraufhin meldet das Log vom Funkgong:
2016-09-06_05:52:09 Flur_Funkgong CMDs_pending
2016-09-06_05:52:15 Flur_Funkgong CMDs_done
2016-09-06_05:52:23 Flur_Funkgong CMDs_done

Und das FHEM-Log sieht dazu folgendermaßen aus:
2016.09.06 05:52:09 3: CUL_HM set Flur_MP3 playTone 005
2016.09.06 05:52:09 3: CUL_HM set Sz_MP3 playTone 005
2016.09.06 05:52:09 3: CUL_HM set Sirene_Alarm off
2016.09.06 05:52:10 3: CUL_HM set Flur_MP3 playTone 005
2016.09.06 05:52:10 3: CUL_HM set Sirene_Alarm off
2016.09.06 05:52:10 3: CUL_HM set Flur_MP3 playTone 005
2016.09.06 05:52:10 3: CUL_HM set Sirene_Alarm off
2016.09.06 05:52:10 3: CUL_HM set Flur_MP3 playTone 005
2016.09.06 05:52:10 3: CUL_HM set Sirene_Alarm off
2016.09.06 05:52:10 3: CUL_HM set Flur_MP3 playTone 005
2016.09.06 05:52:10 3: CUL_HM set Sirene_Alarm off


und in der Tat, fängt der Gong an, eine Sprachansage abzuspielen, bricht diese mittendrin ab und fängt wieder von vorne an. Manchmal spielt er diese dann vollständig ab, ab und zu bricht er auch den 2., 3. und vielleicht sogar vierten Anlauf ab und spielt dann erst den darauf folgenden Versuch ab.

Es ist auch auffällig, dass zwischen Tastendruck und beginn der Abfolge (ob nun zum scharf, oder zum unscharf schalten) manchmal mehrere Sekunden liegen.


Hat jemand einen Tip für mich, wo ich mal nach einem Fehler suchen soll?
Oder gibt es bekannte Probleme dieser Art? Bei einer Suche im Forum bin ich nicht glücklich geworden.
Titel: Antw:fhem - Befehle werden langsam, dafür leider mehrfach umgesetzt
Beitrag von: Otto123 am 06 September 2016, 13:08:22
Hallo monek,

ich denke pauschal kann ich nur sagen: Da hast Du wohl irgendwo eine Schleife gebaut, aber wo? Da fehlt der Überblick.

Schau Dir das Ganze doch mal im Eventmonitor an, ich denke da findest Du am ehesten einen Hinweis.

Gruß Otto
Titel: Antw:fhem - Befehle werden langsam, dafür leider mehrfach umgesetzt
Beitrag von: monek am 06 September 2016, 15:40:03
Hallo Otto,
das Problem ist, dass es quasi bei allen notify's das selbe ist.
Jedes notify braucht anscheinen diverse Sekunden, bevor es ausgeführt wird - dementsprechend eben auch z.B. die Sprachausgabe an den mp3-Gongs oder auch die LEDs.

Der Eventmonitor... das, was der mir ausspuckt ist für mich wie chinesisch ^^

Soll ich den quasi anschalten und dann einmal eine der lang dauernden Aktionen durchführen?
Hab auf der global das verbose schon mal auf 5 gesetzt, denn bisher ist in den Logs nichts zu erkennen, außer die Zeilen, die ich im Startbeitrag schon gepostet habe...
Titel: Antw:fhem - Befehle werden langsam, dafür leider mehrfach umgesetzt
Beitrag von: betateilchen am 06 September 2016, 15:49:15
Zitat von: monek am 06 September 2016, 15:40:03
Jedes notify braucht anscheinen diverse Sekunden, bevor es ausgeführt wird -

Nein, braucht es nicht. Dein Problem liegt mit Sicherheit nicht am notify.

Meine Vermutung: Dein Funk-Wandtaster ist in fhem nicht korrekt eingerichtet und wartet deshalb erfolglos auf das ACK einer Zentrale. Wenn das nicht in einer vorgegebenen Zeit kommt, wird der gesendete Befehl per funk wiederholt - und zwar (default) genau sechs Mal, was zufällig der Anzahl der ausgelösten notify entspricht...

Titel: Antw:fhem - Befehle werden langsam, dafür leider mehrfach umgesetzt
Beitrag von: betateilchen am 06 September 2016, 15:56:41
Hilfreich wäre es übrigens auch, wenn Du das notify selbst einfach mal hier in code Tags zeigen würdest.
Titel: Antw:fhem - Befehle werden langsam, dafür leider mehrfach umgesetzt
Beitrag von: monek am 06 September 2016, 16:16:43
Ich würde, wenn ich wüsste, was du meinst.
Die Definition?
oder generell die ganzen internals?
Titel: Antw:fhem - Befehle werden langsam, dafür leider mehrfach umgesetzt
Beitrag von: betateilchen am 06 September 2016, 16:21:11
vorausgesetzt, Du verstehst unter "Definition" das gleiche wie ich, würde die Definition reichen.

Grundsätzlich solltest Du Dich bitte nochmal mit den hier im Forum vorhandenen Hinweisen dazu, wie (und wo!) man Probleme in fhem korrekt beschreibt, befassen. Das könnte den Mitgliedern, die versuchen, Dir zu helfen, ihre Bemühungen erheblich erleichtern.
Titel: Antw:fhem - Befehle werden langsam, dafür leider mehrfach umgesetzt
Beitrag von: Ralf W. am 06 September 2016, 16:41:03
@monek - commandref list ist Dein Freund ...

Gesendet von meinem Lenovo B6000-H mit Tapatalk

Titel: Antw:fhem - Befehle werden langsam, dafür leider mehrfach umgesetzt
Beitrag von: monek am 06 September 2016, 18:12:38
Du hast natürlich Recht @betateilchen, ich werde mich bemühen.

@ Ralf - das mit der Commandref liest man immer wieder, aber die ist leider eben nicht jedermans Freund.
Ich finde darin eigentlich so gut wie nie, wonach ich suche. Einfach zu unübersichtlich (und dazu meist wenig Plan, wonach ich eigentlich genau suche).
Code Tag(s) habe ich dort auch nicht gefunden...

Die Internals vom Tastenfeld sind:
CUL_0_MSGCNT     242
CUL_0_RAWMSG    A0BDFA2403529CF12345606E7::-48:CUL_0
CUL_0_RSSI           -48
CUL_0_TIME          2016-09-06 17:51:38
DEF                         3529CF
IODev                    CUL_0
LASTInputDev       CUL_0
MSGCNT                242
NAME                     Flur_Tastenfeld
NOTIFYDEV           global
NR                         27
NTFY_ORDER        50-Flur_Tastenfeld
STATE                   Taster_unscharf Short
TYPE                     CUL_HM
channel_01           Taster_Weg
channel_02           Taster_Nacht
channel_03           Taster_Urlaub
channel_04           HM_3529CF_Btn_04
channel_05           Taster_Test
channel_06           Taster_unscharf
lastMsg                 No:DF - t:40 s:3529CF d:123456 06E7
protLastRcv          2016-09-06 17:51:38
rssi_at_CUL_0      avg:-48.01 lst:-48 max:-37.5 min:-65.5 cnt:242

Die Internals vom Taster_unscharf
DEF                       3529CF06
NAME                   Taster_unscharf
NOTIFYDEV          global
NR                        34
NTFY_ORDER       50-Taster_unscharf
STATE                  Short (to 123456)
TYPE                    CUL_HM
chanNo                06
device                  Flur_Tastenfeld

und dann die Definition zum notify n_Taster_unscharf
(Taster_unscharf) {
my $nachtstatus = ReadingsVal("Nachtstatus","state","");
if ($nachtstatus eq "active") {
fhem ("set Alarmschalter off;set n_Alarm inactive;set Statusgeber off;set n_Statusgeber inactive; set Flur_MP3 playTone 005;set Sz_MP3 playTone 005;set Status unscharf;set Nachtstatus inactive;set Troete off;set Sirene_Alarm off")
} else {
fhem ("set Alarmschalter off;set n_Alarm inactive;set Statusgeber off;set n_Statusgeber inactive; set Flur_MP3 playTone 005;set Status unscharf;set Nachtstatus inactive;set Troete off;set Sirene_Alarm off")
}
}

Ich hoffe, das ist einigermaßen verständlich.
Ich lese derweil weiter im Forum, wie ich mich besser ausdrücken kann bzw. bessere Angaben mache...
Titel: Antw:fhem - Befehle werden langsam, dafür leider mehrfach umgesetzt
Beitrag von: Benni am 06 September 2016, 18:23:59
Code-Tags sind hier im Forum zu finden und nicht in der commandref (s. Screenshot)

Und die Internals sind auch nur die halbe Wahrheit.

Ein list (http://fhem.de/commandref_DE.html#list) des device ist, was gefragt war (s. Hinweis von Ralf (https://forum.fhem.de/index.php/topic,57422.msg488552.html#msg488552))
Titel: Antw:fhem - Befehle werden langsam, dafür leider mehrfach umgesetzt
Beitrag von: betateilchen am 06 September 2016, 19:09:03
brauchen wir alles nicht mehr, die Fehlerursache steht schon hier im Thread.


Definition zum notify n_Taster_unscharf

(Taster_unscharf) { ... }


Du triggerst auf JEDES event, das von "Taster_unscharf" ausgelöst wird, das heißt, Du triggerst auch auf battery, cmd... usw.

Da brauchst Du Dich nicht wundern, wenn die definierten Aktionen unzählige Male ausgeführt werden.
Korrigiere Dein notify so, dass es wirklich nur auf Short oder Long reagiert und alles wird gut.
Titel: Antw:fhem - Befehle werden langsam, dafür leider mehrfach umgesetzt
Beitrag von: monek am 06 September 2016, 19:23:17
@Benni - da sind wir bei kein Plan. Ich habe ist ist gelesen und dachte, Ralf hat sich verschrieben. Sehr peinlich. Ich hatte es als allgemeingültigen Hinweis gelesen. Ich gelobe Besserung.

@betateilchen - vielen Dank - ich hatte ursprünglich gehofft, dass ich nur auf Tastendruck triggere, nicht auf wirklich JEDES event, um Probleme mit einem zu langen Tastendruck zu umgehen (von wegen short und long)... War wohl etwas kurzsichtig gedacht.
Werde das denn auf (Taster_unscharf:Short|Taster_unscharf:Long) umstellen.
Danke euch.
Titel: Antw:fhem - Befehle werden langsam, dafür leider mehrfach umgesetzt
Beitrag von: Otto123 am 06 September 2016, 20:39:35
Und wenn Du den Eventmonitor offen gehabt hättest, hättest Du eigentlich den Schlamassel beobachten können  8)
Titel: Antw:fhem - Befehle werden langsam, dafür leider mehrfach umgesetzt
Beitrag von: monek am 06 September 2016, 21:17:46
Ich habe im Eventmonitor nur erkannt, dass er etliche male getriggert hat.

Habe aber daraus nicht erkennen können, woran das liegt :(
Titel: Antw:fhem - Befehle werden langsam, dafür leider mehrfach umgesetzt
Beitrag von: Otto123 am 06 September 2016, 21:56:28
Aber schau mal, das notify ist doch in der commandref  (http://fhem.de/commandref_DE.html#notify) ziemlich geradlinig erklärt.
Und dann sieht man doch, dass es mehrere Events gibt und dein notify offenbar so gestrickt ist, dass es auf alle anspringt?
Ja ich weiß, dass mit dem RegExp ist schwierig. Aber im Zweifelsfall suchst Du Dir im Eventmonitor aus den xx Events die ein Tastendruck erzeugt, einen aus der eindeutig ist. Und den musst Du im <Suchmuster> unterbringen und kontrollieren ob das Filter auch wirkt.

Ich habe irgendwie versucht die Vorgehensweise mal verbal zu erklären, ich hoffe verständlich  8)

Gruß Otto
Titel: Antw:fhem - Befehle werden langsam, dafür leider mehrfach umgesetzt
Beitrag von: monek am 06 September 2016, 22:00:43
Ja, jetzt ist es für mich verständlich.
Wie ich schon schrieb, hatte ich eigentlich extra nicht auf :Short.* getriggert, weil ich auch "Long" abdecken wollte. Ich hab zu einfach gedacht, und nicht erkannt, was alles Events sind...
Aus Fehlern lernt man bekanntlich und ich habe jetzt noch diverse andere notifys angepasst  8)