</component>
<component name="ChangeListManager">
<list default="true" id="352ce63a-b52a-41a2-979b-becda7920939" name="Default" comment=".">
+ <change beforePath="$PROJECT_DIR$/.idea/dataSources.local.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources.local.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/.idea/dataSources/7a96a13f-795b-43c9-b1de-56e65d9fcf95.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/7a96a13f-795b-43c9-b1de-56e65d9fcf95.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/scripts/lib/homeassistant.php" beforeDir="false" afterPath="$PROJECT_DIR$/scripts/lib/homeassistant.php" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/scripts/lib/scenes.php" beforeDir="false" afterPath="$PROJECT_DIR$/scripts/lib/scenes.php" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/scripts/homeassistant_device_event.php" beforeDir="false" afterPath="$PROJECT_DIR$/scripts/homeassistant_device_event.php" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<path value="$PROJECT_DIR$/vendor/nesbot/carbon" />
</include_path>
</component>
+ <component name="ProjectColorInfo"><![CDATA[{
+ "associatedIndex": 2
+}]]></component>
<component name="ProjectId" id="1PFC0igWIhrgYSSHbpcyuWkyTcm" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
<OptionsSetting value="false" id="Update" />
<workItem from="1689437591381" duration="3503000" />
<workItem from="1689663231923" duration="380000" />
<workItem from="1689669472736" duration="10000" />
- <workItem from="1689699901478" duration="1046000" />
+ <workItem from="1689699901478" duration="2677000" />
+ <workItem from="1689794477505" duration="27000" />
+ <workItem from="1690623646625" duration="1467000" />
</task>
<task id="LOCAL-00502" summary=".">
<created>1641726946298</created>
<option name="project" value="LOCAL" />
<updated>1687259667913</updated>
</task>
- <option name="localTasksCounter" value="582" />
+ <option name="localTasksCounter" value="583" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
$_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';
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";
$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