Specific Devices

Pmatic supports all kind of devices which are provided by the CCU. Those unspecific devices are instances of pmatic.entities.Device. Those device values can be read and written with generic methods and properties. You can e.g. retrieve the current temperature measured by a HM-CC-RT-DN device as floating point number using device.channels[4].values["ACTUAL_TEMPERATURE"].value. To get this right, you need to know several things:

  • You need to know that the channel 4 of the device is the CLIMATECONTROL_RT_TRANSCEIVER channel.
  • You need to know that the current temperature is available via the paramater ACTUAL_TEMPERATURE.

I think thats problematic. You need to dig into documents and API descriptions of the manufacturers which should really not be neccessary.

So there is the concept of specific device objects in pmatic. To stick with the example above, there is the pmatic.entities.HM_CC_RT_DN which is automatically used for HM-CC-RT-DN devices. When working with such a device, you have access to the property device.temperature which gives you the same value as the code above. Now that should be clear. We need specific devices!

HM-CC-RT-DN (Funk-Heizkörperthermostat)

class pmatic.entities.HM_CC_RT_DN(ccu, spec)[source]

Bases: pmatic.entities.Device

temperature

Provides the current temperature.

Returns an instance of ParameterFLOAT.

valve_state

Provides the current valve state in percentage.

Returns an instance of ParameterINTEGER.

set_temperature

The actual set temperature of the device.

Getter:Provides the actual target temperature as ParameterFLOAT.
Setter:Specify the new set temperature as float. Please note that the CCU rounds this values to .0 or .5 after the comma. So if you provide .e.g 22.1 as new set temperature, the CCU will convert this to 22.0. This is totally equal to the control on the device.
Type:ParameterFloat/float
set_temperature_comfort()[source]

Sets the set_temperature to the configured comfort temperature

set_temperature_lowering()[source]

Sets the set_temperature to the configured lowering temperature

is_off

Is set to True when the device is not enabled to heat.

turn_off()[source]

Call this method to tell the thermostat that it should not heat.

control_mode

The actual control mode of the device. This is either AUTO, MANUAL, PARTY or BOOST.

Getter:Provides the current control mode as ParameterENUM.
Setter:Set the control mode by the name of the mode (see above). When setting to MANUAL it uses either the current set temperature as target temperature or the default temperature when the device is currently turned off.
Type:ParameterENUM/string
is_battery_low

Is True when the battery is reported to be low, otherwise False. If you want more details about the current battery, use battery_state() to get the current reported voltage.

battery_state

Provides the actual battery voltage reported by the device.

boost_duration

When boost mode is currently active this returns the number of minutes left in boost mode. Otherwise it returns None.

Provides the configured boost duration as ParameterINTEGER.

HM-Sec-SC (Funk-Tür-/ Fensterkontakt)

class pmatic.entities.HM_Sec_SC(ccu, spec)[source]

Bases: pmatic.entities.Device

HM-Sec-SCo (Optischer Funk-Tür-/ Fensterkontakt)

class pmatic.entities.HM_Sec_SCo(ccu, spec)[source]

Bases: pmatic.entities.HM_Sec_SC

HM-ES-PMSw1-Pl (Funk-Schaltaktor mit Leistungsmessung)

class pmatic.entities.HM_ES_PMSw1_Pl(ccu, spec)[source]

Bases: pmatic.entities.Device

summary_state

HM-LC-Sw1-Pl-DN-R1 (Funk-Schaltaktor ohne Leistungsmessung)

class pmatic.entities.HM_LC_Sw1_Pl_DN_R1(ccu, spec)[source]

Bases: pmatic.entities.Device

summary_state
switch

Provides to the ChannelKey object of the switch.

You can do something like self.switch.switch_on() with this. For details take a look at the methods provided by the :class:.ChannelKey class.

HM-LC-Bl1PBU-FM (Funk-Rolladenaktor unterputz)

class pmatic.entities.HM_LC_Bl1PBU_FM(ccu, spec)[source]

Bases: pmatic.entities.Device

blind

Provides to the ChannelKey object of the blind channel.

You can do something like self.blind.set_level(0.6) with this. For details take a look at the methods provided by the :class:.ChannelKey class.

HM-PBI-4-FM (Funk-Tasterschnittstelle 4-fach)

class pmatic.entities.HM_PBI_4_FM(ccu, spec)[source]

Bases: pmatic.entities.Device

switch1

Provides to the ChannelKey object of the first switch.

You can do something like self.switch1.press_short() with this. For details take a look at the methods provided by the :class:.ChannelKey class.

switch2

Provides to the ChannelKey object of the second switch.

switch3

Provides to the ChannelKey object of the third switch.

switch4

Provides to the ChannelKey object of the fourth switch.

HM-WDS10-TH-O (Funk-Temperatur-/Luftfeuchtesensor OTH)

class pmatic.entities.HM_WDS10_TH_O(ccu, spec)[source]

Bases: pmatic.entities.Device

temperature

Provides the current temperature.

Returns an instance of ParameterFLOAT.

humidity

Provides the current humidity.

Returns an instance of ParameterFLOAT.

HM-WDS40-TH-I-2 (Funk-Temperatur-/Luftfeuchtesensor ITH)

class pmatic.entities.HM_WDS40_TH_I_2(ccu, spec)[source]

Bases: pmatic.entities.Device

temperature

