[gelöst] Edit Item Metadata: stateDescription
- scotty
- Beiträge: 676
- Registriert: 28. Apr 2020 04:44
[gelöst] Edit Item Metadata: stateDescription
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?
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
- udo1toni
- Beiträge: 15265
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Edit Item Metadata: stateDescription
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
- scotty
- Beiträge: 676
- Registriert: 28. Apr 2020 04:44
Re: Edit Item Metadata: stateDescription
Hallo Udo,
was bitte ist ein UoM Item?
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
- scotty
- Beiträge: 676
- Registriert: 28. Apr 2020 04:44
Re: Edit Item Metadata: stateDescription
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
- udo1toni
- Beiträge: 15265
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Edit Item Metadata: stateDescription
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.
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
- scotty
- Beiträge: 676
- Registriert: 28. Apr 2020 04:44
Re: Edit Item Metadata: stateDescription
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
- scotty
- Beiträge: 676
- Registriert: 28. Apr 2020 04:44
Re: Edit Item Metadata: stateDescription
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.
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
- udo1toni
- Beiträge: 15265
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Edit Item Metadata: stateDescription
Na, Du musst lediglich den Zahlenwert durch 1024*1024 teilen. Das machst Du mit einer JS Transformation
Eigentlich sollte folgendes Script reichen:
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
Eigentlich sollte folgendes Script reichen:
Code: Alles auswählen
(function(byte){
var mbyte = byte/1024/1024;
return mbyte;
})(input)
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
- scotty
- Beiträge: 676
- Registriert: 28. Apr 2020 04:44
Re: Edit Item Metadata: stateDescription
Das Script habe ich im Ordner /transform/ gespeichert. Allerdings funktioniert es noch nicht.
Schau selbst:
Schau selbst:
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
- udo1toni
- Beiträge: 15265
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Edit Item Metadata: stateDescription
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