.ToFloat() -> Bug oder Feature?

Fehler in Firmware und WebUI & Workarounds

Moderator: Co-Administratoren

Antworten
dtp
Beiträge: 10655
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

.ToFloat() -> Bug oder Feature?

Beitrag von dtp » 04.03.2020, 07:27

Hallo,

folgendes Skript liefert den korrekten Output "9":

Code: Alles auswählen

integer test = 9.4;
test = test.ToInteger();
WriteLine(test);
Aber mit ".ToFloat()" bricht das Skript ab.

Code: Alles auswählen

real test = 9.4;
test = test.ToFloat();
WriteLine(test);
Bug oder Feature?
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Benutzeravatar
Black
Beiträge: 5460
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 417 Mal
Danksagung erhalten: 1069 Mal
Kontaktdaten:

Re: .ToFloat() -> Bug oder Feature?

Beitrag von Black » 04.03.2020, 08:11

ein real hat keine methode .ToFloat ().

In diesem Fall sitzt der fehler vor dem Monitor ^^

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

jp112sdl
Beiträge: 12072
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 846 Mal
Danksagung erhalten: 2138 Mal
Kontaktdaten:

Re: .ToFloat() -> Bug oder Feature?

Beitrag von jp112sdl » 04.03.2020, 08:12

Und laut Doku, Seite 19:
ToFloat: Wandelt eine Zeichenkette in eine Gleitkommazahl um.
Also alles ok.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

dtp
Beiträge: 10655
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: .ToFloat() -> Bug oder Feature?

Beitrag von dtp » 04.03.2020, 09:50

Ah, okay. Da habe ich wohl etwas zu naiv gedacht, dass das Ursprungsformat keine Rolle spielt. Danke.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

alchy
Beiträge: 10744
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 671 Mal

Re: .ToFloat() -> Bug oder Feature?

Beitrag von alchy » 04.03.2020, 18:10

Wobei schon die erste Zeile falsch ist. :|

Code: Alles auswählen

integer test = 9.4;
da die automatische Typumwandlung da schon ein real draus macht, egal ob du das als integer deklarierst.
Dann wandelst du es zu integer....

.ToFloat() funktioniert aber wirklich weder bei integer ( das halte ich zumindest für fragwürding)
noch bei real (macht keinen Sinn, also halte ich es für richtig - nur warum wird abgebrochen also schlussendlich auch fragwürdig?

Aber das ist zumindest konsequent. :wink:
Und da es so konsequent umgesetzt ist, wird mittels .ToFloat() aus ein
string test = "9,4"; ! wird zu 9.000000
string test = "9.4"; ! wird zu 9.400000
string test = "string" ! wird zu 0.000000

kann man köstlich drüber diskutieren. Muss man aber nicht.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

dtp
Beiträge: 10655
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: .ToFloat() -> Bug oder Feature?

Beitrag von dtp » 05.03.2020, 08:09

alchy hat geschrieben:
04.03.2020, 18:10
Wobei schon die erste Zeile falsch ist. :|
Nun ja, das war schon Absicht so. ;)

Aber danke für deine weiteren Ausführungen. Die bestätigen mich zumindest, dass ich nicht total daneben lag. 8)
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

alchy
Beiträge: 10744
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 671 Mal

Re: .ToFloat() -> Bug oder Feature?

Beitrag von alchy » 05.03.2020, 21:08

dtp hat geschrieben:
05.03.2020, 08:09
Nun ja, das war schon Absicht so. ;)


Absicht, achso, na dann habe ich nix gesagt. :mrgreen:


Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

dtp
Beiträge: 10655
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: .ToFloat() -> Bug oder Feature?

Beitrag von dtp » 08.06.2020, 18:53

Übrigens, sehr angenehm finde ich folgende Eigenschaft:
2020-06-08 18-50-59.png
2020-06-08 18-50-59.png (6.59 KiB) 2980 mal betrachtet
Sprich, wenn in einem String Zeichen nach einem Zahlenwert folgen, die keine Ziffern sind, werden sie automatisch bei .ToInteger() und .ToFloat() ignoriert.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

MichaelN
Beiträge: 9534
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 692 Mal
Danksagung erhalten: 1604 Mal

Re: .ToFloat() -> Bug oder Feature?

Beitrag von MichaelN » 08.06.2020, 19:30

Ja, so könnte man beim XML parsen schön Quick and dirty programmieren. Ich habe es trotzdem ordentlich gemacht, wer weiß was das nächste oder übernächste Release aus diesem Feature macht.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Antworten

Zurück zu „HomeMatic - bekannte Bugs“