Actions Reference¶
This page documents all custom actions provided by the Homematic(IP) Local for OpenCCU integration.
Device Value Operations¶
homematicip_local.get_device_value¶
Get a device parameter via the XML-RPC interface.
homematicip_local.set_device_value¶
Set a device parameter via the XML-RPC interface.
Storage Warning
Too much writing to the device MASTER paramset could damage your device's storage.
Example - Turn on a switch:
action: homematicip_local.set_device_value
data:
device_id: abcdefg...
channel: 1
parameter: STATE
value: "true"
value_type: boolean
Example - Set thermostat temperature:
action: homematicip_local.set_device_value
data:
device_id: abcdefg...
channel: 4
parameter: SET_TEMPERATURE
value: "23.0"
value_type: double
Paramset Operations¶
homematicip_local.get_paramset¶
Call getParamset on the XML-RPC interface. Returns a paramset.
homematicip_local.put_paramset¶
Call putParamset on the XML-RPC interface.
Storage Warning
Too much writing to the device MASTER paramset could damage your device's storage.
Example - Set week program:
action: homematicip_local.put_paramset
data:
device_id: abcdefg...
paramset_key: MASTER
paramset:
WEEK_PROGRAM_POINTER: 1
Example with rx_mode (BidCos-RF only):
action: homematicip_local.put_paramset
data:
device_id: abcdefg...
paramset_key: MASTER
rx_mode: WAKEUP
paramset:
WEEK_PROGRAM_POINTER: 1
!!! note "rx_mode Options" - BURST (default): Wakes all devices immediately (uses battery) - WAKEUP: Sends data after device reports (saves battery, ~3 min delay)
homematicip_local.get_link_paramset¶
Call getParamset for direct connections on the XML-RPC interface.
homematicip_local.put_link_paramset¶
Call putParamset for direct connections on the XML-RPC interface.
Link Operations¶
homematicip_local.add_link¶
Call addLink on the XML-RPC interface. Creates a direct connection.
homematicip_local.remove_link¶
Call removeLink on the XML-RPC interface. Removes a direct connection.
homematicip_local.get_link_peers¶
Call getLinkPeers on the XML-RPC interface. Returns a dict of direct connection partners.
homematicip_local.create_central_links¶
Creates a central link from a device to the backend. Required for RF devices to enable button-press events.
homematicip_local.remove_central_links¶
Removes a central link from the backend. Disables button-press events.
Climate Schedule Operations¶
Storage Warning
Too much writing to the device could damage your device's storage.
homematicip_local.set_schedule_simple_profile¶
Sends a complete schedule for a climate profile using a simplified format.
How it works:
- Each weekday has a
base_temperatureand a list ofperiods - Specify only active heating periods with
starttime,endtime, andtemperature - Gaps are automatically filled with
base_temperature - System converts to required 13-slot format
Example:
action: homematicip_local.set_schedule_simple_profile
target:
entity_id: climate.living_room_thermostat
data:
profile: P1
simple_profile_data:
MONDAY:
base_temperature: 16.0
periods:
- starttime: "05:00"
endtime: "06:00"
temperature: 17.0
- starttime: "09:00"
endtime: "15:00"
temperature: 17.0
- starttime: "19:00"
endtime: "22:00"
temperature: 22.0
TUESDAY:
base_temperature: 16.0
periods:
- starttime: "05:00"
endtime: "06:00"
temperature: 17.0
- starttime: "19:00"
endtime: "22:00"
temperature: 22.0
# Add other weekdays as needed
homematicip_local.set_schedule_simple_weekday¶
Sends schedule for a single weekday using simplified format.
Example:
action: homematicip_local.set_schedule_simple_weekday
target:
entity_id: climate.living_room_thermostat
data:
profile: P3
weekday: MONDAY
base_temperature: 16
simple_weekday_list:
- starttime: "05:00"
endtime: "06:00"
temperature: 17.0
- starttime: "09:00"
endtime: "15:00"
temperature: 17.0
- starttime: "19:00"
endtime: "22:00"
temperature: 22.0
Result:
- 00:00-05:00: 16°C (base_temperature)
- 05:00-06:00: 17°C (period 1)
- 06:00-09:00: 16°C (base fills gap)
- 09:00-15:00: 17°C (period 2)
- 15:00-19:00: 16°C (base fills gap)
- 19:00-22:00: 22°C (period 3)
- 22:00-24:00: 16°C (base_temperature)
homematicip_local.get_schedule_simple_profile¶
Returns the schedule of a climate profile in simplified format.
The service analyzes the schedule and determines base_temperature as the most frequently used temperature. Only periods that deviate are returned.
homematicip_local.get_schedule_simple_weekday¶
Returns the schedule for a specific weekday in simplified format.
homematicip_local.copy_schedule¶
Copies the complete schedule (all profiles P1-P6, all weekdays) from one climate device to another.
Requirements:
- Both devices must support schedules
- Both devices must support the same number of profiles
homematicip_local.copy_schedule_profile¶
Copies a single schedule profile from one device to another (or to a different profile on the same device).
Use cases:
- Copy P1 from Device A to P2 on Device A
- Copy P1 from Device A to P1 on Device B
- Copy P3 from Device A to P1 on Device B
Climate Away Mode¶
homematicip_local.enable_away_mode_by_calendar¶
Enable away mode by specifying start and end date/time.
HomematicIP only
homematicip_local.enable_away_mode_by_duration¶
Enable away mode immediately with duration in hours.
HomematicIP only
homematicip_local.disable_away_mode¶
Disable away mode for climate devices.
HomematicIP only
System Variables¶
homematicip_local.get_variable_value¶
Get the value of a variable from your Homematic hub.
homematicip_local.set_variable_value¶
Set the value of a variable on your Homematic hub.
Value lists: Accept 0-based position or the value as input.
Booleans:
true,on,1, 1 → Truefalse,off,0, 0 → False
Example:
action: homematicip_local.set_variable_value
data:
entity_id: sensor.ccu2
name: Variable name
value: true
homematicip_local.fetch_system_variables¶
Fetch system variables on demand, independent of the default 30s schedule.
Use sparingly - frequent calls may affect CCU stability
Siren & Sound Operations¶
homematicip_local.turn_on_siren¶
Turn siren on. Can be disabled with siren.turn_off.
Automatic Select Entities
Since version 2.0.0, the integration automatically creates Select entities for siren tone and light pattern selection:
- **Siren Tone** (`select.<device>_acoustic_alarm_selection`)
- **Siren Light Pattern** (`select.<device>_optical_alarm_selection`)
These selections persist across restarts and are automatically used when calling siren services.
homematicip_local.play_sound¶
Play a sound on HmIP-MP3P sound player devices.
| Field | Required | Description |
|---|---|---|
soundfile | No | Sound file (e.g., SOUNDFILE_001, INTERNAL_SOUNDFILE) |
volume | No | Volume (0.0 to 1.0) |
on_time | No | Duration in seconds |
ramp_time | No | Volume fade time in seconds |
repetitions | No | Repetitions (0=none, 1-18=count, -1=infinite) |
homematicip_local.stop_sound¶
Stop sound playback on HmIP-MP3P devices.
homematicip_local.set_sound_led¶
Set LED color and brightness on HmIP-MP3P devices.
| Field | Required | Description |
|---|---|---|
color | No | LED color: black, blue, green, turquoise, red, purple, yellow, white |
brightness | No | Brightness (0 to 255) |
on_time | No | Duration in seconds |
ramp_time | No | Fade time in seconds |
repetitions | No | Repetitions |
flash_time | No | Flash duration in ms (0 to 5000) |
Cover Operations¶
homematicip_local.set_cover_combined_position¶
Move a blind to a specific position and tilt position simultaneously.
Light & Switch On-Time¶
homematicip_local.light_set_on_time¶
Set on time for a light entity. Must be followed by light.turn_on. Use 0 to reset.
homematicip_local.switch_set_on_time¶
Set on time for a switch entity. Must be followed by switch.turn_on. Use 0 to reset.
homematicip_local.valve_set_on_time¶
Set on time for a valve entity. Must be followed by valve.open. Use 0 to reset.
Text Display¶
homematicip_local.send_text_display¶
Send text to a text display entity.
| Field | Required | Description |
|---|---|---|
entity_id | Yes | Text display entity ID |
text | Yes | Text to display |
homematicip_local.clear_text_display¶
Clear text on a text display entity.
Device Management¶
homematicip_local.export_device_definition¶
Exports a device definition as a ZIP file to: {HA_config}/homematicip_local/{device_model}.zip
The ZIP contains:
device_descriptions/{device_model}.jsonparamset_descriptions/{device_model}.json
Upload to pydevccu to support development of new devices.
homematicip_local.reload_device_config¶
Reload device configuration from CCU. Refreshes paramset descriptions and values.
homematicip_local.reload_channel_config¶
Reload configuration for a specific channel from CCU.
homematicip_local.force_device_availability¶
Reactivate a device in HA that was made unavailable by an UNREACH event.
Not a fix for communication problems
This only overrides availability status in HA. No communication with the backend occurs.
homematicip_local.confirm_all_delayed_devices¶
Confirms all delayed devices (CCU inbox) at once and adds them to Home Assistant without custom names.
System Operations¶
homematicip_local.clear_cache¶
Clears the cache for a central unit from Home Assistant. Requires restart.
homematicip_local.record_session¶
Records a session for debugging (max 10 minutes). Output saved to: {HA_config}/homematicip_local/session/
homematicip_local.create_ccu_backup¶
Create and download a system backup from CCU.
OpenCCU only
This feature is only available for OpenCCU (formerly RaspberryMatic). Not supported on CCU2, CCU3, Debmatic, or piVCCU.
Backup saved to: {HA_storage}/homematicip_local/backup/
Returns:
success: true
path: "/config/.storage/homematicip_local/backup/ccu_backup_raspberrymatic_20251203_143022.sbk"
filename: "ccu_backup_raspberrymatic_20251203_143022.sbk"
size: 12345678
Automation Example - Weekly Backup:
automation:
- alias: "Weekly OpenCCU Backup"
trigger:
- platform: time
at: "03:00:00"
condition:
- condition: time
weekday:
- sun
action:
- action: homematicip_local.create_ccu_backup
data:
entry_id: YOUR_ENTRY_ID
Home Assistant Built-in Actions¶
homeassistant.update_entity¶
Update entity value (limited to once per 60 seconds).
Use sparingly
99.9% of entities update automatically. Use only for edge cases (e.g., RSSI values of some HM devices).
- Battery devices: Values from backend cache
- Non-battery devices: Values from device (impacts duty cycle)
homeassistant.update_device_firmware_data¶
Update firmware data for all devices.