diff --git a/bundles/org.openhab.core/src/main/java/org/openhab/core/internal/i18n/I18nProviderImpl.java b/bundles/org.openhab.core/src/main/java/org/openhab/core/internal/i18n/I18nProviderImpl.java
index 2a0ed9627f..3950bee399 100644
--- a/bundles/org.openhab.core/src/main/java/org/openhab/core/internal/i18n/I18nProviderImpl.java
+++ b/bundles/org.openhab.core/src/main/java/org/openhab/core/internal/i18n/I18nProviderImpl.java
@@ -75,6 +75,7 @@ import org.openhab.core.library.dimension.DataAmount;
import org.openhab.core.library.dimension.DataTransferRate;
import org.openhab.core.library.dimension.Density;
import org.openhab.core.library.dimension.ElectricConductivity;
+import org.openhab.core.library.dimension.EmissionIntensity;
import org.openhab.core.library.dimension.EnergyPrice;
import org.openhab.core.library.dimension.Intensity;
import org.openhab.core.library.dimension.RadiationSpecificActivity;
@@ -411,6 +412,7 @@ public class I18nProviderImpl
addDefaultUnit(dimensionMap, ElectricInductance.class, Units.HENRY);
addDefaultUnit(dimensionMap, ElectricPotential.class, Units.VOLT);
addDefaultUnit(dimensionMap, ElectricResistance.class, Units.OHM);
+ addDefaultUnit(dimensionMap, EmissionIntensity.class, Units.GRAM_PER_KILOWATT_HOUR);
addDefaultUnit(dimensionMap, Energy.class, Units.KILOWATT_HOUR);
addDefaultUnit(dimensionMap, Force.class, Units.NEWTON);
addDefaultUnit(dimensionMap, Frequency.class, Units.HERTZ);
diff --git a/bundles/org.openhab.core/src/main/java/org/openhab/core/library/dimension/EmissionIntensity.java b/bundles/org.openhab.core/src/main/java/org/openhab/core/library/dimension/EmissionIntensity.java
new file mode 100644
index 0000000000..07811f8258
--- /dev/null
+++ b/bundles/org.openhab.core/src/main/java/org/openhab/core/library/dimension/EmissionIntensity.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2010-2024 Contributors to the openHAB project
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+package org.openhab.core.library.dimension;
+
+import javax.measure.Quantity;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+
+/**
+ * Define emission intensity type (basic unit is g/kWh)
+ * See Wikipedia
+ *
+ * @author Jacob Laursen - Initial contribution
+ */
+@NonNullByDefault
+public interface EmissionIntensity extends Quantity {
+}
diff --git a/bundles/org.openhab.core/src/main/java/org/openhab/core/library/unit/Units.java b/bundles/org.openhab.core/src/main/java/org/openhab/core/library/unit/Units.java
index aaf3ef4fb8..824d531f80 100644
--- a/bundles/org.openhab.core/src/main/java/org/openhab/core/library/unit/Units.java
+++ b/bundles/org.openhab.core/src/main/java/org/openhab/core/library/unit/Units.java
@@ -55,6 +55,7 @@ import org.openhab.core.library.dimension.DataAmount;
import org.openhab.core.library.dimension.DataTransferRate;
import org.openhab.core.library.dimension.Density;
import org.openhab.core.library.dimension.ElectricConductivity;
+import org.openhab.core.library.dimension.EmissionIntensity;
import org.openhab.core.library.dimension.Intensity;
import org.openhab.core.library.dimension.RadiationSpecificActivity;
import org.openhab.core.library.dimension.VolumetricFlowRate;
@@ -131,6 +132,8 @@ public final class Units extends CustomUnits {
new ProductUnit<>(tech.units.indriya.unit.Units.WATT.multiply(tech.units.indriya.unit.Units.HOUR)));
public static final Unit KILOWATT_HOUR = addUnit(MetricPrefix.KILO(WATT_HOUR));
public static final Unit MEGAWATT_HOUR = addUnit(MetricPrefix.MEGA(WATT_HOUR));
+ public static final Unit GRAM_PER_KILOWATT_HOUR = addUnit(
+ new ProductUnit<>(tech.units.indriya.unit.Units.GRAM.divide(KILOWATT_HOUR)));
public static final Unit VAR = addUnit(new AlternateUnit<>(tech.units.indriya.unit.Units.WATT, "var"));
public static final Unit KILOVAR = addUnit(MetricPrefix.KILO(VAR));
public static final Unit VAR_HOUR = addUnit(
@@ -261,6 +264,7 @@ public final class Units extends CustomUnits {
SimpleUnitFormat.getInstance().label(DEGREE_ANGLE, "°");
SimpleUnitFormat.getInstance().label(DEUTSCHE_HAERTE, "°dH");
SimpleUnitFormat.getInstance().label(DOBSON_UNIT, "DU");
+ SimpleUnitFormat.getInstance().label(GRAM_PER_KILOWATT_HOUR, "g/kWh");
SimpleUnitFormat.getInstance().label(GIGABYTE, "GB");
SimpleUnitFormat.getInstance().label(GIBIBYTE, "GiB");
SimpleUnitFormat.getInstance().alias(GIBIBYTE, "Gio");
diff --git a/bundles/org.openhab.core/src/test/java/org/openhab/core/library/unit/UnitsTest.java b/bundles/org.openhab.core/src/test/java/org/openhab/core/library/unit/UnitsTest.java
index a0913a978f..74ef456bb0 100644
--- a/bundles/org.openhab.core/src/test/java/org/openhab/core/library/unit/UnitsTest.java
+++ b/bundles/org.openhab.core/src/test/java/org/openhab/core/library/unit/UnitsTest.java
@@ -111,6 +111,11 @@ public class UnitsTest {
assertThat(Units.MILLIMETRE_OF_MERCURY.toString(), is("mmHg"));
}
+ @Test
+ public void testGramPerKiloWattHourUnitSymbol() {
+ assertThat(Units.GRAM_PER_KILOWATT_HOUR.toString(), is("g/kWh"));
+ }
+
@Test
public void testPascal2mmHgConversion() {
Quantity pascal = Quantities.getQuantity(new BigDecimal("133.322368"), SIUnits.PASCAL);