From: Vincent Date: Fri, 29 Jan 2021 09:14:10 +0000 (+0100) Subject: . X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=f7dba9f9e9fc7d91525f4d1656f0cb38481c7557;p=tortuga-home.git . --- diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 0e626ee..5bf28db 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -3,8 +3,11 @@ - + + + + diff --git a/scripts/domoticz_device_event.php b/scripts/domoticz_device_event.php index e03633e..8b6a09f 100644 --- a/scripts/domoticz_device_event.php +++ b/scripts/domoticz_device_event.php @@ -82,6 +82,12 @@ if ($_GET['device'] == 480) { off('bureau'); break; case 'Move': + if(getCurrentHarmonyActivity()==='tv'){ + _remoteCmd('pause', 'bureau'); + }else{ + stopPlayersIn('bureau'); + stopHarmony(); + } break; case 'Clock_Wise': volume(2, '+'); @@ -90,7 +96,7 @@ if ($_GET['device'] == 480) { volume(2, '-'); break; case 'Tap': - squeezePlayByName('Samba', $squeezeboxPlayers['Bureau']); + squeezeResume(); harmonyActivity('musique'); break; case 'Alert': diff --git a/scripts/lib/mediarasp.php b/scripts/lib/mediarasp.php index 426d102..db2860f 100644 --- a/scripts/lib/mediarasp.php +++ b/scripts/lib/mediarasp.php @@ -318,8 +318,9 @@ function mediaRaspCommons($device) if ($device == 'salon') { stopSqueezebox('Salon'); } else if ($device == 'bureau') { - execScene('bureau/media/play'); - harmonyActivity('tv'); + if (getState('bureauPlaying', '0') === '0') { + execScene('bureau/media/play'); + } stopSqueezebox($squeezeboxPlayers['Bureau']); if (!isAlive('bureau')) { sleep(60); diff --git a/scripts/lib/scenes.php b/scripts/lib/scenes.php index 73a87fa..f8fc05d 100644 --- a/scripts/lib/scenes.php +++ b/scripts/lib/scenes.php @@ -21,7 +21,7 @@ $bedlowscreenbrightness = 12; $home = 15; $alert = 16; -$chambrefan = 2061; +$chambrefan = 2724; $scenes = [ 'chambre/matin' => [ @@ -335,7 +335,7 @@ $scenes = [ ['type' => 'function', 'function' => 'synchroSoiree'], ], 'salon/on' => [ - ['type' => 'hue', 'group' => $salon, 'scene' => 'Gte8sl76rzAD1wO','repeat'=>2], + ['type' => 'hue', 'group' => $salon, 'scene' => 'Gte8sl76rzAD1wO', 'repeat' => 2], //['type' => 'insteon', 'command' => '0?113=I=0=0'], ['type' => 'scene', 'scene' => 'salon/cheminee', 'delay' => 1], ], @@ -352,16 +352,16 @@ $scenes = [ // ['type' => 'insteon', 'command' => '0?1111=I=0=0'], ], 'salon/cineclub' => [ - ['type' => 'hue', 'group' => $salon, 'scene' => 'xpCjXtV3u7O1kYu','repeat'=>2], + ['type' => 'hue', 'group' => $salon, 'scene' => 'xpCjXtV3u7O1kYu', 'repeat' => 2], ['type' => 'scene', 'scene' => 'salon/cinemabase'], ], 'salon/cinema' => [ - ['type' => 'hue', 'group' => $salon, 'scene' => 'AsU9eOyGsjEyz35','repeat'=>2], + ['type' => 'hue', 'group' => $salon, 'scene' => 'AsU9eOyGsjEyz35', 'repeat' => 2], ['type' => 'scene', 'scene' => 'salon/cinemabase'], ], 'salon/tamise' => [ ['type' => 'ecomode', 'mode' => '0'], - ['type' => 'hue', 'group' => $salon, 'scene' => 'RbjnIcLtcDuHbfU','repeat'=>2], + ['type' => 'hue', 'group' => $salon, 'scene' => 'RbjnIcLtcDuHbfU', 'repeat' => 2], // ['type' => 'insteon', 'command' => '0?1130=I=0=0'], ['type' => 'function', 'function' => 'chemineeOn', 'args' => ['salon', 'fire', 0.8]], ], @@ -407,6 +407,10 @@ $scenes = [ ['type' => 'ecomode', 'mode' => '0'], ['type' => 'function', 'function' => 'wakeupPC', 'args' => ['avion']], ], + 'bureau/cinema' => [ + ['type' => 'scene', 'scene' => 'bureau/base/off'], + ['type' => 'hue', 'group' => $bureau, 'scene' => '7mofVclWdtvpVyt'], + ], 'bureau/lumineux' => [ ['type' => 'hue', 'group' => $bureau, 'scene' => 'SdXwtZu5PCDjK2h'], ['type' => 'state', 'key' => 'bureau_gradient', 'value' => 'lumineux'], @@ -509,12 +513,16 @@ $scenes = [ ['type' => 'scene', 'scene' => 'bureau/base/on'], ['type' => 'scene', 'scene' => 'bureau/screens/on'], ], - 'bureau/off' => [ + 'bureau/base/off' => [ ['type' => 'function', 'function' => 'bureauAuto', 'args' => [false]], - ['type' => 'hue', 'group' => $bureau, 'scene' => array('on' => false, 'brightness' => 0)], ['type' => 'state', 'key' => 'bureau_gradient', 'value' => 'off'], ['type' => 'scene', 'scene' => 'bureau/sleeppc'], ], + 'bureau/off' => [ + ['type' => 'scene', 'scene' => 'bureau/base/off'], + ['type' => 'hue', 'group' => $bureau, 'scene' => array('on' => false, 'brightness' => 0)], + + ], 'bureau/sound/on' => [ ['type' => 'domoticz', 'device' => 24, 'switchtype' => 'scene', 'command' => true, 'priority' => true], ], @@ -522,15 +530,18 @@ $scenes = [ ['type' => 'domoticz', 'device' => 24, 'switchtype' => 'scene', 'command' => false], ], 'bureau/media/play' => [ + ['type' => 'state', 'key' => 'bureauPlaying', 'value' => '1'], ['type' => 'scene', 'scene' => 'bureau/screen/down'], ['type' => 'scene', 'scene' => 'bureau/rideaux/close'], - ['type' => 'scene', 'scene' => 'bureau/off'], + ['type' => 'scene', 'scene' => 'bureau/cinema'], ['type' => 'function', 'function' => 'bureauAuto', 'args' => [false]], //['type' => 'ir', 'room' => 'bureausun', 'device' => 'Projector', 'command' => 'PowerOn'], ['type' => 'function', 'function' => 'harmonyActivity', 'args' => ['tv']], ['type' => 'scene', 'scene' => 'bureau/sound/on'], + ], 'bureau/media/stop' => [ + ['type' => 'state', 'key' => 'bureauPlaying', 'value' => '0'], ['type' => 'scene', 'scene' => 'bureau/screen/up'], ['type' => 'scene', 'scene' => 'bureau/rideaux/open'], ['type' => 'scene', 'scene' => 'bureau/auto'], diff --git a/scripts/lib/shield.php b/scripts/lib/shield.php index d513638..7c39ac3 100644 --- a/scripts/lib/shield.php +++ b/scripts/lib/shield.php @@ -47,7 +47,9 @@ function shieldRunActivity($device = null) harmonyActivity('musique'); } else { harmonyActivity('tv'); - execScene('bureau/media/play'); + if (getState('bureauPlaying', '0') === '0') { + execScene('bureau/media/play'); + } } } } @@ -355,7 +357,7 @@ function _adb($command, $params = '', $device = null) { $c = _adbcmd($command, $params, $device); $output = `$c`; - // echo $c . ' :: ' . $output . "\n"; + // echo $c . ' :: ' . $output . "\n"; return $output; } diff --git a/scripts/lib/squeezebox.php b/scripts/lib/squeezebox.php index 5dd730a..ea6cd2b 100644 --- a/scripts/lib/squeezebox.php +++ b/scripts/lib/squeezebox.php @@ -50,6 +50,7 @@ function stopAllSqueezebox() setState('syncsoiree', '0'); } + function getSqueezePlayerStatus($player = '') { $res = _squeezeRequest('mode ?', $player); @@ -78,6 +79,12 @@ function stopPlayersIn($room, $stopIfSync = true, $devices = true) } } +function squeezeResume($player = '') +{ + $player = _squeezePlay($player, null); + squeezeRequest('play', $player); +} + function squeezeRequest($params, $player = '') { $redis = connectRedis(); @@ -115,7 +122,7 @@ function _squeezeRequest($params, $player = '') function squeezePlayByName($musicName, $player, $volume = null, $playIfSync = true) { - global $squeezeboxPlayers; + if (!$playIfSync && getState('syncsoiree') == '1') { echo 'sync enabled'; return; @@ -124,6 +131,19 @@ function squeezePlayByName($musicName, $player, $volume = null, $playIfSync = tr global $allmusics; $m = $allmusics[$musicName]; + $player = _squeezePlay($player, $volume); + squeezeRequest('pause', $player); + + foreach ($m['commands'] as $command) { + echo $player . ':' . $command . '
'; + squeezeRequest($command, $player); + } +} + + +function _squeezePlay($player = '', $volume = null) +{ + global $squeezeboxPlayers; $player = _player($player); if (null === $player) { echo 'player null'; @@ -142,7 +162,7 @@ function squeezePlayByName($musicName, $player, $volume = null, $playIfSync = tr } else if ($player == $squeezeboxPlayers['Chambre']) { denon(true); } - squeezeRequest('pause', $player); + if (null !== $volume) { if (config('VOLUME_DEVICE') == 'SqueezeboxPlayer') { $squeezeVolume = $volume; @@ -153,10 +173,7 @@ function squeezePlayByName($musicName, $player, $volume = null, $playIfSync = tr echo 'volume ' . $squeezeVolume; squeezeVolume($squeezeVolume, '', $player); } - foreach ($m['commands'] as $command) { - echo $player . ':' . $command . '
'; - squeezeRequest($command, $player); - } + return $player; } function _player($player = null)