Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update home-assistant-query-selector #174

Merged
merged 1 commit into from
Jan 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .hass/config/.HA_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2023.12.3
2023.12.4
56 changes: 56 additions & 0 deletions .hass/config/blueprints/automation/homeassistant/motion_light.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
blueprint:
name: Motion-activated Light
description: Turn on a light when motion is detected.
domain: automation
source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/motion_light.yaml
author: Home Assistant
input:
motion_entity:
name: Motion Sensor
selector:
entity:
filter:
device_class: motion
domain: binary_sensor
light_target:
name: Light
selector:
target:
entity:
domain: light
no_motion_wait:
name: Wait time
description: Time to leave the light on after last motion is detected.
default: 120
selector:
number:
min: 0
max: 3600
unit_of_measurement: seconds

# If motion is detected within the delay,
# we restart the script.
mode: restart
max_exceeded: silent

trigger:
platform: state
entity_id: !input motion_entity
from: "off"
to: "on"

action:
- alias: "Turn on the light"
service: light.turn_on
target: !input light_target
- alias: "Wait until there is no motion from device"
wait_for_trigger:
platform: state
entity_id: !input motion_entity
from: "on"
to: "off"
- alias: "Wait the number of seconds that has been set"
delay: !input no_motion_wait
- alias: "Turn off the light"
service: light.turn_off
target: !input light_target
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
blueprint:
name: Zone Notification
description: Send a notification to a device when a person leaves a specific zone.
domain: automation
source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/notify_leaving_zone.yaml
author: Home Assistant
input:
person_entity:
name: Person
selector:
entity:
filter:
domain: person
zone_entity:
name: Zone
selector:
entity:
filter:
domain: zone
notify_device:
name: Device to notify
description: Device needs to run the official Home Assistant app to receive notifications.
selector:
device:
filter:
integration: mobile_app

trigger:
platform: state
entity_id: !input person_entity

variables:
zone_entity: !input zone_entity
# This is the state of the person when it's in this zone.
zone_state: "{{ states[zone_entity].name }}"
person_entity: !input person_entity
person_name: "{{ states[person_entity].name }}"

condition:
condition: template
# The first case handles leaving the Home zone which has a special state when zoning called 'home'.
# The second case handles leaving all other zones.
value_template: "{{ zone_entity == 'zone.home' and trigger.from_state.state == 'home' and trigger.to_state.state != 'home' or trigger.from_state.state == zone_state and trigger.to_state.state != zone_state }}"

action:
- alias: "Notify that a person has left the zone"
domain: mobile_app
type: notify
device_id: !input notify_device
message: "{{ person_name }} has left {{ zone_state }}"
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
blueprint:
name: Confirmable Notification
description: >-
A script that sends an actionable notification with a confirmation before
running the specified action.
domain: script
source_url: https://github.com/home-assistant/core/blob/master/homeassistant/components/script/blueprints/confirmable_notification.yaml
author: Home Assistant
input:
notify_device:
name: Device to notify
description: Device needs to run the official Home Assistant app to receive notifications.
selector:
device:
filter:
integration: mobile_app
title:
name: "Title"
description: "The title of the button shown in the notification."
default: ""
selector:
text:
message:
name: "Message"
description: "The message body"
selector:
text:
confirm_text:
name: "Confirmation Text"
description: "Text to show on the confirmation button"
default: "Confirm"
selector:
text:
confirm_action:
name: "Confirmation Action"
description: "Action to run when notification is confirmed"
default: []
selector:
action:
dismiss_text:
name: "Dismiss Text"
description: "Text to show on the dismiss button"
default: "Dismiss"
selector:
text:
dismiss_action:
name: "Dismiss Action"
description: "Action to run when notification is dismissed"
default: []
selector:
action:

mode: restart

