private @Nullable AdorneHubController adorneHubController;
/**
- * Creates a AdorneDiscoveryService with disabled auto-discovery.
+ * Creates an AdorneDiscoveryService with disabled auto-discovery.
*/
public AdorneDiscoveryService() {
// Passing false as last argument to super constructor turns off background discovery
import org.openhab.core.library.unit.Units;
/**
- * Range class which holds a start and a end calendar object.
+ * Range class which holds a start and an end calendar object.
*
* @author Gerhard Riegler - Initial contribution
* @author Christoph Weitkamp - Introduced UoM
final boolean makeOn = ((OnOffType) command) == OnOffType.ON;
atlonaHandler.setIrOn(makeOn);
} else {
- logger.debug("Received a IRLOCK channel command with a non OnOffType: {}", command);
+ logger.debug("Received an IRLOCK channel command with a non OnOffType: {}", command);
}
break;
xsi:schemaLocation="https://openhab.org/schemas/binding/v1.0.0 https://openhab.org/schemas/binding-1.0.0.xsd">
<name>Autelis Pool Control Binding</name>
- <description>This is the binding for a Autelis pool controller.</description>
+ <description>This is the binding for an Autelis pool controller.</description>
</binding:binding>
# thing types
thing-type.bluetooth.am43.label = AM43 Blind Drive Motor
-thing-type.bluetooth.am43.description = A AM43 Blind Drive Motor
+thing-type.bluetooth.am43.description = An AM43 Blind Drive Motor
# thing types config
}
/**
- * Reads a int8 from the output stream
+ * Reads an int8 from the output stream
*
* @return value read from input
*/
/**
* Class to implement the BlueGiga command <b>indicateConfirm</b>.
* <p>
- * This command can be used to send a acknowledge a received indication from a remote device.
+ * This command can be used to send an acknowledge a received indication from a remote device.
* This function allows the application to manually confirm the indicated values instead of
* the smart stack Bluetooth automatically doing it. The benefit of this is extra reliability
* since the application can for example store the received value on the flash memory before
import org.slf4j.LoggerFactory;
/**
- * This is a abstract superclass for BluetoothAdapter implementations. This class takes care of inactive device cleanup
+ * This is an abstract superclass for BluetoothAdapter implementations. This class takes care of inactive device cleanup
* as well as handling background and active discovery logic.
*
* Subclasses will primarily be responsible for device discovery
/**
* Returns a Bosch SHC URL for the endpoint, using port 8444.
*
- * @param endpoint a endpoint, see https://apidocs.bosch-smarthome.com/local/index.html
+ * @param endpoint an endpoint, see https://apidocs.bosch-smarthome.com/local/index.html
* @return Bosch SHC URL for passed endpoint
*/
public String getBoschShcUrl(String endpoint) {
/**
* Returns a SmartHome URL for the endpoint - shortcut of {@link BoschSslUtil::getBoschShcUrl()}
*
- * @param endpoint a endpoint, see https://apidocs.bosch-smarthome.com/local/index.html
+ * @param endpoint an endpoint, see https://apidocs.bosch-smarthome.com/local/index.html
* @return SmartHome URL for passed endpoint
*/
public String getBoschSmartHomeUrl(String endpoint) {
}
/**
- * Initializes a API Request on this device
+ * Initializes an API Request on this device
*
* @param apiRequest the apiRequest thats informations should be collected
*/
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
- * Used to map thing types from the binding string to a ENUM value.
+ * Used to map thing types from the binding string to an ENUM value.
*
* @author Georgios Moutsos - Initial contribution
*/
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
- * Used to map thing types from the binding string to a ENUM value.
+ * Used to map thing types from the binding string to an ENUM value.
*
* @author Georgios Moutsos - Initial contribution
*/
### The Simplest case
-Define a InfluxDB2 database thing and a query with an interval execution.
+Define an InfluxDB2 database thing and a query with an interval execution.
That executes the query every 15 seconds and punts the result in `myItem`.
# Bridge Thing definition
# thing types
thing-type.dbquery.influxdb2.label = InfluxDB2 Bridge
-thing-type.dbquery.influxdb2.description = The InfluxDB 2.0 represents a connection to a InfluxDB 2.0 server
+thing-type.dbquery.influxdb2.description = The InfluxDB 2.0 represents a connection to an InfluxDB 2.0 server
thing-type.dbquery.query.label = Query Thing
thing-type.dbquery.query.description = Thing that represents a native query
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
<bridge-type id="influxdb2">
<label>InfluxDB2 Bridge</label>
- <description>The InfluxDB 2.0 represents a connection to a InfluxDB 2.0 server</description>
+ <description>The InfluxDB 2.0 represents a connection to an InfluxDB 2.0 server</description>
<config-description>
<parameter name="url" type="text" required="true">
public @Nullable Boolean carbonmonoxide;
/** airquality sensors provide a string value. */
public @Nullable String airquality;
- /** airquality sensors provide a integer value. */
+ /** airquality sensors provide an integer value. */
public @Nullable Integer airqualityppb;
/** Pressure sensors provide a hPa value. */
public @Nullable Integer pressure;
import org.openhab.binding.deutschebahn.internal.timetable.dto.TimetableStop;
/**
- * Filter that selects {@link TimetableStop}, if they have an departure or an arrival element (or both).
+ * Filter that selects {@link TimetableStop}, if they have a departure or an arrival element (or both).
*
* @author Sönke Küper - initial contribution.
*/
},
/**
- * Selects only stops with an departure.
+ * Selects only stops with a departure.
*/
DEPARTURES {
@Override
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
- * A token representing an closing bracket.
+ * A token representing a closing bracket.
*
* @author Sönke Küper - Initial contribution.
*/
}
/**
- * State while parsing an disjunction.
+ * State while parsing a disjunction.
*/
private static final class OrState extends State {
}
/**
- * Sets the path to the SSL-Certificate. It can be a absolute or relative path.
+ * Sets the path to the SSL-Certificate. It can be an absolute or relative path.
*
* @param trustCertPath path to a SSL-Certificate
*/
}
/**
- * Adds a event and subscribed it, if it is not subscribed already.
+ * Adds an event and subscribes it, if it is not subscribed already.
*
* @param subscribeEvent event name to subscribe
*/
}
/**
- * Adds the events of the {@link List} and subscribe them, if a event is not subscribed already.
+ * Adds the events of the {@link List} and subscribe them, if an event is not subscribed already.
*
* @param subscribeEvents event name to subscribe
*/
/**
* The same constructor like {@link #ConnectionManagerImpl(Config, ConnectionListener)}, but through genApToken it
- * can be set, if a application token will be automatically generated.
+ * can be set, if an application token will be automatically generated.
*
* @param config (must not be null)
* @param connectionListener (can be null)
/**
* Creates a new {@link ConnectionManagerImpl} with the given parameters, which are needed to create the
* {@link HttpTransport} and to login into the digitalSTROM server. If the application token is null and the
- * username and password are valid, a application token will be automatically generated or a existing application
+ * username and password are valid, an application token will be automatically generated or an existing application
* token for the at {@link Config#getApplicationName()} set application name will be set.
*
* @param hostAddress (must not be null)
/**
* The same constructor like {@link #ConnectionManagerImpl(String, String, String)}, but through genApToken it
- * can be set, if a application token will be automatically generated.
+ * can be set, if an application token will be automatically generated.
*
* @param hostAddress (must not be null)
* @param username (must not be null)
/**
* The same constructor like {@link #ConnectionManagerImpl(String, String, String, String)}, but through genApToken
- * it can be set, if a application token will be automatically generated.
+ * it can be set, if an application token will be automatically generated.
*
* @param hostAddress (must not be null)
* @param username (can be null, if application token is set)
applicationToken = this.digitalSTROMClient
.requestAppplicationToken(config.getApplicationName());
logger.debug(
- "no application-token for application {} found, generate a application-token {}",
+ "no application-token for application {} found, generate an application-token {}",
config.getApplicationName(), applicationToken);
if (applicationToken != null && !applicationToken.isBlank()) {
// enable applicationToken
* The {@link AbstractSensorJobExecutor} provides the working process to execute implementations of {@link SensorJob}'s
* in the time interval set at the {@link Config}.
* <p>
- * The following methods can be overridden by subclasses to implement a execution priority:
+ * The following methods can be overridden by subclasses to implement an execution priority:
* </p>
* <ul>
* <li>{@link #addLowPriorityJob(SensorJob)}</li>
} else {
builder.buildRequestString();
throw new IllegalArgumentException(
- "The first field of the object array have to be a String and the second have to be a Integer.");
+ "The first field of the object array have to be a String and the second have to be an Integer.");
}
}
String response = transport.execute(builder.buildRequestString());
import com.google.gson.JsonObject;
/**
- * The {@link AbstractGeneralDeviceInformations} is a abstract implementation of {@link GeneralDeviceInformations} and
+ * The {@link AbstractGeneralDeviceInformations} is an abstract implementation of {@link GeneralDeviceInformations} and
* can be implement by subclasses which contains the same device informations like dSID and/or mechanismen like the
* {@link DeviceStatusListener}.
*
List<Short> getSavedScenes();
/**
- * Initializes a internal device update as call scene for the given scene number.
+ * Initializes an internal device update as call scene for the given scene number.
*
* @param sceneNumber to call
*/
void internalCallScene(Short sceneNumber);
/**
- * Initializes a internal device update as undo scene.
+ * Initializes an internal device update as undo scene.
*/
void internalUndoScene();
}
/**
- * Will be called by a device, if an undo call of an other scene activated this scene.
+ * Will be called by a device, if an undo call of another scene activated this scene.
*/
public void activateSceneByDevice() {
logger.debug("activate scene by device: {}", this.getSceneName());
}
/**
- * Will be called by a device, if an call of an other scene deactivated this scene.
+ * Will be called by a device, if a call of another scene deactivated this scene.
*/
public void deactivateSceneByDevice() {
logger.debug("deactivate scene by device: {}", this.getSceneName());
binary_input_brightness_desc = Will be activated, if the brightness is higher than a setted value.
binary_input_presence_in_darkness_label = Presence in darkness sensor
-binary_input_presence_in_darkness_desc = Will be activated, if a presence is detected. Sensor has a integrated twilight sensor.
+binary_input_presence_in_darkness_desc = Will be activated, if a presence is detected. Sensor has an integrated twilight sensor.
binary_input_twilight_label = Twilight sensor
binary_input_twilight_desc = Will be activated by twilight.
binary_input_motion_desc = Will be activated, if a motion is detected.
binary_input_motion_in_darkness_label = Motion in darkness sensor
-binary_input_motion_in_darkness_desc = Will be activated, if a motion is detected. Sensor has a integrated twilight sensor.
+binary_input_motion_in_darkness_desc = Will be activated, if a motion is detected. Sensor has an integrated twilight sensor.
binary_input_smoke_label = Smoke sensor
binary_input_smoke_desc = Will be activated, if smoke is detected.
import org.slf4j.LoggerFactory;
/**
- * The {@link ArtnetPacket} is a ArtNet packet template
+ * The {@link ArtnetPacket} is an ArtNet packet template
*
* @author Jan N. Klug - Initial contribution
*/
/**
* get DMX channel
*
- * @return a integer for the DMX channel
+ * @return an integer for the DMX channel
*/
public int getChannelId() {
return dmxChannelId;
/**
* get DMX universe
*
- * @return a integer for the DMX universe
+ * @return an integer for the DMX universe
*/
public int getUniverseId() {
return universeId;
/**
* set the DMX universe id
*
- * @param universeId a integer for the new universe
+ * @param universeId an integer for the new universe
*/
public void setUniverseId(int universeId) {
this.universeId = universeId;
}
/**
- * Returns a string representation of a APIMessage.
+ * Returns a string representation of an APIMessage.
*
* @return APIMessage string
*/
import java.util.Map;
/**
- * Used to map thing types from the binding string to a ENUM value.
+ * Used to map thing types from the binding string to an ENUM value.
*
* @author Russell Stephens - Initial Contribution
*/
import org.slf4j.LoggerFactory;
/**
- * This implements the discovery service for new DSMR Meters on a active DSMR bridge.
+ * This implements the discovery service for new DSMR Meters on an active DSMR bridge.
*
* @author M. Volaart - Initial contribution
* @author Hilbrand Bouwkamp - Refactored code to detect meters during actual discovery phase.
import org.openhab.core.thing.ThingStatus;
/**
- * The {@link EkeyPacketListener} is in interface for a Ekey packet received consumer
+ * The {@link EkeyPacketListener} is in interface for an Ekey packet received consumer
*
* @author Hans-Jörg Merk - Initial contribution
*/
The follow things are supported:
* `envoy` The Envoy gateway thing, which is a bridge thing.
-* `inverter` A Enphase micro inverter connected to a solar panel.
-* `relay` A Enphase relay.
+* `inverter` An Enphase micro inverter connected to a solar panel.
+* `relay` An Enphase relay.
Not all Envoy gateways support all channels and things.
Therefore some data on inverters and the relay may not be available.
The `envoy` thing has can show both production as well as consumption data.
There are channel groups for `production` and `consumption` data.
The `consumption` data is only available if the gateway reports this.
-A example of a production channel name is: `production#wattsNow`.
+An example of a production channel name is: `production#wattsNow`.
| channel | type | description |
|--------------------|---------------|---------------------------------------|
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
- * Exception thrown when a api call is made while the hostname / ip address is not set.
+ * Exception thrown when an api call is made while the hostname / ip address is not set.
*
* @author Hilbrand Bouwkamp - Initial contribution
*/
This is optional, it is recommended to let the binding discover and add Etherrain controllers.
-To manually configure a Etherrain controller you may specify it's host name or ip ("host").
+To manually configure an Etherrain controller you may specify its host name or ip ("host").
You can also optionally specify the unit's password ("pw"), port it is communicating on ("port") or refresh rate ("refresh")
```
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
- * The {@link EtherRainStatusResponse} is a encapsulation of responses from the EtherRain
+ * The {@link EtherRainStatusResponse} is an encapsulation of responses from the EtherRain
*
* @author Joe Inkenbrandt - Initial contribution
*/
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
- * The {@link EtherRainUdpResponse} is a encapsulation of the UDP broadcast response from the EtherRain
+ * The {@link EtherRainUdpResponse} is an encapsulation of the UDP broadcast response from the EtherRain
*
* @author Joe Inkenbrandt - Initial contribution
*/
import org.eclipse.jetty.client.HttpClient;
/**
- * Class representing a internet radio based on the frontier silicon chipset. Tested with "hama IR110" and Medion
+ * Class representing an internet radio based on the frontier silicon chipset. Tested with "hama IR110" and Medion
* MD87180" internet radios.
*
* @author Rainer Ostendorf
public Ipx800v3Handler(Thing thing) {
super(thing);
- logger.debug("Create a IPX800 Handler for thing '{}'", getThing().getUID());
+ logger.debug("Create an IPX800 Handler for thing '{}'", getThing().getUID());
}
@Override
### Generator
-A Generator thing represents a individual generator linked to an account bridge. Multiple generators are supported.
+A Generator thing represents an individual generator linked to an account bridge. Multiple generators are supported.
ThingTypeUID: `generator`
continue;
}
- // Decrypt message - a a GreeException is thrown when something went wrong
+ // Decrypt message - a GreeException is thrown when something went wrong
String decryptedMsg = scanResponseGson.decryptedPack = GreeCryptoUtil
.decryptPack(GreeCryptoUtil.getAESGeneralKeyByteArray(), scanResponseGson.pack);
logger.debug("Response received from address {}: {}", remoteAddress.getHostAddress(), decryptedMsg);
}
/**
- * Converts the object to a integer.
+ * Converts the object to an integer.
*/
protected Integer toInteger(Object object) {
if (object == null || object instanceof Integer) {
}
/**
- * Returns true, if the display is a EP display.
+ * Returns true, if the display is an EP display.
*/
private boolean isEpDisplay(HmDevice device) {
return DEVICE_TYPE_EP_STATUS_DISPLAY.equals(device.getType());
import org.slf4j.LoggerFactory;
/**
- * A virtual Number datapoint which adds a automatic ON_TIME datapoint on supported device. This datapoint sets the
+ * A virtual Number datapoint which adds an automatic ON_TIME datapoint on supported device. This datapoint sets the
* ON_TIME datapoint every time a STATE or LEVEL datapoint is set, so that the light turns off automatically by the
* device after the specified time.
*
}
/**
- * Returns true, if the datapoint is a action.
+ * Returns true, if the datapoint is an action.
*/
public boolean isActionType() {
return type == HmValueType.ACTION;
}
/**
- * Returns true, if the datapoint is a integer.
+ * Returns true, if the datapoint is an integer.
*/
public boolean isIntegerType() {
return type == HmValueType.INTEGER;
}
/**
- * Returns true, if the datapoint is a enum.
+ * Returns true, if the datapoint is an enum.
*/
public boolean isEnumType() {
return type == HmValueType.ENUM;
// ******** Tests ******** //
/**
- * When a exception is thrown during the request phase, the future completes unexceptionally
+ * When an exception is thrown during the request phase, the future completes unexceptionally
* with no value.
*/
@Test
}
/**
- * When a exception is thrown during the response phase, the future completes unexceptionally
+ * When an exception is thrown during the response phase, the future completes unexceptionally
* with no value.
*/
@Test
/**
* When the remote side response with a HTTP/204 and no payload, the future completes normally
- * and contains a empty Content.
+ * and contains an empty Content.
*/
@Test
public void nocontent() {
/**
* When the remote side responds with anything we don't expect (in this case a HTTP/500), the
- * future completes exceptionally with a IllegalStateException.
+ * future completes exceptionally with an IllegalStateException.
*/
@Test
public void unexpectedStatus() {
* Checks if the Bridge is a reachable Hue Bridge with a valid id.
*
* @param bridge the {@link BridgeJsonParameters}s
- * @return true if Hue Bridge is a reachable Hue Bridge with a id containing
+ * @return true if Hue Bridge is a reachable Hue Bridge with an id containing
* BRIDGE_INDICATOR longer then 10
*/
private boolean isReachableAndValidHueBridge(BridgeJsonParameters bridge) {
### Local Thing
-The Local Thing type uses an undocumented API that allows direct HTTP access to a irrigation controller on the user's network.
+The Local Thing type uses an undocumented API that allows direct HTTP access to an irrigation controller on the user's network.
This provides a subset of features compared to the Cloud Thing type limited to basic zone control.
Controlling zones through the local API will not be reported back to the cloud service or the Hydrawise mobile/web applications, and reporting functionality will not reflect the locally controlled state.
import com.google.gson.annotations.SerializedName;
/**
- * The {@link HyperionCommand} is a abstract class for sending commands
+ * The {@link HyperionCommand} is an abstract class for sending commands
* to the Hyperion server.
*
* @author Daniel Walters - Initial contribution
import org.openhab.binding.hyperion.internal.protocol.HyperionCommand;
/**
- * The {@link AdjustmentCommand} is a POJO for sending a Adjustment command
+ * The {@link AdjustmentCommand} is a POJO for sending an Adjustment command
* to the Hyperion.ng server.
*
* @author Daniel Walters - Initial contribution
/**
* IAqualink HTTP Client
*
- * The {@link IAqualinkClient} provides basic HTTP commands to control and monitor a iAquaLink
+ * The {@link IAqualinkClient} provides basic HTTP commands to control and monitor an iAquaLink
* based system.
*
* GSON is used to provide custom deserialization on the JSON results. These results
}
/**
- * Sends a Auxiliary dimmer command
+ * Sends an Auxiliary dimmer command
*
* @param serialNumber
* @param sessionId
package org.openhab.binding.iaqualink.internal.api.dto;
/**
- * Device refers to a iAqualink Pool Controller.
+ * Device refers to an iAqualink Pool Controller.
*
* @author Dan Cunningham - Initial contribution
*
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
- * Configuration properties for connecting to a iAqualink Account
+ * Configuration properties for connecting to an iAqualink Account
*
* @author Dan Cunningham - Initial contribution
*
xsi:schemaLocation="https://openhab.org/schemas/binding/v1.0.0 https://openhab.org/schemas/binding-1.0.0.xsd">
<name>iAquaLink Binding</name>
- <description>This is the binding for a iAquaLink pool controller.</description>
+ <description>This is the binding for an iAquaLink pool controller.</description>
</binding:binding>
# binding
binding.iaqualink.name = iAquaLink Binding
-binding.iaqualink.description = This is the binding for a iAquaLink pool controller.
+binding.iaqualink.description = This is the binding for an iAquaLink pool controller.
# thing types
thing-type.iaqualink.controller.label = iAquaLink Pool Controller
-thing-type.iaqualink.controller.description = A iAquaLink pool control thing represents a iAquaLink pool controller for Jandy/Zodiac systems
+thing-type.iaqualink.controller.description = An iAquaLink pool control thing represents an iAquaLink pool controller for Jandy/Zodiac systems
thing-type.iaqualink.controller.channel.air_temp.label = Air Temperature
thing-type.iaqualink.controller.channel.air_temp.description = The current outside temperature
thing-type.iaqualink.controller.channel.cover_pool.label = Cover Pool
thing-type.config.iaqualink.controller.apiKey.label = API Key
thing-type.config.iaqualink.controller.apiKey.description = Optionally specify the API key used for access. This is only useful for debugging or if the API key is changed by the vendor
thing-type.config.iaqualink.controller.password.label = Password
-thing-type.config.iaqualink.controller.password.description = The password to use when connecting to a iAqualink Account
+thing-type.config.iaqualink.controller.password.description = The password to use when connecting to an iAqualink Account
thing-type.config.iaqualink.controller.refresh.label = Refresh Interval
thing-type.config.iaqualink.controller.refresh.description = Specifies the refresh interval in seconds
thing-type.config.iaqualink.controller.serialId.label = Serial Number
thing-type.config.iaqualink.controller.serialId.description = Optionally specify the serial number of the controller which can be found on the iAquaLink Owner's Center. This is only useful if you have more then one controller (pool) associated with your account. Leave blank to have the first controller used.
thing-type.config.iaqualink.controller.userName.label = User Name
-thing-type.config.iaqualink.controller.userName.description = The user name to use when connecting to a iAqualink Account
+thing-type.config.iaqualink.controller.userName.description = The user name to use when connecting to an iAqualink Account
# channel types
channel-type.iaqualink.equipment-heater.state.option.heating = Heating
channel-type.iaqualink.equipment-heater.state.option.enabled = Enabled
channel-type.iaqualink.equipment-switch.label = Equipment Switch
-channel-type.iaqualink.equipment-switch.description = The current state of a equipment switch
+channel-type.iaqualink.equipment-switch.description = The current state of an equipment switch
channel-type.iaqualink.onetouch.label = OneTouch
channel-type.iaqualink.onetouch.description = OneTouch commands
channel-type.iaqualink.setpoint.label = Setpoint
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
<thing-type id="controller">
<label>iAquaLink Pool Controller</label>
- <description>A iAquaLink pool control thing represents a iAquaLink pool controller for Jandy/Zodiac systems
+ <description>An iAquaLink pool control thing represents an iAquaLink pool controller for Jandy/Zodiac systems
</description>
<channels>
<channel id="status" typeId="status"/>
<config-description>
<parameter name="userName" type="text" required="true">
<label>User Name</label>
- <description>The user name to use when connecting to a iAqualink Account</description>
+ <description>The user name to use when connecting to an iAqualink Account</description>
</parameter>
<parameter name="password" type="text" required="true">
<context>password</context>
<label>Password</label>
- <description>The password to use when connecting to a iAqualink Account</description>
+ <description>The password to use when connecting to an iAqualink Account</description>
</parameter>
<parameter name="refresh" type="integer" required="true">
<label>Refresh Interval</label>
<channel-type id="equipment-switch">
<item-type>Switch</item-type>
<label>Equipment Switch</label>
- <description>The current state of a equipment switch</description>
+ <description>The current state of an equipment switch</description>
</channel-type>
<channel-type id="equipment-heater">
import org.slf4j.LoggerFactory;
/**
- * A command handler translates an openHAB command into a insteon message
+ * A command handler translates an openHAB command into an insteon message
*
* @author Daniel Pfrommer - Initial contribution
* @author Bernd Pfrommer - openHAB 1 insteonplm binding
/**
* Publish the state. In the case of PercentType, if the value is
* 0, send an OnOffType.OFF and if the value is 100, send an OnOffType.ON.
- * That way an openHAB Switch will work properly with a Insteon dimmer,
+ * That way an openHAB Switch will work properly with an Insteon dimmer,
* as long it is used like a switch (On/Off). An openHAB DimmerItem will
* internally convert the ON back to 100% and OFF back to 0, so there is
* no need to send both 0/OFF and 100/ON.
/**
* This class manages the polling of all devices.
- * Between successive polls of a any device there is a quiet time of
+ * Between successive polls of any device there is a quiet time of
* at least MIN_MSEC_BETWEEN_POLLS. This avoids bunching up of poll messages
* and keeps the network bandwidth open for other messages.
*
import org.openhab.core.thing.ThingStatus;
/**
- * The {@link IntesisBoxChangeListener} is in interface for a IntesisBox changed consumer
+ * The {@link IntesisBoxChangeListener} is in interface for an IntesisBox changed consumer
*
* @author Hans-Jörg Merk - Initial contribution
*/
| `customAudioAlarmUrl`| Foscam only, for custom enable audio alarm use. More info found in Foscam's setup steps. |
| `mjpegUrl`| A HTTP URL for MJPEG format streams. If you enter 'ffmpeg' the stream can be generated from the RTSP URL. |
| `ffmpegInput`| Best if this stream is in H.264 format and can be RTSP or HTTP URLs. Leave this blank to use the auto detected RTSP address for ONVIF cameras. |
-| `ffmpegInputOptions` | Allows you to specify any options before the -i on the commands for FFmpeg. If you have a ESP32 camera that only has a mjpeg stream then make this equal `-f mjpeg`. |
+| `ffmpegInputOptions` | Allows you to specify any options before the -i on the commands for FFmpeg. If you have an ESP32 camera that only has a mjpeg stream then make this equal `-f mjpeg`. |
| `ffmpegLocation`| The full path including the filename for where you have installed FFmpeg. The default should work for most Linux installs but if using windows use this format: `c:\ffmpeg\bin\ffmpeg.exe` |
| `ffmpegOutput`| The full path to a unique folder (different for each camera) where FFmpeg has the ability to write files to ending with a slash. If you leave this blank, the binding will automatically use `$OPENHAB_USERDATA/ipcamera/UID`. See here for where this is located on your installation, <https://www.openhab.org/docs/installation/#getting-installation-info> |
| `hlsOutOptions`| This gives you direct access to specify your own FFmpeg options to be used. Default: `-strict -2 -f lavfi -i aevalsrc=0 -acodec aac -vcodec copy -hls_flags delete_segments -hls_time 2 -hls_list_size 4` |
# thing types
thing-type.ipp.printer.label = Printer
-thing-type.ipp.printer.description = A IPP Printer
+thing-type.ipp.printer.description = An IPP Printer
# thing types config
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
<thing-type id="printer">
<label>Printer</label>
- <description>A IPP Printer</description>
+ <description>An IPP Printer</description>
<channels>
<channel id="jobs" typeId="jobs"/>
public static final String BLASTER_CHANNEL_TYPE = "blaster";
public static final String RECEIVER_CHANNEL_TYPE = "receiver";
- // List of possible leds on a IRtrans transceiver
+ // List of possible leds on an IRtrans transceiver
public enum Led {
DEFAULT("D"),
INTERNAL("I"),
/**
* The {@link TransceiverStatusListener} is interface that is to be implemented
- * by all classes that wish to be informed of events happening to a infrared
+ * by all classes that wish to be informed of events happening to an infrared
* transceiver
*
* @author Karel Goderis - Initial contribution
import org.openhab.binding.jeelink.internal.Reading;
/**
- * Reading of a EC3000 sensor.
+ * Reading of an EC3000 sensor.
*
* @author Volker Bier - Initial contribution
*/
import org.openhab.binding.jeelink.internal.JeeLinkReadingConverter;
/**
- * Converter for converting a line read from a ec3kSerial sketch to a Ec3kReading.
+ * Converter for converting a line read from an ec3kSerial sketch to an Ec3kReading.
*
* @author Volker Bier - Initial contribution
*/
import org.openhab.core.thing.Thing;
/**
- * Sensor Defintion of a EC3000 Power Monitor.
+ * Sensor Defintion of an EC3000 Power Monitor.
*
* @author Volker Bier - Initial contribution
*/
import org.slf4j.LoggerFactory;
/**
- * Handler for a EC3000 sensor thing.
+ * Handler for an EC3000 sensor thing.
*
* @author Volker Bier - Initial contribution
*/
import org.slf4j.LoggerFactory;
/**
- * Handler for a EC3000 sensor thing.
+ * Handler for an EC3000 sensor thing.
*
* @author Volker Bier - Initial contribution
*/
thing-type.lacrosse.label = Lacrosse Temperature Sensor
thing-type.lacrosse.description = Thing for a Lacrosse Temperature Sensor connected to a JeeLink USB Receiver.
thing-type.ec3k.label = ec3k
-thing-type.ec3k.description = Thing for a EnergyCount 3000 Power Monitor connected to a JeeLink USB Receiver.
+thing-type.ec3k.description = Thing for an EnergyCount 3000 Power Monitor connected to a JeeLink USB Receiver.
thing-type.pca301.label = PCA301
thing-type.pca301.description = Thing for a PCA301 power monitoring wireless socket connected to a JeeLink USB Receiver.
thing-type.tx22.label = TX22 Sensor
The configuration required is to create a JuiceNet account thing and fill in the appropriate API token.
The API token can be found on the Account page at https://home.juice.net/Manage.
-A JuiceBox EV Charger requires a a unitID which can also be found in the device settings at the JuiceNet web page.
+A JuiceBox EV Charger requires a unitID which can also be found in the device settings at the JuiceNet web page.
## Channels
import org.slf4j.LoggerFactory;
/**
- * Class for communicating with the Kaleidescape component through a IP connection or a serial over IP connection
+ * Class for communicating with the Kaleidescape component through an IP connection or a serial over IP connection
*
* @author Laurent Garnier - Initial contribution
* @author Michael Lobstein - Adapted for the Kaleidescape binding
logger.info("state of: type systeminfo is not supported yet: {}", nodeRoot);
/* have to be completed */
break;
- case DATA_TYPE_ARRAY_DATA: /* Check whether the type is a arrayData */
+ case DATA_TYPE_ARRAY_DATA: /* Check whether the type is an arrayData */
logger.info("state of: type arrayData is not supported yet: {}", nodeRoot);
/* have to be completed */
break;
- case DATA_TYPE_E_MONITORING_LIST: /* Check whether the type is a eMonitoringList */
+ case DATA_TYPE_E_MONITORING_LIST: /* Check whether the type is an eMonitoringList */
logger.info("state of: type eMonitoringList is not supported yet: {}", nodeRoot);
/* have to be completed */
break;
/* A switchProgram as NumberItem is always virtual */
newObject = sendVirtualState(object, service, command, itemType);
} else if (DATA_TYPE_ERROR_LIST.equals(type) && object.getVirtual() == 1) {
- /* A errorList as NumberItem is always virtual */
+ /* An errorList as NumberItem is always virtual */
newObject = sendVirtualState(object, service, command, itemType);
} else {
logger.info("Not supported type for numberItem: {}", type);
}
/**
- * This function returns a error string with all parameters
+ * This function returns an error string with all parameters
*/
public @Nullable String getErrorString() {
String value = "";
/**
* The {@link IPBridgeThingHandler} is responsible for handling commands, which are
- * sent to one of the channels. It implements a KNX/IP Gateway, that either acts a a
+ * sent to one of the channels. It implements a KNX/IP Gateway, that either acts as a
* conduit for other {@link DeviceThingHandler}s, or for Channels that are
* directly defined on the bridge
*
/**
* The {@link IPBridgeThingHandler} is responsible for handling commands, which are
- * sent to one of the channels. It implements a KNX Serial/USB Gateway, that either acts a a
+ * sent to one of the channels. It implements a KNX Serial/USB Gateway, that either acts as a
* conduit for other {@link DeviceThingHandler}s, or for Channels that are
* directly defined on the bridge
*
/**
* Returns true, if the {@link CapabilityDTO} is of type EnergyConsumptionSensor.
*
- * @return true if it is a EnergyConsumptionSensor, otherwise false
+ * @return true if it is an EnergyConsumptionSensor, otherwise false
*/
public boolean isTypeEnergyConsumptionSensor() {
return TYPE_ENERGYCONSUMPTIONSENSOR.equals(getType());
}
/**
- * Converts a hex zone intensity back to a integer - handles shade zones as well
+ * Converts a hex zone intensity back to an integer - handles shade zones as well
*
* @param controlUnit the control unit
* @param zone the zone
import org.eclipse.jdt.annotation.Nullable;
/**
- * converts the hexadecimal string representation to a integer value between 0 - 100
+ * converts the hexadecimal string representation to an integer value between 0 - 100
*
* @author Kris Jespers - Initial contribution
*/
/**
* Returns the internal states of the heat pump
*
- * @return a array with all internal data of the heat pump
+ * @return an array with all internal data of the heat pump
*/
public Integer[] getValues() {
return heatpumpValues;
/**
* Returns the internal visibilities of the heat pump
*
- * @return a array with all internal visibilities of the heat pump
+ * @return an array with all internal visibilities of the heat pump
*/
public Integer[] getVisibilities() {
return heatpumpVisibilities;
/**
* Will be thrown when there is an attempt to put a new message line into the message processor,
- * but the processor is currently processing an other message type.
+ * but the processor is currently processing another message type.
*
* @author Christian Rockrohr <christian@rockrohr.de> - Initial contribution
*/
/**
* Will be thrown when there is an attempt to put a new message line into the message processor,
- * but the processor is currently processing an other message type.
+ * but the processor is currently processing another message type.
*
* @author Christian Rockrohr <christian@rockrohr.de> - Initial contribution
*/
It was tested with Raspberry Pi 2 and Raspberry Pi 3, but probably should work with other devices supported by [Pi4J](https://pi4j.com/) library.
On Raspberry Pi the user on which openHAB is running (default user name is "openhab") needs to be added to groups "i2c" and "gpio".
-As the MCP23017 has 3 address pins, you are restricted to 8 devices on a I2C bus.
+As the MCP23017 has 3 address pins, you are restricted to 8 devices on an I2C bus.
To use more devices you have to open further I2C busses.
Therefore you can use overlays to enable bit banging I2C busses on the Raspberry Pi connector, up to I2C6.
(https://github.com/raspberrypi/firmware/tree/master/boot/overlays)
package org.openhab.binding.melcloud.internal.config;
/**
- * Config class for a A.C. device.
+ * Config class for an A.C. device.
*
* @author Pauli Anttila - Initial Contribution
*
assertNotNull(resp);
assertEquals(new JsonPrimitive(3), resp);
- // test input as jsonString for a array
+ // test input as jsonString for an array
value = new JsonPrimitive("{\"test\": []}");
resp = Conversions.execute(transformation, value, deviceVariables);
assertNotNull(resp);
This bundle adds the following thing types to the Modbus binding.
Note, that the things will show up under the Modbus binding.
-| Thing | ThingTypeID | Description |
-| ------------------ | ----------- | -------------------------------------------------- |
-| Stiebel Eltron ISG | heatpump | A stiebel eltron heat pump connected through a ISG |
+| Thing | ThingTypeID | Description |
+| ------------------ | ----------- | --------------------------------------------------- |
+| Stiebel Eltron ISG | heatpump | A stiebel eltron heat pump connected through an ISG |
## Discovery
import org.slf4j.LoggerFactory;
/**
- * Class for communicating with the music player daemon through a IP connection
+ * Class for communicating with the music player daemon through an IP connection
*
* @author Stefan Röllin - Initial contribution
*/
import org.slf4j.LoggerFactory;
/**
- * Class for communicating with the music player daemon through a IP connection
+ * Class for communicating with the music player daemon through an IP connection
*
* @author Stefan Röllin - Initial contribution
*/
private final CompletableFuture<String> composeFuture;
/**
- * Creates an a instance.
+ * Creates an instance.
*
* @param connection A broker connection.
* @param topic The topic
channel-type.nest.SDMAmbientTemperature.label = Ambient Temperature
channel-type.nest.SDMAmbientTemperature.description = Lists the current ambient temperature from the thermostat
channel-type.nest.SDMCameraEventImage.label = Image
-channel-type.nest.SDMCameraEventImage.description = Static image based on a event
+channel-type.nest.SDMCameraEventImage.description = Static image based on an event
channel-type.nest.SDMCameraEventTimestamp.label = Timestamp
channel-type.nest.SDMCameraEventTimestamp.description = The time that the event occurred
channel-type.nest.SDMCurrentEcoMode.label = Current Eco Mode
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
- * The {@link LocationEx} is the common interface for dto holding a extra location data
+ * The {@link LocationEx} is the common interface for dto holding an extra location data
*
* @author Gaël L'hopital - Initial contribution
*
| `alarm_burglary` | Switch | Indicates if a burglary alarm is active. | `area` |
| `alarm_fire` | Switch | Indicates if a fire alarm is active. | `area` |
| `alarm_gas` | Switch | Indicates if a gas alarm is active. | `area` |
-| `alarm_auxiliary` | Switch | Indicates if a auxiliary alarm is active. | `area` |
+| `alarm_auxiliary` | Switch | Indicates if an auxiliary alarm is active. | `area` |
| `alarm_freeze` | Switch | Indicates if a freeze alarm is active. | `area` |
| `alarm_water` | Switch | Indicates if a water alarm is active. | `area` |
| `alarm_duress` | Switch | Indicates if a duress alarm is active. | `area` |
status.getAlarms(), status.getEntryTimer(), status.getExitTimer());
/*
- * According to the specification, if the 3rd bit is set on a area mode, then that mode is in a delayed state.
+ * According to the specification, if the 3rd bit is set on an area mode, then that mode is in a delayed state.
* Unfortunately, this is not the case, but we can fix that by looking to see if the exit timer
* is set and do this manually.
*/
import org.apache.commons.lang3.builder.ToStringBuilder;
/**
- * The {@link ApiConfiguration} defines the model for a API bridge configuration.
+ * The {@link ApiConfiguration} defines the model for an API bridge configuration.
*
* @author Shawn Wilsher - Initial contribution
*/
private static final Logger LOGGER = LoggerFactory.getLogger(EiscpProtocol.class);
/**
- * Wraps a command in a eISCP data message (data characters).
+ * Wraps a command in an eISCP data message (data characters).
*
* @param msg
* eISCP command.
/**
* * The {@link UpnpAudioSinkHandler} is a base class for ThingHandlers for devices which support UPnP playback. It
* implements the AudioSink interface.
- * This will allow to register the derived ThingHandler to be registered as a AudioSink in the framework.
+ * This will allow to register the derived ThingHandler to be registered as an AudioSink in the framework.
*
* @author Paul Frank - Initial contribution
*/
#### Discovery by Activation
BUS devices can also be discovered if they are activated while an Inbox Scan has been started: start a new Scan, wait 15-20 seconds and then _while the Scan is still active_, activate the physical device (for example dim the dimmer) to have it discovered by the binding.
-Setting the parameter `discoveryByActivation=true` for a BUS gateway Thing makes discovery by activation always working also when a Inbox Scan hasn't been started.
+Setting the parameter `discoveryByActivation=true` for a BUS gateway Thing makes discovery by activation always working also when an Inbox Scan hasn't been started.
If a device cannot be discovered automatically from Inbox it's always possible to add it manually, see [Configuring Devices](#configuring-devices).
| `shutter` | `bus_automation` | Rollershutter | To activate roller shutters (`UP`, `DOWN`, `STOP`, Percent - [see Shutter position](#shutter-position)) | R/W |
| `scenario` | `bus_scenario_control` | String | Trigger channel for Basic scenario events [see possible values](#scenario-channels) | R (TRIGGER) |
| `button#X` | `bus_cen_scenario_control`, `bus_cenplus_scenario_control` | String | Trigger channel for CEN/CEN+ scenario events [see possible values](#scenario-channels) | R (TRIGGER) |
-| `sensor` | `bus_dry_contact_ir` | Switch | Indicates if a Dry Contact Interface is `ON`/`OFF`, or if a IR Sensor is detecting movement (`ON`), or not (`OFF`) | R |
+| `sensor` | `bus_dry_contact_ir` | Switch | Indicates if a Dry Contact Interface is `ON`/`OFF`, or if an IR Sensor is detecting movement (`ON`), or not (`OFF`) | R |
| `power` | `bus_energy_meter` | Number:Power | The current active power usage from Energy Meter | R |
| `aux` | `bus_aux` | String | Possible commands: `ON`, `OFF`, `TOGGLE`, `STOP`, `UP`, `DOWN`, `ENABLED`, `DISABLED`, `RESET_GEN`, `RESET_BI`, `RESET_TRI`. Only `ON` and `OFF` are supported for now | R/W |
import org.slf4j.LoggerFactory;
/**
- * The {@link OpenWebNetEnergyHandler} is responsible for handling commands/messages for a Energy Management OpenWebNet
+ * The {@link OpenWebNetEnergyHandler} is responsible for handling commands/messages for an Energy Management OpenWebNet
* device. It extends the abstract {@link OpenWebNetThingHandler}.
*
* @author Massimo Valla - Initial contribution
}
/**
- * Updates energy power state based on a EnergyManagement message received from the OWN network
+ * Updates energy power state based on an EnergyManagement message received from the OWN network
*
* @param msg the EnergyManagement message received
* @throws FrameException
thing-type.openwebnet.bus_energy_meter.label = Energy Meter
thing-type.openwebnet.bus_energy_meter.description = An OpenWebNet BUS/SCS Energy Meter. BTicino models: F52x
thing-type.openwebnet.bus_gateway.label = BUS Gateway
-thing-type.openwebnet.bus_gateway.description = This thing allows to connect to a IP BUS/SCS gateway that supports the OpenWebNet protocol (models: F454, MyHOMEServer1, F455, MH200N, F453, etc.)
+thing-type.openwebnet.bus_gateway.description = This thing allows to connect to an IP BUS/SCS gateway that supports the OpenWebNet protocol (models: F454, MyHOMEServer1, F455, MH200N, F453, etc.)
thing-type.openwebnet.bus_on_off_switch.label = Switch
thing-type.openwebnet.bus_on_off_switch.description = An OpenWebNet BUS/SCS switch for the control of 1 light/load. BTicino models: xxx/yyyy/etc.
thing-type.openwebnet.bus_scenario_control.label = Scenario Control
<!-- OpenWebNet BUS gateway -->
<bridge-type id="bus_gateway">
<label>BUS Gateway</label>
- <description>This thing allows to connect to a IP BUS/SCS gateway that supports the OpenWebNet protocol (models: F454,
- MyHOMEServer1, F455, MH200N, F453, etc.)</description>
+ <description>This thing allows to connect to an IP BUS/SCS gateway that supports the OpenWebNet protocol (models:
+ F454, MyHOMEServer1, F455, MH200N, F453, etc.)</description>
<properties>
<property name="vendor">BTicino</property>
}
/**
- * Return a IpControlResponse object based on the given response data.
+ * Return an IpControlResponse object based on the given response data.
*
* @param responseData
* @return
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
- * The {@link Annotation} class is the representing java model for the json result for a annotation from the pixometer
+ * The {@link Annotation} class is the representing java model for the json result for an annotation from the pixometer
* api
*
* @author Jerome Luckenbach - Initial Contribution
}
/**
- * Builds a artwork request string for the specified TitleId, also takes into account if the language should be from
- * the specified locale or just "en".
+ * Builds an artwork request string for the specified TitleId, also takes into account if the language should be
+ * from the specified locale or just "en".
*
* @param locale The country and language to use for the store look up.
* @param titleId The Title ID of the Application/game.
* Tries to start an application on the PS4.
*
* @param applicationId The ID of the application.
- * @return A appStart-packet
+ * @return An appStart-packet
*/
static ByteBuffer makeApplicationPacket(String applicationId) {
ByteBuffer packet = newPacketForEncryption(8 + 16, PS4Command.APP_START_REQ);
}
/**
- * Send a ENROLL message
+ * Send an ENROLL message
*
* @return true if the message was sent or the sending is delayed; false in other cases
*/
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
- * Used to map received messages from the Visonic alarm panel to a ENUM value
+ * Used to map received messages from the Visonic alarm panel to an ENUM value
*
* @author Laurent Garnier - Initial contribution
*/
import org.eclipse.jdt.annotation.Nullable;
/**
- * Used to map messages to be sent to the Visonic alarm panel to a ENUM value
+ * Used to map messages to be sent to the Visonic alarm panel to an ENUM value
*
* @author Laurent Garnier - Initial contribution
*/
channel-type.qolsysiq.alarmState.command.option.FIRE = Fire
channel-type.qolsysiq.alarmState.command.option.POLICE = Police
channel-type.qolsysiq.armState.label = Partition Arm State
-channel-type.qolsysiq.armState.description = Reports the current partition arm state or sends a arm or disarm command to the system. For security codes, append the 6 digit code to the command separated by a colon (e.g. 'DISARM:123456')
+channel-type.qolsysiq.armState.description = Reports the current partition arm state or sends an arm or disarm command to the system. For security codes, append the 6 digit code to the command separated by a colon (e.g. 'DISARM:123456')
channel-type.qolsysiq.armState.state.option.ALARM = In Alarm
channel-type.qolsysiq.armState.state.option.ARM_AWAY = Armed Away
channel-type.qolsysiq.armState.state.option.ARM_STAY = Armed Stay
<channel-type id="armState">
<item-type>String</item-type>
<label>Partition Arm State</label>
- <description>Reports the current partition arm state or sends a arm or disarm command to the system. For security
+ <description>Reports the current partition arm state or sends an arm or disarm command to the system. For security
codes, append the 6 digit code to the command separated by a colon (e.g. 'DISARM:123456')</description>
<category>Alarm</category>
<state>
import de.resol.vbus.deviceemulators.EmDeviceEmulator;
/**
- * The {@link ResolEmuEMThingHandler} is responsible for emulating a EM device
+ * The {@link ResolEmuEMThingHandler} is responsible for emulating an EM device
*
* @author Raphael Mack - Initial contribution
*/
thing-type.rfxcom.datetime.label = RFXCOM Date/time Sensor
thing-type.rfxcom.datetime.description = A DateTime device.
thing-type.rfxcom.energy.label = RFXCOM Energy Sensor
-thing-type.rfxcom.energy.description = A Energy device.
+thing-type.rfxcom.energy.description = An Energy device.
thing-type.rfxcom.fan.label = RFXCOM Fan Device
thing-type.rfxcom.fan.description = A generic fan device.
thing-type.rfxcom.fan_falmec.label = RFXCOM Fan Device - Falmec
</supported-bridge-type-refs>
<label>RFXCOM Energy Sensor</label>
- <description>A Energy device.</description>
+ <description>An Energy device.</description>
<channels>
<channel id="instantPower" typeId="instantpower"/>
import org.slf4j.LoggerFactory;
/**
- * Class for communicating with the Rotel device through a IP connection or a serial over IP connection
+ * Class for communicating with the Rotel device through an IP connection or a serial over IP connection
*
* @author Laurent Garnier - Initial contribution
*/
/**
* The {@link Atd100Handler} is responsible for handling commands, which are
- * sent to one of the channels of a ATD-100 device.
+ * sent to one of the channels of an ATD-100 device.
*
* @author Krzysztof Goworek - Initial contribution
*/
|Group |Channel |Type |read-only|Description |
|----------|-------------|---------|---------|-----------------------------------------------------------------------|
-|control |key |String |r/w |Send a IR key to the sense. There a 3 different types supported |
+|control |key |String |r/w |Send an IR key to the sense. There a 3 different types supported |
| | | | |Stored key: send the key code defined by the App , e.g. 123_1_up |
| | | | |Pronto hex: send a Pronto Code in hex format, e.g. 0000 006C 0022 ... |
| | | | |Pronto base64: in base64 format, will be send 1:1 to the Sense |
- get status updates from roller operations by observing channel 'roller#state' and 'roller#stopReason', those report an updated status once the operation is completed
- select a position by sending a number value of 100..0 to channel 'roller#rollerpos'
- or use the defined favorites by sending favorite id to channel 'roller#rollerFav'
-- you might set a auto-timer, e.g. once the roller is opened close it again after xx minutes by sending a value to the 'roller#autoOn' or 'roller#autoOff' channels
+- you might set an auto-timer, e.g. once the roller is opened close it again after xx minutes by sending a value to the 'roller#autoOn' or 'roller#autoOff' channels
- you could also get the position of the roller from 'roller#control' (by linking a Number item) or the last status from 'roller#state'.
Please note that the device only provides updates only after the roller stops, not during movement so it's not possible to get position updates while the roller is moving.
- of course you could use time-triggered rules, trigger the shutter depending on sunrise/sunset within openHAB, but also directly on the device
public boolean isLight = false; // true if it is a Shelly Bulb/RGBW2
public boolean isBulb = false; // true only if it is a Bulb
public boolean isDuo = false; // true only if it is a Duo
- public boolean isRGBW2 = false; // true only if it a a RGBW2
+ public boolean isRGBW2 = false; // true only if it a RGBW2
public boolean inColor = false; // true if bulb/rgbw2 is in color mode
public boolean isSensor = false; // true for HT & Smoke
}
/**
- * Sends a IR key code to the Shelly Sense.
+ * Sends an IR key code to the Shelly Sense.
*
* @param keyCode A keyCoud could be a symbolic name (as defined in the key map on the device) or a PRONTO Code in
* plain or hex64 format
import java.io.IOException;
/**
- * Signals that a I/O exception with the SerialPort occurred.
+ * Signals that an I/O exception with the SerialPort occurred.
*
* @see SerialPort
*/
case "Vector3":
// This is a weird result from Smartthings. If the messages is from a "state" request the result will
// look like: "value":{"z":22,"y":-36,"x":-987}
- // But if the result is from sensor change via a subscription to a a threeAxis device the results will
+ // But if the result is from sensor change via a subscription to a threeAxis device the results will
// be a String of the format "value":"-873,-70,484"
// which GSON returns as a LinkedTreeMap
if (deviceValue instanceof String) {
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
- * The {@link SomfyTahomaActionGroup} holds information about a action
+ * The {@link SomfyTahomaActionGroup} holds information about an action
* group and current actions.
*
* @author Ondrej Pecta - Initial contribution
}
/**
- * This will attempt to match the station string with a entry in the
+ * This will attempt to match the station string with an entry in the
* favorites list, this supports both single entries and playlists
*
* @param favorite to match
But due to OH's design there is no default restore of previous values out of the box.
So after OH startup the _output thing channels_ are either initialized with it's configured default value or flagged as 'unknown' until the first update on the channel happens.
You could either use some 'illegal' value as initial value and use _CoE Value Validation_ on the TA side to detect invalid values.
-An other option would be to use only every 4th analog and 16th digital channel if you only need a few channels.
+Another option would be to use only every 4th analog and 16th digital channel if you only need a few channels.
Additionally you could use [OH's persistence service](https://www.openhab.org/docs/configuration/persistence.html#restoring-item-states-on-restart) and it's option to [restore the item states](https://www.openhab.org/docs/configuration/persistence.html#restoring-item-states-on-restart) during OH startup.
As this only restores the item states you have to write a rule issuing _postUpdates_ on the items with the item's current value so the channel for the binding is updated.
} catch (RuntimeException e) {
// we catch runtime exceptions here to prevent the receiving thread to stop accidentally if
- // something like a IllegalStateException or NumberFormatExceptions are thrown. This indicates a bug
- // or a situation / setup I'm not thinking of ;)
+ // something like an IllegalStateException or NumberFormatExceptions are thrown. This indicates a
+ // bug or a situation / setup I'm not thinking of ;)
if (isInterrupted()) {
return;
}
# channel types
channel-type.tacmi.coe-analog-in.label = Analog Input Channel (C.M.I. -> OH)
-channel-type.tacmi.coe-analog-in.description = A Analog Channel received from the C.M.I.
+channel-type.tacmi.coe-analog-in.description = An Analog Channel received from the C.M.I.
channel-type.tacmi.coe-analog-out.label = Analog Output Channel (OH -> C.M.I.)
-channel-type.tacmi.coe-analog-out.description = A Analog Channel sent to the C.M.I.
+channel-type.tacmi.coe-analog-out.description = An Analog Channel sent to the C.M.I.
channel-type.tacmi.coe-digital-in.label = Digital Input (C.M.I. -> OH)
channel-type.tacmi.coe-digital-in.description = A digital channel sent from C.M.I. to openHAB
channel-type.tacmi.coe-digital-out.label = Digital Output (OH -> C.M.I.)
<channel-type id="coe-analog-in">
<item-type>Number</item-type>
<label>Analog Input Channel (C.M.I. -> OH)</label>
- <description>A Analog Channel received from the C.M.I.</description>
+ <description>An Analog Channel received from the C.M.I.</description>
<state readOnly="true"/>
<config-description>
<parameter name="output" type="integer" min="1" max="32" required="true">
* </pre>
*
* NOTE: the gateway software is extremely sensitive to this exact JSON structure.
- * Any modifications (like omitting empty params) will lead to an gateway error.
+ * Any modifications (like omitting empty params) will lead to a gateway error.
*/
private static class Request {
* </pre>
*
* NOTE: the gateway software is extremely sensitive to this exact JSON structure.
- * Any modifications (like omitting empty params) will lead to an gateway error.
+ * Any modifications (like omitting empty params) will lead to a gateway error.
*/
private static class Request {
* </pre>
*
* NOTE: the gateway software is extremely sensitive to this exact JSON structure.
- * Any modifications (like omitting empty params) will lead to an gateway error.
+ * Any modifications (like omitting empty params) will lead to a gateway error.
*/
private static class Request {
String sceneName = VeluxBindingConstants.UNKNOWN;
/**
- * {@link #serial} of type {@link String}, identifying a io-homecontrol device by its serial number (i.e.
+ * {@link #serial} of type {@link String}, identifying an io-homecontrol device by its serial number (i.e.
* 43:12:14:5A:12:1C:05:5F).
* <P>
* <B>Configuration for the channels actuator, rollershutter and window:</B>
* </P>
* <UL>
- * <LI>{@link #serial} for identification of a io-homecontrol device,</LI>
- * <LI>{@link #name} for alternate identification of a io-homecontrol device,</LI>
+ * <LI>{@link #serial} for identification of an io-homecontrol device,</LI>
+ * <LI>{@link #name} for alternate identification of an io-homecontrol device,</LI>
* <LI>{@link #inverted} for modified value behavior.</LI>
* <LI>{@link #velocity} for modified action speed.</LI>
* </UL>
*/
public String serial = VeluxProductSerialNo.UNKNOWN;
/**
- * {@link #name} of type {@link String}, identifying a io-homecontrol device by its registration name especially
+ * {@link #name} of type {@link String}, identifying an io-homecontrol device by its registration name especially
* for <B>somfy</B> as they do not provide a valid serial number.
* <P>
* Part of the {@link #serial Configuration for the channels actuator, rollershutter and window}.
private String description;
private VeluxProductType typeClass;
- // Reverse-lookup map for getting a ActuatorType from an TypeId
+ // Reverse-lookup map for getting an ActuatorType from an TypeId
private static final Map<Integer, ActuatorType> LOOKUPTYPEID2ENUM = Stream.of(ActuatorType.values())
.collect(Collectors.toMap(ActuatorType::getNodeType, Function.identity()));
This binding supports the follow thing types:
-| Thing | Thing Type | Thing Type UID | Discovery | Description |
-|----------------|------------|----------------|-----------|----------------------------------------------------------------------|
-| Bridge | Bridge | bridge | Manual | A single connection to the VeSync API |
-| Air Purifier | Thing | airPurifier | Automatic | A Air Purifier supporting V2 e.g. Core200S/Core300S or Core400S unit |
-| Air Humidifier | Thing | airHumidifier | Automatic | A Air Humidifier supporting V2 e.g. Classic300S or 600s |
+| Thing | Thing Type | Thing Type UID | Discovery | Description |
+|----------------|------------|----------------|-----------|-----------------------------------------------------------------------|
+| Bridge | Bridge | bridge | Manual | A single connection to the VeSync API |
+| Air Purifier | Thing | airPurifier | Automatic | An Air Purifier supporting V2 e.g. Core200S/Core300S or Core400S unit |
+| Air Humidifier | Thing | airHumidifier | Automatic | An Air Humidifier supporting V2 e.g. Classic300S or 600s |
/**
* The {@link VeSyncV2BypassHumidifierStatus} is a Java class used as a DTO to hold the Vesync's API's common response
- * data, in regards to a Air Humidifier device.
+ * data, in regards to an Air Humidifier device.
*
* @author David Goodyear - Initial contribution
*/
/**
* The {@link VeSyncV2BypassPurifierStatus} is a Java class used as a DTO to hold the Vesync's API's common response
* data,
- * in regards to a Air Purifier device.
+ * in regards to an Air Purifier device.
*
* @author David Goodyear - Initial contribution
*/
/**
* The {@link VeSyncV1AirPurifierDeviceDetailsResponse} is a Java class used as a DTO to hold the Vesync's V1 API's
* common response
- * data, in regards to a Air Purifier device.
+ * data, in regards to an Air Purifier device.
*
* @author David Goodyear - Initial contribution
*/
# thing types
thing-type.vesync.airHumidifier.label = Air Humidifier via VeSync
-thing-type.vesync.airHumidifier.description = A Air Humidifier uplinking to VeSync
+thing-type.vesync.airHumidifier.description = An Air Humidifier uplinking to VeSync
thing-type.vesync.airPurifier.label = Air Purifier via VeSync
-thing-type.vesync.airPurifier.description = A Air Purifier uplinking to VeSync
+thing-type.vesync.airPurifier.description = An Air Purifier uplinking to VeSync
thing-type.vesync.bridge.label = VeSync Bridge
thing-type.vesync.bridge.description = The VeSync bridge represents the VeSync cloud service.
</supported-bridge-type-refs>
<label>Air Purifier via VeSync</label>
- <description>A Air Purifier uplinking to VeSync</description>
+ <description>An Air Purifier uplinking to VeSync</description>
<channels>
<channel id="enabled" typeId="deviceEnabledType"/>
</supported-bridge-type-refs>
<label>Air Humidifier via VeSync</label>
- <description>A Air Humidifier uplinking to VeSync</description>
+ <description>An Air Humidifier uplinking to VeSync</description>
<channels>
<channel id="enabled" typeId="deviceEnabledType"/>
The adapter transforms the address oriented raw interface of the Vitotronic to an abstract format.
The adapter itself is not a part of the binding.
-[A alpha version is available here](https://github.com/steand/optolink)
+[An alpha version is available here](https://github.com/steand/optolink)
[More Information about the adapter](https://github.com/steand/optolink/wiki)
## Supported Things
like motion sensors, web-connected displays or awning controls. Devices implementing the Web Thing standard can be integrated
into smart home systems such as openHAB to monitor and control them.
These days, the Web Thing API is primarily used by makers to provide a common API to their physical devices.
-For instance, the Web Thing API has been used by makers to provide an open way to control [LEDs on a ESP8266 board](https://github.com/WebThingsIO/webthing-arduino)
+For instance, the Web Thing API has been used by makers to provide an open way to control [LEDs on an ESP8266 board](https://github.com/WebThingsIO/webthing-arduino)
or to monitor [a PIR motion sensor on Raspberry Pi](https://pypi.org/project/pi-pir-webthing/).
## Supported Things
/**
* The implementation of the client-side Webthing representation. This is based on HTTP. Bindings to alternative
- * application protocols such as CoAP may be defined in the future (which may be implemented by a another class)
+ * application protocols such as CoAP may be defined in the future (which may be implemented by another class)
*
* @author Gregor Roth - Initial contribution
*/
// endpoints supporting multiple WebThings.
//
// In the routine below the enpoint will be checked for single WebThings first, than for multiple
- // WebThings if a ingle WebTHing has not been found.
+ // WebThings if a single WebThing has not been found.
// Furthermore, first it will be tried to connect the endpoint using https. If this fails, as fallback
// plain http is used.
protected String skipBackwardValue = "Skip Rev";
/**
- * Create a InputWithPlayControl object for altering menu positions and requesting current menu information as well
+ * Create an InputWithPlayControl object for altering menu positions and requesting current menu information as well
* as controlling the playback and choosing a preset item.
*
* @param inputID The input ID like USB or NET_RADIO.
private final PresetInfoStateListener observer;
/**
- * Create a InputWithPlayControl object for altering menu positions and requesting current menu information as well
+ * Create an InputWithPlayControl object for altering menu positions and requesting current menu information as well
* as controlling the playback and choosing a preset item.
*
* @param inputID The input ID like USB or NET_RADIO.
private DabBandState bandState;
/**
- * Create a InputWithPlayControl object for altering menu positions and requesting current menu information as well
+ * Create an InputWithPlayControl object for altering menu positions and requesting current menu information as well
* as controlling the playback and choosing a preset item.
*
* @param inputID The input ID - TUNER is going to be used here.
// Set thing status to a valid status
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_PENDING, "Checking configuration...");
- // Configuration - thing status update with a error message
+ // Configuration - thing status update with an error message
mConfig = loadAndCheckConfiguration();
if (mConfig != null) {
}
/**
- * Takes the given <code>formatPattern</code> and replaces it with a analog
+ * Takes the given <code>formatPattern</code> and replaces it with an analog
* String-based pattern to replace all value Occurrences with a dash ("-").
*
* @param formatPattern the original pattern which will be replaces by a