Skip to content

Commit

Permalink
Merge pull request #209 from coreGreenberet/HmIP-BBL
Browse files Browse the repository at this point in the history
added hmip-bbl
  • Loading branch information
coreGreenberet authored May 23, 2019
2 parents c22ca20 + 823a021 commit 681e275
Show file tree
Hide file tree
Showing 9 changed files with 88 additions and 3 deletions.
5 changes: 3 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]
- Devices
- HMIP-PCBS2 (Switch Circuit Board - 2x channels)
- HMIP-PCBS2 (Switch Circuit Board - 2x channels)
- HMIP-BBL (Blind Actuator for brand switches)
- Async implementation of HmIP-PCBS-BAT (Printed Curcuit Board Switch Battery)
## [0.10.7] - 2019-04-09
### Added
- Devices
- HMIP-MIOB (Multi IO Box for floor heating & cooling)
- HMIP-MIOB (Multi IO Box for floor heating & cooling)
- API
- FunctionalChannels: ANALOG_OUTPUT_CHANNEL, GENERIC_INPUT_CHANNEL
- WeatherCondition.STRONG_WIND
Expand Down
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ Homematic IP Devices:

- [X] HMIP-ASIR, HMIP-ASIR-B1 (Alarm Siren - indoor)
- [ ] HMIP-ASIR-O (Alarm Siren - outdoor)
- [ ] HMIP-BBL (Blind Actuator for brand switches)
- [X] HMIP-BBL (Blind Actuator for brand switches)
- [X] HMIP-BDT (Dimming Actuator for brand switches)
- [X] HMIP-BRC2 (Remote Control for brand switches – 2x channels)
- [X] HMIP-BROLL (Shutter Actuator - brand-mount)
Expand Down
1 change: 1 addition & 0 deletions homematicip/aio/class_maps.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
TYPE_CLASS_MAP = {
DeviceType.DEVICE: AsyncDevice,
DeviceType.ALARM_SIREN_INDOOR: AsyncAlarmSirenIndoor,
DeviceType.BRAND_BLIND:AsyncBrandBlind,
DeviceType.BRAND_DIMMER: AsyncBrandDimmer,
DeviceType.BRAND_SHUTTER: AsyncFullFlushShutter,
DeviceType.BRAND_PUSH_BUTTON: AsyncBrandPushButton,
Expand Down
2 changes: 2 additions & 0 deletions homematicip/aio/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,8 @@ async def set_slats_level(self, slatsLevel=0.0, shutterLevel=None):
*super().set_slats_level(slatsLevel, shutterLevel)
)

class AsyncBrandBlind(BrandBlind, AsyncFullFlushBlind):
""" HMIP-BBL (Blind Actuator for brand switches) """

class AsyncDimmer(Dimmer, AsyncDevice):
"""Base dimmer device class"""
Expand Down
1 change: 1 addition & 0 deletions homematicip/base/enums.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,7 @@ class ClientType(AutoNameEnum):
class DeviceType(AutoNameEnum):
DEVICE = auto()
ALARM_SIREN_INDOOR = auto()
BRAND_BLIND = auto()
BRAND_DIMMER = auto()
BRAND_PUSH_BUTTON = auto()
BRAND_SHUTTER = auto()
Expand Down
1 change: 1 addition & 0 deletions homematicip/class_maps.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
TYPE_CLASS_MAP = {
DeviceType.DEVICE: Device,
DeviceType.ALARM_SIREN_INDOOR: AlarmSirenIndoor,
DeviceType.BRAND_BLIND: BrandBlind,
DeviceType.BRAND_DIMMER: BrandDimmer,
DeviceType.BRAND_PUSH_BUTTON: BrandPushButton,
DeviceType.BRAND_SHUTTER: FullFlushShutter,
Expand Down
2 changes: 2 additions & 0 deletions homematicip/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -1015,6 +1015,8 @@ def __str__(self):
super().__str__(), self.slatsLevel, self.blindModeActive
)

class BrandBlind(FullFlushBlind):
""" HMIP-BBL (Blind Actuator for brand switches) """

class LightSensor(Device):
""" HMIP-SLO (Light Sensor outdoor) """
Expand Down
65 changes: 65 additions & 0 deletions homematicip_demo/json_data/home.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,71 @@
}
},
"devices": {
"3014F71100000000000BBL24": {
"availableFirmwareVersion": "1.6.2",
"firmwareVersion": "1.6.2",
"firmwareVersionInteger": 67074,
"functionalChannels": {
"0": {
"configPending": false,
"deviceId": "3014F71100000000000BBL24",
"dutyCycle": false,
"functionalChannelType": "DEVICE_BASE",
"groupIndex": 0,
"groups": [
"00000000-0000-0000-0000-000000000034"
],
"index": 0,
"label": "",
"lowBat": null,
"routerModuleEnabled": false,
"routerModuleSupported": false,
"rssiDeviceValue": -64,
"rssiPeerValue": -76,
"unreach": false
},
"1": {
"blindModeActive": true,
"bottomToTopReferenceTime": 54.88,
"changeOverDelay": 0.5,
"delayCompensationValue": 12.7,
"deviceId": "3014F71100000000000BBL24",
"endpositionAutoDetectionEnabled": true,
"functionalChannelType": "BLIND_CHANNEL",
"groupIndex": 1,
"groups": [
],
"index": 1,
"label": "",
"previousShutterLevel": null,
"previousSlatsLevel": null,
"processing": false,
"profileMode": "AUTOMATIC",
"selfCalibrationInProgress": null,
"shutterLevel": 0.885,
"slatsLevel": 1.0,
"slatsReferenceTime": 1.6,
"supportingDelayCompensation": true,
"supportingEndpositionAutoDetection": true,
"supportingSelfCalibration": true,
"topToBottomReferenceTime": 53.68,
"userDesiredProfileMode": "MANUAL"
}
},
"homeId": "00000000-0000-0000-0000-000000000001",
"id": "3014F71100000000000BBL24",
"label": "Jalousie Schiebet\u00fcr",
"lastStatusUpdate": 1558464454532,
"liveUpdateState": "LIVE_UPDATE_NOT_SUPPORTED",
"manufacturerCode": 1,
"modelId": 332,
"modelType": "HmIP-BBL",
"oem": "eQ-3",
"permanentlyReachable": true,
"serializedGlobalTradeItemNumber": "3014F7110000000000000024",
"type": "BRAND_BLIND",
"updateState": "UP_TO_DATE"
},
"3014F7110000000000BCBB11": {
"availableFirmwareVersion": "0.0.0",
"firmwareVersion": "1.10.10",
Expand Down
12 changes: 12 additions & 0 deletions tests/test_devices.py
Original file line number Diff line number Diff line change
Expand Up @@ -881,6 +881,18 @@ def test_full_flush_blind(fake_home: Home):
"slatsLevel(0.8) blindModeActive(True)"
)

def test_brand_blind(fake_home:Home):
with no_ssl_verification():
d = BrandBlind(fake_home._connection)
d = fake_home.search_device_by_id("3014F71100000000000BBL24")
assert isinstance(d, BrandBlind)

assert str(d) == (
"HmIP-BBL Jalousie Schiebetür lowbat(None) unreach(False) "
"rssiDeviceValue(-64) rssiPeerValue(-76) configPending(False) "
"dutyCycle(False) shutterLevel(0.885) topToBottom(53.68) bottomToTop(54.88) "
"slatsLevel(1.0) blindModeActive(True)"
)

def test_alarm_siren_indoor(fake_home: Home):
with no_ssl_verification():
Expand Down

0 comments on commit 681e275

Please sign in to comment.