---
title: "Sofabaton X"
description: "Sofabaton X is a Marketplace integration for Home Assistant. It has 623 installs sharing analytics, works locally and was last updated October 26, 2026."
canonical: "https://vulpo.app/integrations/marketplace/m3tac0de-home-assistant-sofabaton-x1s"
url: "https://vulpo.app/integrations/marketplace/m3tac0de-home-assistant-sofabaton-x1s.md"
last-updated: "2026-10-22"
version: "1.4"
---

# Sofabaton X

> Sofabaton X is a Marketplace integration for Home Assistant. It has 623 installs sharing analytics, works locally and was last updated October 26, 2026.

Sofabaton X is an integration for local control of Sofabaton X1, X1S and X2 hubs and their remotes. It connects directly to the hub over local APIs and passes remote presses and hub events to Home Assistant. A built-in local proxy presents a virtual hub, so the Sofabaton app keeps working, and entities that write to the hub become unavailable while the app is connected. It adds buttons, a remote, an activity select, sensors, switches, text fields and connection status sensors. Actions cover backing up and restoring hub configuration, editing activities and favorites, and learning, saving, playing or sending IR commands including Pronto Hex. A sidebar remote, a Control Panel for administrators and two dashboard cards are included, and setup is done in the UI with network discovery.

Automatic summary of the README and code of m3tac0de/home-assistant-sofabaton-x1s. Something wrong, or are you the maintainer and want your own text here? [Get in touch](https://vulpo.app/contact)

[Open in My Home Assistant](https://my.home-assistant.io/redirect/hacs_repository/?owner=m3tac0de&repository=home-assistant-sofabaton-x1s&category=integration)

On Home Assistant 2026.11 or newer? [Open it in the Marketplace](https://my.home-assistant.io/redirect/marketplace_repository/?owner=m3tac0de&repository=home-assistant-sofabaton-x1s&category=integration)

## Supports

- **Works locally**: Talks to your devices on your own network. No vendor cloud in between.
- **Found by itself**: Home Assistant spots it on the network and offers to add it.
- **From the Marketplace**: Installed through the Marketplace, formerly HACS.
- **Actively maintained**: Its author released or pushed a change in the last six months.

## Setting it up

Install it from the Marketplace and restart Home Assistant, then add it under Settings, Devices and services.

### Manual hub setup

- **Hub IP address**

### Integration ports

- **Hub TCP listener port**: TCP port used by physical hubs to connect to the integration.
- **App UDP listener port**: UDP port used for official app discovery and connections. Keep port 8102 for iOS compatibility unless another service already uses it.
- **Wifi command HTTP listener port**: HTTP port used to receive Wifi device button presses. Changing it breaks X1 compatibility and requires existing Wifi devices and commands to be synchronized again.

### After setup

- **Hub TCP listener port**: TCP port used by physical hubs to connect to the integration.
- **App UDP listener port**: UDP port used for official app discovery and connections. Keep port 8102 for iOS compatibility unless another service already uses it.
- **Wifi command HTTP listener port**: HTTP port used to receive Wifi device button presses. Changing it breaks X1 compatibility and requires existing Wifi devices and commands to be synchronized again.

Texts from the code of [m3tac0de/home-assistant-sofabaton-x1s](https://github.com/m3tac0de/home-assistant-sofabaton-x1s).

## Entities

- **Binary sensors**: App connected, Hub connected
- **Buttons**: Find remote, Synchronize remote, A button, B button, Back, Blue button, C button, Channel down, Channel up, Down, DVR, Exit, and 17 more
- **infrared**: IR emitter
- **Remotes**: Remote
- **Selects**: Activity
- **Sensors**: Activity, Index, Wifi commands, Last intercepted IR command, Recorded keypress
- **Switches**: Hex logging, Proxy, Wifi device
- **Texts**: Hub IP address, Home Assistant IP address

## Actions

- **Back up hub bundle**: Returns a hub\_bundle JSON payload. Omit device IDs to back up all devices and activities, or provide device IDs to back up only those devices.
  Fields: Sofabaton hub, Device IDs
- **Map command to activity button**: Maps a command to a physical button in an activity on the selected hub.
  Fields: Sofabaton hub, Activity ID, Activity button ID, Device ID, Command ID, Long-press device ID, Long-press command ID
- **Add command to activity favorites**: Adds a command to an activity's favorites on the selected hub.
  Fields: Sofabaton hub, Activity ID, Device ID, Command ID, Favorite slot ID
- **Create Wifi device**: Creates a Wifi device on the selected hub.
  Fields: Sofabaton hub, Device name, Custom commands, Power-on command ID, Power-off command ID, Input command IDs
- **Delete device**: Deletes a device and confirms all affected activities on the selected hub.
  Fields: Sofabaton hub, Device ID
- **Delete activity favorite**: Deletes one favorite from an activity on the selected hub.
  Fields: Sofabaton hub, Activity ID, Favorite ID
- **Add device to activity**: Adds a device to an activity on the selected hub.
  Fields: Sofabaton hub, Activity ID, Device ID, Input command ID
- **Dump raw IR commands**: Requests 0x020C \[device\_id, command\_id\] and returns parsed raw command blob pages for a device.
  Fields: Sofabaton hub, Device ID, Command ID
- **Export hub snapshot**: Returns the structural hub\_bundle the live Control Panel editor reads (cached proxy state only, no hub round trip and no per-command IR blob dump), plus the cache generation it was exported at. Pass that generation to the sync edited snapshot action's expected generation to catch a stale baseline. Requires the persistent cache to be enabled and populated. Edit the returned JSON offline and pass it back as the baseline and edited snapshots to write just the changed rows.
  Fields: Sofabaton hub
- **Fetch normalized blob**: Requests 0x020C \[device\_id, command\_id\] and returns normalized command blob records, including the canonical body, removed checksum byte, and a parsed descriptor when available.
  Fields: Sofabaton hub, Device ID, Command ID
- **Fetch commands for device or activity**: Fetches and caches commands for an activity or device so they appear on the diagnostic sensor.
  Fields: Sofabaton hub, Activity or device ID
- **Get activity favorites**: Fetches the ordered quick-access list for an activity, including favorites and macros with their order IDs, display slots, types, and labels.
  Fields: Sofabaton hub, Activity ID
- **Save IR blob**: Adds a command to an existing IR device by staging the current command IDs, uploading a canonical command blob, and saving it on the hub.
  Fields: Sofabaton hub, Device ID, Command name, Blob or descriptor
- **Set IR learn mode**: Arms or disarms the hub's IR learning mode. While armed, the hub's IR receiver waits for a button press from the source IR remote. Arming always exits any previous learning session first. This action only toggles the mode; it does not wait for a captured code. Use Learn IR command for the full learn flow.
  Fields: Sofabaton hub, Enabled
- **Learn IR command**: Arms the hub's IR learning mode and waits for one code from the source IR remote. The response reports what happened: learned (with the captured payload), timed\_out (nothing was received), or interrupted (other hub traffic ended the learning window). No manual mode switching is needed.
  Fields: Sofabaton hub, Timeout
- **Play IR blob**: Streams a command blob to the hub for one-time playback without saving it. Accepts a canonical blob body without its final replay-tail checksum byte or a descriptive protocol string such as P:Sony12 R:40000 D:1 F:18 MUL:2.
  Fields: Sofabaton hub, Blob or descriptor
- **Reorder activity favorites**: Reorders an activity's favorites using their hub-order IDs.
  Fields: Sofabaton hub, Activity ID, Ordered favorite IDs
- **Restore hub bundle**: Restores a hub\_bundle JSON payload. Devices are restored first, followed by activities using the automatically generated device ID mapping.
  Fields: Sofabaton hub, Backup payload
- **Send Pronto Hex**: Decodes a learned-format Pronto Hex code (0000) and sends it through the hub's IR emitter. The emitter timestamp updates, and the Last intercepted IR command sensor records the payload prepared for the hub.
  Fields: Pronto Hex
- **Synchronize command configuration**: Deploys the saved command-slot configuration by recreating the managed Wifi device and applying activity mappings.
  Fields: Sofabaton hub, Wifi Device, Device name, Wifi Device key

## Troubleshooting

- **Diagnostics**: Downloads a diagnostics file to attach to a bug report.
- **Repair notices**: Notices it can show in Settings, Repairs:
  Sofabaton hub firmware update recommended

## From the README

> Local, bidirectional control of Sofabaton X1, X1S, and X2 hubs from Home Assistant.
>
> Sofabaton X connects directly to your hub using local APIs. It can control the hub, expose remote presses and hub events to Home Assistant, edit hub configuration, and let the official Sofabaton app continue to work through a built-in local proxy.

From the README of [m3tac0de/home-assistant-sofabaton-x1s](https://github.com/m3tac0de/home-assistant-sofabaton-x1s#readme), [MIT License](https://spdx.org/licenses/MIT.html). Shortened.

## At a glance

- Kind: Marketplace integration
- Category: [Buttons and remotes](https://vulpo.app/integrations/category/buttons-and-remotes.md)
- Number: 623 installs sharing analytics; 67 GitHub stars
- Connection: Works locally
- Upkeep: Updated in the last 6 months
- Needs: Needs the Marketplace (HACS on 2026.10 and older)
- Latest version: 0.7.1, last updated October 26, 2026
- Domain: `sofabaton_x1s`
- Source: <https://github.com/m3tac0de/home-assistant-sofabaton-x1s>
- Issues: <https://github.com/m3tac0de/home-assistant-sofabaton-x1s/issues>
- Screenshot: https://vulpo.app/integrations-img/27250f2085e2c434.webp (from m3tac0de/home-assistant-sofabaton-x1s's README)
- Screenshot: https://vulpo.app/integrations-img/b365c513da1be85f.webp (from m3tac0de/home-assistant-sofabaton-x1s's README)
- Screenshot: https://vulpo.app/integrations-img/6956289ef32bb73e.webp (from m3tac0de/home-assistant-sofabaton-x1s's README)

In Vulpo: Quick Toggle card, Button card, Select card, Chart card, Apple Watch, Control Center

Independent directory, made by the developer of Vulpo. Not affiliated with Home Assistant or the Open Home Foundation. [About these numbers](https://vulpo.app/integrations/about)

Last updated 2026-10-22. Source: https://vulpo.app/integrations/marketplace/m3tac0de-home-assistant-sofabaton-x1s

---

- HTML version of this page: https://vulpo.app/integrations/marketplace/m3tac0de-home-assistant-sofabaton-x1s
- Site index for agents: https://vulpo.app/llms.txt
- Everything in one document: https://vulpo.app/llms-full.txt
- All pages: https://vulpo.app/sitemap.xml