Provides the current temperature.

Returns an instance of ParameterFLOAT.

humidity

Provides the current humidity.

Returns an instance of ParameterFLOAT.

HM-Sen-LI-O (Funk-Außen-Helligkeitssensor OLI)

class pmatic.entities.HM_Sen_LI_O(ccu, spec)[source]

Bases: pmatic.entities.Device

brightness

Provides the current brightness.

Returns an instance of ParameterFLOAT.

The Channels

Each device is organized in several independent channels which all have individual features. This chapter describes all specific channels currently implemented in pmatic. Unknown channels are represented by the generic pmatic.entities.Channel class.

ChannelMaintenance

class pmatic.entities.ChannelMaintenance(device, spec)[source]

Bases: pmatic.entities.Channel

summary_state

The maintenance channel does not provide a summary state.

If you want to get a formated maintenance state, you need to use the property maintenance_state.

maintenance_state

Provides the formated maintenance state of the associated device.

ChannelShutterContact

class pmatic.entities.ChannelShutterContact(device, spec)[source]

Bases: pmatic.entities.Channel

is_open

True when the contact is reported to be open, otherwise False.

summary_state

Provides a well formated state as string. It is open when the contact is open, otherwise closed.

ChannelBlind

class pmatic.entities.ChannelBlind(device, spec)[source]

Bases: pmatic.entities.Channel

level

Look up the level at which the shutter is set.

set_level(level)[source]

Set the level at which the shutter is to be set.

working

Look up the WORKING value.

ChannelSwitch

class pmatic.entities.ChannelSwitch(device, spec)[source]

Bases: pmatic.entities.Channel

is_on

True when the power is on, otherwise False.

summary_state

Provides the current state as well formated string.

toggle()[source]

Use this to toggle the switch.

switch_off()[source]

Power off!

switch_on()[source]

Lights on!

ChannelKey

class pmatic.entities.ChannelKey(device, spec)[source]

Bases: pmatic.entities.Channel

press_short()[source]

Call this to trigger a short press.

press_long()[source]

Triggers a long press.

press_long_release()[source]

Triggers the release of a long press.

press_cont()[source]

Unknown. Untested. Please let me know what this is.

summary_state

Has no state info as it’s a toggle button. This is only to override the default summary_state property.

ChannelVirtualKey

class pmatic.entities.ChannelVirtualKey(device, spec)[source]

Bases: pmatic.entities.ChannelKey

ChannelPowermeter

class pmatic.entities.ChannelPowermeter(device, spec)[source]

Bases: pmatic.entities.Channel

ChannelConditionPower

class pmatic.entities.ChannelConditionPower(device, spec)[source]

Bases: pmatic.entities.Channel

ChannelConditionCurrent

class pmatic.entities.ChannelConditionCurrent(device, spec)[source]

Bases: pmatic.entities.Channel

ChannelConditionVoltage

class pmatic.entities.ChannelConditionVoltage(device, spec)[source]

Bases: pmatic.entities.Channel

ChannelConditionFrequency

class pmatic.entities.ChannelConditionFrequency(device, spec)[source]

Bases: pmatic.entities.Channel

ChannelWeather

class pmatic.entities.ChannelWeather(device, spec)[source]

Bases: pmatic.entities.Channel

ChannelClimaVentDrive

class pmatic.entities.ChannelClimaVentDrive(device, spec)[source]

Bases: pmatic.entities.Channel

ChannelClimaRegulator

class pmatic.entities.ChannelClimaRegulator(device, spec)[source]

Bases: pmatic.entities.Channel

summary_state

Provides the ventil state.

ChannelClimaRTTransceiver

class pmatic.entities.ChannelClimaRTTransceiver(device, spec)[source]

Bases: pmatic.entities.Channel

summary_state

Provides the actual and target temperature together with the valve state in some readable format.

ChannelWindowSwitchReceiver

class pmatic.entities.ChannelWindowSwitchReceiver(device, spec)[source]

Bases: pmatic.entities.Channel

summary_state

Provides None since the channel has not any values

ChannelWeatherReceiver

class pmatic.entities.ChannelWeatherReceiver(device, spec)[source]

Bases: pmatic.entities.Channel

summary_state

Provides None since the channel has not any values

ChannelClimateControlReceiver

class pmatic.entities.ChannelClimateControlReceiver(device, spec)[source]

Bases: pmatic.entities.Channel

summary_state

Provides None since the channel has not any values

ChannelClimateControlRTReceiver

class pmatic.entities.ChannelClimateControlRTReceiver(device, spec)[source]

Bases: pmatic.entities.Channel

summary_state

Provides None since the channel has not any values

ChannelRemoteControlReceiver

class pmatic.entities.ChannelRemoteControlReceiver(device, spec)[source]

Bases: pmatic.entities.Channel

summary_state

Provides None since the channel has not any values

ChannelWeatherTransmit

class pmatic.entities.ChannelWeatherTransmit(device, spec)[source]

Bases: pmatic.entities.Channel

summary_state

Provides the temperature and humidity in readable format.

ChannelThermalControlTransmit

class pmatic.entities.ChannelThermalControlTransmit(device, spec)[source]

Bases: pmatic.entities.Channel

ChannelSwitchTransmit

class pmatic.entities.ChannelSwitchTransmit(device, spec)[source]

Bases: pmatic.entities.Channel