This commit is contained in:
joBr99
2023-11-19 20:01:23 +01:00
parent 9ab66b741d
commit 2777ce56ea
2 changed files with 62 additions and 46 deletions

View File

@@ -64,46 +64,55 @@ def number_set(entity_id, value):
# else: # else:
# apis.ha_api.get_entity(entity_id).call_service( # apis.ha_api.get_entity(entity_id).call_service(
# "set_value", value=value) # "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": # if button_type == "positionSlider":
# pos = int(value) # pos = int(value)
# apis.ha_api.get_entity(entity_id).call_service( # apis.ha_api.get_entity(entity_id).call_service(
# "set_cover_position", position=pos) # "set_cover_position", position=pos)
# if button_type == "tiltOpen":
# apis.ha_api.get_entity(entity_id).call_service("open_cover_tilt") def cover_control_tilt(entity_id, action):
# if button_type == "tiltStop": logging.error("tiltSlider not implemented")
# 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")
# if button_type == "tiltSlider": # if button_type == "tiltSlider":
# pos = int(value) # pos = int(value)
# apis.ha_api.get_entity(entity_id).call_service( # apis.ha_api.get_entity(entity_id).call_service(
# "set_cover_tilt_position", tilt_position=pos) # "set_cover_tilt_position", tilt_position=pos)
#
# def media_control(entity_id, action):
# # for media page action_service_mapping = {
# if button_type == "media-next": 'media-next': 'media_next_track',
# apis.ha_api.get_entity(entity_id).call_service("media_next_track") 'media-back': 'media_previous_track',
# if button_type == "media-back": 'media-pause': 'media_play_pause',
# apis.ha_api.get_entity(entity_id).call_service( }
# "media_previous_track") if action in action_service_mapping:
# if button_type == "media-pause": service = action_service_mapping[action]
# apis.ha_api.get_entity(entity_id).call_service("media_play_pause") libs.home_assistant.call_service(
entity_name=entity_id,
domain="media",
service=service,
service_data={}
)
# if button_type == "media-OnOff": # if button_type == "media-OnOff":
# if apis.ha_api.get_entity(entity_id).state == "off": # if apis.ha_api.get_entity(entity_id).state == "off":
# apis.ha_api.get_entity(entity_id).call_service("turn_on") # apis.ha_api.get_entity(entity_id).call_service("turn_on")

View File

@@ -143,22 +143,29 @@ class LovelaceUIPanel:
if iid in self.entity_iids: if iid in self.entity_iids:
entity_id = self.entity_iids[iid] entity_id = self.entity_iids[iid]
if btype == "button": match btype:
match entity_id.split(".")[0]: case 'button':
case 'navigate': match entity_id.split(".")[0]:
iid = entity_id.split(".")[1] case 'navigate':
self.privious_cards.append(self.current_card) iid = entity_id.split(".")[1]
self.current_card = self.searchCard(iid) self.privious_cards.append(self.current_card)
libs.panel_cmd.page_type( self.current_card = self.searchCard(iid)
self.sendTopic, self.current_card.type) libs.panel_cmd.page_type(
libs.panel_cmd.entityUpd( self.sendTopic, self.current_card.type)
self.sendTopic, self.current_card.render()) libs.panel_cmd.entityUpd(
case _: self.sendTopic, self.current_card.render())
ha_control.button_press(entity_id, value) case _:
if btype == "OnOff": ha_control.button_press(entity_id, value)
ha_control.on_off(entity_id, value) case 'OnOff':
if btype == "number-set": ha_control.on_off(entity_id, value)
ha_control.number_set(entity_id, value) 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": if msg[1] == "pageOpenDetail":
print("pageOpenDetail") print("pageOpenDetail")