Skip to content

Commit

Permalink
added devices HmIP-FALMOT-C12 & HMIP-WHS2
Browse files Browse the repository at this point in the history
closes #280
closes #281
  • Loading branch information
coreGreenberet committed Dec 29, 2019
1 parent 4b35460 commit 2403bd7
Show file tree
Hide file tree
Showing 13 changed files with 524 additions and 92 deletions.
25 changes: 18 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
### Added
- API
- FunctionalChannels:
- Devices
- [HMIP-FALMOT-C12] (Floor Heating Actuator – 12x channels, motorised)
- [HMIP-WHS2] (Switch Actuator for heating systems – 2x channels)

## [0.10.14] - 2019-12-22
### Added
- API
Expand Down Expand Up @@ -75,7 +82,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- HMIP-FAL230-C10 (Floor Heating Actuator – 10x channels, 230V)
- HMIP-FAL24-C6 (Floor Heating Actuator – 6x channels, 24V)
- HMIP-FAL24-C10 (Floor Heating Actuator – 10x channels, 24V)
- Async implementation of HmIP-PCBS-BAT (Printed Circuit Board Switch Battery)
- Async implementation of HMIP-PCBS-BAT (Printed Circuit Board Switch Battery)

## [0.10.7] - 2019-04-09
### Added
Expand All @@ -94,7 +101,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Devices
- HMIP-FBL (Blind Actuator - flush-mount)
- HMIP-BRC2 (Remote Control for brand switches – 2 channels)
- HmIP-eTRV-C (Heating-thermostat compact without display)
- HMIP-eTRV-C (Heating-thermostat compact without display)

- API
- AutoNameEnum.from_str does now take a default parameter_
Expand Down Expand Up @@ -147,12 +154,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [0.10.3] - 2019-01-06
### Added
- Devices
- HmIP-SWO-PL
- HMIP-SWO-PL

## [0.10.2] - 2019-01-06
### Added
- Devices
- HmIP-SMO-A
- HMIP-SMO-A
### Changes
- API
- Small Bugfix in the aio library
Expand All @@ -169,7 +176,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Enums
- HeatingLoadType
- Devices
- HmIP-FAL230-C6
- HMIP-FAL230-C6
- added missing properties

### Changes
Expand Down Expand Up @@ -242,8 +249,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [0.9.7] - 2018-07-06
### Added
- Devices
- HmIP-SWD
- HmIP-SMI55
- HMIP-SWD
- HMIP-SMI55

## [0.9.6] - 2018-06-12
### Changed
Expand Down Expand Up @@ -287,3 +294,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
[BUG: 220]: https://github.com/coreGreenberet/homematicip-rest-api/issues/220
[BUG: 223]: https://github.com/coreGreenberet/homematicip-rest-api/issues/223
[BUG: 266]: https://github.com/coreGreenberet/homematicip-rest-api/issues/266


