Habe meinen Yamaha RX-V755 in FHEM eingebunden und möchte über den server Eingang einen bestimmten Radiosender abspielen, der per UPNP von der Fritzbox zur Verfügung gestellt wird.
Der Radiosender wird durch das Notify wie gewünscht ausgewählt, aber nicht abgespielt.
Wenn ich statt Notify per per Fernbedienung den Sender auswähle, ist ein Druck auf die Enter-Taste der Fernbedienung notwendig, wenn der geünschte Sender im Display des Receivers erscheint, damit er dann auch abgespielt wird.
Mein Problem: Der Sender wird bei ausführen des Notifys ausgewählt, den Tastendruck möchte ich durch den entsprechenden AUfruf simulieren, aber dieser letzte Befehl
set Yamaha_RX_V775 remoteControl enter
wird hartnäckig ignoriert. Der Sender wird nicht abgepielt.
Wenn ich nach dem Abarbeiten des Notify den o.g. Befehl in der Kommandozeile eingebe, führt der Receiver den Befehl aus und der Sender wird abgespielt.
Das Notify, welches den Sender wählen und abspielen soll:
Internals:
DEF Switch_YamahaRXV775:o[nf]+ {if($EVENT eq "on") {fhem("set Yamaha_RX_V775 on;sleep 3;set Yamaha_RX_V775 navigateListMenu AVM_Mediaserver_240/Internetradio/EsenciaFM;sleep 5;set Yamaha_RX_V775 remoteControl enter;sleep 1;set Yamaha_RX_V775 remoteControl enter");}elsif($EVENT eq "off"){fhem("set Yamaha_RX_V775 off")}}
FUUID 61def446-f33f-9228-5da8-112c8c5d423420ac
NAME YamahaRXV775
NOTIFYDEV Switch_YamahaRXV775
NR 159
NTFY_ORDER 50-YamahaRXV775
REGEXP Switch_YamahaRXV775:o[nf]+
STATE 2022-01-12 19:33:46
TRIGGERTIME 1642012426.19676
TYPE notify
READINGS:
2022-01-12 19:33:33 state active
2022-01-12 19:33:46 triggeredByDev Switch_YamahaRXV775
2022-01-12 19:33:46 triggeredByEvent on
Attributes:
room Multimedia_Wohnzimmer
Hat jemand eine Idee, wie ich den Receiver dazu bekomme, den Sender nicht nur zu wählen sondern auch abzuspielen?
Im Voraus vielen Dank für alle Tipps"
Vermutlich sind da ein paar Semikolon zu wenig verteilt:
(aus commandref_DE.html#command):
Zitat
Mehrere FHEM-Kommandos hintereinander werden mittels Semikolon ( ; ) getrennt. Weil Semikola auch in perl-Code oder Shell-Programmen benutzt werden, müssen sie mittels doppelten Semikola geschützt werden. Lesen Sie sich bitte die Bemerkungen des notify (http://localhost:8083/fhem/docs/commandref_DE.html#notify)-Abschnittes zu Kommandoparametern und Regeln durch.Z.B. schaltet die erste der folgenden Befehlszeilen die Lampe 1 nur/erst zur Uhrzeit 07:00 Uhr aus, die Lampe 2 aber sofort und die zweite Befehlszeile schaltet Lampe 1 und 2 um 7:00 Uhr gleichzeitig aus.
- define lampoff at 07:00 set Lamp1 off; set Lamp2 off
define lampoff at 07:00 set Lamp1 off;; set Lamp2 off
Für jede weitere Indirektion muss man die Strichpunkte verdoppeln. Um also die beiden Lampen um 7:00 für 10 Minuten einzuschalten schreibt man:
- define onAt at 07:00 set Lamp1 on;;set Lamp2 on;; define offAt at +00:10 set Lamp1 off;;;;set Lamp2 off
Hallo, vielen Dank für den Tipp. Ich tue mich ohnehin mit Perl schwer und habe bzgl. der Syntax schon einiges probiert, leider erfolglos. Habe es jetzt auch noch einmal mit dopelten ";" probiert, aber wie zuvor wird der letzte Befehl zum simulieren der Enter-Taste nicht ausgeführt. HHHmmmmm......
Zitat von: hadenia am 14 Januar 2022, 12:34:34
Hallo, vielen Dank für den Tipp. Ich tue mich ohnehin mit Perl schwer und habe bzgl. der Syntax schon einiges probiert, leider erfolglos. Habe es jetzt auch noch einmal mit dopelten ";" probiert, aber wie zuvor wird der letzte Befehl zum simulieren der Enter-Taste nicht ausgeführt.
Es wäre wie üblich einfacher, wenn du konkreter rückmelden könntest, wo du wie viele Semikola verteilt hast...
Wenn meine Vermutung stimmt, sollte es so sein:
DEF Switch_YamahaRXV775:o[nf]+ {if($EVENT eq "on") {fhem("set Yamaha_RX_V775 on;sleep 3;set Yamaha_RX_V775 navigateListMenu AVM_Mediaserver_240/Internetradio/EsenciaFM;;sleep 5;;set Yamaha_RX_V775 remoteControl enter;;;;sleep 1;;;;set Yamaha_RX_V775 remoteControl enter");}elsif($EVENT eq "off"){fhem("set Yamaha_RX_V775 off")}}
Hallo, nochmals vielen Dank. Klappt leider noch nicht. Für mich sieht es so aus, dass das notify nach diesem Befehl nicht mehr weiter ausgeführt wird:
AVM_Mediaserver_240/Internetradio/EsenciaFM
Am Receiver werden die abgespeicherten Radiosender angezeigt, aber dann passiert nichts mehr.
Wenn ich dann 2x Enter auf der Fernbedienung drücke oder 2x
set Yamaha_RX_V775 remoteControl enter
eingebe, wird der gewünschte Sender ausgewählt (ist der erste in der Liste) und abgespielt.
Also diese Sequenz wird nicht ausgeführt:
;;sleep 5;;set Yamaha_RX_V775 remoteControl enter;;;;sleep 1;;;;set Yamaha_RX_V775 remoteControl enter
Hmm, habe jetzt mal mit etwas dummy-Magie rumgespielt, und jedenfalls lt. Event-Monitor scheint das so zu gehen:
defmod n_test3 notify devstrich0:o[nf]+ {if ( $EVENT eq 'on' ) {fhem('set devstrich0 on1;;sleep 3;;set devstrich0 navigateListMenu AVM_Mediaserver_240/Internetradio/EsenciaFM ;;sleep 5;;set devstrich0 remoteControl enter;;sleep 1;;set devstrich0 remoteControl enter');;}elsif($EVENT eq 'off'){fhem('set devstrich0 off1')}}