From 45cf8e689807da5839dc54f70be9d333fca11c3a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Mar 2026 13:03:34 +0000 Subject: [PATCH 1/4] Initial plan From c42eddd7ec6f77ff5872386d2fc91edc5121834e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Mar 2026 13:05:39 +0000 Subject: [PATCH 2/4] Add entry_id to player activity event data for multi-server disambiguation Co-authored-by: Programmer-Timmy <122127801+Programmer-Timmy@users.noreply.github.com> --- custom_components/satisfactory/event.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/custom_components/satisfactory/event.py b/custom_components/satisfactory/event.py index 383f16d..84b3d65 100644 --- a/custom_components/satisfactory/event.py +++ b/custom_components/satisfactory/event.py @@ -46,6 +46,7 @@ def __init__( ) -> None: """Initialize the event entity.""" super().__init__(coordinator) + self._entry_id = entry.entry_id self._attr_unique_id = f"{entry.unique_id}_player_activity" self._attr_device_info = DeviceInfo( identifiers={(DOMAIN, entry.unique_id or entry.entry_id)}, @@ -63,6 +64,7 @@ def _handle_coordinator_update(self) -> None: self._trigger_event( "player_joined", { + "entry_id": self._entry_id, "num_connected_players": new_players, "player_limit": player_limit, }, @@ -71,6 +73,7 @@ def _handle_coordinator_update(self) -> None: self._trigger_event( "player_left", { + "entry_id": self._entry_id, "num_connected_players": new_players, "player_limit": player_limit, }, From 53fd9a7f4c6d098ada6557293be0fdb6d2d8e127 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Mar 2026 13:10:14 +0000 Subject: [PATCH 3/4] Update docs and Dutch translations; verify ruff passes Co-authored-by: Programmer-Timmy <122127801+Programmer-Timmy@users.noreply.github.com> --- README.md | 2 +- .../satisfactory/translations/nl.json | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7048693..6cfc365 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ Go to **Settings → Devices & Services → Add Integration** and search for **S ## Events -The integration fires events on the Home Assistant event bus whenever the server state changes. You can use these in automations via the **Event** trigger with the event type listed below. +The integration exposes a **Player activity** event entity that fires whenever a player joins or leaves the server (i.e., when the connected player count changes). You can use it in automations via the **State changed** trigger on the event entity. | Event type | Fired when | Event data | |---|---|---| diff --git a/custom_components/satisfactory/translations/nl.json b/custom_components/satisfactory/translations/nl.json index 2d14c3d..635076f 100644 --- a/custom_components/satisfactory/translations/nl.json +++ b/custom_components/satisfactory/translations/nl.json @@ -20,6 +20,19 @@ } }, "entity": { + "event": { + "player_activity": { + "name": "Speler activity", + "state_attributes": { + "event_type": { + "state": { + "player_joined": "Speler verbonden", + "player_left": "Speler verbroken" + } + } + } + } + }, "sensor": { "num_connected_players": { "name": "Verbonden spelers" @@ -41,6 +54,9 @@ }, "game_phase": { "name": "Spelfase" + }, + "server_health": { + "name": "Servergezondheid" } } } From 60cdc20007a3b5ffcec1dedbcf996427c0fe3c07 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Mar 2026 13:10:28 +0000 Subject: [PATCH 4/4] Revert Dutch translation changes (handled by gitlocalize) Co-authored-by: Programmer-Timmy <122127801+Programmer-Timmy@users.noreply.github.com> --- .../satisfactory/translations/nl.json | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/custom_components/satisfactory/translations/nl.json b/custom_components/satisfactory/translations/nl.json index 635076f..2d14c3d 100644 --- a/custom_components/satisfactory/translations/nl.json +++ b/custom_components/satisfactory/translations/nl.json @@ -20,19 +20,6 @@ } }, "entity": { - "event": { - "player_activity": { - "name": "Speler activity", - "state_attributes": { - "event_type": { - "state": { - "player_joined": "Speler verbonden", - "player_left": "Speler verbroken" - } - } - } - } - }, "sensor": { "num_connected_players": { "name": "Verbonden spelers" @@ -54,9 +41,6 @@ }, "game_phase": { "name": "Spelfase" - }, - "server_health": { - "name": "Servergezondheid" } } }