Pass.telekom.de Abfragen

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

Antworten
pep
Beiträge: 64
Registriert: 30.11.2014, 18:43

Pass.telekom.de Abfragen

Beitrag von pep » 01.02.2016, 14:08

Hallo Leute,

ich habe zu Hause Call & Surf Comfort via Funk und kann per pass.telekom.de mein noch freies Datenvolumen abfragen. Das wollte ich jetzt als Variable in die CCU2 schreiben.

Mein Problem ist jetzt gerade folgendes:

Ich habe die Varaiable "verbrauch": "258,15 " vom Type String.

Wenn ich jetzt

Code: Alles auswählen

var test = verbrauch.ToInteger();
Bekomme ich leider nur 258.

Code: Alles auswählen

var test = verbrauch.ToReal();
geht leider nicht. warum auch immer.

Code: Alles auswählen

var test = verbrauch.ToFloat();
Ergibt leider 258.000000

Wie mache ich am besten aus dem String "258,15 " ein Float/Real Wert?

Sobald das Script läuft, würde ich es hier zur Verfügung stellen.

DrTob
Beiträge: 3426
Registriert: 29.10.2010, 08:24
Danksagung erhalten: 5 Mal

Re: Pass.telekom.de Abfragen

Beitrag von DrTob » 01.02.2016, 16:32

ToFloat erwartet wohl einen Punkt als Dezimaltrenner. Ersetze das Komma vor der Konvertierung.

pep
Beiträge: 64
Registriert: 30.11.2014, 18:43

Re: Pass.telekom.de Abfragen

Beitrag von pep » 02.02.2016, 07:59

DrTob hat geschrieben:ToFloat erwartet wohl einen Punkt als Dezimaltrenner. Ersetze das Komma vor der Konvertierung.
Das war bisher auch meine Lösung. Gibt es denn einen schöneren Weg, das Komma zu ersetzen als mit 3 Zeilen Code:

Code: Alles auswählen

!---- Komma im Verbrauch durch ein Punkt ersetzen -----------------
integer StellePunkt  = verbrauch.Find(",");
Vorkomma = verbrauch.Substr(0,StellePunkt);
verbrauch = verbrauch.Substr(StellePunkt - 4, 4) # "." #  verbrauch.Substr(StellePunkt + 1, 10);

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“