[HMIP-FALMOT-C12]: https://github.com/coreGreenberet/homematicip-rest-api/issues/281
[HMIP-WHS2]: https://github.com/coreGreenberet/homematicip-rest-api/issues/280
4 changes: 2 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ Homematic IP Devices:
- [X] HMIP-FAL230-C10 (Floor Heating Actuator – 10x channels, 230V)
- [X] HMIP-FAL24-C6 (Floor Heating Actuator – 6x channels, 24V)
- [X] HMIP-FAL24-C10 (Floor Heating Actuator – 10x channels, 24V)
- [ ] HMIP-FALMOT-C12 (Floor Heating Actuator – 12x channels, motorised)
- [X] HMIP-FALMOT-C12 (Floor Heating Actuator – 12x channels, motorised)
- [X] HMIP-FBL (Blind Actuator - flush-mount)
- [X] HMIP-FCI1 (Contact Interface flush-mount – 1x channel)
- [ ] HMIP-FCI6 (Contact Interface flush-mount – 6x channels)
Expand Down Expand Up @@ -161,7 +161,7 @@ Homematic IP Devices:
- [X] HMIP-SWO-PR (Weather Sensor – Pro)
- [X] HMIP-SWSD (Smoke Detector)
- [ ] HMIP-WGC (Garage Door Button)
- [ ] HMIP-WHS2 (Switch Actuator for heating systems – 2x channels)
- [X] HMIP-WHS2 (Switch Actuator for heating systems – 2x channels)
- [X] HMIP-WRC2 (Wall-mount Remote Control - 2x buttons)
- [X] HMIP-WRC6 (Wall-mount Remote Control - 6x buttons)
- [ ] HMIP-WRCD (Wall-mount Remote Control - E-Paper-Status display)
Expand Down
13 changes: 2 additions & 11 deletions homematicip.pyproj
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
<InterpreterArguments>
</InterpreterArguments>
<EnableNativeCodeDebugging>False</EnableNativeCodeDebugging>
<CommandLineArguments>--list-events</CommandLineArguments>
<InterpreterId>MSBuild|venv38|$(MSBuildProjectFullPath)</InterpreterId>
<CommandLineArguments>--list-devices --server-config D:\Repositories\homematicip-rest-api\hmip-config_1B11.txt</CommandLineArguments>
<InterpreterId>MSBuild|venv|$(MSBuildProjectFullPath)</InterpreterId>
<SuppressConfigureTestFrameworkPrompt>true</SuppressConfigureTestFrameworkPrompt>
<TestFramework>pytest</TestFramework>
<UnitTestPattern>test*.py</UnitTestPattern>
Expand Down Expand Up @@ -159,15 +159,6 @@
<Content Include="requirements_dev.txt" />
</ItemGroup>
<ItemGroup>
<Interpreter Include="venv38\">
<Id>venv38</Id>
<Version>3.8</Version>
<Description>venv38 (Python 3.8 (64-bit))</Description>
<InterpreterPath>Scripts\python.exe</InterpreterPath>
<WindowsInterpreterPath>Scripts\pythonw.exe</WindowsInterpreterPath>
<PathEnvironmentVariable>PYTHONPATH</PathEnvironmentVariable>
<Architecture>X64</Architecture>
</Interpreter>
<Interpreter Include="venv\">
<Id>venv</Id>
<Version>3.7</Version>
Expand Down
2 changes: 2 additions & 0 deletions homematicip/aio/class_maps.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,13 @@
DeviceType.BRAND_WALL_MOUNTED_THERMOSTAT: AsyncWallMountedThermostatPro,
DeviceType.FLOOR_TERMINAL_BLOCK_6: AsyncFloorTerminalBlock6,
DeviceType.FLOOR_TERMINAL_BLOCK_10: AsyncFloorTerminalBlock10,
DeviceType.FLOOR_TERMINAL_BLOCK_12: AsyncFloorTerminalBlock12,
DeviceType.FULL_FLUSH_BLIND: AsyncFullFlushBlind,
DeviceType.FULL_FLUSH_CONTACT_INTERFACE: AsyncFullFlushContactInterface,
DeviceType.FULL_FLUSH_DIMMER: AsyncFullFlushDimmer,
DeviceType.FULL_FLUSH_SHUTTER: AsyncFullFlushShutter,
DeviceType.FULL_FLUSH_SWITCH_MEASURING: AsyncFullFlushSwitchMeasuring,
DeviceType.HEATING_SWITCH_2: AsyncHeatingSwitch2,
DeviceType.HEATING_THERMOSTAT: AsyncHeatingThermostat,
DeviceType.HEATING_THERMOSTAT_COMPACT: AsyncHeatingThermostatCompact,
DeviceType.KEY_REMOTE_CONTROL_4: AsyncKeyRemoteControl4,
Expand Down
61 changes: 43 additions & 18 deletions homematicip/aio/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,14 +53,18 @@ async def reset_energy_counter(self):
return await self._connection.api_call(*super().reset_energy_counter())


class AsyncHeatingSwitch2(HeatingSwitch2, AsyncSwitch):
""" HMIP-WHS2 (Switch Actuator for heating systems – 2x channels) """


class AsyncPlugableSwitch(PlugableSwitch, AsyncSwitch):
""" Async implementation of HMIP-PS (Pluggable Switch) """


class AsyncPrintedCircuitBoardSwitchBattery(
PrintedCircuitBoardSwitchBattery, AsyncSwitch
):
""" HmIP-PCBS-BAT (Printed Circuit Board Switch Battery) """
""" HMIP-PCBS-BAT (Printed Circuit Board Switch Battery) """


class AsyncPrintedCircuitBoardSwitch2(PrintedCircuitBoardSwitch2, AsyncSwitch):
Expand All @@ -76,7 +80,7 @@ class AsyncSabotageDevice(SabotageDevice, AsyncDevice):


class AsyncOpenCollector8Module(OpenCollector8Module, AsyncSwitch):
""" Async implementation of HmIP-MOD-OC8 ( Open Collector Module ) """
""" Async implementation of HMIP-MOD-OC8 ( Open Collector Module ) """


