Homematic(IP) Local for OpenCCU¶
This is the comprehensive user guide for the Homematic(IP) Local for OpenCCU Home Assistant integration, which uses aiohomematic as its core library.
Quick Start¶
- Installation: Via HACS (recommended) or manual
- Documentation: This guide + aiohomematic docs
- Issues: GitHub Issues
- Discussions: GitHub Discussions
At a Glance¶
- Local Home Assistant integration for Homematic(IP) hubs (CCU⅔, OpenCCU, Debmatic, Homegear)
- No cloud required - fully local communication
- XML-RPC for control and push state updates; JSON-RPC for names and rooms
- Auto-discovery supported for CCU and compatible hubs
- Minimum requirements: Home Assistant 2025.10.0+
Related Integrations¶
| Integration | Use Case |
|---|---|
| Homematic(IP) Local for OpenCCU | Local control via CCU/OpenCCU/Homegear |
| Homematic(IP) Cloud | Cloud control via Access Point |
| Homematic IP Local (HCU) | Local control via HmIP-HCU1 |
Installation¶
HACS (Recommended)¶
- In Home Assistant, go to HACS → Integrations → Explore & Download Repositories
- Search for "Homematic(IP) Local for OpenCCU"
- Install and restart Home Assistant when prompted
Manual Installation¶
- Copy
custom_components/homematicip_localto your Home Assistantconfig/custom_componentsdirectory - Restart Home Assistant
Manual installation does not support automatic updates
Requirements¶
Hardware¶
This integration works with any CCU-compatible Homematic hub:
- CCU2/CCU3
- OpenCCU (formerly RaspberryMatic)
- Debmatic
- Homegear
- Home Assistant OS/Supervised with suitable add-on + communication device
Minimum CCU Firmware for HomematicIP:
- CCU2: 2.53.27
- CCU3: 3.53.26
Firewall and Ports¶
| Interface | Purpose | Default Port | TLS Port |
|---|---|---|---|
| BidCos-RF | Classic wireless devices | 2001 | 42001 |
| HomematicIP | HmIP wireless and wired | 2010 | 42010 |
| BidCos-Wired | Classic wired devices | 2000 | 42000 |
| Virtual Devices | Thermostat groups | 9292 | 49292 |
| JSON-RPC | Names and rooms | 80 | 443 |
XML-RPC Callback
The integration starts a local XML-RPC server within Home Assistant. The CCU must be able to connect to this server for state updates.
**Docker users**: Use `network_mode: host` or configure `callback_host` and `callback_port_xml_rpc` in Advanced Options.
Authentication¶
- Authentication is always passed to the Homematic hub
- Recommended: Enable authentication for XML-RPC communication on CCU (Settings → Control Panel → Security → Authentication)
- The account must have admin privileges
- Allowed password characters:
A-Z,a-z,0-9, and.!$():;#-
Special characters
Characters like ÄäÖöÜüß work in the CCU WebUI but are not supported by XML-RPC servers.
Configuration¶
Adding the Integration¶
Or manually:
- Go to Settings → Devices & Services
- Click Add Integration
- Search for "Homematic(IP) Local for OpenCCU"
Configuration Flow¶
Step 1: CCU Connection → Backend Detection → Step 2: TLS & Interfaces → Finish or Configure Advanced
Step 1: CCU Connection¶
| Setting | Description | Example |
|---|---|---|
| Instance Name | Unique identifier (lowercase, a-z, 0-9) | ccu3 |
| Host | CCU hostname or IP address | 192.168.1.50 |
| Username | Admin username (case-sensitive) | Admin |
| Password | Admin password (case-sensitive) | MySecurePass123 |
Instance Name
The instance name is a unique identifier for your HA installation when communicating with the CCU.
- It has **no relation** to the CCU's hostname
- You **can change** the CCU's IP address anytime
- You **must not change** the instance name after setup (entities will be recreated, losing history)
Automatic Backend Detection¶
After entering credentials, the integration automatically detects:
- Backend type (CCU2, CCU3, OpenCCU, Debmatic, Homegear)
- Available interfaces (HmIP-RF, BidCos-RF, BidCos-Wired, Virtual Devices, CUxD, CCU-Jack)
- TLS configuration
Step 2: TLS & Interfaces¶
| Setting | Default | Description |
|---|---|---|
| Use TLS | Auto-detected | Enable if CCU uses HTTPS |
| Verify TLS | false | Enable only with valid (non-self-signed) certificate |
Interface Selection:
| Interface | Enable If You Have... |
|---|---|
| HomematicIP (HmIP-RF) | HomematicIP wireless or wired devices |
| Homematic (BidCos-RF) | Classic Homematic wireless devices |
| BidCos-Wired | Classic Homematic wired devices |
| Heating Groups | Thermostat groups configured in CCU |
| CUxD | CUxD add-on installed |
| CCU-Jack | CCU-Jack software installed |
Advanced Options¶
Access via Configure advanced options during setup or Configure after setup.
Callback Settings (Docker/Network)¶
| Setting | Purpose |
|---|---|
| Callback Host | IP address the CCU uses to reach HA |
| Callback Port (XML-RPC) | Port for state updates from CCU |
Docker Users
Recommended: Use network_mode: host
**Alternative**: Set Callback Host to your Docker host's IP and configure port forwarding
System Variables & Programs¶
| Setting | Default | Description |
|---|---|---|
| Enable System Variable Scan | true | Fetch system variables from CCU |
| System Variable Markers | All | Filter which variables to import |
| Enable Program Scan | true | Fetch programs from CCU |
| Scan Interval | 30s | How often to poll for changes |
Markers:
- HAHM - Creates writable entities (switch, select, number, text)
- MQTT - Enables push updates via MQTT (requires CCU-Jack)
- HX - Custom marker for your own filtering
- INTERNAL - Includes CCU-internal variables/programs
MQTT Integration¶
| Setting | Default | Description |
|---|---|---|
| Enable MQTT | false | Enable for CCU-Jack and CUxD callback events |
| MQTT Prefix | (empty) | MQTT prefix used for CCU-Jack bridge |
Device Behavior¶
| Setting | Default | Description |
|---|---|---|
| Enable Sub-Devices | false | Split devices with multiple channel groups |
| Use Group Channel for Cover State | true | Use group channel for cover position |
| Restore Last Brightness | false | Lights turn on at last brightness instead of 100% |
System Variables & Programs¶
Entity Types by Variable Type¶
| CCU Type | Default Entity | With HAHM Marker |
|---|---|---|
| Character String | sensor (read-only) | text (editable) |
| List of Values | sensor (read-only) | select (dropdown) |
| Number | sensor (read-only) | number (slider) |
| Logic Value | binary_sensor | switch (togglable) |
| Alarm | binary_sensor | switch (togglable) |
Making Variables Writable¶
Add HAHM to the variable's description field in CCU:
- In CCU, edit your system variable
- In "Description", add
HAHM(uppercase) - Save and reload the integration in HA
Filtering with Markers¶
Without markers, all variables are imported as disabled entities. With markers configured in Advanced Options, only marked variables are imported as enabled entities.
Device Support¶
Devices are integrated by automatically detecting available parameters and creating suitable entities. For complex devices (thermostats, covers), custom mappings provide better representation.
Deactivated Entities¶
Many entities are created disabled initially. Enable them in the entity's advanced settings if needed.
Missing Device Support¶
If a new device model doesn't have proper custom entities:
- Verify the device is working in CCU
- Report at aiohomematic Issues
- Include device export (use
homematicip_local.export_device_definitionaction)
Adding New Devices (Pairing)¶
Install Mode¶
The integration provides buttons to activate install mode:
- Activate Install Mode HmIP-RF - For HomematicIP devices
- Activate Install Mode BidCos-RF - For classic Homematic devices
Duration sensors show remaining pairing time.
Repair Notification Process¶
When you pair a new device:
- Pair device with CCU (via CCU interface)
- (Recommended) Name device in CCU with a meaningful name
- Check HA Repairs - Settings → System → Repairs
- Confirm or name the device in the repair dialog
- Device and entities are created with proper names
Naming Strategy
Name devices in CCU first. The integration uses CCU names, and you get clean entity IDs like sensor.living_room_thermostat_temperature instead of sensor.vcu1234567_temperature.
Inbox Sensor¶
The Inbox sensor shows devices waiting in the CCU inbox.
Button Devices & Events¶
Why No Button Entities?¶
Physical buttons don't have persistent state. Button presses are handled as events, not entities.
Using Buttons in Automations¶
- Create an automation
- Trigger type: Device
- Select your button device
- Choose the trigger: "Button 1 pressed", "Button 2 long pressed", etc.
Enabling Button Events (HomematicIP)¶
For HomematicIP remotes (WRC2, WRC6, SPDR, KRC4, HM-PBI-4-FM):
Option A - Action:
Option B - CCU Interface:
- CCU → Settings → Devices
- Click "+" next to your remote
- Click the button channel → "activate"
To disable: Use homematicip_local.remove_central_links
Events¶
homematic.keypress¶
Fired when a key is pressed. Use with device triggers or event entities.
homematic.device_availability¶
Fired when a device becomes unavailable or available again. Useful with the persistent notification blueprint.
homematic.device_error¶
Fired when a device is in an error state.
Actions Reference¶
See Actions for the complete action reference including:
- Device value operations (
get_device_value,set_device_value) - Paramset operations (
get_paramset,put_paramset) - Climate scheduling (
set_schedule_simple_profile,copy_schedule) - Siren control (
turn_on_siren,play_sound) - System variables (
get_variable_value,set_variable_value) - And more...
CUxD & CCU-Jack¶
Communication Methods¶
| Device Type | Default | With MQTT |
|---|---|---|
| CUxD | JSON-RPC polling (15s) | MQTT push (instant) |
| CCU-Jack | JSON-RPC polling (15s) | MQTT push (instant) |
Setting Up MQTT¶
Prerequisites:
- CCU-Jack installed on CCU
- HA connected to MQTT broker
- MQTT integration configured in HA
Configuration:
- Advanced Options → Enable MQTT:
true - MQTT Prefix: (leave empty for direct connection)
Support Policy
CUxD/CCU-Jack differences from original hardware behavior are not considered bugs. Use HA templates to adapt if needed.
Troubleshooting¶
Quick Checklist¶
| Check | How to Verify |
|---|---|
| HA logs reviewed | Settings → System → Logs → Filter: homematicip_local |
| Ports open | Test with ping, telnet to port 2010 |
| CCU reachable | CCU web interface accessible |
| Admin user | User has administrator privileges |
| Valid password | Only allowed characters used |
Docker Issues¶
| Problem | Solution |
|---|---|
| No state updates | Set callback_host to Docker host IP |
| Connection refused | Use network_mode: host |
| Multiple instances conflict | Ensure unique instance_name |
Getting Help¶
- Read the full troubleshooting guide
- Search existing issues
- Ask in discussions
- Open an issue with: HA version, integration version, CCU type/firmware, logs, steps to reproduce
FAQ¶
Q: Entity shows "unavailable"
The entity might be disabled. Go to Settings → Entities → find the entity → Enable.
Q: Button presses don't trigger automation
HomematicIP buttons need central links. See Enabling Button Events.
Q: New device added to CCU but doesn't appear in HA
Check Settings → System → Repairs for the device notification.
Q: How do I change a device name?
| Goal | Method |
|---|---|
| Change in HA only | Settings → Devices → Edit name |
| Sync from CCU | Rename in CCU → Reload integration |
| Change entity ID too | Delete device → Rename in CCU → Reload |
Q: My CCU has many system variables but I only see a few
System variables are imported as disabled entities. Enable them in Settings → Entities → Show disabled, or use markers to auto-enable.