sequence:
- alias: "Set up variables"
variables:
action_confirm: "{{ 'CONFIRM_' ~ context.id }}"
action_dismiss: "{{ 'DISMISS_' ~ context.id }}"
- alias: "Send notification"
domain: mobile_app
type: notify
device_id: !input notify_device
title: !input title
message: !input message
data:
actions:
- action: "{{ action_confirm }}"
title: !input confirm_text
- action: "{{ action_dismiss }}"
title: !input dismiss_text
- alias: "Awaiting response"
wait_for_trigger:
- platform: event
event_type: mobile_app_notification_action
event_data:
action: "{{ action_confirm }}"
- platform: event
event_type: mobile_app_notification_action
event_data:
action: "{{ action_dismiss }}"
- choose:
- conditions: "{{ wait.trigger.event.data.action == action_confirm }}"
sequence: !input confirm_action
- conditions: "{{ wait.trigger.event.data.action == action_dismiss }}"
sequence: !input dismiss_action
8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@
"test:ci": "yarn demo && yarn start:playwright && yarn stop:ha",
"test:all": "yarn lint && yarn test:ts && yarn test:ci",
"coverage:report": "nyc report --reporter=lcov --reporter=text-summary",
"start:ha": "docker run --rm -d -p8123:8123 --shm-size=512m -v ${PWD}/.hass/config:/config homeassistant/home-assistant:2023.12.3",
"start:ha:win": "docker run --rm -d -p8123:8123 --shm-size=512m -v %cd%/.hass/config:/config homeassistant/home-assistant:2023.12.3",
"stop:ha": "docker stop $(docker ps -a -q --filter ancestor=homeassistant/home-assistant:2023.12.3) || true",
"start:ha": "docker run --rm -d -p8123:8123 --shm-size=512m -v ${PWD}/.hass/config:/config homeassistant/home-assistant:2023.12.4",
"start:ha:win": "docker run --rm -d -p8123:8123 --shm-size=512m -v %cd%/.hass/config:/config homeassistant/home-assistant:2023.12.4",
"stop:ha": "docker stop $(docker ps -a -q --filter ancestor=homeassistant/home-assistant:2023.12.4) || true",
"demo": "yarn build && yarn start:ha",
"demo:win": "yarn build && yarn start:ha:win",
"prepare": "yarn build",
Expand All @@ -29,7 +29,7 @@
"postversion": "git push && git push --tags"
},
"dependencies": {
"home-assistant-query-selector": "^2.1.5"
"home-assistant-query-selector": "^3.0.0"
},
"devDependencies": {
"@playwright/test": "^1.40.1",
Expand Down
6 changes: 3 additions & 3 deletions src/kiosk-mode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class KioskMode implements KioskModeRunner {

const selector = new HAQuerySelector();

selector.addEventListener(HAQuerySelectorEvent.ON_LOVELACE_PANEL_LOAD, async (event) => {
selector.addEventListener(HAQuerySelectorEvent.ON_PANEL_LOAD, async (event) => {

this.HAElements = event.detail;

Expand Down Expand Up @@ -93,12 +93,12 @@ class KioskMode implements KioskModeRunner {

});

selector.addEventListener(HAQuerySelectorEvent.ON_LOVELACE_MORE_INFO_DIALOG_OPEN, (event) => {
selector.addEventListener(HAQuerySelectorEvent.ON_MORE_INFO_DIALOG_OPEN, (event) => {
this.HAMoreInfoDialogElements = event.detail;
this.insertMoreInfoDialogStyles();
});

selector.addEventListener(HAQuerySelectorEvent.ON_LOVELACE_HISTORY_AND_LOGBOOK_DIALOG_OPEN, (event) => {
selector.addEventListener(HAQuerySelectorEvent.ON_HISTORY_AND_LOGBOOK_DIALOG_OPEN, (event) => {
this.HAMoreInfoDialogElements = event.detail;
this.insertMoreInfoDialogStyles();
});
Expand Down
8 changes: 4 additions & 4 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1331,10 +1331,10 @@ helpertypes@^0.0.19:
resolved "https://registry.npmjs.org/helpertypes/-/helpertypes-0.0.19.tgz"
integrity sha512-J00e55zffgi3yVnUp0UdbMztNkr2PnizEkOe9URNohnrNhW5X0QpegkuLpOmFQInpi93Nb8MCjQRHAiCDF42NQ==

home-assistant-query-selector@^2.1.5:
version "2.1.5"
resolved "https://registry.yarnpkg.com/home-assistant-query-selector/-/home-assistant-query-selector-2.1.5.tgz#b7d9df3538f28d3beb1bcc5577bcf5aa1458c5fe"
integrity sha512-Epr2DSFOx6Z8CyFSGalqghwT0dq2JGH1np9+T1q7Nkflk40g3LgBaRDiSkjAtmiU6sY0UOkmEW0tfxLhCMR9NA==
home-assistant-query-selector@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/home-assistant-query-selector/-/home-assistant-query-selector-3.0.0.tgz#60b3df3440474e78cd6fe930ce93c124f306c55b"
integrity sha512-ELlN9wQG0XWjwEECdMh9LgdMAeH6LMiOKwIQ19o70ddx9pGFgO4d3SBe79aKBlhp06Pbj1Kc596IpXzpg1/hkA==
dependencies:
shadow-dom-selector "^4.1.2"

Expand Down
Loading