Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[somfytahoma] added support for the Rain sensor thing #12368

Merged
merged 1 commit into from
Feb 25, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion bundles/org.openhab.binding.somfytahoma/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ Any home automation system based on the OverKiz API is potentially supported.
- occupancy sensors (OPEN/CLOSE contact)
- smoke sensors (OPEN/CLOSE contact, alarm check)
- contact sensors (OPEN/CLOSE contact)
- rain sensors (OPEN/CLOSE contact)
- temperature sensors (get temperature)
- electricity sensors (get energy consumption)
- door locks (LOCK/UNLOCK, OPEN/CLOSE commands)
Expand Down Expand Up @@ -80,7 +81,7 @@ Please see the example below.
| action group | execute_action | switch which reacts to ON command and triggers the predefined Tahoma action |
| onoff, light | switch | reacts to standard ON/OFF commands |
| dimmer light | light_intensity | sets/gets intensity of the dimmer light or ON/OFF |
| smoke sensor, occupancy sensor, contact sensor & water sensor | contact | normal value is CLOSE, changes to OPEN when detection triggered |
| smoke sensor, occupancy sensor, contact sensor, water sensor & rain sensor | contact | normal value is CLOSE, changes to OPEN when detection triggered |
| smoke sensor, occupancy sensor, contact sensor & water sensor | sensor_defect | indicates the health of the sensor (dead, lowBatter, maintenanceRequired, noDefect) |
| smoke sensor | radio_battery | maintenance radio part battery state (low, normal) |
| smoke sensor | sensor_battery | maintenance sensor part battery state (absence, low, normal) |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,9 @@ public class SomfyTahomaBindingConstants {
// HitachiAirToWaterMainComponent
public static final ThingTypeUID THING_TYPE_HITACHI_ATWMC = new ThingTypeUID(BINDING_ID, "hitachiatwmc");

// RainSensor
public static final ThingTypeUID THING_TYPE_RAINSENSOR = new ThingTypeUID(BINDING_ID, "rainsensor");

// List of all Channel ids
public static final String RSSI = "rssi";

Expand Down Expand Up @@ -211,8 +214,10 @@ public class SomfyTahomaBindingConstants {
public static final String LOCK = "lock";
public static final String OPEN = "open";

// Smoke sensor, Occupancy sensor, Contact sensor, Water sensor
// Smoke sensor, Occupancy sensor, Contact sensor, Water sensor, Rain sensor
public static final String CONTACT = "contact";

// Smoke sensor, Occupancy sensor, Contact sensor, Water sensor
public static final String SENSOR_DEFECT = "sensor_defect";

// Humidity sensor
Expand Down Expand Up @@ -469,6 +474,7 @@ public class SomfyTahomaBindingConstants {
public static final String CLASS_CAMERA = "Camera";
public static final String CLASS_WATER_HEATING_SYSTEM = "WaterHeatingSystem";
public static final String CLASS_HITACHI_HEATING_SYSTEM = "HitachiHeatingSystem";
public static final String CLASS_RAIN_SENSOR = "RainSensor";

// unsupported uiClasses
public static final String THING_PROTOCOL_GATEWAY = "ProtocolGateway";
Expand All @@ -493,7 +499,7 @@ public class SomfyTahomaBindingConstants {
THING_TYPE_WATERSENSOR, THING_TYPE_HUMIDITYSENSOR, THING_TYPE_MYFOX_ALARM, THING_TYPE_THERMOSTAT,
THING_TYPE_DIMMER_LIGHT, THING_TYPE_EXTERIOR_HEATING_SYSTEM, THING_TYPE_VALVE_HEATING_SYSTEM,
THING_TYPE_BIOCLIMATIC_PERGOLA, THING_TYPE_WATERHEATINGSYSTEM, THING_TYPE_HITACHI_ATWHZ,
THING_TYPE_HITACHI_DHW, THING_TYPE_HITACHI_ATWMC));
THING_TYPE_HITACHI_DHW, THING_TYPE_HITACHI_ATWMC, THING_TYPE_RAINSENSOR));

