/** * Copyright (c) 2010-2016 by the respective copyright holders. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package org.openhab.binding.homematic.internal.communicator.client.interfaces; import java.util.Map; import org.openhab.binding.homematic.internal.communicator.client.HomematicClientException; import org.openhab.binding.homematic.internal.communicator.client.ServerId; import org.openhab.binding.homematic.internal.model.HmInterface; import org.openhab.binding.homematic.internal.model.HmRssiInfo; /** * The interface with the methods for BIN-RPC communication. * * @author Gerhard Riegler * @since 1.6.0 */ public interface RpcClient { /** * Starts the client. */ public void start() throws HomematicClientException; /** * Stops the client. */ public void shutdown() throws HomematicClientException; /** * Set the value of a device specified by address. */ public void setDatapointValue(HmInterface hmInterface, String address, String datapointName, Object value) throws HomematicClientException; /** * Register a callback for the specified interface where the Homematic * server can send its events. */ public void init(HmInterface hmInterface) throws HomematicClientException; /** * Release a callback for the specified interface. */ public void release(HmInterface hmInterface) throws HomematicClientException; /** * Returns all metadata and values from the Homematic server. */ public Object[] getAllValues(HmInterface hmInterface) throws HomematicClientException; /** * Returns all metadata and values from the Homematic server. */ public Map<String, ?> getAllSystemVariables(HmInterface hmInterface) throws HomematicClientException; /** * Set the value of a system variable. */ public void setSystemVariable(HmInterface hmInterface, String name, Object value) throws HomematicClientException; /** * Executes a program/script on the Homematic server. */ public void executeProgram(HmInterface hmInterface, String programName) throws HomematicClientException; /** * Returns the id of the Homematic server. */ public ServerId getServerId(HmInterface hmInterface) throws HomematicClientException; /** * Returns the rssi info of RF devices. */ public Map<String, HmRssiInfo> getRssiInfo(HmInterface hmInterface) throws HomematicClientException; /** * Returns the description of a Homematic device. */ public Map<String, String> getDeviceDescription(HmInterface hmInterface, String address) throws HomematicClientException; }