Skip to content

Commit

Permalink
Merge pull request #174 from NemesisRE/update_home_assistant_query_se…
Browse files Browse the repository at this point in the history
…lector

Update home-assistant-query-selector
  • Loading branch information
NemesisRE authored Jan 3, 2024
2 parents f6763d0 + bbd75da commit d6404d1
Show file tree
Hide file tree
Showing 7 changed files with 204 additions and 12 deletions.
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 @@ -1390,10 +1390,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

0 comments on commit d6404d1

Please sign in to comment.