// somfy gateways
public static Map<Integer, String> gatewayTypes = new HashMap<Integer, String>() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
import org.openhab.binding.somfytahoma.internal.handler.SomfyTahomaOnOffHeatingSystemHandler;
import org.openhab.binding.somfytahoma.internal.handler.SomfyTahomaPergolaHandler;
import org.openhab.binding.somfytahoma.internal.handler.SomfyTahomaPodHandler;
import org.openhab.binding.somfytahoma.internal.handler.SomfyTahomaRainSensorHandler;
import org.openhab.binding.somfytahoma.internal.handler.SomfyTahomaRollerShutterHandler;
import org.openhab.binding.somfytahoma.internal.handler.SomfyTahomaSilentRollerShutterHandler;
import org.openhab.binding.somfytahoma.internal.handler.SomfyTahomaSirenHandler;
Expand Down Expand Up @@ -196,6 +197,8 @@ protected ThingHandler createHandler(Thing thing) {
return new SomfyTahomaHitachiDHWHandler(thing);
} else if (thingTypeUID.equals(THING_TYPE_HITACHI_ATWMC)) {
return new SomfyTahomaHitachiATWMCHandler(thing);
} else if (thingTypeUID.equals(THING_TYPE_RAINSENSOR)) {
return new SomfyTahomaRainSensorHandler(thing);
} else {
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,13 @@ private void discoverDevice(SomfyTahomaDevice device, SomfyTahomaSetup setup) {
logUnsupportedDevice(device);
}
break;
case CLASS_RAIN_SENSOR:
if ("RainSensor".equals(device.getWidget())) {
// widget: RainSensor
deviceDiscovered(device, THING_TYPE_RAINSENSOR, place);
} else {
logUnsupportedDevice(device);
}
case THING_PROTOCOL_GATEWAY:
case THING_REMOTE_CONTROLLER:
// widget: AlarmRemoteController
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/**
* Copyright (c) 2010-2022 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0
*
* SPDX-License-Identifier: EPL-2.0
*/
package org.openhab.binding.somfytahoma.internal.handler;

import static org.openhab.binding.somfytahoma.internal.SomfyTahomaBindingConstants.*;

import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.core.thing.Thing;

/**
* The {@link SomfyTahomaRainSensorHandler} is responsible for handling commands,
* which are sent to one of the channels of the rain sensor thing.
*
* @author Ondrej Pecta - Initial contribution
*/
@NonNullByDefault
public class SomfyTahomaRainSensorHandler extends SomfyTahomaBaseThingHandler {

public SomfyTahomaRainSensorHandler(Thing thing) {
super(thing);
stateNames.put(CONTACT, "core:RainState");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ thing-type.somfytahoma.onoff.label = Somfy On/Off Switch
thing-type.somfytahoma.onoffheatingsystem.label = Somfy Heating System with On/Off
thing-type.somfytahoma.pergola.label = Somfy Pergola
thing-type.somfytahoma.pod.label = Somfy Pod
thing-type.somfytahoma.rainsensor.label = Somfy Rain Sensor
thing-type.somfytahoma.rollershutter.label = Somfy Roller Shutter
thing-type.somfytahoma.rollershutter_silent.label = Somfy Silent Roller Shutter
thing-type.somfytahoma.rollershutter_uno.label = Somfy Roller Shutter Uno
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="somfytahoma"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">

<thing-type id="rainsensor">
<supported-bridge-type-refs>
<bridge-type-ref id="bridge"/>
</supported-bridge-type-refs>
<label>Somfy Rain Sensor</label>
<channels>
<channel id="contact" typeId="contact"></channel>
</channels>
<representation-property>url</representation-property>
<config-description-ref uri="thing-type:somfytahoma:device"/>
</thing-type>

</thing:thing-descriptions>