class AsyncOperationLockableDevice(OperationLockableDevice, AsyncDevice):
Expand Down Expand Up @@ -120,7 +124,7 @@ class AsyncBrandSwitchMeasuring(BrandSwitchMeasuring, AsyncSwitchMeasuring):


class AsyncFullFlushSwitchMeasuring(FullFlushSwitchMeasuring, AsyncSwitchMeasuring):
""" HmIP-FSM (Full flush Switch and Meter) """
""" HMIP-FSM (Full flush Switch and Meter) """


class AsyncShutterContact(ShutterContact, AsyncSabotageDevice):
Expand All @@ -131,7 +135,7 @@ class AsyncShutterContact(ShutterContact, AsyncSabotageDevice):


class AsyncShutterContactMagnetic(ShutterContactMagnetic, AsyncDevice):
""" HmIP-SWDM / HmIP-SWDM-B2 (Door / Window Contact - magnetic """
""" HMIP-SWDM / HMIP-SWDM-B2 (Door / Window Contact - magnetic """

pass

Expand All @@ -143,13 +147,13 @@ class AsyncContactInterface(ContactInterface, AsyncSabotageDevice):


class AsyncRotaryHandleSensor(RotaryHandleSensor, AsyncSabotageDevice):
""" HmIP-SRH """
""" HMIP-SRH """


class AsyncTemperatureHumiditySensorOutdoor(
TemperatureHumiditySensorOutdoor, AsyncDevice
):
""" HmIP-STHO (Temperature and Humidity Sensor outdoor) """
""" HMIP-STHO (Temperature and Humidity Sensor outdoor) """


class AsyncHeatingThermostat(HeatingThermostat, AsyncOperationLockableDevice):
Expand All @@ -159,7 +163,7 @@ class AsyncHeatingThermostat(HeatingThermostat, AsyncOperationLockableDevice):


class AsyncHeatingThermostatCompact(HeatingThermostatCompact, AsyncSabotageDevice):
""" HmIP-eTRV-C (Heating-thermostat compact without display) """
""" HMIP-eTRV-C (Heating-thermostat compact without display) """

pass

Expand Down Expand Up @@ -210,6 +214,27 @@ class AsyncFloorTerminalBlock10(FloorTerminalBlock10, AsyncFloorTerminalBlock6):
""" HMIP-FAL24-C10 (Floor Heating Actuator – 10x channels, 24V) """


class AsyncFloorTerminalBlock12(FloorTerminalBlock12, AsyncDevice):
""" HMIP-FALMOT-C12 (Floor Heating Actuator – 12x channels, motorised) """

async def set_minimum_floor_heating_valve_position(
self, minimumFloorHeatingValvePosition: float
):
""" sets the minimum floot heating valve position
Args:
minimumFloorHeatingValvePosition(float): the minimum valve position. must be between 0.0 and 1.0
Returns:
the result of the _restCall
"""
await self._connection.api_call(
*super().set_minimum_floor_heating_valve_position(
minimumFloorHeatingValvePosition=minimumFloorHeatingValvePosition
)
)


class AsyncPushButton(PushButton, AsyncDevice):
""" HMIP-WRC2 (Wall-mount Remote Control - 2-button) """

Expand All @@ -227,11 +252,11 @@ class AsyncKeyRemoteControl4(KeyRemoteControl4, AsyncPushButton):


class AsyncRemoteControl8(RemoteControl8, AsyncPushButton):
""" HmIP-RC8 (Remote Control - 8 buttons) """
""" HMIP-RC8 (Remote Control - 8 buttons) """


class AsyncRemoteControl8Module(RemoteControl8Module, AsyncRemoteControl8):
""" HmIP-MOD-RC8 (Open Collector Module Sender - 8x) """
""" HMIP-MOD-RC8 (Open Collector Module Sender - 8x) """


class AsyncAlarmSirenIndoor(AlarmSirenIndoor, AsyncSabotageDevice):
Expand All @@ -249,7 +274,7 @@ class AsyncMotionDetectorIndoor(MotionDetectorIndoor, AsyncSabotageDevice):


class AsyncMotionDetectorOutdoor(MotionDetectorOutdoor, AsyncDevice):
""" HmIP-SMO-A (Motion Detector with Brightness Sensor - outdoor) """
""" HMIP-SMO-A (Motion Detector with Brightness Sensor - outdoor) """

pass

Expand Down Expand Up @@ -317,35 +342,35 @@ async def set_dim_level(self, dimLevel=0.0):


