FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: wilfo am 24 Oktober 2013, 08:21:29

Titel: notify kürzen
Beitrag von: wilfo am 24 Oktober 2013, 08:21:29
Guten Morgen

Ich hab hier 3 notify welche 2 Variablen haben die in jeder vorkommt
Ist es denn möglich diese nur einmal vorzugen, zb. global
oder kann man hier überhaupt mehr kürzen?
mir kommt das ein bisschen lang vor dafür das ichs in 3 rollover geteilt hab

define Squeezebox dummy
attr Squeezebox group Squeezeboxserver
attr Squeezebox setList state:Ein/Play,Aus,Pause,Skip,Back
attr Squeezebox webCmd state
define Squeezebox_ntfy notify Squeezebox:.* {\
    my $v=Value("Squeezebox");;\
    my $server='http://192.168.0.99:9000';;\
    my $player="&player=192.168.0.9";;\
    my $bef1="/status.html?p0=play";;\
    my $bef2="/status.html?p0=stop";;\
    my $bef3="/status.html?p0=pause";;\
    my $bef5="/status.html?p0=playlist&p1=jump&p2=+1";;\
    my $bef6="/status.html?p0=playlist&p1=jump&p2=-1";;\
    if ($v eq "Ein/Play") {GetFileFromURL "$server$bef1$player"};;\
    if ($v eq "Aus") {GetFileFromURL "$server$bef2$player"};;\
    if ($v eq "Pause") {GetFileFromURL "$server$bef3$player"};;\
    if ($v eq "Skip") {GetFileFromURL "$server$bef5$player"};;\
    if ($v eq "Back") {GetFileFromURL "$server$bef6$player"};;\
    }

define Playlist dummy
attr Playlist group Squeezeboxserver
attr Playlist setList state:Radio,MLW
attr Playlist webCmd state
define Playlist_ntfy notify Playlist:.* {\
    my $v=Value("Playlist");;\
    my $server='http://192.168.0.99:9000';;\
    my $player="&player=192.168.0.9";;\
    my $bef4="/status.html?p0=playlist&p1=play&p2=http://mp3-live.swr3.de/swr3_m.m3u";;\
    my $befd="/status.html?p0=playlist&p1=play&p2=MLW";;\
    if ($v eq "Radio") {GetFileFromURL "$server$bef4$player"};;\
    if ($v eq "MLW") {GetFileFromURL "$server$befd$player"};;\
    }

define Vol dummy
attr Vol group Squeezeboxserver
attr Vol setList state:Mute,Vol10,Vol30,Vol40,Vol50,Vol60
attr Vol webCmd state
define Vol_ntfy notify Vol:.* {\
    my $v=Value("Vol");;\
    my $server='http://192.168.0.99:9000';;\
    my $player="&player=192.168.0.9";;\
    my $bef7="/status.html?p0=mixer&p1=volume&p2=0";;\
    my $bef8="/status.html?p0=mixer&p1=volume&p2=10";;\
    my $bef9="/status.html?p0=mixer&p1=volume&p2=30";;\
    my $befa="/status.html?p0=mixer&p1=volume&p2=40";;\
    my $befb="/status.html?p0=mixer&p1=volume&p2=50";;\
    my $befc="/status.html?p0=mixer&p1=volume&p2=60";;\
    if ($v eq "Mute") {GetFileFromURL "$server$bef7$player"};;\
    if ($v eq "Vol10") {GetFileFromURL "$server$bef8$player"};;\
    if ($v eq "Vol30") {GetFileFromURL "$server$bef9$player"};;\
    if ($v eq "Vol40") {GetFileFromURL "$server$befa$player"};;\
    if ($v eq "Vol50") {GetFileFromURL "$server$befb$player"};;\
    if ($v eq "Vol60") {GetFileFromURL "$server$befc$player"};;\
    }


LG Wilfo
Titel: Antw:notify kürzen
Beitrag von: betateilchen am 24 Oktober 2013, 11:33:06
sowas würde ich nie in ein notify packen, sondern immer eine Funktion in 99_myUtils.pm anlegen.
Titel: Antw:notify kürzen
Beitrag von: wilfo am 24 Oktober 2013, 13:24:30
Im 99_myUtils.pm krieg ich sowas nochnicht hin
Titel: Antw:notify kürzen
Beitrag von: betateilchen am 24 Oktober 2013, 14:20:23
Das ist prinzipiell genau der gleiche Text ( = perl Coding), den Du dort hinschreiben musst, nur finde ich es dort viel übersichtlicher und dadurch leichter überschaubar.
Titel: Antw:notify kürzen
Beitrag von: wilfo am 24 Oktober 2013, 16:22:51
also 1:1 rüber kopieren funktioniert mal nicht