mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2025-12-20 22:47:01 +01:00
.
This commit is contained in:
@@ -64,46 +64,55 @@ def number_set(entity_id, value):
|
||||
# else:
|
||||
# apis.ha_api.get_entity(entity_id).call_service(
|
||||
# "set_value", value=value)
|
||||
def cover_control(entity_id, action):
|
||||
action_service_mapping = {
|
||||
'up': 'open_cover',
|
||||
'stop': 'stop_cover',
|
||||
'down': 'close_cover',
|
||||
'tiltOpen': 'open_cover_tilt',
|
||||
'tiltStop': 'stop_cover_tilt',
|
||||
'tiltClose': 'close_cover_tilt',
|
||||
}
|
||||
if action in action_service_mapping:
|
||||
service = action_service_mapping[action]
|
||||
libs.home_assistant.call_service(
|
||||
entity_name=entity_id,
|
||||
domain="cover",
|
||||
service=service,
|
||||
service_data={}
|
||||
)
|
||||
def cover_control_pos(entity_id, action):
|
||||
logging.error("positionSlider not implemented")
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# # for shutter / covers
|
||||
# if button_type == "up":
|
||||
# apis.ha_api.get_entity(entity_id).call_service("open_cover")
|
||||
# if button_type == "stop":
|
||||
# apis.ha_api.get_entity(entity_id).call_service("stop_cover")
|
||||
# if button_type == "down":
|
||||
# apis.ha_api.get_entity(entity_id).call_service("close_cover")
|
||||
# if button_type == "positionSlider":
|
||||
# pos = int(value)
|
||||
# apis.ha_api.get_entity(entity_id).call_service(
|
||||
# "set_cover_position", position=pos)
|
||||
# if button_type == "tiltOpen":
|
||||
# apis.ha_api.get_entity(entity_id).call_service("open_cover_tilt")
|
||||
# if button_type == "tiltStop":
|
||||
# apis.ha_api.get_entity(entity_id).call_service("stop_cover_tilt")
|
||||
# if button_type == "tiltClose":
|
||||
# apis.ha_api.get_entity(entity_id).call_service("close_cover_tilt")
|
||||
|
||||
def cover_control_tilt(entity_id, action):
|
||||
logging.error("tiltSlider not implemented")
|
||||
|
||||
# if button_type == "tiltSlider":
|
||||
# pos = int(value)
|
||||
# apis.ha_api.get_entity(entity_id).call_service(
|
||||
# "set_cover_tilt_position", tilt_position=pos)
|
||||
#
|
||||
|
||||
#
|
||||
# # for media page
|
||||
# if button_type == "media-next":
|
||||
# apis.ha_api.get_entity(entity_id).call_service("media_next_track")
|
||||
# if button_type == "media-back":
|
||||
# apis.ha_api.get_entity(entity_id).call_service(
|
||||
# "media_previous_track")
|
||||
# if button_type == "media-pause":
|
||||
# apis.ha_api.get_entity(entity_id).call_service("media_play_pause")
|
||||
def media_control(entity_id, action):
|
||||
action_service_mapping = {
|
||||
'media-next': 'media_next_track',
|
||||
'media-back': 'media_previous_track',
|
||||
'media-pause': 'media_play_pause',
|
||||
}
|
||||
if action in action_service_mapping:
|
||||
service = action_service_mapping[action]
|
||||
libs.home_assistant.call_service(
|
||||
entity_name=entity_id,
|
||||
domain="media",
|
||||
service=service,
|
||||
service_data={}
|
||||
)
|
||||
|
||||
|
||||
# if button_type == "media-OnOff":
|
||||
# if apis.ha_api.get_entity(entity_id).state == "off":
|
||||
# apis.ha_api.get_entity(entity_id).call_service("turn_on")
|
||||
|
||||
@@ -143,7 +143,8 @@ class LovelaceUIPanel:
|
||||
if iid in self.entity_iids:
|
||||
entity_id = self.entity_iids[iid]
|
||||
|
||||
if btype == "button":
|
||||
match btype:
|
||||
case 'button':
|
||||
match entity_id.split(".")[0]:
|
||||
case 'navigate':
|
||||
iid = entity_id.split(".")[1]
|
||||
@@ -155,10 +156,16 @@ class LovelaceUIPanel:
|
||||
self.sendTopic, self.current_card.render())
|
||||
case _:
|
||||
ha_control.button_press(entity_id, value)
|
||||
if btype == "OnOff":
|
||||
case 'OnOff':
|
||||
ha_control.on_off(entity_id, value)
|
||||
if btype == "number-set":
|
||||
case 'number-set':
|
||||
ha_control.number_set(entity_id, value)
|
||||
case 'up' | 'stop' | 'down' | 'tiltOpen' | 'tiltStop' | 'tiltClose':
|
||||
ha_control.cover_control(entity_id, btype)
|
||||
case 'positionSlider':
|
||||
ha_control.cover_control_pos(entity_id, value)
|
||||
case 'tiltSlider':
|
||||
ha_control.cover_control_tilt(entity_id, value)
|
||||
|
||||
if msg[1] == "pageOpenDetail":
|
||||
print("pageOpenDetail")
|
||||
|
||||
Reference in New Issue
Block a user