Add-ons should not depend on tec.uom.se classes but use core unit classes instead so they are less impacted when this library is replaced or upgraded.
Signed-off-by: Wouter Born <github@maindrain.net>
import org.openhab.core.library.types.QuantityType;
import org.openhab.core.library.unit.ImperialUnits;
import org.openhab.core.library.unit.SIUnits;
+import org.openhab.core.library.unit.SmartHomeUnits;
import org.openhab.core.types.State;
import org.openhab.core.types.UnDefType;
import com.google.gson.annotations.SerializedName;
-import tec.uom.se.unit.Units;
-
/**
* The {@code Measure} class defines the dto for Smarther API measure object.
*
.orElse(UnDefType.UNDEF);
break;
case PERCENTAGE:
- state = optValue.<State> map(t -> new QuantityType<Dimensionless>(new DecimalType(t), Units.PERCENT))
+ state = optValue
+ .<State> map(t -> new QuantityType<Dimensionless>(new DecimalType(t), SmartHomeUnits.PERCENT))
.orElse(UnDefType.UNDEF);
break;
case DIMENSIONLESS:
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.core.library.types.QuantityType;
+import org.openhab.core.library.unit.SmartHomeUnits;
import org.openhab.core.types.State;
import org.openhab.core.types.UnDefType;
-import tec.uom.se.AbstractUnit;
-
/**
* The {@link CoronaStatsCountry} class holds the internal data representation of each Country
*
if (count == -1) {
return UnDefType.NULL;
} else {
- return new QuantityType<Dimensionless>(count, AbstractUnit.ONE);
+ return new QuantityType<Dimensionless>(count, SmartHomeUnits.ONE);
}
}
}
import org.openhab.core.library.types.IncreaseDecreaseType;
import org.openhab.core.library.types.QuantityType;
import org.openhab.core.library.types.UpDownType;
+import org.openhab.core.library.unit.SmartHomeUnits;
import org.openhab.core.types.Command;
import org.openhab.core.types.StateDescriptionFragmentBuilder;
import org.openhab.core.types.UnDefType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import tec.uom.se.AbstractUnit;
-
/**
* Implements a number value.
*
} else if (command instanceof QuantityType<?>) {
QuantityType<?> qType = (QuantityType<?>) command;
- if (qType.getUnit().isCompatible(AbstractUnit.ONE)) {
+ if (qType.getUnit().isCompatible(SmartHomeUnits.ONE)) {
newValue = qType.toBigDecimal();
} else {
qType = qType.toUnit(unit);
import org.openhab.core.library.types.QuantityType;
import org.openhab.core.library.types.StringType;
import org.openhab.core.library.types.UpDownType;
+import org.openhab.core.library.unit.SmartHomeUnits;
import org.openhab.core.types.Command;
import org.openhab.core.types.StateDescriptionFragmentBuilder;
import org.openhab.core.types.UnDefType;
-import tec.uom.se.unit.Units;
-
/**
* Implements a percentage value. Minimum and maximum are definable.
*
} else //
// A quantity type need to be converted according to the current min/max values
if (command instanceof QuantityType) {
- QuantityType<?> qty = ((QuantityType<?>) command).toUnit(Units.PERCENT);
+ QuantityType<?> qty = ((QuantityType<?>) command).toUnit(SmartHomeUnits.PERCENT);
if (qty != null) {
BigDecimal v = qty.toBigDecimal();
v = v.subtract(min).multiply(HUNDRED).divide(max.subtract(min), MathContext.DECIMAL128);
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.neohub.internal.NeoHubAbstractDeviceData.AbstractRecord;
+import org.openhab.binding.neohub.internal.NeoHubBindingConstants.NeoHubReturnResult;
import org.openhab.core.library.types.QuantityType;
import org.openhab.core.library.unit.SIUnits;
+import org.openhab.core.library.unit.SmartHomeUnits;
import org.openhab.core.thing.Bridge;
import org.openhab.core.thing.ChannelUID;
import org.openhab.core.thing.Thing;
import com.google.gson.JsonSyntaxException;
-import tec.uom.se.unit.Units;
-
/**
* The {@link NeoHubHandler} is the openHAB Handler for NeoHub devices
*
/**
* sends a JSON request to the NeoHub to read the device data
- *
+ *
* @return a class that contains the full status of all devices
*/
protected @Nullable NeoHubAbstractDeviceData fromNeoHubGetDeviceData() {
if (deviceData instanceof NeoHubLiveDeviceData) {
/*
* note: time-stamps are measured in seconds from 1970-01-01T00:00:00Z
- *
+ *
* new API: discard systemData if its time-stamp is older than the system
* time-stamp on the hub
*/
} else {
/*
* note: time-stamps are measured in seconds from 1970-01-01T00:00:00Z
- *
+ *
* legacy API: discard systemData if its time-stamp is older than one hour
*/
if (systemData.timeStamp < Instant.now().minus(1, ChronoUnit.HOURS).getEpochSecond()) {
/**
* sends a JSON request to the NeoHub to read the system data
- *
+ *
* @return a class that contains the status of the system
*/
protected @Nullable NeoHubReadDcbResponse fromNeoHubReadSystemData() {
onlineDeviceCount++;
}
}
- state = new QuantityType<>((100.0 * onlineDeviceCount) / totalDeviceCount, Units.PERCENT);
+ state = new QuantityType<>((100.0 * onlineDeviceCount) / totalDeviceCount, SmartHomeUnits.PERCENT);
}
updateState(CHAN_MESH_NETWORK_QOS, state);
}
import org.openhab.binding.opensprinkler.internal.config.OpenSprinklerStationConfig;
import org.openhab.core.library.types.OnOffType;
import org.openhab.core.library.types.QuantityType;
+import org.openhab.core.library.unit.SmartHomeUnits;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ChannelUID;
import org.openhab.core.thing.Thing;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import tec.uom.se.unit.Units;
-
/**
* @author Florian Schmidt - Refactoring
*/
return;
}
QuantityType<?> quantity = (QuantityType<?>) command;
- this.nextDurationTime = quantity.toUnit(Units.SECOND).toBigDecimal();
+ this.nextDurationTime = quantity.toUnit(SmartHomeUnits.SECOND).toBigDecimal();
updateState(channelUID, quantity);
}
+ " for the OpenSprinkler device. Exception received: " + exp);
}
- return new QuantityType<>(remainingWaterTime, Units.SECOND);
+ return new QuantityType<>(remainingWaterTime, SmartHomeUnits.SECOND);
}
@Override
case NEXT_DURATION:
BigDecimal duration = nextDurationValue();
if (duration != null) {
- updateState(channel, new QuantityType<>(duration, Units.SECOND));
+ updateState(channel, new QuantityType<>(duration, SmartHomeUnits.SECOND));
}
break;
case STATION_QUEUED:
*/
package org.openhab.binding.sensibo.internal.handler;
-import static org.openhab.binding.sensibo.internal.SensiboBindingConstants.CHANNEL_CURRENT_HUMIDITY;
-import static org.openhab.binding.sensibo.internal.SensiboBindingConstants.CHANNEL_CURRENT_TEMPERATURE;
-import static org.openhab.binding.sensibo.internal.SensiboBindingConstants.CHANNEL_FAN_LEVEL;
-import static org.openhab.binding.sensibo.internal.SensiboBindingConstants.CHANNEL_MASTER_SWITCH;
-import static org.openhab.binding.sensibo.internal.SensiboBindingConstants.CHANNEL_MODE;
-import static org.openhab.binding.sensibo.internal.SensiboBindingConstants.CHANNEL_SWING_MODE;
-import static org.openhab.binding.sensibo.internal.SensiboBindingConstants.CHANNEL_TARGET_TEMPERATURE;
-import static org.openhab.binding.sensibo.internal.SensiboBindingConstants.CHANNEL_TIMER;
+import static org.openhab.binding.sensibo.internal.SensiboBindingConstants.*;
import java.util.ArrayList;
import java.util.Collection;
import org.openhab.core.library.types.QuantityType;
import org.openhab.core.library.types.StringType;
import org.openhab.core.library.unit.SIUnits;
+import org.openhab.core.library.unit.SmartHomeUnits;
import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ChannelUID;
import org.openhab.core.thing.Thing;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import tec.uom.se.unit.Units;
-
/**
* The {@link SensiboSkyHandler} is responsible for handling commands, which are
* sent to one of the channels.
private void handleCurrentHumidityCommand(ChannelUID channelUID, Command command, SensiboSky sensiboSky) {
if (command instanceof RefreshType) {
- updateState(channelUID, new QuantityType<>(sensiboSky.getHumidity(), Units.PERCENT));
+ updateState(channelUID, new QuantityType<>(sensiboSky.getHumidity(), SmartHomeUnits.PERCENT));
}
}
import org.openhab.binding.shelly.internal.api.ShellyApiJsonDTO.ShellyStatusSensor;
import org.openhab.binding.shelly.internal.config.ShellyThingConfiguration;
import org.openhab.core.library.unit.ImperialUnits;
+import org.openhab.core.library.unit.SIUnits;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
-import tec.uom.se.unit.Units;
-
/**
* {@link ShellyHttpApi} wraps the Shelly REST API and provides various low level function to access the device api (not
* cloud api).
if (profile.isSense) {
// complete reported data, map C to F or vice versa: C=(F - 32) * 0.5556;
status.tmp.tC = status.tmp.units.equals(SHELLY_TEMP_CELSIUS) ? status.tmp.value
- : ImperialUnits.FAHRENHEIT.getConverterTo(Units.CELSIUS).convert(getDouble(status.tmp.value))
+ : ImperialUnits.FAHRENHEIT.getConverterTo(SIUnits.CELSIUS).convert(getDouble(status.tmp.value))
.doubleValue();
status.tmp.tF = status.tmp.units.equals(SHELLY_TEMP_FAHRENHEIT) ? status.tmp.value
- : Units.CELSIUS.getConverterTo(ImperialUnits.FAHRENHEIT).convert(getDouble(status.tmp.value))
+ : SIUnits.CELSIUS.getConverterTo(ImperialUnits.FAHRENHEIT).convert(getDouble(status.tmp.value))
.doubleValue();
}
if ((status.charger == null) && (status.externalPower != null)) {
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import tec.uom.se.unit.Units;
-
/**
* The {@link ShellyCoIoTVersion1} implements the parsing for CoIoT version 1
*
case "temperature": // Sensor Temp
if (getString(getProfile().settings.temperatureUnits)
.equalsIgnoreCase(SHELLY_TEMP_FAHRENHEIT)) {
- value = ImperialUnits.FAHRENHEIT.getConverterTo(Units.CELSIUS).convert(getDouble(s.value))
+ value = ImperialUnits.FAHRENHEIT.getConverterTo(SIUnits.CELSIUS).convert(getDouble(s.value))
.doubleValue();
}
updateChannel(updates, CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_TEMP,
import org.openhab.core.library.unit.SIUnits;
import org.openhab.core.library.unit.SmartHomeUnits;
-import tec.uom.se.unit.Units;
-
/***
* The{@link ShellyComponents} implements updates for supplemental components
* Meter will be used by Relay + Light; Sensor is part of H&T, Flood, Door Window, Sense
: getDouble(sdata.tmp.tF);
if (getString(sdata.tmp.units).toUpperCase().equals(SHELLY_TEMP_FAHRENHEIT)) {
// convert Fahrenheit to Celsius
- temp = ImperialUnits.FAHRENHEIT.getConverterTo(Units.CELSIUS).convert(temp).doubleValue();
+ temp = ImperialUnits.FAHRENHEIT.getConverterTo(SIUnits.CELSIUS).convert(temp).doubleValue();
}
updated |= thingHandler.updateChannel(CHANNEL_GROUP_SENSOR, CHANNEL_SENSOR_TEMP,
toQuantityType(temp.doubleValue(), DIGITS_TEMP, SIUnits.CELSIUS));
import org.openhab.core.library.types.StringType;
import org.openhab.core.library.unit.ImperialUnits;
import org.openhab.core.library.unit.SIUnits;
+import org.openhab.core.library.unit.SmartHomeUnits;
import org.openhab.core.types.State;
import org.openhab.core.types.UnDefType;
import com.google.gson.annotations.SerializedName;
-import tec.uom.se.AbstractUnit;
-import tec.uom.se.unit.Units;
-
/**
* private class: a generic data point
*
return ImperialUnits.FAHRENHEIT;
}
case DEGREES_KELVIN: {
- return Units.KELVIN;
+ return SmartHomeUnits.KELVIN;
}
case PERCENT_RELATIVE_HUMIDITY: {
- return Units.PERCENT;
+ return SmartHomeUnits.PERCENT;
}
}
}
- return AbstractUnit.ONE;
+ return SmartHomeUnits.ONE;
}
/*
import org.openhab.core.library.types.StringType;
import org.openhab.core.library.unit.ImperialUnits;
import org.openhab.core.library.unit.SIUnits;
+import org.openhab.core.library.unit.SmartHomeUnits;
import org.openhab.core.types.State;
-import tec.uom.se.unit.Units;
-
/**
* test suite
*
state = dataPoints.getPointByClass("'SpTRShft").getState();
assertTrue(state instanceof QuantityType<?>);
- QuantityType<?> kelvin = ((QuantityType<?>) state).toUnit(Units.KELVIN);
+ QuantityType<?> kelvin = ((QuantityType<?>) state).toUnit(SmartHomeUnits.KELVIN);
assertNotNull(kelvin);
assertEquals(0, kelvin.floatValue(), 0.01);
state = dataPoints.getPointByClass("'RHuRel").getState();
assertTrue(state instanceof QuantityType<?>);
- QuantityType<?> relativeHumidity = ((QuantityType<?>) state).toUnit(Units.PERCENT);
+ QuantityType<?> relativeHumidity = ((QuantityType<?>) state).toUnit(SmartHomeUnits.PERCENT);
assertNotNull(relativeHumidity);
assertEquals(46.86865, relativeHumidity.floatValue(), 0.1);
state = dataPoints.getPointByClass("'TRBltnMsvAdj").getState();
assertTrue(state instanceof QuantityType<?>);
- kelvin = ((QuantityType<?>) state).toUnit(Units.KELVIN);
+ kelvin = ((QuantityType<?>) state).toUnit(SmartHomeUnits.KELVIN);
assertNotNull(kelvin);
assertEquals(35.0, celsius.floatValue(), 0.01);
@Nullable
String x = entry.getKey();
assertNotNull(x);
- String y = ((BasePoint) point).getPointClass();
+ String y = point.getPointClass();
String z = dataPoints.pointClassToId(y);
assertEquals(x, z);
}
// test temperature units code (C)
BasePoint tempPoint = dataPoints.getPointByClass("'SpTR");
assertTrue(tempPoint instanceof BasePoint);
- assertEquals(SIUnits.CELSIUS, ((BasePoint) tempPoint).getUnit());
+ assertEquals(SIUnits.CELSIUS, tempPoint.getUnit());
// test temperature units code (F)
tempPoint = dataPoints.getPointByClass("'SpHPcf");
assertTrue(tempPoint instanceof BasePoint);
- assertEquals(ImperialUnits.FAHRENHEIT, ((BasePoint) tempPoint).getUnit());
+ assertEquals(ImperialUnits.FAHRENHEIT, tempPoint.getUnit());
// test temperature units code (K)
tempPoint = dataPoints.getPointByClass("'SpHPcf");
assertTrue(tempPoint instanceof BasePoint);
- assertEquals(ImperialUnits.FAHRENHEIT, ((BasePoint) tempPoint).getUnit());
+ assertEquals(ImperialUnits.FAHRENHEIT, tempPoint.getUnit());
tempPoint = dataPoints.getPointByClass("'SpTRShft");
assertTrue(tempPoint instanceof BasePoint);
- assertEquals(Units.KELVIN, ((BasePoint) tempPoint).getUnit());
+ assertEquals(SmartHomeUnits.KELVIN, tempPoint.getUnit());
} catch (RdsCloudException e) {
fail(e.getMessage());
}
PlantInfo plant;
plant = plantList.get(0);
assertTrue(plant instanceof PlantInfo);
- assertEquals("Pd1774247-7de7-4896-ac76-b7e0dd943c40", ((PlantInfo) plant).getId());
+ assertEquals("Pd1774247-7de7-4896-ac76-b7e0dd943c40", plant.getId());
assertTrue(plant.isOnline());
plant = plantList.get(1);
assertTrue(plant instanceof PlantInfo);
- assertEquals("Pfaf770c8-abeb-4742-ad65-ead39030d369", ((PlantInfo) plant).getId());
- assertTrue(((PlantInfo) plant).isOnline());
+ assertEquals("Pfaf770c8-abeb-4742-ad65-ead39030d369", plant.getId());
+ assertTrue(plant.isOnline());
} catch (RdsCloudException e) {
fail(e.getMessage());
}
import org.openhab.core.library.types.QuantityType;
import org.openhab.core.library.types.StringType;
import org.openhab.core.library.unit.ImperialUnits;
+import org.openhab.core.library.unit.MetricPrefix;
import org.openhab.core.library.unit.SIUnits;
import org.openhab.core.library.unit.SmartHomeUnits;
import org.openhab.core.types.State;
import org.openhab.core.types.Type;
-import tec.uom.se.unit.MetricPrefix;
-
/**
* The {@link TeslaChannelSelectorProxy} class is a helper class to instantiate
* and parameterize the {@link TeslaChannelSelector} Enum
checkstyle.headerCheck.content=^/\\*\\*$\\n^ \\* Copyright \\(c\\) {0}-{1} Contributors to the openHAB project$\\n^ \\*$\\n^ \\* See the NOTICE file\\(s\\) distributed with this work for additional$\\n^ \\* information.$\\n^ \\*$\\n^ \\* This program and the accompanying materials are made available under the$\\n^ \\* terms of the Eclipse Public License 2\\.0 which is available at$\\n^ \\* http://www.eclipse.org/legal/epl\\-2\\.0$\\n^ \\*$\\n^ \\* SPDX-License-Identifier: EPL-2.0$
checkstyle.headerCheck.values=2010,2020
-checkstyle.forbiddenPackageUsageCheck.forbiddenPackages=com.google.common,gnu.io,javax.comm,org.apache.commons,org.joda.time
+checkstyle.forbiddenPackageUsageCheck.forbiddenPackages=com.google.common,gnu.io,javax.comm,org.apache.commons,org.joda.time,tec.uom.se
checkstyle.forbiddenPackageUsageCheck.exceptions=
checkstyle.requiredFilesCheck.files=pom.xml