From 62f7d98ee1f7921dd99eb4b4e88dc8b097e8f7d8 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Sat, 29 Jul 2023 12:28:42 +0200 Subject: [PATCH] . --- .idea/dataSources.local.xml | 2 +- .../7a96a13f-795b-43c9-b1de-56e65d9fcf95.xml | 2 +- .idea/misc.xml | 1 - .idea/workspace.xml | 15 +- scripts/homeassistant_device_event.php | 408 ++++++++++-------- 5 files changed, 240 insertions(+), 188 deletions(-) diff --git a/.idea/dataSources.local.xml b/.idea/dataSources.local.xml index a039eb9..1e3b65e 100644 --- a/.idea/dataSources.local.xml +++ b/.idea/dataSources.local.xml @@ -1,6 +1,6 @@ - + " diff --git a/.idea/dataSources/7a96a13f-795b-43c9-b1de-56e65d9fcf95.xml b/.idea/dataSources/7a96a13f-795b-43c9-b1de-56e65d9fcf95.xml index 026d87e..43b3454 100644 --- a/.idea/dataSources/7a96a13f-795b-43c9-b1de-56e65d9fcf95.xml +++ b/.idea/dataSources/7a96a13f-795b-43c9-b1de-56e65d9fcf95.xml @@ -1,6 +1,6 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 3b6d908..712d804 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/.idea/workspace.xml b/.idea/workspace.xml index afd6f7d..fa23a71 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -5,9 +5,11 @@ + + + - - + + @@ -1257,7 +1262,9 @@ - + + + 1641726946298 @@ -1602,7 +1609,7 @@ - diff --git a/scripts/homeassistant_device_event.php b/scripts/homeassistant_device_event.php index e7df105..5fe2226 100644 --- a/scripts/homeassistant_device_event.php +++ b/scripts/homeassistant_device_event.php @@ -3,9 +3,10 @@ const TIMELIMIT = 1; $_GET['im'] = '5'; if ($_GET['state'] === 'None') { - exit; + exit; } -const HA_WC_SWITCH = 'sensor.0x0c4314fffe7ce957_action'; +const HA_SWITCH_BUREAU = 'sensor.0x0c4314fffe7ce957_action'; +const HA_SWITCH_WC = 'sensor.0x70ac08fffe911960_action'; const HA_CUBE_BUREAU = 'sensor.0x00158d00042d7082_action'; const HA_SWITCH_BEDROOM = 'binary_sensor.switch_bedroom'; const HA_CUBE_BATHROOM = 'sensor.0x00158d0005c19a86_action'; @@ -15,32 +16,35 @@ const HA_CUBE_SALON_3 = 'sensor.0x00158d00058a55da_action'; switch ($_GET['id']) { - case HA_WC_SWITCH: - $action = 'wcSwitch'; - $forceConfig = 'wc'; - break; - case HA_CUBE_BUREAU: - $forceConfig = 'bureau'; - $action = 'cubeBureau'; - break; - - case HA_SWITCH_BEDROOM: - $forceConfig = 'chambre'; - $action = 'chambreToggle'; - break; - case HA_CUBE_BATHROOM: - $forceConfig = 'sdb'; - $action = 'cubeSDB'; - break; - case HA_CUBE_SALON_1: - case HA_CUBE_SALON_2: - case HA_CUBE_SALON_3: - $forceConfig = 'salon'; - $action = 'cubeSalon'; - break; - - default: - exit; + case HA_SWITCH_WC: + $action = 'wcSwitch'; + $forceConfig = 'wc'; + break; + case HA_CUBE_BUREAU: + $forceConfig = 'bureau'; + $action = 'cubeBureau'; + break; + case HA_SWITCH_BUREAU: + $forceConfig = 'bureau'; + $action = 'switchBureau'; + break; + case HA_SWITCH_BEDROOM: + $forceConfig = 'chambre'; + $action = 'chambreToggle'; + break; + case HA_CUBE_BATHROOM: + $forceConfig = 'sdb'; + $action = 'cubeSDB'; + break; + case HA_CUBE_SALON_1: + case HA_CUBE_SALON_2: + case HA_CUBE_SALON_3: + $forceConfig = 'salon'; + $action = 'cubeSalon'; + break; + + default: + exit; } require_once "import.php"; @@ -48,166 +52,208 @@ require_once "import.php"; $action(); -function getCubeFace($id = null) { - if (null === $id) { - $id = $_GET['id']; - } - $id = str_replace('_action', '_side', $id); - return (int)haGetState($id); +function getCubeFace($id = null) +{ + if (null === $id) { + $id = $_GET['id']; + } + $id = str_replace('_action', '_side', $id); + return (int)haGetState($id); +} + +function wcSwitch() +{ + switch ($_GET['state']) { + case '1_double': + case '2_double': + case 'double': + execScene('wc/spa', true); + setState('wc', 1); + break; + case '1_hold': + case '2_hold': + case 'hold': + if (isJerome(false) && isVincent()) { + execScene('home/alert', true); + } else { + wcToggle(); + } + break; + case 'single': + case '1_single': + case '2_single': + wcToggle(); + break; + default: + break; + } } -function wcSwitch() { - switch ($_GET['state']) { - case '1_double': - case '2_double': - execScene('wc/spa', true); - setState('wc', 1); - break; - case '1_hold': - case '2_hold': - if (isJerome(false) && isVincent()) { - execScene('home/alert', true); - } else { - wcToggle(); - } - break; - case '1_single': - case '2_single': - wcToggle(); - break; - default: - break; - } +function switchBureau() +{ + switch ($_GET['state']) { + case '1_double': + stopMusiqueBureau(); + break; + case '2_double': + musiqueBureau(); + break; + case '1_hold': + case '2_hold': + execScene('bureau/rideaux/toggle', true); + break; + case '1_single': + haAction('script.klarstein_fan_toggle'); + break; + case '2_single': + haAction(HA_OFFICE_MAIN_SCREEN); + execScene('bureau/auto', true); + break; + default: + break; + } } +function cubeBureau() +{ + if (gloria()) { + die('0'); + } + + $face = getCubeFace(); + // Cube bureau + switch ($_GET['state']) { + case 'shake': + execScene('home/alert', true); + break; + case 'flip90': + execScene('bureau/rideaux/toggle', true); + break; + case 'flip180': + haAction(HA_OFFICE_MAIN_SCREEN); + execScene('bureau/auto', true); + break; + case 'fall': + execScene('bureau/off', true); + off('bureau'); + break; + case 'slide': + if ($face == 5) { + haAction('script.klarstein_fan_toggle'); + break; + } + stopMusiqueBureau(); + break; + case 'rotate_right': + if ($face == 5) { + haAction('script.klarstein_fan_speed_up'); + break; + } + volume(config('VOLUME_STEP'), '+'); + break; + case 'rotate_left': + if ($face == 5) { + haAction('script.klarstein_fan_speed_down'); + break; + } + volume(config('VOLUME_STEP'), '-'); + break; + case 'tap': + musiqueBureau(); + break; + case 'Alert': + default: + break; + } +} + +function musiqueBureau() +{ + harmonyActivity(HARMONY_MUSIQUE); + $lastTap = getState('bureau_squeeze_tap', 0); + $musics = ['FIP', 'Samba']; + $i = ($lastTap + 1) % count($musics); + setState('bureau_squeeze_tap', $i); + squeezePlayByName($musics[$i], 'Bureau'); +} -function cubeBureau() { - if (gloria()) { - die('0'); - } - - $face = getCubeFace(); - // Cube bureau - switch ($_GET['state']) { - case 'shake': - execScene('home/alert', true); - break; - case 'flip90': - execScene('bureau/rideaux/toggle', true); - break; - case 'flip180': - haAction(HA_OFFICE_MAIN_SCREEN); - execScene('bureau/auto', true); - break; - case 'fall': - execScene('bureau/off', true); - off('bureau'); - break; - case 'slide': - if ($face == 5) { - haAction('script.klarstein_fan_toggle'); - break; - } - if (getCurrentHarmonyActivity() === HARMONY_TV) { - _remoteCmd('pause', 'bureau'); - } else { - stopPlayersIn('bureau'); - stopHarmony(); - } - break; - case 'rotate_right': - if ($face == 5) { - haAction('script.klarstein_fan_speed_up'); - break; - } - volume(config('VOLUME_STEP'), '+'); - break; - case 'rotate_left': - if ($face == 5) { - haAction('script.klarstein_fan_speed_down'); - break; - } - volume(config('VOLUME_STEP'), '-'); - break; - case 'tap': - harmonyActivity(HARMONY_MUSIQUE); - $lastTap = getState('bureau_squeeze_tap', 0); - $musics = ['FIP', 'Samba']; - $i = ($lastTap + 1) % count($musics); - setState('bureau_squeeze_tap', $i); - squeezePlayByName($musics[$i], 'Bureau'); - break; - case 'Alert': - default: - break; - } +function stopMusiqueBureau() +{ + if (getCurrentHarmonyActivity() === HARMONY_TV) { + _remoteCmd('pause', 'bureau'); + } else { + stopPlayersIn('bureau'); + stopHarmony(); + } } -function cubeSDB() { - if (gloria()) { - die('0'); - } - // Cube SDB - switch ($_GET['state']) { - case 'shake': - execScene('home/alert', true); - break; - case 'flip90': - execScene('sdb/off', true); - break; - case 'flip180': - execScene('sdb/on', true); - break; - case 'fall': - case 'slide': - off('sdb'); - break; - case 'rotate_right': - volume(config('VOLUME_STEP'), '+'); - break; - case 'rotate_left': - volume(config('VOLUME_STEP'), '-'); - break; - case 'tap': - squeezePlayByName('FIP', 'Salle de bains'); - break; - case 'Alert': - default: - break; - } +function cubeSDB() +{ + if (gloria()) { + die('0'); + } + // Cube SDB + switch ($_GET['state']) { + case 'shake': + execScene('home/alert', true); + break; + case 'flip90': + execScene('sdb/off', true); + break; + case 'flip180': + execScene('sdb/on', true); + break; + case 'fall': + case 'slide': + off('sdb'); + break; + case 'rotate_right': + volume(config('VOLUME_STEP'), '+'); + break; + case 'rotate_left': + volume(config('VOLUME_STEP'), '-'); + break; + case 'tap': + squeezePlayByName('FIP', 'Salle de bains'); + break; + case 'Alert': + default: + break; + } } -function cubeSalon() { - if (gloria()) { - die('0'); - } - switch ($_GET['state']) { - case 'shake': - execScene('home/alert', true); - break; - case 'flip90': - execScene('salon/cinema', true); - break; - case 'flip180': - execScene('salon/auto', true); - break; - case 'fall': - off('salon'); - break; - case 'slide': - _remoteCmd('pause', 'salon'); - break; - case 'rotate_right': - volume(config('VOLUME_STEP'), '+'); - break; - case 'rotate_left': - volume(config('VOLUME_STEP'), '-'); - break; - case 'tap': - squeezePlayByName('FIP', 'Salon'); - break; - case 'Alert': - default: - break; - } +function cubeSalon() +{ + if (gloria()) { + die('0'); + } + switch ($_GET['state']) { + case 'shake': + execScene('home/alert', true); + break; + case 'flip90': + execScene('salon/cinema', true); + break; + case 'flip180': + execScene('salon/auto', true); + break; + case 'fall': + off('salon'); + break; + case 'slide': + _remoteCmd('pause', 'salon'); + break; + case 'rotate_right': + volume(config('VOLUME_STEP'), '+'); + break; + case 'rotate_left': + volume(config('VOLUME_STEP'), '-'); + break; + case 'tap': + squeezePlayByName('FIP', 'Salon'); + break; + case 'Alert': + default: + break; + } } \ No newline at end of file -- 2.39.5