[gelöst] Edit Item Metadata: stateDescription

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

[gelöst] Edit Item Metadata: stateDescription

Beitrag von scotty »

Hallo,

ich habe es tatsächlich geschafft, mit großer Unterstützung der englischen Community, den Ookla-Speedtest unter OH3.1 im Docker auf meiner Synology zu installieren. Da gibt es jetzt u. a. jeweils ein Item "Download Bytes" und "Upload Byte". Ein Ergebnis für Download ist meines Erachtens mit "986713544" wenig einprägsam.
Weiß jemand, ob unter stateDescription das Ergebnis durch einen funktionierenden Eintrag in Mbit anzeigt werden kann?
Zuletzt geändert von scotty am 29. Aug 2021 16:02, insgesamt 1-mal geändert.
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Edit Item Metadata: stateDescription

Beitrag von udo1toni »

Die Frage ist, ob es sich um ein UoM Item handelt.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: Edit Item Metadata: stateDescription

Beitrag von scotty »

Hallo Udo,

was bitte ist ein UoM Item?
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: Edit Item Metadata: stateDescription

Beitrag von scotty »

Meine Recherchen haben ergeben: Unit of Measure. Aber wie kann ich das überprüfen?
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Edit Item Metadata: stateDescription

Beitrag von udo1toni »

UoM (Units of Measurement) Items haben eine Einheit, die mitsamt dem Wert ausgeliefert wird. Die Einheit wird jederzeit angezeigt, also insbesondere in der Itemliste, aber auch im Log, wenn ein ItemStateChanged Event eintritt.

Der Witz bei einem UoM Item ist, dass Du nur die gewünschte Einheit angeben musst, und Du erhältst den Messwert in der Einheit. z.B. wäre die Geschwindigkeit bit/s ein Item vom Typ Number:DataTransferRate. Du musst dann lediglich als Einheit Mbit/s eintragen, um den Wert in Mbit/s zu erhalten. Wenn Du Mibit bevorzugst, schreibst Du Mibit/s und erhältst den Wert in Mibit/s. (M = Mega, 1000x1000, Mi = Megi, 1024x1024)
Auf der UoM Seite ist B/s (Byte pro Sekunde) nicht gelistet, ich gehe also davon aus, dass MB/s nicht funktionieren wird.

Aber ich denke, allein das Beispiel mit dem Bezug auf die Zweierpotenz statt Dezimalstellenverschiebung zeigt, welches Potential in UoM schlummert. Das funktioniert genauso z.B. auch mit °F statt °C (oder umgekehrt) und ganz ohne weiteres Zutun.

Wenn der verknüpfte Channel kein UoM nutzt, nutzt es leider nichts, das Item mit UoM zu definieren. Dann bleibt Dir nur eine Konvertierung, z.B. mit einer JS Transformation. Das machst Du dann über ein Profile.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: Edit Item Metadata: stateDescription

Beitrag von scotty »

Vielen Dank für die ausführliche Info!
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: Edit Item Metadata: stateDescription

Beitrag von scotty »

Ich greife dieses Thema noch einmal auf, weil der verknüpfte Channel kein UoM nutzt und eine Konvertierung bisher von mir noch nicht realisiert werden konnte.
Deshalb würde ich dich, lieber Udo, einmal bitten mir zu zeigen, wie das am folgenden Beispiel funktioniert: Es sollen 1128332512 Bytes so konvertiert werden, dass ein Wert in MB mit 2 Nachkommastellen angezeigt werden.
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Edit Item Metadata: stateDescription

Beitrag von udo1toni »

Na, Du musst lediglich den Zahlenwert durch 1024*1024 teilen. Das machst Du mit einer JS Transformation

Eigentlich sollte folgendes Script reichen:

Code: Alles auswählen

(function(byte){
    var mbyte = byte/1024/1024;
    return mbyte;
})(input)
Das speicherst Du im Ordner /etc/openhab/transform/ unter dem Namen byteToMbyte.js ab.
Dann gibst Du als Profile beim Item JS:byteToMbyte.js an.
Abschließend musst Du noch das Pattern anpassen, dass mit %f.2 MByte/s eben nur noch zwei Nachkommastellen angezeigt werden.

Alles ungetestet :)
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: Edit Item Metadata: stateDescription

Beitrag von scotty »

Das Script habe ich im Ordner /transform/ gespeichert. Allerdings funktioniert es noch nicht.

Schau selbst:

screenshot_2.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Edit Item Metadata: stateDescription

Beitrag von udo1toni »

Was daran liegt, dass das nichts mit JSON und schon gar nichts mit JSONPATH zu tun hat. Es handelt sich um JavaScript. Da JS in der Liste der Profile nicht auftaucht, musst Du zuerst noch den JS Transformation Service installieren. :)
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Antworten