132 lines
4.3 KiB
JavaScript
132 lines
4.3 KiB
JavaScript
const states = global.get('homeassistant.homeAssistant.states')
|
|
const occupied = states["binary_sensor.basement_occupied"].state
|
|
const quiet = states["input_boolean.studio_quiet"].state
|
|
const stateTinaDesk = states["light.tina_desk_lights"].state
|
|
const stateLivingRoom = states["light.living_room_lights"].state
|
|
const stateDiningRoom = states["light.dining_room_lamp"].state
|
|
const stateBasement = states["light.basement_studio_lights"].state
|
|
const adaptLivingRoom = states["switch.adaptive_lighting_living_room"].state
|
|
const adaptBasement = states["switch.adaptive_lighting_basement_studio"].state
|
|
const nightLivingRoom = states["switch.adaptive_lighting_sleep_mode_living_room"].state
|
|
const nightBasement = states["switch.adaptive_lighting_sleep_mode_basement_studio"].state
|
|
const currentSceneBasement = states["input_text.basement_studio_selected_scene"].state
|
|
const currentSceneLivingRoom = states["input_text.living_room_selected_scene"].state
|
|
const currentSceneTinaDesk = states["input_text.tina_desk_selected_scene"].state
|
|
const effectBasement = msg.payload.event.basement
|
|
const effectFirstFloor = msg.payload.event.first_floor
|
|
const effectType = msg.payload.event.type
|
|
const effectDivide = msg.payload.event.divide
|
|
const duration = msg.payload.event.duration
|
|
const delay = duration * 1000
|
|
const adaptiveSwitchFirstFloor = flow.get("adaptiveFirstFloor")
|
|
const adaptiveSwitchBasement = flow.get("adaptiveBasement")
|
|
|
|
//! Use delay in service calls, not duration
|
|
|
|
flow.set("currentSceneBasement", currentSceneBasement)
|
|
flow.set("currentSceneLivingRoom", currentSceneLivingRoom)
|
|
flow.set("currentSceneTinaDesk", currentSceneTinaDesk)
|
|
flow.set("adaptLivingRoom", adaptLivingRoom)
|
|
flow.set("adaptBasement", adaptBasement)
|
|
flow.set("nightLivingRoom", nightLivingRoom)
|
|
flow.set("nightBasement", nightBasement)
|
|
flow.set("stateTinaDesk", stateTinaDesk)
|
|
flow.set("stateLivingRoom", stateLivingRoom)
|
|
flow.set("stateDiningRoom", stateDiningRoom)
|
|
flow.set("stateBasement", stateBasement)
|
|
|
|
let firstFloorLights = []
|
|
let basementLights = []
|
|
let basement1 = []
|
|
let basement2 = []
|
|
let basementFull = []
|
|
let livingRoom1 = []
|
|
let livingRoom2 = []
|
|
let livingRoomFull = []
|
|
|
|
if (stateTinaDesk === 'on') {
|
|
firstFloorLights.push('light.tina_desk_strip','light.tina_lamp_top','light.tina_lamp_side')
|
|
}
|
|
|
|
if (stateLivingRoom === 'on') {
|
|
firstFloorLights.push('light.living_room_color_1','light.living_room_color_2','light.living_room_color_3','light.living_room_led_strip')
|
|
}
|
|
|
|
if (stateDiningRoom === 'on') {
|
|
firstFloorLights.push('light.dining_room_lamp')
|
|
}
|
|
|
|
if (stateBasement === 'on') {
|
|
basementLights.push('light.basement_tall_lamp','light.basement_short_lamp','light.basement_stairwell','light.basement_led_strip_1')
|
|
}
|
|
|
|
if (effectDivide === 'half') {
|
|
basement1 = flow.get("halfBasement1")
|
|
basement2 = flow.get("halfBasement2")
|
|
livingRoom1 = flow.get("halfLivingRoom1")
|
|
livingRoom2 = flow.get("halfLivingRoom2")
|
|
} else if (effectDivide === 'quarter') {
|
|
basement1 = flow.get("effectSegBasement1")
|
|
basement2 = flow.get("effectSegBasement2")
|
|
livingRoom1 = flow.get("effectSegLivingRoom1")
|
|
livingRoom2 = flow.get("effectSegLivingRoom2")
|
|
} else if (effectDivide === 'full') {
|
|
basementFull = flow.get("basementFull")
|
|
livingRoomFull = flow.get("livingRoomFull")
|
|
}
|
|
|
|
//! Implement setting of colors here
|
|
|
|
// Set message payloads
|
|
let sendBasementStrip1 = {
|
|
"payload": {
|
|
"domain": "lifx",
|
|
"service": "set_state",
|
|
"target": {
|
|
"entity_id": ["light.basement_led_strip_1"]
|
|
},
|
|
"data": {
|
|
"zones": basement1
|
|
}
|
|
}
|
|
}
|
|
|
|
let sendBasementStrip2 = {
|
|
"payload": {
|
|
"domain": "lifx",
|
|
"service": "set_state",
|
|
"target": {
|
|
"entity_id": ["light.basement_led_strip_1"]
|
|
},
|
|
"data": {
|
|
"zones": basement2
|
|
}
|
|
}
|
|
}
|
|
|
|
let sendLivingRoomStrip1 = {
|
|
"payload": {
|
|
"domain": "lifx",
|
|
"service": "set_state",
|
|
"target": {
|
|
"entity_id": ["light.living_room_led_strip"]
|
|
},
|
|
"data": {
|
|
"zones": livingRoom1
|
|
}
|
|
}
|
|
}
|
|
|
|
let sendLivingRoomStrip2 = {
|
|
"payload": {
|
|
"domain": "lifx",
|
|
"service": "set_state",
|
|
"target": {
|
|
"entity_id": ["light.living_room_led_strip"]
|
|
},
|
|
"data": {
|
|
"zones": livingRoom2
|
|
}
|
|
}
|
|
}
|