notify und nicht definiertes EVTPART1

Begonnen von CoolTux, 10 März 2016, 22:07:45

Vorheriges Thema - Nächstes Thema

CoolTux

Hallo,

Ich habe folgendes notify


dummyRadiosender:(play|stop|restart).* { multiroomradio($EVTPART0,$EVTPART1); }


Nun ist es so das ich $EVTPART1 nur in einem Fall habe. Nämlich bei play, bei stop und restart gibt es kein $EVTPART1, und es wird zu Recht gemeckert das die globale Variable $EVTPART1 nicht definiert ist. Wie kann ich sowas am besten in diesem Notify abfangen, ich mag da ungern mit zwei Notifys arbeiten. Und bitte keine DOIF Empfehlung, es geht mir darum das globale Variablen Problem zu lösen.




Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Hans Franz

Hallo,
wenn du es partout nicht in deiner sub abfangen willst, vlt. so:
dummyRadiosender:(play|stop|restart).* { $EVENT=~s/ /,/;multiroomradio($EVENT); }
ungetestet

Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

CoolTux

Hallo Hans,

Vielen Dank für Deine Antwort. Ich hatte es schon mal mit $EVENT versucht und an meine Sub übergeben. Wie ich dann meine Übergabe auslesen wollte erhielt ich als Antwort 1, keine Ahnung wieso. Hatte es da so gemacht


dummyRadiosender:(play|stop|restart).* { multiroomradio($EVENT); }




Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Ich konnte mein Problem nun lösen. Irgendwie bestand bei mir die Herausforderung darin heraus zu bekommen wie $EVENT genau aufgebaut ist bzw. übergeben wird.

Mein Notify

dummyRadiosender:(play|stop|restart).* { multiroomradio($EVENT); }


Meine sub

sub multiroomradio($) {

        my @data = split( ' ', $_[0] );
        my $cmd = $data[0];
        my $sender = $data[1] if( $data[1] );

        my @monitored=devspec2array("(Nexus7Wohnzimmer|Nexus7Schlafzimmer|Nexus7Steven|DesireHD_Flur):FILTER=intentRadioAktiv=1");
        my $cnt_devs=@monitored;
        my $i = 0;
        my $device = "";

        foreach(@monitored) {
                $device .= $_;
                if ($i <= $cnt_devs - 2) {
                  $device .= "|";
                }

                $i++;
        }

        fhem "set $device sendIntent org.smblott.intentradio.PLAY ".ReadingsVal( "dummyRadiosender", $sender, 0 ) if( $cmd eq "play" );
        fhem "set $device sendIntent org.smblott.intentradio.STOP" if( $cmd eq "stop" );
        fhem "set $device sendIntent org.smblott.intentradio.RESTART" if( $cmd eq "restart" );
}


Ich hatte immer versucht das gesamte Array zu splitten weil ich dachte es gibt da mehr wie ein Element. Dem ist aber nicht so. Mein Array besteht aus genau einem Element und den Inhalt dieses einen Elementes gilt es zu splitten.


Grüße
Leon
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

So und nun meine Sub noch mal auf ein vernünftiges Maß gekurzt


sub multiroomradio($) {

        my @data = split( ' ', $_[0] );
        my $cmd = $data[0];
        my $sender = $data[1] if( $data[1] );

        my $device = join( "|",devspec2array("TYPE=AMAD:FILTER=intentRadioAktiv=1") );


        fhem "set $device sendIntent org.smblott.intentradio.PLAY ".ReadingsVal( "dummyRadiosender", $sender, 0 ) if( $cmd eq "play" );
        fhem "set $device sendIntent org.smblott.intentradio.STOP" if( $cmd eq "stop" );
        fhem "set $device sendIntent org.smblott.intentradio.RESTART" if( $cmd eq "restart" );
}
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net