diff --git a/README.md b/README.md index 0ed4e2b..5f54fdd 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ triggers: event_type: nestquest_child_day_complete conditions: - condition: template - value_template: "{{ trigger.payload.child_name == 'Declan' }}" + value_template: "{{ trigger.event.data.child_name == 'Declan' }}" actions: - action: notify.mobile_app_declans_phone data: @@ -134,7 +134,7 @@ day-rollover time. # afternoon_reminder: afternoon_time 15:00, same notify target # end_of_day_report: report_time 20:00, send_even_when_clear false, same target # day_complete_celebration: input_text.nestquest_last_celebrated, -# celebration_message "Legendary! {{ trigger.payload.child_name }} cleared every quest today!" +# celebration_message "Legendary! {{ trigger.event.data.child_name }} cleared every quest today!" # # Every blueprint has its own send/celebrate toggle input; turn an # automation off entirely from HA's automation menu. diff --git a/custom_components/nestquest/blueprints/automation/day_complete_celebration.yaml b/custom_components/nestquest/blueprints/automation/day_complete_celebration.yaml index 3672adc..7d0e029 100644 --- a/custom_components/nestquest/blueprints/automation/day_complete_celebration.yaml +++ b/custom_components/nestquest/blueprints/automation/day_complete_celebration.yaml @@ -34,9 +34,9 @@ blueprint: name: Celebration message description: >- The message sent when a child clears every quest today. May - use the event payload: trigger.payload.child_name, - trigger.payload.quests_due and trigger.payload.quests_completed. - default: "Legendary! {{ trigger.payload.child_name }} cleared every quest today!" + use the event payload: trigger.event.data.child_name, + trigger.event.data.quests_due and trigger.event.data.quests_completed. + default: "Legendary! {{ trigger.event.data.child_name }} cleared every quest today!" selector: text: {} celebrate: @@ -80,7 +80,7 @@ conditions: # reads as '' and celebrates. - condition: template value_template: >- - {{ (trigger.payload.child_id ~ ':' ~ now().strftime('%Y-%m-%d')) + {{ (trigger.event.data.child_id ~ ':' ~ now().strftime('%Y-%m-%d')) not in ((states(last_celebrated_helper) or '') .split(',') | select('ne', '') @@ -106,4 +106,4 @@ actions: {%- set ns.entries = ns.entries + [entry] -%} {%- endif -%} {%- endfor -%} - {{ (ns.entries + [trigger.payload.child_id ~ ':' ~ today]) | join(',') }} \ No newline at end of file + {{ (ns.entries + [trigger.event.data.child_id ~ ':' ~ today]) | join(',') }} \ No newline at end of file diff --git a/tests/test_blueprint_celebration.py b/tests/test_blueprint_celebration.py index 2e20b81..f877854 100644 --- a/tests/test_blueprint_celebration.py +++ b/tests/test_blueprint_celebration.py @@ -65,14 +65,17 @@ def stamp_value_template(bp: dict) -> str: def trigger_payload(child_id: int, child_name: str) -> dict: - """A nestquest_child_day_complete trigger payload fixture.""" + """A nestquest_child_day_complete trigger fixture: HA exposes an + event trigger's payload as trigger.event.data.""" return { - "payload": { - "child_id": child_id, - "child_name": child_name, - "quests_due": 3, - "quests_completed": 3, - "occurred_at": "2026-09-19T15:00:00+00:00", + "event": { + "data": { + "child_id": child_id, + "child_name": child_name, + "quests_due": 3, + "quests_completed": 3, + "occurred_at": "2026-09-19T15:00:00+00:00", + } } } @@ -294,3 +297,17 @@ def test_every_blueprint_event_reference_is_real() -> None: assert celebration()["triggers"][0]["event_type"] == ( "nestquest_child_day_complete" ) + + +def test_celebration_uses_the_event_trigger_data_path() -> None: + """HA exposes an event trigger's payload as trigger.event.data — + never trigger.payload (Codex review regression).""" + bp = celebration() + for value in iter_strings(bp): + assert "trigger.payload" not in value, value + default_message = bp["blueprint"]["input"]["celebration_message"][ + "default" + ] + assert "trigger.event.data.child_name" in default_message + for condition in celebration_conditions(bp): + assert "trigger.payload" not in condition["value_template"]