2 * Copyright (c) 2010-2023 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
7 * This program and the accompanying materials are made available under the
8 * terms of the Eclipse Public License 2.0 which is available at
9 * http://www.eclipse.org/legal/epl-2.0
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.velux.internal.bridge.common;
15 import org.eclipse.jdt.annotation.NonNullByDefault;
16 import org.eclipse.jdt.annotation.Nullable;
19 * Definition of the 3rd Level I/O interface towards the <B>Velux</B> bridge.
21 * It provides the one-and-only protocol specific 1st-level communication class.
22 * Additionally it provides all methods for different gateway interactions.
24 * The following class access methods exist:
26 * <LI>{@link #getDeviceStatus} for retrieving the bridge state (i.e. IDLE, BUSY, a.s.o),</LI>
27 * <LI>{@link #getFirmware} for retrieving the firmware version of the bridge,</LI>
28 * <LI>{@link #getHouseStatus} for retrieving the information about device state changes recognized by the
30 * <LI>{@link #getLANConfig} for retrieving the complete LAN information of the bridge,</LI>
31 * <LI>{@link #getProduct} for retrieving the any information about a device behind the bridge,</LI>
32 * <LI>{@link #getProductLimitation} for retrieving the limitation information about a device behind the
34 * <LI>{@link #getProducts} for retrieving the any information for all devices behind the bridge,</LI>
35 * <LI>{@link #getScenes} for retrieving the any information for all scenes defined on the bridge,</LI>
36 * <LI>{@link #getWLANConfig} for retrieving the complete WLAN information of the bridge,</LI>
37 * <LI>{@link #login} for establishing a trusted connectivity by authentication,</LI>
38 * <LI>{@link #logout} for tearing down the trusted connectivity by deauthentication,</LI>
39 * <LI>{@link #runProductCommand} for manipulation of a device behind the bridge (i.e. instructing to
40 * modify a position),</LI>
41 * <LI>{@link #runProductDiscovery} for activation of learning mode of the bridge to discovery new
43 * <LI>{@link #runProductIdentification} for human-oriented identification a device behind the bridge (i.e.
44 * by winking or switching on-and-off),</LI>
45 * <LI>{@link #runProductSearch} for searching for lost products on the bridge,</LI>
46 * <LI>{@link #runScene} for manipulation of a set of devices behind the bridge which are tied together as scene,</LI>
47 * <LI>{@link #setHouseStatusMonitor} for activation or deactivation of the house monitoring mode to be informed about
48 * device state changes recognized by the bridge,</LI>
49 * <LI>{@link #setSceneVelocity} for changes the velocity of a scene defined on the bridge (i.e. silent or
53 * Message semantic: Retrieval of Bridge configuration and information of devices beyond the bridge.
56 * It defines information how to send query and receive answer through the
57 * VeluxBridgeProvider as described by the BridgeCommunicationProtocol.
59 * @author Guenther Schreiner - Initial contribution.
62 public interface BridgeAPI {
69 SetHouseStatusMonitor setHouseStatusMonitor();
72 GetHouseStatus getHouseStatus();
74 RunProductDiscovery runProductDiscovery();
76 RunProductSearch runProductSearch();
78 RunProductIdentification runProductIdentification();
80 GetDeviceStatus getDeviceStatus();
82 GetFirmware getFirmware();
84 GetLANConfig getLANConfig();
86 GetWLANConfig getWLANConfig();
88 GetProducts getProducts();
91 GetProduct getProduct();
94 GetProductLimitation getProductLimitation();
97 SetProductLimitation setProductLimitation();
100 RunProductCommand runProductCommand();
102 GetScenes getScenes();
104 SetSceneVelocity setSceneVelocity();
109 RunReboot runReboot();
112 GetProduct getProductStatus();