class AsyncPluggableDimmer(AsyncDimmer):
"""HmIP-PDT Pluggable Dimmer"""
"""HMIP-PDT Pluggable Dimmer"""


class AsyncBrandDimmer(AsyncDimmer):
"""HmIP-BDT Brand Dimmer"""
"""HMIP-BDT Brand Dimmer"""


class AsyncFullFlushDimmer(AsyncDimmer):
"""HmIP-FDT Dimming Actuator flush-mount"""
"""HMIP-FDT Dimming Actuator flush-mount"""


class AsyncWeatherSensor(WeatherSensor, AsyncDevice):
""" HmIP-SWO-B """
""" HMIP-SWO-B """


class AsyncWeatherSensorPlus(WeatherSensorPlus, AsyncDevice):
""" HmIP-SWO-PL """
""" HMIP-SWO-PL """


class AsyncWeatherSensorPro(WeatherSensorPro, AsyncDevice):
""" HmIP-SWO-PR """
""" HMIP-SWO-PR """


class AsyncMultiIOBox(MultiIOBox, AsyncSwitch):
""" HMIP-MIOB (Multi IO Box for floor heating & cooling) """


class AsyncWaterSensor(WaterSensor, AsyncDevice):
""" HmIP-SWD """
""" HMIP-SWD """

async def set_acoustic_alarm_signal(self, acousticAlarmSignal: AcousticAlarmSignal):
return await self._connection.api_call(
Expand Down Expand Up @@ -386,7 +411,7 @@ async def set_siren_water_alarm_trigger(


class AsyncAccelerationSensor(AccelerationSensor, AsyncDevice):
""" HmIP-SAM """
""" HMIP-SAM """

async def set_acceleration_sensor_mode(
self, mode: AccelerationSensorMode, channelIndex=1
Expand Down
7 changes: 6 additions & 1 deletion homematicip/base/enums.py
Original file line number Diff line number Diff line change
Expand Up @@ -210,11 +210,13 @@ class DeviceType(AutoNameEnum):
BRAND_WALL_MOUNTED_THERMOSTAT = auto()
FLOOR_TERMINAL_BLOCK_6 = auto()
FLOOR_TERMINAL_BLOCK_10 = auto()
FLOOR_TERMINAL_BLOCK_12 = auto()
FULL_FLUSH_BLIND = auto()
FULL_FLUSH_CONTACT_INTERFACE = auto()
FULL_FLUSH_DIMMER = auto()
FULL_FLUSH_SHUTTER = auto()
FULL_FLUSH_SWITCH_MEASURING = auto()
HEATING_SWITCH_2 = auto()
HEATING_THERMOSTAT = auto()
HEATING_THERMOSTAT_COMPACT = auto()
KEY_REMOTE_CONTROL_4 = auto()
Expand Down Expand Up @@ -372,10 +374,12 @@ class FunctionalChannelType(AutoNameEnum):
ALARM_SIREN_CHANNEL = auto()
ANALOG_OUTPUT_CHANNEL = auto()
BLIND_CHANNEL = auto()
CHANGE_OVER_CHANNEL = auto()
CONTACT_INTERFACE_CHANNEL = auto()
CLIMATE_SENSOR_CHANNEL = auto()
DEHUMIDIFIER_DEMAND_CHANNEL = auto()
DEVICE_BASE = auto()
DEVICE_BASE_FLOOR_HEATING = auto()
DEVICE_GLOBAL_PUMP_CONTROL = auto()
DEVICE_INCORRECT_POSITIONED = auto()
DEVICE_OPERATIONLOCK = auto()
Expand All @@ -384,8 +388,9 @@ class FunctionalChannelType(AutoNameEnum):
DEVICE_SABOTAGE = auto()
DOOR_CHANNEL = auto()
DIMMER_CHANNEL = auto()
FLOOR_TERMINAL_BLOCK_LOCAL_PUMP_CHANNEL = auto()
FLOOR_TERMINAL_BLOCK_CHANNEL = auto()
FLOOR_TERMINAL_BLOCK_LOCAL_PUMP_CHANNEL = auto()
FLOOR_TERMINAL_BLOCK_MECHANIC_CHANNEL = auto()
GENERIC_INPUT_CHANNEL = auto()
HEAT_DEMAND_CHANNEL = auto()
HEATING_THERMOSTAT_CHANNEL = auto()
Expand Down
Loading

0 comments on commit 2403bd7

Please sign in to comment.