From cd2eb08f3c2a2cf787624c3cbef58580f709ea66 Mon Sep 17 00:00:00 2001 From: Marko Oldenburg Date: Thu, 6 Jul 2017 10:05:01 +0200 Subject: [PATCH] new Attribut for max volume --- 73_AMADCommBridge.pm | 4 ++-- 74_AMADDevice.pm | 31 ++++++++++++++++++++++--------- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/73_AMADCommBridge.pm b/73_AMADCommBridge.pm index 54ff1eb..2587a65 100644 --- a/73_AMADCommBridge.pm +++ b/73_AMADCommBridge.pm @@ -719,7 +719,7 @@ sub AMADCommBridge_ResponseProcessing($$) { my $decode_json = eval{decode_json($json)}; if($@){ - Log3 $bname, 4, "AMADCommBridge ($name) - ERROR while request: $@"; + Log3 $bname, 4, "AMADCommBridge ($name) - JSON error while request: $@"; if( AttrVal( $bname, 'debugJSON', 0 ) == 1 ) { readingsBeginUpdate($bhash); @@ -775,7 +775,7 @@ sub AMADCommBridge_ResponseProcessing($$) { 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})) ); - 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); Log3 $bname, 4, "AMADCommBridge ($bname) - call Dispatcher"; diff --git a/74_AMADDevice.pm b/74_AMADDevice.pm index 7c44f89..7808de8 100644 --- a/74_AMADDevice.pm +++ b/74_AMADDevice.pm @@ -54,7 +54,7 @@ eval "use Encode qw(encode encode_utf8);1" or $missingModul .= "Encode "; eval "use JSON;1" or $missingModul .= "JSON "; -my $modulversion = "3.9.76"; +my $modulversion = "3.9.77"; my $flowsetversion = "3.9.76"; @@ -104,6 +104,7 @@ sub AMADDevice_Initialize($) { "setUserFlowState ". "setTtsMsgLang:de,en ". "setVolUpDownStep:1,2,4,5 ". + "setVolMax ". "setAPSSID ". "root:0,1 ". "disable:1 ". @@ -376,6 +377,8 @@ sub AMADDevice_WriteReadings($$) { readingsBulkUpdateIfChanged($hash, $t, $v, 1) if( defined( $v ) ); 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" ); @@ -411,6 +414,8 @@ sub AMADDevice_Set($$@) { my $uri; my $header = 'Connection: close'; my $method; + + my $volMax = AttrVal($name,'setVolMax',15); if( lc $cmd eq 'screenmsg' ) { @@ -737,13 +742,14 @@ sub AMADDevice_Set($$@) { 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 .= " screenFullscreen:on,off" if( AttrVal( $name, "setFullscreen", "0" ) eq "1" ); $list .= " openApp:$apps" if( AttrVal( $name, "setOpenApp", "none" ) ne "none" ); $list .= " system:reboot,shutdown,airplanemodeON" if( AttrVal( $name, "root", "0" ) eq "1" ); $list .= " changetoBTDevice:$btdev" if( AttrVal( $name, "setBluetoothDevice", "none" ) ne "none" ); + $list .= " volume:slider,0,1,$volMax"; return "Unknown argument $cmd, choose one of $list"; @@ -764,8 +770,7 @@ sub AMADDevice_Parse($$) { my $decode_json = eval{decode_json(encode_utf8($json))}; if($@){ - Log3 $name, 3, "AMADDevice ($name) - error while request: $@"; - #readingsSingleUpdate($hash, "state", "error", 1); + Log3 $name, 3, "AMADDevice ($name) - JSON error while request: $@"; return; } @@ -994,6 +999,8 @@ sub AMADDevice_decrypt($) {
  • userFlowState - set Flow/s active or inactive,set Nexus7Wohnzimmer Badezimmer:inactive vorheizen or set Nexus7Wohnzimmer Badezimmer vorheizen,Nachtlicht Steven:inactive
  • vibrate - vibrate Android device
  • volume - set media volume. Works on internal speaker or, if connected, bluetooth speaker or speaker connected via stereo jack
  • +
  • volumeUp - Increases the volume by the value from the attribute. Is no Attribut set, the default is 2
  • +
  • volumeDown - Decreases the volume by the value from the attribute. Is no Attribut set, the default is 2.
  • volumeNotification - set notifications volume

  • @@ -1007,10 +1014,12 @@ sub AMADDevice_decrypt($) {
  • screenLock - Locks screen with request for PIN. attribute setScreenlockPIN - enter PIN here. Only use numbers, 4-16 numbers required.
  • screenOrientation - Auto,Landscape,Portait, set screen orientation (automatic, horizontal, vertical). attribute setScreenOrientation
  • system - issue system command (only with rooted Android devices). reboot,shutdown,airplanemodeON (can only be switched ON) attribute root, in Automagic "Preferences" "Root functions" need to be enabled.
  • -
  • setAPSSID - set WLAN AccesPoint SSID to prevent WLAN sleeps
  • -
  • setNotifySndFilePath - set systempath to notifyfile (default /storage/emulated/0/Notifications/
  • -
  • setTtsMsgSpeed - set speaking speed for TTS (Value between 0.5 - 4.0, 0.5 Step) default is 1.0
  • -
  • setTtsMsgLang - set speaking language for TTS, de or en (default is de)
  • +
  • setAPSSID - Sets WLAN AccesPoint SSID to prevent WLAN sleeps
  • +
  • setNotifySndFilePath - Sets systempath to notifyfile (default /storage/emulated/0/Notifications/
  • +
  • setTtsMsgSpeed - Sets speaking speed for TTS (Value between 0.5 - 4.0, 0.5 Step) default is 1.0
  • +
  • setTtsMsgLang - Sets speaking language for TTS, de or en (default is de)
  • +
  • setVolMax - Sets the maximum volume for the volume Slider
  • +
  • setVolUpDownStep - Sets the Stepvalue for volumeUp/Down

  • To be able to use "openApp" the corresponding attribute "setOpenApp" needs to contain the app package name.

    @@ -1169,7 +1178,9 @@ sub AMADDevice_decrypt($) {
  • ttsMsg - versendet eine Nachricht welche als Sprachnachricht ausgegeben wird
  • userFlowState - aktiviert oder deaktiviert einen oder mehrere Flows,set Nexus7Wohnzimmer Badezimmer vorheizen:inactive oder set Nexus7Wohnzimmer Badezimmer vorheizen,Nachtlicht Steven:inactive
  • vibrate - lässt das Androidgerät vibrieren
  • -
  • volume - setzt die Medialautstärke. Entweder die internen Lautsprecher oder sofern angeschlossen die Bluetoothlautsprecher und per Klinkenstecker angeschlossene Lautsprecher, + oder - vor dem Wert reduziert die aktuelle Lautstärke um den Wert
  • +
  • volume - setzt die Medialautstärke. Entweder die internen Lautsprecher oder sofern angeschlossen die Bluetoothlautsprecher und per Klinkenstecker angeschlossene Lautsprecher, + oder - vor dem Wert reduziert die aktuelle Lautstärke um den Wert. Der maximale Sliderwert kann über das Attribut setVolMax geregelt werden.
  • +
  • volumeUp - erhöt die Lautstärke um den angegeben Wert im entsprechenden Attribut. Ist kein Attribut angegeben wird per default 2 genommen.
  • +
  • volumeDown - reduziert die Lautstärke um den angegeben Wert im entsprechenden Attribut. Ist kein Attribut angegeben wird per default 2 genommen.
  • volumeNotification - setzt die Benachrichtigungslautstärke.

  • @@ -1188,6 +1199,8 @@ sub AMADDevice_decrypt($) {
  • setNotifySndFilePath - setzt den korrekten Systempfad zur Notifydatei (default ist /storage/emulated/0/Notifications/
  • setTtsMsgSpeed - setzt die Sprachgeschwindigkeit bei der Sprachausgabe(Werte zwischen 0.5 bis 4.0 in 0.5er Schritten) default ist 1.0
  • setTtsMsgSpeed - setzt die Sprache bei der Sprachausgabe, de oder en (default ist de)
  • +
  • setVolUpDownStep - setzt den Step für volumeUp und volumeDown
  • +
  • setVolMax - setzt die maximale Volume Gr&uoml;e

  • Um openApp verwenden zu können, muss als Attribut der Package Name der App angegeben werden.