Nervige kommastellen ändern

GUI Relevanten, PaperUI, BasicUI, HabPanel ...

Moderatoren: seppy, udo1toni

zinnik
Beiträge: 174
Registriert: 7. Sep 2021 11:28
Answers: 0

Re: Nervige kommastellen ändern

Beitrag von zinnik »

udo1toni hat geschrieben: 8. Okt 2022 15:19 Wie gesagt, die Einheit darfst Du nicht mit übergeben. Und das .toString in der Funktion ist entsprechend überflüssig. Deine Funktion sollte also eher so aussehen:

Code: Alles auswählen

(function(i) {
grad=(i/10);
return grad;
})(input)
oder kürzer:

Code: Alles auswählen

(function(i) {
return (i/10);
})(input)

Also beides Funktioniert jetzt so nur jetzt habe ich das Prblem es werden keine Kommastellen angezeigt bei 24.5 zeigt er 25 an.

Wenn ich im Profil den State Formatter nutze: %.1f

Dann geht der Channel auf "Unknown" und zeigt wieder 245

Müsste man das dann doch in der Funktion verankern?
openhab 4.1.0.M Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v8.3.3 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 8kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

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

Re: Nervige kommastellen ändern

Beitrag von udo1toni »

Das wäre der "falsche" State Formatter. Wenn, dann musst Du die Formatierung bereits innerhalb des JavaScript Scripts korrigieren.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

zinnik
Beiträge: 174
Registriert: 7. Sep 2021 11:28
Answers: 0

Re: Nervige kommastellen ändern

Beitrag von zinnik »

udo1toni hat geschrieben: 4. Okt 2022 13:17 Die state Description betrifft ausschließlich die Anzeige. Wie ich geschrieben habe, musst Du den gespeicherten Wert im Item ändern. Du kannst die JavaScript Transformation einfach im Link zum Item als Profile eintragen, dann sollte es passen.

Das .toFixed(1) wird übrigens nur bedingt helfen, weil der Wert als Number gespeichert wird. Ob openHAB intern überhaupt etwas anders verwendet als Float, weiß ich nicht. Nachkommastellen kannst Du aber in der Ausgabe einfach durch die Formatierung vorgeben, z.B. %.1f.
Das hatte ich ja am Anfang gehabt. Da hattest du mir aber im 2.Absatz deines Textes geschrieben, dass dieses .toFixed(1) nicht helfen würde.
openhab 4.1.0.M Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v8.3.3 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 8kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

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

Re: Nervige kommastellen ändern

Beitrag von udo1toni »

Ja, gewöhnlich muss man JavaScript nicht dazu überreden, Zahlen als Float (oder auch Double) zu nutzen.
Dass JavaScript hier von sich aus rundet, scheint an einem falsch erkannten Datentyp zu liegen.
Der Input wird als Integer betrachtet, weshalb beim Teilen durch 10 wieder Integer als Datentyp verwendet wird. Da wird der Fehler liegen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

zinnik
Beiträge: 174
Registriert: 7. Sep 2021 11:28
Answers: 0

Re: Nervige kommastellen ändern

Beitrag von zinnik »

ok und was könnte ich noch machen?

Ich hab es jetzt so probiert, aber es zeigt immer auch nur volle Zahlen an.

Was gehen würde ist im item wieder der "State Description" mit " %.1f"
Was aber vermutlich wieder nur der Anzeige dient.

Code: Alles auswählen

(function(i) {
return (i/10).toFixed(1);
})(input)
Also diese Funktion rundet auch auf Volle Zahlen
openhab 4.1.0.M Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v8.3.3 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 8kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

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

Re: Nervige kommastellen ändern

Beitrag von udo1toni »

Also, ich habe gerade noch mal nachgesehen, weil so wahnsinnig firm bin ich mit JavaScript auch nicht. Grundsätzlich werden Zahlen wohl immer als double betrachtet.
.toFixed() erzeugt einen String, der die Zahl mit der gewählten Anzahl Nachkommastellen enthält.

Wie erwähnt ist toFixed ohnehin nicht der richtige Anasatz, jetzt aber umso mehr :)

Du möchtest, dass der Wert in openHAB als Zahl verarbeitet wird, nicht als Text. Text kann z.B. nicht auf < oder > verglichen werden.

Schritt eins ist also, den Wert als Zahl korrekt zu interpretieren und das Komma an die richtige Stelle zu schieben (mit dem Teilen durch zehn).
Schritt zwei ist, die Darstellung zu beeinflussen - das geschieht nicht im Profile, sondern in den Metadaten des Items, Stichwort ist State Description.
Dort kannst Du mit der Angabe f.1% im Feld "Pattern" die Begrenzung der Anzeige auf eine Nachkommastelle setzen.

Nun bleibt aber die Frage, warum 245 / 10 dann 25 ergeben soll.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

