From 83944120e6fc15e9c010c0fde364ad8fda3ba958 Mon Sep 17 00:00:00 2001 From: mishbieg Date: Mon, 25 Aug 2025 20:58:19 +0200 Subject: [PATCH 1/2] Adds Weather Sensor Plus --- main.py | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) mode change 100755 => 100644 main.py diff --git a/main.py b/main.py old mode 100755 new mode 100644 index 3bd007d..a5d01d0 --- a/main.py +++ b/main.py @@ -9,8 +9,8 @@ import homematicip from homematicip.async_home import AsyncHome from homematicip.device import HeatingThermostat, HeatingThermostatCompact, ShutterContact, ShutterContactMagnetic, \ - ContactInterface, RotaryHandleSensor, WallMountedThermostatPro, WeatherSensor, HoermannDrivesModule, \ - MotionDetectorIndoor, SmokeDetector, AlarmSirenIndoor, LightSensor + ContactInterface, RotaryHandleSensor, WallMountedThermostatPro, WeatherSensor, WeatherSensorPlus, \ + HoermannDrivesModule, MotionDetectorIndoor, SmokeDetector, AlarmSirenIndoor, LightSensor from homematicip.group import HeatingGroup from homematicip.base.enums import DoorCommand @@ -269,6 +269,27 @@ async def process_homematic_payload(payload): "yesterday_sunshine_duration": payload.yesterdaySunshineDuration, "vapor_amount": payload.vaporAmount } + elif isinstance(payload, WeatherSensorPlus): + topic += f"devices/weather/{payload.id}" + data = { + "low_battery": payload.lowBat, + "temperature": payload.actualTemperature, + "humidity": payload.humidity, + "illumination": payload.illumination, + "illumination_threshold_sunshine": payload.illuminationThresholdSunshine, + "raining": payload.raining, + "storm": payload.storm, + "sunshine": payload.sunshine, + "today_rainCounter": payload.todayRainCounter, + "total_rainCounter": payload.totalRainCounter, + "today_sunshine_duration": payload.todaySunshineDuration, + "total_sunshine_duration": payload.totalSunshineDuration, + "wind_value_type": payload.windValueType, + "wind_speed": payload.windSpeed, + "yesterday_rainCounter": payload.yesterdayRainCounter, + "yesterday_sunshine_duration": payload.yesterdaySunshineDuration, + "vapor_amount": payload.vaporAmount + } elif isinstance(payload, HoermannDrivesModule): topic += f"devices/hoermann_drive/{payload.id}" data = { From 1127bb9a046d75450021246a3862ae7a37c4a3be Mon Sep 17 00:00:00 2001 From: mishbieg Date: Mon, 25 Aug 2025 21:05:50 +0200 Subject: [PATCH 2/2] Add Carbon Dioxide Sensor --- main.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/main.py b/main.py index a5d01d0..a6630f9 100644 --- a/main.py +++ b/main.py @@ -10,7 +10,7 @@ from homematicip.async_home import AsyncHome from homematicip.device import HeatingThermostat, HeatingThermostatCompact, ShutterContact, ShutterContactMagnetic, \ ContactInterface, RotaryHandleSensor, WallMountedThermostatPro, WeatherSensor, WeatherSensorPlus, \ - HoermannDrivesModule, MotionDetectorIndoor, SmokeDetector, AlarmSirenIndoor, LightSensor + HoermannDrivesModule, MotionDetectorIndoor, SmokeDetector, AlarmSirenIndoor, LightSensor, CarbonDioxideSensor from homematicip.group import HeatingGroup from homematicip.base.enums import DoorCommand @@ -333,6 +333,16 @@ async def process_homematic_payload(payload): "highest": payload.highestIllumination, "lowest": payload.lowestIllumination } + elif isinstance(payload, CarbonDioxideSensor): + topic += f"devices/carbon_dioxide_sensor/{payload.id}" + data = { + "concentration": payload.carbonDioxideConcentration, + "temperature": payload.actualTemperature, + "humidity": payload.humidity, + "vapor": payload.vaporAmount, + "led": payload.carbonDioxideVisualisationEnabled, + "label": payload.label + } else: logger.debug(f"Unhandled type: {type(payload)}") return