Hallo ich habe folgendes Problem:
Ich habe ein Notify welches als Aktion eine Prozedur aufruft. Das funktioniert auch ganz gut.
Nun habe ich aber in diesem Notify per If eine Sequenz (Haus.Mode) welche wiederum verschiedene Dummy triggert die wiederum
das gleiche Notify (aber hier die Einzelaktivitäten x.y_ModeControl) ausführen sollen. Nach meinem bisherigen Erkenntnissen werden die
Dummy auch entsprechend in FHEM gesetzt. jedoch wird keine Aktivität per Notify getigert.
Kann man aus einem Notify über ein Setzen eines Dummy keine weiteren Notifiys triggern?
Das ganze sieht so aus:
Notify:
define ntfy_Haus_Mode notify Haus_Mode_Select:.* {\
my @myModeEvent = split(":",$EVENT);;\
my $myModeName = $myModeEvent[0];;\
my $myModePrevName = $myModeEvent[0]."Prev";;\
my $myMode = ReadingsVal("Haus_Mode_Select",$myModeName,"Norm");;\
my $myPrevMode = ReadingsVal("Haus_Mode_Select",$myModeName."Prev","Norm");;\
\
if ($myModeName eq "Haus.Mode") \
{ \
fhem ("setreading Haus_Mode_Select EG.Wz.Mode $myMode");;\
fhem ("setreading Haus_Mode_Select EG.Ez.Mode $myMode");;\
fhem ("setreading Haus_Mode_Select EG.Wz.Mode $myMode");;\
fhem ("setreading Haus_Mode_Select EG.Ku.Mode $myMode");;\
fhem ("setreading Haus_Mode_Select EG.WC.Mode $myMode");;\
fhem ("setreading Haus_Mode_Select OG.KiA.Mode $myMode");;\
...............
} \
if ($myModeName eq "EG.Wz.Mode") \
{ \
EG_Wz_ModeControl($myPrevMode,$myMode);;\
} \
if ($myModeName eq "EG.Ez.Mode") \
{ \
EG_Ez_ModeControl($myPrevMode,$myMode);;\
} \
if ($myModeName eq "EG.Ku.Mode") \
{ \
EG_Ku_ModeControl($myPrevMode,$myMode);;\
} \
usw
define Haus_Mode_Select dummy
setuuid Haus_Mode_Select 5cd34c13-f33f-b8ba-06af-8428753732208f16
attr Haus_Mode_Select DbLogExclude .*
attr Haus_Mode_Select group Grp-System-Dummy
attr Haus_Mode_Select icon black_Steckdose.off
attr Haus_Mode_Select readingList EG.Wz.Mode EG.Ez.Mode EG.Ku.Mode EG.Fl.Mode EG.WC.Mode OG.KiA.Mode OG.KiM.Mode OG.AzA.Mode OG.AzS.Mode OG.Bad.Mode DG.Sz.Mode DG.Bad.Mode Haus.Mode EG.Wz.prevMode EG.Ez.ModePrev EG.Ku.ModePrev EG.Fl.ModePrev EG.WC.ModePrev OG.KiA.ModePrev OG.KiM.ModePrev OG.AzA.ModePrev OG.AzS.ModePrev OG.Bad.ModePrev DG.Sz.ModePrev DG.Bad.ModePrev Haus.ModePrev
attr Haus_Mode_Select room 9.6_System
Zitat von: Hackstall am 14 Mai 2019, 07:53:41
Kann man aus einem Notify über ein Setzen eines Dummy keine weiteren Notifiys triggern?
Nicht via setreading, siehe (einschl. Lösungsansatz) https://fhem.de/commandref.html#setreading
Danke für die Antwort
ich habe gemäss der Beschreibung ein sleep eingefügt aber es hilft nicht:
define ntfy_Haus_Mode notify Haus_Mode_Select:.* {\
my @myModeEvent = split(":",$EVENT);;\
my $myModeName = $myModeEvent[0];;\
my $myModePrevName = $myModeEvent[0]."Prev";;\
my $myMode = ReadingsVal("Haus_Mode_Select",$myModeName,"Norm");;\
my $myPrevMode = ReadingsVal("Haus_Mode_Select",$myModeName."Prev","Norm");;\
\
if ($myModeName eq "Haus.Mode") \
{ \
sleep 0.1;;\
fhem ("setreading Haus_Mode_Select EG.Wz.Mode $myMode");;\
sleep 0.1;;\
fhem ("setreading Haus_Mode_Select EG.Ez.Mode $myMode");;\
sleep 0.1;;\
fhem ("setreading Haus_Mode_Select EG.Ku.Mode $myMode");;\
sleep 0.1;;\
fhem ("setreading Haus_Mode_Select EG.Fl.Mode $myMode");;\
sleep 0.1;;\
fhem ("setreading Haus_Mode_Select EG.WC.Mode $myMode");;\
sleep 0.1;;\
fhem ("setreading Haus_Mode_Select OG.KiA.Mode $myMode");;\
sleep 0.1;;\
fhem ("setreading Haus_Mode_Select OG.KiM.Mode $myMode");;\
sleep 0.1;;\
fhem ("setreading Haus_Mode_Select OG.AzA.Mode $myMode");;\
sleep 0.1;;\
fhem ("setreading Haus_Mode_Select OG.AzS.Mode $myMode");;\
sleep 0.1;;\
fhem ("setreading Haus_Mode_Select OG.Bad.Mode $myMode");;\
sleep 0.1;;\
fhem ("setreading Haus_Mode_Select DG.Sz.Mode $myMode");;\
sleep 0.1;;\
fhem ("setreading Haus_Mode_Select DG.Bad.Mode $myMode");;\
} \
noch irgendeine Idee.
Danke Andreas
Zitat von: Hackstall am 15 Mai 2019, 20:26:57
noch irgendeine Idee.
Das sleep so verwenden, wie es in der angegeben Anleitung steht.
Oh Mann ich denke ich stehe auf dem Schlauch. Wie oder was meinst Du das.
In der ref steht
sleep 0.1; setreading x y z
Das habe ich doch gemacht oder wie meinst Du das?
Danke Andreas
Zitat von: Hackstall am 15 Mai 2019, 22:22:21
sleep 0.1; setreading x y z
Das habe ich doch gemacht
Nein, das hast Du nicht gemacht.
Das sind zwei FHEM Befehle:
sleep 0.1; setreading x y z
Das sind zwei perl Funktionsaufrufe:
fhem ("setreading Haus_Mode_Select EG.Wz.Mode $myMode");
sleep 0.1;
Das sind zwei komplett unterschiedliche Dinge.
Zitat von: Beta-User am 14 Mai 2019, 13:53:15
Nicht via setreading, siehe (einschl. Lösungsansatz) https://fhem.de/commandref.html#setreading
Setreading ist ja genau dazu da, um nicht zu Triggern. Versuchs mal mit set
Hallo betateilchen.
Ich bewundere Deine Erklärungen warum etwas ist oder nicht.
Mir geht es um die Lösung.
Wenn Du es weißt dann schreib mir doch wie es sein muss.
Damit ist uns allen mehr geholfen.
Gruß Andreas
Zitat von: DasQ am 16 Mai 2019, 07:04:17
Setreading ist ja genau dazu da, um nicht zu Triggern. Versuchs mal mit set
Warum sollte er es anders machen, als es in der Anleitung/cref steht? Da steht die Lösung, er sollte verstehen lernen, was er anders machen sollte.
Das sleep-Beispiel in der cref geht davon aus, dass es als fhem-Befehl verwendet wird. Hier wird es aber als Perl-sleep aufgerufen ;) .
Fällt jetzt der Groschen?
Zitat von: Hackstall am 16 Mai 2019, 07:09:57
Wenn Du es weißt dann schreib mir doch wie es sein muss.
Das steht doch in der commandref? Du brauchst es nur abzuschreiben.
Hallo,
ich moechte mich nochmals bei Eurer Art zu antworten bedanken.
Natuerlich habt Ihr Recht mit Euren Zitaten aber meint
Ihr nicht auch dass Ihr hier in dem Anfaengerforum auch mit direkten
Lösungen besser helfen könntet als mit irgendwelchen Referenzen oder Querverweisen.
ich komme aus der Informatikbranche muss aber gestehen dass auch die CommanReference für Anfaenger absolut das Minimum darstellt manchmal eine Herausforderung ist.
Gruss Andreas
Wie wärs eingentlich damit, mal einfach das zu machen was man dir jetzt schon mehrfach gesagt hat (siehe Bild)
Zitat von: Beta-User am 16 Mai 2019, 07:30:22
Das sleep-Beispiel in der cref geht davon aus, dass es als fhem-Befehl verwendet wird. Hier wird es aber als Perl-sleep aufgerufen ;) .
Fällt jetzt der Groschen?
... alternativ
...mein Lösungsvorschlag (damit wären es dann schon zwei tips)