zinnik
Beiträge: 174
Registriert: 7. Sep 2021 11:28
Answers: 0

Re: Nervige kommastellen ändern

Beitrag von zinnik »

Hallo Udo

Ja wie im vorigen Post geschrieben werde ich es so auch machen.

Die Function lautet jetzt so:

Code: Alles auswählen

(function(i) {
return (i/10).toFixed(1);
})(input)
Und im Item selber unter "State Description" habe ich bei Pattern: %.1f
eingetragen.

So bekomme ich jetzt die Zahl mit Komma

Was nun komisch ist das,dass Thing nun immer Offline geht weiss aber nicht genau ob es damit zu tun hat.

Oje das macht mich noch verrückt.
openhab 4.1.0.M Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v8.3.3 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 8kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

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

Re: Nervige kommastellen ändern

Beitrag von udo1toni »

Ich verstehe nicht, was Du immer mit Deinem toFixed() hast. Aber sei's drum.

Aus welchem Binding kommen die Daten?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

zinnik
Beiträge: 174
Registriert: 7. Sep 2021 11:28
Answers: 0

Re: Nervige kommastellen ändern

Beitrag von zinnik »

udo1toni hat geschrieben: 10. Okt 2022 01:57 Ich verstehe nicht, was Du immer mit Deinem toFixed() hast. Aber sei's drum.

Aus welchem Binding kommen die Daten?
Die Daten kommen aus dem Tuya Binding und ich möchte das Raum Thermostat Ketotek
steuern

Was ich auch noch festgestellt habe das mit der Js Transformation das item in der sitmap oder Habpanel sich nicht mehr steuern lässt es springt sofort auf 5°.
Lasse ich jedich das Profil im Item auf Standard und speichere ohne Js Transformation dann funktioniert es einwandfrei.

Hast du noch eine Idee Udo1Toni?
openhab 4.1.0.M Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v8.3.3 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 8kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

zinnik
Beiträge: 174
Registriert: 7. Sep 2021 11:28
Answers: 0

Re: Nervige kommastellen ändern

Beitrag von zinnik »

Hallo

Also ich habe jetzt nochmal einiges Probiert um das Thermostat ordentlich zu steuern.

Aber bekomme keine vernünftige Lösung hin. Die Frage ist halt, ich möchte mir mehrere für ganze haus anschaffen aber vor her sollte das ordentlich laufen.

Der Stand ist jetzt so:
Thermostat Ketotek 0155B 3A für Fussbodenheizung.
Thermostat lässt sich über Smartlife App oder Tuya wunderbar steuern.
In Openhab mit Tuya Bindung über Lokale IP eingebunden.... IP ist fest vergeben über Fritzbox.
Thermostat ist unter Tuya Cloud Project registriert um an Device ID, Local ID und Product ID zu kommen.
In openhab liefert das Thermostat unter dem Channel Tempset werte von 210 anstatt 21 °C und
Tempcurrent genauso.

der Channel sieht so aus: Wo bei mir nicht ganz klar ist was die zahlen bedeuten.

Code: Alles auswählen

id: TempSet
    channelTypeUID: tuya:number
    label: TempSet
    description: null
    configuration:
      dp: 2
      max: 700
      min: 5
Das Item schaut so aus:
Screenshot (209).png
Das Profil ist als JS Transformation mit die Function eingetragen: Damit ich die zb.: 210 auf 21 bekomme.

Code: Alles auswählen

(function(i) {
return (i/10);
})(input)
Soweit funktioniert alles, wenn ich nun aber in der Sitemap ein "Setpoint Widget" setze, zb. so :

Code: Alles auswählen

Setpoint icon="temperature" label="Temp setzen" item=ThermostatKueche_TempSet minValue=5 maxValue=35 step=0.5
Und ich will auf 21.5 setzen dann springt die Anzeige kurz auf 21.5 und in weniger als eine Sekunde auf 5 und das passiert auch in der Smartlife App.

Im openhab log erhalte ich folgendes:

Code: Alles auswählen

2022-10-21 12:50:21.081 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'ThermostatKueche_TempSet' received command 21.5
2022-10-21 12:50:21.083 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'ThermostatKueche_TempSet' predicted to become 21.5
2022-10-21 12:50:21.086 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ThermostatKueche_TempSet' changed from 21.0 to 21.5
2022-10-21 12:50:21.195 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ThermostatKueche_TempSet' changed from 21.5 to 5.0

In der Smartlife App springt er dann auch auf 5°C.

Ich weiss nicht was ich noch machen kann.

Mache ich das allerdings ohne die JS Function dann funktioniert die Steuerung aber dann zeigt er mir immer 210 anstatt 21 an.

In der Sitemap könnte man die Ansicht vielleicht noch verändern aber im habpanel als Widget wird wieder 210 angezeigt.

Ich brauche dringend euere Hilfe!!!!
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openhab 4.1.0.M Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v8.3.3 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 8kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

Antworten