]> git.basschouten.com Git - openhab-addons.git/commitdiff
[somfytahoma] added support for the Rain sensor thing (#12368)
authorOndrej Pecta <opecta@gmail.com>
Fri, 25 Feb 2022 08:11:08 +0000 (09:11 +0100)
committerGitHub <noreply@github.com>
Fri, 25 Feb 2022 08:11:08 +0000 (09:11 +0100)
Signed-off-by: Ondrej Pecta <opecta@gmail.com>
bundles/org.openhab.binding.somfytahoma/README.md
bundles/org.openhab.binding.somfytahoma/src/main/java/org/openhab/binding/somfytahoma/internal/SomfyTahomaBindingConstants.java
bundles/org.openhab.binding.somfytahoma/src/main/java/org/openhab/binding/somfytahoma/internal/SomfyTahomaHandlerFactory.java
bundles/org.openhab.binding.somfytahoma/src/main/java/org/openhab/binding/somfytahoma/internal/discovery/SomfyTahomaItemDiscoveryService.java
bundles/org.openhab.binding.somfytahoma/src/main/java/org/openhab/binding/somfytahoma/internal/handler/SomfyTahomaRainSensorHandler.java [new file with mode: 0644]
bundles/org.openhab.binding.somfytahoma/src/main/resources/OH-INF/i18n/somfytahoma.properties
bundles/org.openhab.binding.somfytahoma/src/main/resources/OH-INF/thing/rainsensor.xml [new file with mode: 0644]

index 3683ad6e198eb7afc5caf2cc2b16776f42db3640..6294264ee1790ade92546ea0c524a01a45f6974e 100644 (file)
@@ -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)
@@ -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)                                                                                                                                                                      |
index e2310122b8f903472872fc80e379f9d8361596d7..564c766c26bb496248601e72f28b547e6c5c75df 100644 (file)
@@ -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";
 
@@ -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
@@ -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";
@@ -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>() {
index c55286e2a10ed54aed96dceb6cc1ced00bb1b645..1d3a1648a0e261672183bc84185141ae45c66b69 100644 (file)
@@ -44,6 +44,7 @@ import org.openhab.binding.somfytahoma.internal.handler.SomfyTahomaOnOffHandler;
 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;
@@ -196,6 +197,8 @@ public class SomfyTahomaHandlerFactory extends BaseThingHandlerFactory {
             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;
         }
index 62de14ebc10f0b3dabaf7d9a3a76c953a1f6481e..58e1a185d2429ff1fc1174095131f4bea5979252 100644 (file)
@@ -340,6 +340,13 @@ public class SomfyTahomaItemDiscoveryService extends AbstractDiscoveryService
                     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
diff --git a/bundles/org.openhab.binding.somfytahoma/src/main/java/org/openhab/binding/somfytahoma/internal/handler/SomfyTahomaRainSensorHandler.java b/bundles/org.openhab.binding.somfytahoma/src/main/java/org/openhab/binding/somfytahoma/internal/handler/SomfyTahomaRainSensorHandler.java
new file mode 100644 (file)
index 0000000..3e41c75
--- /dev/null
@@ -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");
+    }
+}
index ad40cd3b7b0b821458f7bd24aaf35802c018d941..a1bfd983ed4c44d39f205eac71598a74b5ab8a6f 100644 (file)
@@ -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
diff --git a/bundles/org.openhab.binding.somfytahoma/src/main/resources/OH-INF/thing/rainsensor.xml b/bundles/org.openhab.binding.somfytahoma/src/main/resources/OH-INF/thing/rainsensor.xml
new file mode 100644 (file)
index 0000000..a2d9420
--- /dev/null
@@ -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>