Abarbeitung der Set Befehle in eine einzige Sub untergebracht, Fehlerstatus und Fehlermedungen verbessert, Set Alarmtimer eingebaut
This commit is contained in:
parent
15ee90e0dc
commit
b765bd9540
146
74_AMAD.pm
146
74_AMAD.pm
@ -22,7 +22,7 @@
|
|||||||
#
|
#
|
||||||
################################################################
|
################################################################
|
||||||
|
|
||||||
###### Version 0.2.1 ############
|
###### Version 0.3.0 ############
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -159,46 +159,31 @@ sub AMAD_Set($$@)
|
|||||||
. " MediaPlayer:play,stop,next,back"
|
. " MediaPlayer:play,stop,next,back"
|
||||||
. " Brightness:slider,0,1,255"
|
. " Brightness:slider,0,1,255"
|
||||||
. " Screen:on,off"
|
. " Screen:on,off"
|
||||||
. " openURL";
|
. " openURL"
|
||||||
|
. " Alarmtime:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45";
|
||||||
|
|
||||||
|
|
||||||
if (lc $cmd eq 'screenmsg') {
|
if (lc $cmd eq 'screenmsg'
|
||||||
|
|| lc $cmd eq 'ttsmsg'
|
||||||
|
|| lc $cmd eq 'volume'
|
||||||
|
|| lc $cmd eq 'mediaplayer'
|
||||||
|
|| lc $cmd eq 'devicestate'
|
||||||
|
|| lc $cmd eq 'brightness'
|
||||||
|
|| lc $cmd eq 'screen'
|
||||||
|
|| lc $cmd eq 'openurl'
|
||||||
|
|| lc $cmd eq 'alarmtime') {
|
||||||
|
|
||||||
Log3 $name, 4, "AMAD ($name) - set $name $cmd ".join(" ", @val);
|
Log3 $name, 4, "AMAD ($name) - set $name $cmd ".join(" ", @val);
|
||||||
return AMAD_SetScreenMsg ($hash, @val) if (defined(@val));
|
return AMAD_SelectSetCmd ($hash, $cmd, @val);
|
||||||
}
|
|
||||||
elsif (lc $cmd eq 'ttsmsg') {
|
|
||||||
Log3 $name, 4, "AMAD ($name) - set $name $cmd ".join(" ", @val) if (defined(@val));
|
|
||||||
return AMAD_SetTtsMsg ($hash, @val);
|
|
||||||
}
|
|
||||||
elsif (lc $cmd eq 'volume') {
|
|
||||||
Log3 $name, 4, "AMAD ($name) - set $name $cmd ".join(" ", @val) if (defined(@val));
|
|
||||||
return AMAD_SetVolume ($hash, @val);
|
|
||||||
}
|
|
||||||
elsif (lc $cmd eq 'mediaplayer') {
|
|
||||||
Log3 $name, 4, "AMAD ($name) - set $name $cmd ".join(" ", @val) if (defined(@val));
|
|
||||||
return AMAD_SetMediaplayer ($hash, @val);
|
|
||||||
}
|
|
||||||
elsif (lc $cmd eq 'devicestate') {
|
|
||||||
Log3 $name, 4, "AMAD ($name) - set $name $cmd ".join(" ", @val) if (defined(@val));
|
|
||||||
my $v = join(" ", @val);
|
|
||||||
|
|
||||||
readingsSingleUpdate ($hash,$cmd,$v,1);
|
|
||||||
|
|
||||||
return undef;
|
|
||||||
}
|
|
||||||
elsif (lc $cmd eq 'brightness') {
|
|
||||||
Log3 $name, 4, "AMAD ($name) - set $name $cmd ".join(" ", @val) if (defined(@val));
|
|
||||||
return AMAD_SetBrightness ($hash, @val);
|
|
||||||
}
|
|
||||||
elsif (lc $cmd eq 'screen') {
|
|
||||||
Log3 $name, 4, "AMAD ($name) - set $name $cmd ".join(" ", @val) if (defined(@val));
|
|
||||||
return AMAD_SetScreen ($hash, @val);
|
|
||||||
}
|
|
||||||
elsif (lc $cmd eq 'openurl') {
|
|
||||||
Log3 $name, 4, "AMAD ($name) - set $name $cmd ".join(" ", @val) if (defined(@val));
|
|
||||||
return AMAD_SetOpenURL ($hash, @val);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# elsif (lc $cmd eq 'devicestate') {
|
||||||
|
# Log3 $name, 4, "AMAD ($name) - set $name $cmd ".join(" ", @val) if (defined(@val));
|
||||||
|
# my $v = join(" ", @val);
|
||||||
|
#
|
||||||
|
# readingsSingleUpdate ($hash,$cmd,$v,1);
|
||||||
|
#
|
||||||
|
# return undef;
|
||||||
|
|
||||||
return "Unknown argument $cmd, bearword as argument or wrong parameter(s), choose one of $list";
|
return "Unknown argument $cmd, bearword as argument or wrong parameter(s), choose one of $list";
|
||||||
}
|
}
|
||||||
@ -284,12 +269,12 @@ sub AMAD_HTTP_POST($$)
|
|||||||
if ($hash->{STATE} eq "initialized")
|
if ($hash->{STATE} eq "initialized")
|
||||||
{
|
{
|
||||||
Log3 $name, 4, "AMAD ($name) - AMAD_HTTP_POST: set command only works if STATE active, please wait next interval run";
|
Log3 $name, 4, "AMAD ($name) - AMAD_HTTP_POST: set command only works if STATE active, please wait next interval run";
|
||||||
return;
|
return "set command only works if STATE active, please wait next interval run";
|
||||||
}
|
}
|
||||||
if ($hash->{STATE} eq "error")
|
if ($hash->{STATE} eq "error")
|
||||||
{
|
{
|
||||||
Log3 $name, 4, "AMAD ($name) - AMAD_HTTP_POST: error while send Set command. Please check IP or PORT";
|
Log3 $name, 4, "AMAD ($name) - AMAD_HTTP_POST: error while send Set command. Please check IP or PORT";
|
||||||
return;
|
return "error while send Set command. Please check IP or PORT";
|
||||||
}
|
}
|
||||||
|
|
||||||
$hash->{STATE} = "Send HTTP POST";
|
$hash->{STATE} = "Send HTTP POST";
|
||||||
@ -310,13 +295,14 @@ sub AMAD_HTTP_POST($$)
|
|||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub AMAD_SetScreenMsg($@)
|
sub AMAD_SelectSetCmd($$@)
|
||||||
{
|
{
|
||||||
my ($hash, @data) = @_;
|
my ($hash, $cmd, @data) = @_;
|
||||||
my $name = $hash->{NAME};
|
my $name = $hash->{NAME};
|
||||||
my $host = $hash->{HOST};
|
my $host = $hash->{HOST};
|
||||||
my $port = $hash->{PORT};
|
my $port = $hash->{PORT};
|
||||||
|
|
||||||
|
if (lc $cmd eq 'screenmsg') {
|
||||||
my $msg = join(" ", @data);
|
my $msg = join(" ", @data);
|
||||||
$msg =~ s/\s/%20/g;
|
$msg =~ s/\s/%20/g;
|
||||||
|
|
||||||
@ -324,28 +310,18 @@ sub AMAD_SetScreenMsg($@)
|
|||||||
Log3 $name, 4, "AMAD ($name) - Sub AMAD_SetScreenMsg";
|
Log3 $name, 4, "AMAD ($name) - Sub AMAD_SetScreenMsg";
|
||||||
|
|
||||||
return AMAD_HTTP_POST ($hash,$url);
|
return AMAD_HTTP_POST ($hash,$url);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub AMAD_SetTtsMsg($@) {
|
|
||||||
my ($hash, @data) = @_;
|
|
||||||
my $name = $hash->{NAME};
|
|
||||||
my $host = $hash->{HOST};
|
|
||||||
my $port = $hash->{PORT};
|
|
||||||
|
|
||||||
|
elsif (lc $cmd eq 'ttsmsg') {
|
||||||
my $msg = join(" ", @data);
|
my $msg = join(" ", @data);
|
||||||
$msg =~ s/\s/%20/g;
|
$msg =~ s/\s/%20/g;
|
||||||
|
|
||||||
my $url = "http://" . $host . ":" . $port . "/automagic/ttsMsg?message=$msg";
|
my $url = "http://" . $host . ":" . $port . "/automagic/ttsMsg?message=$msg";
|
||||||
|
|
||||||
return AMAD_HTTP_POST ($hash,$url);
|
return AMAD_HTTP_POST ($hash,$url);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub AMAD_SetVolume($@) {
|
|
||||||
my ($hash, @data) = @_;
|
|
||||||
my $name = $hash->{NAME};
|
|
||||||
my $host = $hash->{HOST};
|
|
||||||
my $port = $hash->{PORT};
|
|
||||||
|
|
||||||
|
elsif (lc $cmd eq 'volume') {
|
||||||
my $vol = join(" ", @data);
|
my $vol = join(" ", @data);
|
||||||
|
|
||||||
my $url = "http://" . $host . ":" . $port . "/automagic/setVolume?volume=$vol";
|
my $url = "http://" . $host . ":" . $port . "/automagic/setVolume?volume=$vol";
|
||||||
@ -353,14 +329,25 @@ sub AMAD_SetVolume($@) {
|
|||||||
AMAD_GetUpdateLocal($hash);
|
AMAD_GetUpdateLocal($hash);
|
||||||
Log3 $name, 4, "AMAD ($name) - Starte Update GetUpdateLocal";
|
Log3 $name, 4, "AMAD ($name) - Starte Update GetUpdateLocal";
|
||||||
return AMAD_HTTP_POST ($hash,$url);
|
return AMAD_HTTP_POST ($hash,$url);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub AMAD_SetBrightness($@) {
|
elsif (lc $cmd eq 'mediaplayer') {
|
||||||
my ($hash, @data) = @_;
|
my $btn = join(" ", @data);
|
||||||
my $name = $hash->{NAME};
|
|
||||||
my $host = $hash->{HOST};
|
|
||||||
my $port = $hash->{PORT};
|
|
||||||
|
|
||||||
|
my $url = "http://" . $host . ":" . $port . "/automagic/mediaPlayer?button=$btn";
|
||||||
|
|
||||||
|
return AMAD_HTTP_POST ($hash,$url);
|
||||||
|
}
|
||||||
|
|
||||||
|
elsif (lc $cmd eq 'devicestate') {
|
||||||
|
my $v = join(" ", @data);
|
||||||
|
|
||||||
|
readingsSingleUpdate ($hash,$cmd,$v,1);
|
||||||
|
|
||||||
|
return undef;
|
||||||
|
}
|
||||||
|
|
||||||
|
elsif (lc $cmd eq 'brightness') {
|
||||||
my $bri = join(" ", @data);
|
my $bri = join(" ", @data);
|
||||||
|
|
||||||
my $url = "http://" . $host . ":" . $port . "/automagic/setBrightness?brightness=$bri";
|
my $url = "http://" . $host . ":" . $port . "/automagic/setBrightness?brightness=$bri";
|
||||||
@ -368,47 +355,38 @@ sub AMAD_SetBrightness($@) {
|
|||||||
AMAD_GetUpdateLocal($hash);
|
AMAD_GetUpdateLocal($hash);
|
||||||
Log3 $name, 4, "AMAD ($name) - Starte Update GetUpdateLocal";
|
Log3 $name, 4, "AMAD ($name) - Starte Update GetUpdateLocal";
|
||||||
return AMAD_HTTP_POST ($hash,$url);
|
return AMAD_HTTP_POST ($hash,$url);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub AMAD_SetScreen($@) {
|
|
||||||
my ($hash, @data) = @_;
|
|
||||||
my $name = $hash->{NAME};
|
|
||||||
my $host = $hash->{HOST};
|
|
||||||
my $port = $hash->{PORT};
|
|
||||||
|
|
||||||
|
elsif (lc $cmd eq 'screen') {
|
||||||
my $mod = join(" ", @data);
|
my $mod = join(" ", @data);
|
||||||
|
|
||||||
my $url = "http://" . $host . ":" . $port . "/automagic/setScreenOnOff?screen=$mod";
|
my $url = "http://" . $host . ":" . $port . "/automagic/setScreenOnOff?screen=$mod";
|
||||||
|
|
||||||
return AMAD_HTTP_POST ($hash,$url);
|
return AMAD_HTTP_POST ($hash,$url);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub AMAD_SetOpenURL($@) {
|
|
||||||
my ($hash, @data) = @_;
|
|
||||||
my $name = $hash->{NAME};
|
|
||||||
my $host = $hash->{HOST};
|
|
||||||
my $port = $hash->{PORT};
|
|
||||||
|
|
||||||
|
elsif (lc $cmd eq 'openurl') {
|
||||||
my $openurl = join(" ", @data);
|
my $openurl = join(" ", @data);
|
||||||
|
|
||||||
my $url = "http://" . $host . ":" . $port . "/automagic/openURL?url=$openurl";
|
my $url = "http://" . $host . ":" . $port . "/automagic/openURL?url=$openurl";
|
||||||
|
|
||||||
return AMAD_HTTP_POST ($hash,$url);
|
return AMAD_HTTP_POST ($hash,$url);
|
||||||
}
|
}
|
||||||
|
elsif (lc $cmd eq 'alarmtime') {
|
||||||
|
my $alarmTime = join(" ", @data);
|
||||||
|
my @alarm = split(":", $alarmTime);
|
||||||
|
|
||||||
sub AMAD_SetMediaplayer($@) {
|
my $url = "http://" . $host . ":" . $port . "/automagic/setAlarm?hour=".$alarm[0]."&minute=".$alarm[1];
|
||||||
my ($hash, @data) = @_;
|
|
||||||
my $name = $hash->{NAME};
|
|
||||||
my $host = $hash->{HOST};
|
|
||||||
my $port = $hash->{PORT};
|
|
||||||
|
|
||||||
my $btn = join(" ", @data);
|
|
||||||
|
|
||||||
my $url = "http://" . $host . ":" . $port . "/automagic/mediaPlayer?button=$btn";
|
|
||||||
|
|
||||||
|
AMAD_GetUpdateLocal($hash);
|
||||||
|
Log3 $name, 4, "AMAD ($name) - Starte Update GetUpdateLocal";
|
||||||
return AMAD_HTTP_POST ($hash,$url);
|
return AMAD_HTTP_POST ($hash,$url);
|
||||||
|
}
|
||||||
|
|
||||||
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user