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:
|
# 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")
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
Reference in New Issue
Block a user