Installation guide: running Home Assistant via podman on Catan C1 (Phoenix Contact PLCnext Core) with onboard KNX, Zigbee USB Stick & Industrial I/Os

Hi everyone,

I wanted to share an installation guide and my experience running Home Assistant as a rootless Podman container on a highly interesting piece of hardware: the Catan C1 (powered by PLCnext Core).

While many of us use Raspberry Pis, NUCs, or Home Assistant Green/Yellow, I wanted to explore an industrial-grade alternative that brings robust hardware reliability and a massive array of onboard fieldbus capabilities directly to the DIN rail.


:hammer_and_wrench: Why Catan C1 as Home Assistant Hardware?

The Catan C1 is developed by Phoenix Contact, a well-known, premium brand in industrial automation. This means the build quality, long-term availability, and environmental tolerances are at a full industrial standard.

Key Hardware Specifications:

  • Form Factor: REG / DIN-rail mountable (perfect for central electrical cabinets/distribution boards).
  • Processing Power: 4x Arm® Cortex®-A53 (1.6 GHz) + 1x Arm® Cortex®-M4 @ 400 MHz (dedicated real-time processing).
  • Memory & Storage: 2 GB RAM, expandable via microSD card.
  • Network Connectivity: 3x physical Gigabit Ethernet ports (by default, LAN1 + LAN2 are switched).
  • Industrial Single Pair Ethernet (SPE): 2x physical SPE T1L interfaces (10Mbit/s) to easily connect add-on modules.

Incredible Onboard I/Os & Protocols:
Unlike standard consumer hardware, it features native interfaces that eliminate the need for dozens of separate USB dongles or gateways:

  • 2x RS485 Ports: Ready for Modbus RTU, BACnet MS/TP, DMX, etc.
  • Native KNX Capabilities: Onboard KNX TP (Twisted Pair), KNX IP, and functionality as a KNX Router.
  • Universal Inputs (UI): Analog inputs (Voltage, Current, Resistance, RTD, NTC), Dry contacts (signal levels according to EN 61131‑2 Type 2 + 3), and fast Counters.
  • Universal Outputs & Digital Inputs (UOI): Configurable for dry contacts or counting.
  • Digital Outputs & Digital Inputs (DOI): Dry contacts, counter capabilities, and 24 V / 500 mA digital outputs.

:light_bulb: Driver Status: There is currently active development underway to create a dedicated driver/integration for Home Assistant to natively expose all these hardware I/Os directly inside HA.


:high_voltage: The Highlight: Native KNX Integration

The KNX integration is particularly exciting. Because the hardware features a native KNX TP interface and can act as a KNX Router/IP interface, you can bridge your Home Assistant ecosystem to physical KNX actuators flawlessly.

I have already successfully coupled physical KNX hardware with the Catan C1, and it works incredibly well. Here is a quick look at my successful KNX bus connection through the device:

:rocket: Step-by-Step Installation: Running Home Assistant in Rootless Podman

The underlying operating system is PLCnext Core, which natively utilizes Podman for containerization. Running Home Assistant as a rootless container ensures maximum security while keeping your host system clean.

Step 1: Connect to the Device via SSH

Access the Catan C1 CLI using your terminal:

ssh admin@<your-catan-ip>

Step 2: Prepare the Storage Directories

Create a persistent storage directory within the user space to hold your Home Assistant configuration files:

mkdir ~/hass mkdir ~/hass/config

Step 3: Create the Container Configuration File

nano ~/hass/compose.yaml

Step 4: Add the Home Assistant Configuration

Copy and paste the following content into your compose.yaml:

services:
  homeassistant:
    container_name: homeassistant
    image: "ghcr.io/home-assistant/home-assistant:stable"
    volumes:
      - ~/hass/config:/config
      - /etc/localtime:/etc/localtime:ro
      - /run/dbus:/run/dbus:ro
      - /dev/usb-devices:/dev/usb-devices
    devices:
      - /dev/ttymxc2:/dev/ttymxc2
      - /dev/ttymxc3:/dev/ttymxc3  
    restart: unless-stopped
    network_mode: host
    userns_mode: keep-id
    user: 1002:1002
    environment:
      TZ: Europe/Berlin

Notes: The container runs rootless using user namespace mapping (keep-id) USB and serial devices are passed through for IoT integrations Host network mode ensures easy web access

Step 5: Start the Container

Run the following command to start Home Assistant:

podman compose -f ~/hass/compose.yaml up

The first startup may take a few minutes while the image is downloaded and initialized.

Access Home Assistant
Once the container is running, you can access Home Assistant in your browser:

http://your.IP//:8123

Bonus::electric_plug: Zigbee Stick Integration

Verify USB Device Mapping
All USB devices are exposed under:

/dev/usb-devices

To identify your Zigbee stick, run:

ls -l /dev/usb-devices/symlinks/

Example output:

lrwxrwxrwx 1 app_user plcnext 16 Jun 12 11:07 usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20221129211414-if00 -&gt; ../nodes/ttyACM0

:backhand_index_pointing_right: Important: The device name will differ depending on your hardware.

Configure Zigbee in Home Assistant
After logging into Home Assistant:

Go to Settings → Devices & Services

Add a new Zigbee integration Use the correct device path, for example:

/dev/usb-devices/symlinks/usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20221129211414-if00

For the Sonoff Zigbee Dongle E, use:

EZSP driver

Software data flow

:chequered_flag: Final Result Once everything is configured:

Your Zigbee network can be initialized Devices can be paired and controlled Automation workflows can run locally on the Catan C1

Once the container status shows as running, you can access your clean Home Assistant dashboard by opening your browser and navigating to: http://<your-catan-ip>:8123.


:shopping_cart: How to get one?

Disclaimer / Disclosure: I received this hardware as a sponsored unit. For those looking to buy one, it is currently available (at least in Germany) through major electrical wholesalers (Elektrogroßhändler).

Feel free to ask any questions regarding the container setup, the hardware, or the KNX configuration below!


Interesting marketing promotion.

Sadly, you may find the 2Gb RAM rather limiting and below HomeAssistant platform requirements, especially with container overheads.
Running from SDCard would rather limit classification as 'industrial-grade', given the number of reports of issues with long term reliability reported in these forums, and the probability of page thrash due to low memory quickly exacerbating wear issues.

I'll note the interconnectivity advantages and look forward to availability of a far higher spec engine for the platform that surpasses the higher specced 'consumer-grade' platforms you dismiss.

Keep us posted on how reliability issues progress, especially as HomeAssistant updates are rolled out.

Curious as to your CPU and memory statistics after you have had it running for a while.

Thanks for the feedback and valid points!

You’re completely right that 2GB RAM can feel tight on paper, especially when running multiple containers. However, in practice, it’s handling the load surprisingly well.

Currently, I’m running several parallel containers alongside Home Assistant, and RAM usage sits comfortably at around 1.1 GB (roughly 55%) — I’ve attached a screenshot below to show the stats.

On another project I run via a Proxmox VM with around 2,000 entities, 2GB has actually proven to be fully sufficient for smooth daily operation.

Regarding the SD card reliability: I agree that standard SD cards are a major bottleneck and wear out quickly. In this setup, an industrial-grade high-endurance SD card (designed for high write cycles) is used to mitigate those wear issues from page thrashing and frequent logging.

That said, I’ll definitely keep monitoring CPU/RAM stats and long-term reliability as Home Assistant updates roll out, and I’ll keep the thread updated!