Keine Nachkommestelle

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
thissiac
Beiträge: 18
Registriert: 9. Jan 2019 18:09
Answers: 0

Keine Nachkommestelle

Beitrag von thissiac »

Ich weiß nicht warum es nicht mehr funktioniert (ich schwöre .. es hat), aber meine Shelly Bulb verträgt den MQTT Befehl

shellies/ShellyBulbDuo-D0C9FD/light/0/set

{ "turn":"on" "brightness":70.0 }

nicht mehr. Die Bulb geht zwar an, aber sehr dunkel. Sie mag "brightness":70.0 nicht mehr. Auch ein manueller Befehl hat nix gebracht. Nun stelle ich mit erstaunen fest, dass 70.0 nicht mehr funktioniert, wobei 70 klappt. Ok .... irgendwas ist bei irgendeinem Update anders als vorher. Also im Openhab die Nachkommastelle weg machen. Den gewünschten Helligkeitswert kann ich in der Sitemap.item bestimmen. Das zugehörige ITEM sieht so aus:

Gloab.item

Code: Alles auswählen

Number vHelligkeitLimit_KG_R4_L1        "KG Helligkeit Kellerraum 1"                <tod>
Sitemap.item

Code: Alles auswählen

Setpoint item=vHelligkeitLimit_KG_R4_L1         label="KG R4L1 [%.0f %%]"         minValue=0 maxValue=100 step=10                   //default:80
Was auch immer ich anstelle, im Item wird an jeder Zahl ein ".0" angehangen. Also 70.0, 80.0, usw..
In der Sitemap wird auch richtig 70%, 80%, usw. angezeigt. Intern hängt immer eine Null dran und wird auch so an übergeben.


Test.rule

Code: Alles auswählen

var jsonString = "{ "
jsonString = jsonString + "\"turn\":" + "\"on\""
jsonString = jsonString + " \"brightness\":" + vHelligkeitLimit_KG_R4_L1.state //"100"
jsonString = jsonString + " }"

KG_Keller_Licht_01_Set.sendCommand(jsonString)

Gesendet wird der Befehl .... siehe oben.

Warum ist das so?

Dachte mit [%.0f %%] ist geklärt, dass keine Nachkommastelle existieren darf. :?

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

Re: Keine Nachkommestelle

Beitrag von udo1toni »

Formatierungen am Label haben keine Auswirkungen auf den gespeicherten Wert. Wenn, dann musst Du den Wert selbst formatiert verwenden. es gibt hier verschiedene Möglichkeiten, z.B.

Code: Alles auswählen

var jsonString = "{ \"turn\":" + "\"on\" \"brightness\":"
jsonString = jsonString + (vHelligkeitLimit_KG_R4_L1.state as Number).intValue.toString + " }" //"100"

KG_Keller_Licht_01_Set.sendCommand(jsonString)
Wobei ich erwarten würde, dass nach dem wert für turn (also on) zunächst ein Komma steht, also so:

Code: Alles auswählen

var jsonString = "{ \"turn\":" + "\"on\", \"brightness\":"
jsonString = jsonString + (vHelligkeitLimit_KG_R4_L1.state as Number).intValue.toString + " }" //"100"

KG_Keller_Licht_01_Set.sendCommand(jsonString)
denn ohne das Komma ist das kein gültiges json.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

thissiac
Beiträge: 18
Registriert: 9. Jan 2019 18:09
Answers: 0

Re: Keine Nachkommestelle

Beitrag von thissiac »

Wahnsinn!

Ich hab überall gesucht. Den Wert zu formatieren habe ich nicht auf dem Schirm gehabt.

Klappt auf Anhieb.

Hab noch aus 2 Zeilen 1 gemacht.

Danke für deine Unterstützung :)

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

Re: Keine Nachkommestelle

Beitrag von udo1toni »

Gerne :)
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Antworten