Letztes Update 2021/04/11 14:46
Um gemessene Werte in einer wissenschaftlich korrekten Einheit auszudrücken, unterstützt das Framework Maßeinheiten. Durch die Verwendung quantifizierter Dezimalwerte in Statusaktualisierungen und Befehlen kann das Framework Werte automatisch in eine gewünschte Einheit konvertieren, die vom Systemgebietsschema oder pro Verwendung definiert werden kann.
(Mengenart)
Bindungen verwenden den QuantityType
, um Aktualisierungen von Sensordaten mit einer Quantifizierungseinheit zu veröffentlichen. Auf diese Weise kann das Framework und / oder der Benutzer den quantifizierten Wert in andere übereinstimmende Einheiten konvertieren:
Eine Wetterbindung, die Temperaturwerte in °C liest, würde den QuantityType
verwenden, um die Einheit als °C anzuzeigen. Das Framework kann dann die Werte je nach Konfiguration des Systems entweder in °F oder Kelvin konvertieren. Die vom Framework verwendete Standardkonvertierung basiert auf dem Gebietsschema: Das Framework versucht, einen QuantityType in die Standardeinheit des konfigurierten Gebietsschemas zu konvertieren. Dies ist das imperiale System für die Vereinigten Staaten (Gebietsschema USA) und Liberia (Sprachkennzeichnung „en-LR“). Das metrische System mit SI-Einheiten wird für den Rest der Welt verwendet. Diese Konvertierung konvertiert den angegebenen QuantityType
in eine Standardeinheit für die spezifische Dimension des Typs. Das ist:
Maß | Metrische Einheit | Imperiale Einheit |
---|---|---|
Länge | Meter (m) | Inch (in) |
Temperatur | Celsius (°C) | Fahrenheit (°F) |
Druck | Hectopascal (hPa) | Inch Quecksilber (inHg) |
Geschwindigkeit | Kilometer pro Stunde (km/h) | Meilen pro Stunde (mph) |
Intensität | Bestrahlungsstärke (W/m²) | Bestrahlungsstärke (W/m²) |
Dimensionslos | Abstrakte Einheit )eins) | Abstrakte Einheit (eins) |
Winkel | Grad(°) | Grad(°) |
Zusätzlich zur automatisierten Konvertierung kann das NumberItem
, das mit einem Kanal verknüpft ist welcher QuantityTypes
liefert, so konfiguriert werden, dass Statusaktualisierungen immer in eine bestimmte Einheit konvertiert werden. Die in der Zustandsbeschreibung angegebene Einheit wird analysiert und dann, falls erforderlich, zur Konvertierung verwendet. Das Framework geht davon aus, dass die zu analysierende Einheit immer das letzte Token in der Statusbeschreibung ist. Wenn die Analyse fehlgeschlagen ist, findet die auf dem Gebietsschema basierende Standardkonvertierung statt.
Number:Temperatur temperature "Outside [%.2f °F]" { channel="...:current#temperature" }
In diesem Beispiel wird das NumberItem
angegeben, um an Kanäle zu binden, die Werte aus der Dimension Temperatur anbieten. Ohne die Dimensionsinformationen erhält das NumberItem
nur Aktualisierungen vom Typ DecimalType
ohne Einheit und ohne Konvertierung. Die Zustandsbeschreibung definiert zwei Dezimalstellen für den Wert und die Fixeinheit °F. Falls in der Statusbeschreibung die Einheit angezeigt werden soll, die die Bindung liefert, oder das Framework durch Gebietsschema-basierte Konvertierung berechnet, sieht das Muster folgendermaßen aus:
„Aussen [%.2f %unit%]“
Der spezielle Platzhalter %unit%
wird dann durch das tatsächliche Einheitensymbol ersetzt. Der Platzhalter %unit%
kann an einer beliebigen Stelle in der Statusbeschreibung platziert werden.
<channel-type id="temperature"> <item-type>Number:Temperature</item-type> <label>Temperature</label> <description>Current temperature</description> <state readOnly="true" pattern="%.1f %unit%" /> </channel-type>
Das Zustandsbeschreibungsmuster „%.1f %unit%“
beschreibt das Werteformat als Gleitkomma mit einer Dezimalstelle und auch als speziellen Platzhalter für die Einheit.
Beim Erstellen von QuantityType-Status bietet das Framework einige nützliche Pakete und Klassen. Das Paket org.openhab.core.library.unit
enthält die Klassen SIUnits
, ImperialUnits
und Units
, die Einheiten bereitstellen, welche für eines der in beiden Systemen verwendeten Messsysteme und gemeinsamen Einheiten eindeutig sind.
Die MetricPrefix
Klasse stellt Präfixe wie MILLI, CENTI, HECTO usw. bereit, und die BinaryPrefix
Klasse bietet Präfixe wie KIBI, MEBI usw., die beide Wrapper zum Erstellen abgeleiteter Einheiten sind.
Die Pakete org.openhab.core.library.dimension
und javax.measure.quantity
bieten Schnittstellen, mit denen der generische QuantityType und die Einheiten eingegeben werden.
Alle Einheiten, die derzeit standardmäßig unterstützt werden, sind in den folgenden Tabellen aufgeführt.
Imperial (Symbole der Basiseinheit):
Typ | Einheit | Symbol |
---|---|---|
Druck | Inch Quecksilber | inHg |
Temperatur | Fahrenheit | °F |
Geschwindigkeit | Meilen pro Stunde | mph |
Länge | Inch | in |
Länge | Foot | ft |
Länge | Yard | yd |
Länge | Chain | ch |
Länge | Furlong | fur |
Länge | Meile | mi |
Länge | League | lea |
SI (Symbole der Basiseinheit):
Typ | Einheit | Symbol |
---|---|---|
Beschleunigung | Meter pro Sekundenquadrat | m/s² |
Beschleunigung | Standard Gravitation | gn |
Stoffmengenanteil | Mole | mol |
Stoffmengenanteil | Deutscher Härtegrad | °dH |
Winkel | Radian | rad |
Winkel | Grad | ° |
Winkel | Winkelminute | ' |
Winkel | Winkelsekunde | '' |
Fläche | Quadratmeter | m² |
Flächenkonzentration | Dobson Einheit | DU |
Katalysische Aktivität | Katal | kat |
Datenvolumen | Bit | bit |
Datenvolumen | Byte | B |
Datenvolumen | Octet | O |
Datentransferrate | Bit pro Sekunde | bit/s |
Dichte | Gramm pro m³ | g/m³ |
Dimensionslos | Prozent | % |
Dimensionslos | Parts per Million | ppm |
Dimensionslos | Dezibel | dB |
Elektrische Spannung | Volt | V |
Elektrische Kapazität | Farad | F |
Elektrische Ladung | Coulomb | C |
Elektrische Ladung | Amperestunden | Ah |
Elektrische Leitfähigkeit | Siemens | S |
Elektrische Leitfähigkeit | Siemens pro Meter | S/m |
Elektrischer Strom | Ampere | A |
Elektrische Induktivität | Henry | H |
Elektrischer Widerstand | Ohm | Ω |
Energie | Joule | J |
Energie | Wattsekunde | Ws |
Energie | Wattstunde | Wh |
Energie | Volt-Ampere-Stunde | VAh |
Energie | Volt-Ampere-Blindleistungsstunde | varh |
Kraft | Newton | N |
Frequenz | Hertz | Hz |
Beleuchtungsstärke | Lux | lx |
Intensität | Bestrahlungsstärke | W/m² |
Intensität | Mikrowatt pro cm² | μW/cm² |
Länge | Meter | m |
Beleuchtungsstärke | Lumen | lm |
Beleuchtungsintensität | Candela | cd |
Magnetischer Fluss | Weber | Wb |
Magnetische Flußdichte | Tesla | T |
Masse | Gramm | g |
Leistung | Watt | W |
Leistung | Volt-Ampere | VA |
Leistung | Volt-Ampere Blindleistung | var |
Leistung | Decibel-Milliwatt | dBm |
Druck | Pascal | Pa |
Druck | Hectopascal | hPa |
Druck | Millimeter Quecksilber | mmHg |
Druck | Bar | bar |
Radioaktivität | Becquerel | Bq |
Äquivalentdosis | Sievert | Sv |
Raumwinkel | Steradiant | sr |
Geschwindigkeit | Meter pro Sekunde | m/s |
Geschwindigkeit | Knoten | kn |
Temperatur | Kelvin | K |
Temperatur | Celsius | °C |
Zeit | Sekunde | s |
Zeit | Minute | min |
Zeit | Stunde | h |
Zeit | Tag | d |
Zeit | Woche | week |
Zeit | Jahr | y |
Volumen | Liter | l |
Volumen | Kubikmeter | m³ |
Volumenstrom | Liter pro Minute | l/min |
Volumenstrom | Kubikmeter pro Sekunde | m³/s |
Volumenstrom | Kubikmeter pro Minute | m³/min |
Volumenstrom | Kubikmeter pro Stunde | m³/h |
Volumenstrom | Kubikmeter pro Tag | m³/d |
Metrische SI-Präfixe:
Name | Symbol | Factor |
---|---|---|
Yotta | Y | 1024 |
Zetta | Z | 1021 |
Exa | E | 1018 |
Peta | P | 1015 |
Tera | T | 1012 |
Giga | G | 109 |
Mega | M | 106 |
Kilo | k | 103 |
Hecto | h | 102 |
Deca | da | 10 |
Deci | d | 10-1 |
Centi | c | 10-2 |
Milli | m | 10-3 |
Micro | µ | 10-6 |
Nano | n | 10-9 |
Pico | p | 10-12 |
Femto | f | 10-15 |
Atto | a | 10⁻-18 |
Zepto | z | 10-21 |
Yocto | y | 10-24 |
Binäre SI-Präfixe:
Name | Symbol | Factor |
---|---|---|
Kibi | Ki | 210 |
Mebi | Mi | 220 |
Gibi | Gi | 230 |
Tebi | Ti | 240 |
Pebi | Pi | 250 |
Exbi | Ei | 260 |
Zebi | Zi | 270 |
Yobi | Yi | 280 |
Um die Präfixe zu verwenden, fügen Sie einfach das Präfix zum Einheitensymbol hinzu - zum Beispiel:
mA
cm
kW
KiB
Die Übersetzung steht unter der EPLv2 Lizenz.