Abschneiden eines Strings

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
AdminKare
Beiträge: 4
Registriert: 23. Feb 2018 19:11
Answers: 0

Abschneiden eines Strings

Beitrag von AdminKare »

Guten Aben,

ich habe derzeit folgendes Problem, ich bekomme von meinem Netatmo einen Temperaturwert mit 2 Nachkommastellen geliefert. Den Wert wandle ich derzeit in einen String um und schick ihn mir dann über den Telegram Messenger Dienst an mein Handy. Der wert wird immer mit 2 Nachkommastellen ausgegeben (z. B. 3,20 °C). Da die letzte Position des Strings immer eine "0" ist würde ich diese gerne abschneiden. Kann mir jemand weiterhelfen wie das funktioniert?

val String Aussentemperatur = Netatmo_Aussen_Temperatur.state.toString
sendTelegram("bot1", "Außentemperatur: %s °C", Aussentemperatur)

Bisher bin ich nur auf die substring(,) funktion gestoßen,

Aussentemperatur = Aussentemperatur.substring(0,3)

die mir leider nicht wirklich weiter hilft, da dies natürlich nur funktioniert, solange die Temperaturwerte im einstelligen Bereich sind.

Über Hilfe wäre ich sehr dankbar.

MfG
AdminKare

AdminKare
Beiträge: 4
Registriert: 23. Feb 2018 19:11
Answers: 0

Re: Abschneiden eines Strings

Beitrag von AdminKare »

Hab das ganze hin bekommen, fals es jemenaden interessiert, hier meine Lösung mit umwegen:
rule.PNG
1.) Ich habe die Temperatur zunächst in einen String umgewandelt und als Variable (Aussentemperatur) gespeichert.

2.) Danach habe ich mir überlegt wieviele Stellen mindestens bzw. höchstens vorkommen können (min. 4, z.B. 1.00 °C) (max. 6, z.B. -20.00 °C)

3.) Danach hänge ich soviele Zeichen an den String Aussentemperatur, dass aus dem mindestwert (bei mir 4 Stellen) mehr als der Höchstwert (bei mir 6 Stellen) wird. (Wichtig: Es müssen Zeichen angehangen werden, die nicht im eigentlichen Wert vorkommen, ich habe den Buchstaben "n" gewählt)

4.) In einer schleife prüfe ich wieviele Stellen des neuen Strings nicht dem angehangenen Buchstaben (bei mir "n") entsprechen. (Damit lässt sich feststellen, wieviele Stellen der ursprüngliche Wert hatte, somit lässt sich so auch die länge eines Strings ermitteln)

5.) Danach sende ich mit der funktion .substring nur soviele Zeichen wie von mir gewünscht über den Telegram Messenger an mein Handy. (das Ergebnis: aus aktuell kalten -2.20 °C werden -2.2 °C)

Als nächstes werde ich die rule so umbauen, dass es mir nur eine Nachricht schickt, wenn der wert unter 0 Grad fällt.

Mit freundlichen Grüßen

AdminKare
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten