/**
* 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.mios;
import java.util.List;
import java.util.Map.Entry;
/**
* openHAB Action Provider interface for MiOS Devices.
*
* Defines how to get properties from a MiOS-specific binding configuration.
*
* @author Mark Clark
* @since 1.7.0
*/
public interface MiosActionProvider {
/**
* Invoke the named MiOS Scene.
*
* Requests the named MiOS Scene, associated with the [Scene] Item be invoked. The invocation itself is
* asynchronous, and may fail. The return status of this call is whether we were successful in queuing the Scene
* request.
*
* @param itemName
* the name of of the openHAB Item to which the Scene invocation should be delivered.
* @return true if the Scene request was sent.
*/
public boolean invokeMiosScene(String itemName);
/**
* Invoke the named MiOS Action.
*
* Requests the named MiOS Action, associated with the [Device] Item be invoked. Callers can pass an Action to be
* invoked, in the form: <serviceName>/<actionName> OR; <serviceAlias>/<actionName>
*
* The invocation itself is asynchronous, and may fail. The return status of this call is whether we were successful
* in queuing the Action request.
*
* @param itemName
* the name of of the openHAB Item to which the Action invocation should be delivered.
* @param actionName
* the name of the Action to request upon the specified ItemName.
* @param params
* a list of String name/value pairs to be used as the Parameter list for the Action call
* @return true if the Action request was sent.
*/
public boolean invokeMiosAction(String itemName, String actionName, List<Entry<String, Object>> params);
}