ich habe folgendes notify (vereinfacht auf das Wesentliche):
mm_sonos_Wohnzimmer:presence:.appeared {
my $radio = Value("wk_radiosender");
fhem ("set mm_sonos_Wohnzimmer StartRadio $radio");
}
Das Dummy "wk_radiosender" wird über ein anderes DOIF abhängig von verschiedenen Bedingungen gesetzt. Mit dem notify wird dann der Sender angewählt.
--> Wie ersetze ich nun das notify durch ein DOIF?
Warum will ich das überhaupt, wo doch alles funktioniert? Das notify ist in Summe viel umfangreicher und hat u.a. mehrere "sleep". Das könnte ich eleganter und übersichtlicher mit DOIF und dem wait-Attribut lösen.
Ich habe zwar in der commandref gelesen, dass man auch bei DOIF mit {} arbeiten kann, aber irgendwo stehe ich noch auf dem Schlauch.
Es macht keinen Sinn, dass du ein vereinfachtes notify postest, wenn du das gesamte notify durch ein DOIF ersetzen möchtest. So wird das hier ganz sicher nur ein langes Frage-Antwort Spiel.
Für Perl Code im DOIF gibt es in der deutschen commandref Beispiele.
Zitat von: ujaudio am 10 Januar 2016, 11:12:27
ich habe folgendes notify (vereinfacht auf das Wesentliche):
mm_sonos_Wohnzimmer:presence:.appeared {
my $radio = Value("wk_radiosender");
fhem ("set mm_sonos_Wohnzimmer StartRadio $radio");
}
Das Dummy "wk_radiosender" wird über ein anderes DOIF abhängig von verschiedenen Bedingungen gesetzt. Mit dem notify wird dann der Sender angewählt.
--> Wie ersetze ich nun das notify durch ein DOIF?
Warum will ich das überhaupt, wo doch alles funktioniert? Das notify ist in Summe viel umfangreicher und hat u.a. mehrere "sleep". Das könnte ich eleganter und übersichtlicher mit DOIF und dem wait-Attribut lösen.
Ich habe zwar in der commandref gelesen, dass man auch bei DOIF mit {} arbeiten kann, aber irgendwo stehe ich noch auf dem Schlauch.
Solche Konstrukte kannst du beim DOIF eleganter lösen:
([mm_sonos_Wohnzimmer:presence] eq "appeared") (set mm_sonos_Wohnzimmer StartRadio [wk_radiosender])
Zitat von: Damian am 10 Januar 2016, 11:18:14
Solche Konstrukte kannst du beim DOIF eleganter lösen:
([mm_sonos_Wohnzimmer:presence] eq "appeared") (set mm_sonos_Wohnzimmer StartRadio [wk_radiosender])
Und das geht sogar im notify so einfach ;)
Es tut mir leid, dass ich gedacht habe, die Aussage auf den Punkt zu bringen, wäre hilfreich. Es ging mir ja nur darum, wie ich den Dummy-Wert in das set-Kommando bringe.
Ich habe auch versucht, die commandref-Beispiele auf mein Problem zu adaptieren, aber wie ich sagte, stand ich auf dem Schlauch, entschuldigung.
Danke für den Hinweis, wie ich es angehen kann.
Mit dem notify bin ich endlos gescheitert, bis ich die hier angegebene Lösung zusammen hatte. Ich wüsste momentan immer noch nicht, wie man es elegant mit notify löst. Macht nichts, ich habe ja eine Lösung. ;)
so:mm_sonos_Wohnzimmer:presence:.appeared set mm_sonos_Wohnzimmer StartRadio [wk_radiosender:state]
gruss
andre