new Attribut for max volume

This commit is contained in:
Marko Oldenburg
2017-07-06 10:05:01 +02:00
parent 222379d54e
commit cd2eb08f3c
2 changed files with 24 additions and 11 deletions

View File

@ -719,7 +719,7 @@ sub AMADCommBridge_ResponseProcessing($$) {
my $decode_json = eval{decode_json($json)}; my $decode_json = eval{decode_json($json)};
if($@){ if($@){
Log3 $bname, 4, "AMADCommBridge ($name) - ERROR while request: $@"; Log3 $bname, 4, "AMADCommBridge ($name) - JSON error while request: $@";
if( AttrVal( $bname, 'debugJSON', 0 ) == 1 ) { if( AttrVal( $bname, 'debugJSON', 0 ) == 1 ) {
readingsBeginUpdate($bhash); readingsBeginUpdate($bhash);
@ -775,7 +775,7 @@ sub AMADCommBridge_ResponseProcessing($$) {
return Log3 $bname, 3, "AMADCommBridge ($name) - AMADCommBridge: processing receive no reading values from Device: $fhemDevice" return Log3 $bname, 3, "AMADCommBridge ($name) - AMADCommBridge: processing receive no reading values from Device: $fhemDevice"
unless( (defined($decode_json->{payload}) and ($decode_json->{payload})) or (defined($decode_json->{firstrun}) and ($decode_json->{firstrun})) ); unless( (defined($decode_json->{payload}) and ($decode_json->{payload})) or (defined($decode_json->{firstrun}) and ($decode_json->{firstrun})) );
Log3 $bname, 4, "AMADCommBridge ($bname) - AMADCommBridge: processing receive reading values - Device: $fhemDevice Data: $decode_json->{payload}"; Log3 $bname, 4, "AMADCommBridge ($bname) - AMADCommBridge: processing receive reading values - Device: $fhemDevice Data: $decode_json->{payload}" unless( defined($decode_json->{payload}) and ($decode_json->{payload}) );
Dispatch($bhash,$json,undef); Dispatch($bhash,$json,undef);
Log3 $bname, 4, "AMADCommBridge ($bname) - call Dispatcher"; Log3 $bname, 4, "AMADCommBridge ($bname) - call Dispatcher";

View File

@ -54,7 +54,7 @@ eval "use Encode qw(encode encode_utf8);1" or $missingModul .= "Encode ";
eval "use JSON;1" or $missingModul .= "JSON "; eval "use JSON;1" or $missingModul .= "JSON ";
my $modulversion = "3.9.76"; my $modulversion = "3.9.77";
my $flowsetversion = "3.9.76"; my $flowsetversion = "3.9.76";
@ -104,6 +104,7 @@ sub AMADDevice_Initialize($) {
"setUserFlowState ". "setUserFlowState ".
"setTtsMsgLang:de,en ". "setTtsMsgLang:de,en ".
"setVolUpDownStep:1,2,4,5 ". "setVolUpDownStep:1,2,4,5 ".
"setVolMax ".
"setAPSSID ". "setAPSSID ".
"root:0,1 ". "root:0,1 ".
"disable:1 ". "disable:1 ".
@ -376,6 +377,8 @@ sub AMADDevice_WriteReadings($$) {
readingsBulkUpdateIfChanged($hash, $t, $v, 1) if( defined( $v ) ); readingsBulkUpdateIfChanged($hash, $t, $v, 1) if( defined( $v ) );
readingsBulkUpdate($hash, '.'.$t, $v) if( $t eq 'deviceState' ); readingsBulkUpdate($hash, '.'.$t, $v) if( $t eq 'deviceState' );
readingsBulkUpdate($hash, $t, $v) if( $t eq 'incomingCallerName' );
readingsBulkUpdate($hash, $t, $v) if( $t eq 'incomingCallerNumber' );
} }
readingsBulkUpdateIfChanged( $hash, "deviceState", "offline", 1 ) if( $decode_json->{payload}{airplanemode} && $decode_json->{payload}{airplanemode} eq "on" ); readingsBulkUpdateIfChanged( $hash, "deviceState", "offline", 1 ) if( $decode_json->{payload}{airplanemode} && $decode_json->{payload}{airplanemode} eq "on" );
@ -411,6 +414,8 @@ sub AMADDevice_Set($$@) {
my $uri; my $uri;
my $header = 'Connection: close'; my $header = 'Connection: close';
my $method; my $method;
my $volMax = AttrVal($name,'setVolMax',15);
if( lc $cmd eq 'screenmsg' ) { if( lc $cmd eq 'screenmsg' ) {
@ -737,13 +742,14 @@ sub AMADDevice_Set($$@) {
my $btdev = AttrVal( $name, "setBluetoothDevice", "none" ); my $btdev = AttrVal( $name, "setBluetoothDevice", "none" );
my $list = "screenMsg ttsMsg volume:slider,0,1,15 mediaGoogleMusic:play/pause,stop,next,back mediaSamsungMusic:play/pause,stop,next,back mediaAmazonMusic:play/pause,stop,next,back mediaSpotifyMusic:play/pause,stop,next,back mediaTuneinRadio:play/pause,stop,next,back mediaAldiMusic:play/pause,stop,next,back mediaYouTube:play/pause,stop,next,back mediaVlcPlayer:play/pause,stop,next,back mediaAudible:play/pause,stop,next,back screenBrightness:slider,0,1,255 screen:on,off,lock,unlock openURL nextAlarmTime:time timer:slider,1,1,60 statusRequest:noArg bluetooth:on,off notifySndFile clearNotificationBar:All,Automagic activateVoiceInput:noArg volumeNotification:slider,0,1,7 volumeRingSound:slider,0,1,7 vibrate:noArg sendIntent openCall closeCall:noArg currentFlowsetUpdate:noArg installFlowSource doNotDisturb:never,always,alarmClockOnly,onlyImportant userFlowState sendSMS startDaydream:noArg volumeUp:noArg volumeDown:noArg mute:on,off"; my $list = "screenMsg ttsMsg mediaGoogleMusic:play/pause,stop,next,back mediaSamsungMusic:play/pause,stop,next,back mediaAmazonMusic:play/pause,stop,next,back mediaSpotifyMusic:play/pause,stop,next,back mediaTuneinRadio:play/pause,stop,next,back mediaAldiMusic:play/pause,stop,next,back mediaYouTube:play/pause,stop,next,back mediaVlcPlayer:play/pause,stop,next,back mediaAudible:play/pause,stop,next,back screenBrightness:slider,0,1,255 screen:on,off,lock,unlock openURL nextAlarmTime:time timer:slider,1,1,60 statusRequest:noArg bluetooth:on,off notifySndFile clearNotificationBar:All,Automagic activateVoiceInput:noArg volumeNotification:slider,0,1,7 volumeRingSound:slider,0,1,7 vibrate:noArg sendIntent openCall closeCall:noArg currentFlowsetUpdate:noArg installFlowSource doNotDisturb:never,always,alarmClockOnly,onlyImportant userFlowState sendSMS startDaydream:noArg volumeUp:noArg volumeDown:noArg mute:on,off";
$list .= " screenOrientation:auto,landscape,portrait" if( AttrVal( $name, "setScreenOrientation", "0" ) eq "1" ); $list .= " screenOrientation:auto,landscape,portrait" if( AttrVal( $name, "setScreenOrientation", "0" ) eq "1" );
$list .= " screenFullscreen:on,off" if( AttrVal( $name, "setFullscreen", "0" ) eq "1" ); $list .= " screenFullscreen:on,off" if( AttrVal( $name, "setFullscreen", "0" ) eq "1" );
$list .= " openApp:$apps" if( AttrVal( $name, "setOpenApp", "none" ) ne "none" ); $list .= " openApp:$apps" if( AttrVal( $name, "setOpenApp", "none" ) ne "none" );
$list .= " system:reboot,shutdown,airplanemodeON" if( AttrVal( $name, "root", "0" ) eq "1" ); $list .= " system:reboot,shutdown,airplanemodeON" if( AttrVal( $name, "root", "0" ) eq "1" );
$list .= " changetoBTDevice:$btdev" if( AttrVal( $name, "setBluetoothDevice", "none" ) ne "none" ); $list .= " changetoBTDevice:$btdev" if( AttrVal( $name, "setBluetoothDevice", "none" ) ne "none" );
$list .= " volume:slider,0,1,$volMax";
return "Unknown argument $cmd, choose one of $list"; return "Unknown argument $cmd, choose one of $list";
@ -764,8 +770,7 @@ sub AMADDevice_Parse($$) {
my $decode_json = eval{decode_json(encode_utf8($json))}; my $decode_json = eval{decode_json(encode_utf8($json))};
if($@){ if($@){
Log3 $name, 3, "AMADDevice ($name) - error while request: $@"; Log3 $name, 3, "AMADDevice ($name) - JSON error while request: $@";
#readingsSingleUpdate($hash, "state", "error", 1);
return; return;
} }
@ -994,6 +999,8 @@ sub AMADDevice_decrypt($) {
<li>userFlowState - set Flow/s active or inactive,<b><i>set Nexus7Wohnzimmer Badezimmer:inactive vorheizen</i> or <i>set Nexus7Wohnzimmer Badezimmer vorheizen,Nachtlicht Steven:inactive</i></b></li> <li>userFlowState - set Flow/s active or inactive,<b><i>set Nexus7Wohnzimmer Badezimmer:inactive vorheizen</i> or <i>set Nexus7Wohnzimmer Badezimmer vorheizen,Nachtlicht Steven:inactive</i></b></li>
<li>vibrate - vibrate Android device</li> <li>vibrate - vibrate Android device</li>
<li>volume - set media volume. Works on internal speaker or, if connected, bluetooth speaker or speaker connected via stereo jack</li> <li>volume - set media volume. Works on internal speaker or, if connected, bluetooth speaker or speaker connected via stereo jack</li>
<li>volumeUp - Increases the volume by the value from the attribute. Is no Attribut set, the default is 2</li>
<li>volumeDown - Decreases the volume by the value from the attribute. Is no Attribut set, the default is 2.</li>
<li>volumeNotification - set notifications volume</li> <li>volumeNotification - set notifications volume</li>
</ul> </ul>
<br> <br>
@ -1007,10 +1014,12 @@ sub AMADDevice_decrypt($) {
<li>screenLock - Locks screen with request for PIN. <b>attribute setScreenlockPIN - enter PIN here. Only use numbers, 4-16 numbers required.</b></li> <li>screenLock - Locks screen with request for PIN. <b>attribute setScreenlockPIN - enter PIN here. Only use numbers, 4-16 numbers required.</b></li>
<li>screenOrientation - Auto,Landscape,Portait, set screen orientation (automatic, horizontal, vertical). <b>attribute setScreenOrientation</b></li> <li>screenOrientation - Auto,Landscape,Portait, set screen orientation (automatic, horizontal, vertical). <b>attribute setScreenOrientation</b></li>
<li>system - issue system command (only with rooted Android devices). reboot,shutdown,airplanemodeON (can only be switched ON) <b>attribute root</b>, in Automagic "Preferences" "Root functions" need to be enabled.</li> <li>system - issue system command (only with rooted Android devices). reboot,shutdown,airplanemodeON (can only be switched ON) <b>attribute root</b>, in Automagic "Preferences" "Root functions" need to be enabled.</li>
<li>setAPSSID - set WLAN AccesPoint SSID to prevent WLAN sleeps</li> <li>setAPSSID - Sets WLAN AccesPoint SSID to prevent WLAN sleeps</li>
<li>setNotifySndFilePath - set systempath to notifyfile (default /storage/emulated/0/Notifications/</li> <li>setNotifySndFilePath - Sets systempath to notifyfile (default /storage/emulated/0/Notifications/</li>
<li>setTtsMsgSpeed - set speaking speed for TTS (Value between 0.5 - 4.0, 0.5 Step) default is 1.0</li> <li>setTtsMsgSpeed - Sets speaking speed for TTS (Value between 0.5 - 4.0, 0.5 Step) default is 1.0</li>
<li>setTtsMsgLang - set speaking language for TTS, de or en (default is de)</li> <li>setTtsMsgLang - Sets speaking language for TTS, de or en (default is de)</li>
<li>setVolMax - Sets the maximum volume for the volume Slider</li>
<li>setVolUpDownStep - Sets the Stepvalue for volumeUp/Down</li>
<br> <br>
To be able to use "openApp" the corresponding attribute "setOpenApp" needs to contain the app package name. To be able to use "openApp" the corresponding attribute "setOpenApp" needs to contain the app package name.
<br><br> <br><br>
@ -1169,7 +1178,9 @@ sub AMADDevice_decrypt($) {
<li>ttsMsg - versendet eine Nachricht welche als Sprachnachricht ausgegeben wird</li> <li>ttsMsg - versendet eine Nachricht welche als Sprachnachricht ausgegeben wird</li>
<li>userFlowState - aktiviert oder deaktiviert einen oder mehrere Flows,<b><i>set Nexus7Wohnzimmer Badezimmer vorheizen:inactive</i> oder <i>set Nexus7Wohnzimmer Badezimmer vorheizen,Nachtlicht Steven:inactive</i></b></li> <li>userFlowState - aktiviert oder deaktiviert einen oder mehrere Flows,<b><i>set Nexus7Wohnzimmer Badezimmer vorheizen:inactive</i> oder <i>set Nexus7Wohnzimmer Badezimmer vorheizen,Nachtlicht Steven:inactive</i></b></li>
<li>vibrate - l&auml;sst das Androidger&auml;t vibrieren</li> <li>vibrate - l&auml;sst das Androidger&auml;t vibrieren</li>
<li>volume - setzt die Medialautst&auml;rke. Entweder die internen Lautsprecher oder sofern angeschlossen die Bluetoothlautsprecher und per Klinkenstecker angeschlossene Lautsprecher, + oder - vor dem Wert reduziert die aktuelle Lautst&auml;rke um den Wert</li> <li>volume - setzt die Medialautst&auml;rke. Entweder die internen Lautsprecher oder sofern angeschlossen die Bluetoothlautsprecher und per Klinkenstecker angeschlossene Lautsprecher, + oder - vor dem Wert reduziert die aktuelle Lautst&auml;rke um den Wert. Der maximale Sliderwert kann &uuml;ber das Attribut setVolMax geregelt werden.</li>
<li>volumeUp - erh&ouml;t die Lautst&auml;rke um den angegeben Wert im entsprechenden Attribut. Ist kein Attribut angegeben wird per default 2 genommen.</li>
<li>volumeDown - reduziert die Lautst&auml;rke um den angegeben Wert im entsprechenden Attribut. Ist kein Attribut angegeben wird per default 2 genommen.</li>
<li>volumeNotification - setzt die Benachrichtigungslautst&auml;rke.</li> <li>volumeNotification - setzt die Benachrichtigungslautst&auml;rke.</li>
</ul> </ul>
<br> <br>
@ -1188,6 +1199,8 @@ sub AMADDevice_decrypt($) {
<li>setNotifySndFilePath - setzt den korrekten Systempfad zur Notifydatei (default ist /storage/emulated/0/Notifications/</li> <li>setNotifySndFilePath - setzt den korrekten Systempfad zur Notifydatei (default ist /storage/emulated/0/Notifications/</li>
<li>setTtsMsgSpeed - setzt die Sprachgeschwindigkeit bei der Sprachausgabe(Werte zwischen 0.5 bis 4.0 in 0.5er Schritten) default ist 1.0</li> <li>setTtsMsgSpeed - setzt die Sprachgeschwindigkeit bei der Sprachausgabe(Werte zwischen 0.5 bis 4.0 in 0.5er Schritten) default ist 1.0</li>
<li>setTtsMsgSpeed - setzt die Sprache bei der Sprachausgabe, de oder en (default ist de)</li> <li>setTtsMsgSpeed - setzt die Sprache bei der Sprachausgabe, de oder en (default ist de)</li>
<li>setVolUpDownStep - setzt den Step f&uuml;r volumeUp und volumeDown</li>
<li>setVolMax - setzt die maximale Volume Gr&uoml;e</li>
<br> <br>
Um openApp verwenden zu k&ouml;nnen, muss als Attribut der Package Name der App angegeben werden. Um openApp verwenden zu k&ouml;nnen, muss als Attribut der Package Name der App angegeben werden.
<br><br> <br><br>