nicht unbedingt, wenn deine Sysvars vom typ string sind kommt genau das dabei raus.
und noch ein Tip, direkt dran gewöhnen, systemvariablen im richtigen Namensraum zu greifen.
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("NameDerSysVar").State ();
damit vermeidet man Fehler bei gleichen Namen in unterscheidlichen namenräumen
Black
HM Script Variable addieren
Moderator: Co-Administratoren
- Black
- Beiträge: 5480
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: HM Script Variable addieren
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
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
-
- Beiträge: 14164
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 585 Mal
- Danksagung erhalten: 1500 Mal
Re: HM Script Variable addieren
Wenn Du zwei Strings aneinanderfügst, dann kommt genau das raus. Aus Oma und Opa wird nun mal nur OmaOpa und nicht Großeltern. Wenn Du mathematisch addieren willst, dann musst Du auch die mathematische Notation benutzen. Die Scriptingengine hält noch mehr Überraschungen bereit (z.B. Rechnung von rechts nach links), dass es dringend geboten ist, die Doku (auch wenn sie sehr rudimentär ist) zu lesen.
Gruß Xel66
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
-
- Beiträge: 50
- Registriert: 14.03.2016, 08:11
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 1 Mal
Re: HM Script Variable addieren
Hallo,
berechne ich falsch? oder ist die Ausgabe nicht richtig?
Ausgabe ist:
[*]523.51
326.54
346.03
523.51
berechne ich falsch? oder ist die Ausgabe nicht richtig?
Code: Alles auswählen
real a = (dom.GetObject(ID_SYSTEM_VARIABLES)).Get("Shelly_3EM_Hauptzaehler_Leistung1");
real b = (dom.GetObject(ID_SYSTEM_VARIABLES)).Get("Shelly_3EM_Hauptzaehler_Leistung2");
real c = (dom.GetObject(ID_SYSTEM_VARIABLES)).Get("Shelly_3EM_Hauptzaehler_Leistung3");
real d =a+b+c;
WriteLine(a.Value());
WriteLine(b.Value());
WriteLine(c.Value());
WriteLine(d.Value());
[*]523.51
326.54
346.03
523.51
- Black
- Beiträge: 5480
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: HM Script Variable addieren
DU versuchst da Objekte zu addieren.
(Zu beachten den Typwechsel Deklariert Real nach Object, das was ich gelb markiert habe)
Wobei ich aber mal schnell zur Demonstration 2 Sysvars aus meinem Testsystem genommen habe, reicht aber zum Effekt vorführen.
Is Natürlich quatsch sowas.
Schreibs mal so, dann wirds richtiger:
Grund: das dom.GetObject(ID_SYSTEM_VARIABLES).Get("Shelly_3EM_Hauptzaehler_Leistung1") referenziert das Objekt der Systemvarialen, nicht deren Wert. dafür brauchts das .Value();
Black
(Zu beachten den Typwechsel Deklariert Real nach Object, das was ich gelb markiert habe)
Wobei ich aber mal schnell zur Demonstration 2 Sysvars aus meinem Testsystem genommen habe, reicht aber zum Effekt vorführen.
Is Natürlich quatsch sowas.
Schreibs mal so, dann wirds richtiger:
Code: Alles auswählen
real a = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Shelly_3EM_Hauptzaehler_Leistung1").Value();
real b = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Shelly_3EM_Hauptzaehler_Leistung2").Value();
real c = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Shelly_3EM_Hauptzaehler_Leistung3").Value();
real d =a+b+c;
WriteLine(a);
WriteLine(b);
WriteLine(c);
WriteLine(d);
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
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