## Rain Sensor
-Unfortunately Velux has decided to closely integrate the rain sensor into the window device.
-The rain sensor is therefore not displayed in the device list.
-On the other hand, the 'limitMinimum' channel of a roof window provides information about rainy weather:
-If it is set internally by the Velux control unit to a value other than zero, it rains. (Joke!!)
+Unfortunately the rain sensor is closely integrated into the window device and it is therefore not possible to display its state via a channel.
+However, the 'limitMinimum' channel can provide information about rainy weather.
+The rain sensor, when triggered, overrides the window position so it cannot open more than the ventilation position.
+(Normally 5% .. 10% depending on the window type, resp. 90% .. 95% inverted).
+So if 'limitMinimum' changes from its normal value (usually 100% resp. 0% inverted) to this ventilation position value, it is an indication that the rain sensor has probably been triggered.
+
## Properties of the "bridge" Thing
// List of all virtual shutter channel ids
public static final String CHANNEL_VSHUTTER_POSITION = "vposition";
+ public static final Set<String> POSITION_CHANNELS = Set.of(CHANNEL_ACTUATOR_POSITION, CHANNEL_ACTUATOR_STATE,
+ CHANNEL_VANE_POSITION, CHANNEL_VSHUTTER_POSITION);
+
// Helper definitions
public static final String BINDING_VALUES_SEPARATOR = ",";
public static final String OUTPUT_VALUE_SEPARATOR = ",";
ProductBridgeIndex productPbi = product.getBridgeProductIndex();
logger.trace("syncChannelsWithProducts(): bridge index is {}.", productPbi);
for (ChannelUID channelUID : BridgeChannels.getAllLinkedChannelUIDs(this)) {
+ if (!VeluxBindingConstants.POSITION_CHANNELS.contains(channelUID.getId())) {
+ logger.trace("syncChannelsWithProducts(): skipping channel {}.", channelUID);
+ continue;
+ }
if (!channel2VeluxActuator.containsKey(channelUID)) {
logger.trace("syncChannelsWithProducts(): channel {} not found.", channelUID);
continue;