[GELÖST] Mathematik

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

dtp
Beiträge: 8589
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 76 Mal
Danksagung erhalten: 213 Mal

Re: [GELÖST] Mathematik

Beitrag von dtp » 29.07.2020, 10:42

Black hat geschrieben:
29.07.2020, 10:29
das ist fieserweise nicht so ganz richtig....
Danke für deine Erläuterungen. Aber meine Aussage bezog sich nur auf den Variablentyp des Ergebnisses und nicht auf dessen Wert. Insofern war sie schon richtig. 8)

Ganz gemein wird's, wenn man besonders "schlau" sein will und einfach zur Sicherheit noch ein ".ToFloat()" hinten dran setzt. Bekanntermaßen wird ein Skript ja nicht ausgeführt, wenn man einen Real-Wert mit ".ToFloat()" behandelt. Andererseits stellt ".ToInteger()" auf einen Integer-Wert kein Problem dar.

Ich hatte nun das zusätzliche Problem, dass ich mit einer String-Variablen (ausgehend von dom.GetObject($src$).Value()) einen Mittelwert berechnen wollte, die sowohl ganzzahlig, als auch reell, als auch boolesch sein kann. Und wenn man dann auch noch mehrere if-Bedingungen in Abhängigkeit von dem Ergebnis im Skript hat, kann es schon mal zum Haare raufen sein. Aber ich hab's mittlerweile in den Griff bekommen. :wink:
Zuletzt geändert von dtp am 29.07.2020, 10:55, insgesamt 2-mal geändert.
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: 3084
Registriert: 12.09.2015, 22:31
System: Alternative CCU (RaspberryMatic etc.)
Wohnort: Wegberg
Hat sich bedankt: 48 Mal
Danksagung erhalten: 228 Mal
Kontaktdaten:

Re: [GELÖST] Mathematik

Beitrag von Black » 29.07.2020, 10:46

so gedeutet hat du natürlich auch recht, das Endergebnis wird, wie du korrekt angemerkt hast. den Typ des obersten Stackelementes haben, was in Zeilenschreibschrift das erste (ganz Liniks stehende ) Element der Gleichung ist.

Nur Zwischendrin gelten diese Typkonversionsregeln natürlich auch, und das ist halt ein beliebter Fehler.

Black
Die Wahrheit ist ein Chor aus Wind
Meine Seite, ok noch bisschen im Aufbau

RaspberryMatic 3.51.6.20200420 mit Groundplane Antennenmod
jede Menge Sensoren und Aktoren, Logamatic 2107 Gateway zum Buderus Kessel
ioBroker unter ProxMox auf NUC als Hauptsteuersystem und Visualisierung
Script Time Scheduler V1.3
Howto - AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 4.01.08B Scripteditor und Objektinspektor

technical contribution against annoying advertising

Benutzeravatar
jmaus
Beiträge: 5993
Registriert: 17.02.2015, 14:45
System: Alternative CCU (RaspberryMatic etc.)
Wohnort: Dresden
Hat sich bedankt: 16 Mal
Danksagung erhalten: 336 Mal
Kontaktdaten:

Re: [GELÖST] Mathematik

Beitrag von jmaus » 29.07.2020, 14:19

dtp hat geschrieben:
29.07.2020, 10:42
Black hat geschrieben:
29.07.2020, 10:29
das ist fieserweise nicht so ganz richtig....
Ganz gemein wird's, wenn man besonders "schlau" sein will und einfach zur Sicherheit noch ein ".ToFloat()" hinten dran setzt. Bekanntermaßen wird ein Skript ja nicht ausgeführt, wenn man einen Real-Wert mit ".ToFloat()" behandelt. Andererseits stellt ".ToInteger()" auf einen Integer-Wert kein Problem dar.
Na wenn das wirklich so ist, dann solltest du ggf im RaspberryMatic GitHub einfach mal ein ReGaHss bezogenes Ticket dazu aufmachen denn es sollte ein leichtest sein das ToFloat() auf für ein float typ zuzulassen und einfach dann den float wert zurück zu liefern statt ein runtime error zu erzeugen...
RaspberryMatic 3.51.6.20200621 @ ESXi mit ~180 HomeMatic Geräten + ioBroker – GitHubGitHub Sponsors / PayPalTwitter


alchy
Beiträge: 9714
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 18 Mal
Danksagung erhalten: 255 Mal

Re: [GELÖST] Mathematik

Beitrag von alchy » 29.07.2020, 20:43

Was soll denn das? jmaus, als ob du es nicht wüsstest :shock:

.ToFloat() ist nur auf Variablentyp string anwendbar.
.ToInteger() dagegen auf Variablentypen integer, boolean, real, string, time

Alchy

.................... 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.

MichaelN
Beiträge: 689
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 50 Mal
Danksagung erhalten: 61 Mal

Re: [GELÖST] Mathematik

Beitrag von MichaelN » 29.07.2020, 20:44

Deswegen ist es auch ein Feature request und kein Bug Report :roll:

Benutzeravatar
jmaus
Beiträge: 5993
Registriert: 17.02.2015, 14:45
System: Alternative CCU (RaspberryMatic etc.)
Wohnort: Dresden
Hat sich bedankt: 16 Mal
Danksagung erhalten: 336 Mal
Kontaktdaten:

Re: [GELÖST] Mathematik

Beitrag von jmaus » 29.07.2020, 23:27

alchy hat geschrieben:
29.07.2020, 20:43
Was soll denn das? jmaus, als ob du es nicht wüsstest :shock:
Nöh, ich bin vergesslich wie du und jeder andere und hab darüberhinaus auch noch besseres zu tun als mich nur um ReGaHss zu kümmern. Insofern kann, will und muss ich auch nicht alles rund um die ReGa wissen oder mir merken.
.ToFloat() ist nur auf Variablentyp string anwendbar.
.ToInteger() dagegen auf Variablentypen integer, boolean, real, string, time
Und was spricht dagegen das jetzt zu ändern und .ToFloat() auch auf andere Datentypen anwendbar zu machen? Denn die Argumentationen die bisher für die Implementierung des selbigen gegeben wurden erscheinen mir schlüssig zu sein.
RaspberryMatic 3.51.6.20200621 @ ESXi mit ~180 HomeMatic Geräten + ioBroker – GitHubGitHub Sponsors / PayPalTwitter

alchy
Beiträge: 9714
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 18 Mal
Danksagung erhalten: 255 Mal

Re: [GELÖST] Mathematik

Beitrag von alchy » 30.07.2020, 22:01

jmaus hat geschrieben:
29.07.2020, 23:27
Nöh, ich bin vergesslich .... und hab darüberhinaus auch noch besseres zu tun
Da ist absolut überhaupt nichts dagegen zu sagen :!:

aber
jmaus hat geschrieben:
29.07.2020, 14:19
Na wenn das wirklich so ist
das ist dann doch "XXXXXXX". :lol:
jmaus hat geschrieben:
29.07.2020, 23:27
Und was spricht dagegen das jetzt zu ändern
Hab ich ja nicht behauptet, das etwas dagegen spräche. :shock:

Alchy

.................... 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.

Antworten

Zurück zu „RaspberryMatic“