Script soll Systemvariable einstellen

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
ImKeBu
Beiträge: 91
Registriert: 02.04.2016, 12:48

Script soll Systemvariable einstellen

Beitrag von ImKeBu » 27.05.2017, 10:04

Morgen zusammen,
ich hab 2 Systemvariablen als Zahl eingerichtet

Temperatur_min und Temperatur_max.

Drücke man nun den Taster für die Sommerzeit, sollen die Werte von Temperatur_min auf 10 und der für Temperatur_max auf 12 festgelegt werden, das Scrit sieht so aus

Code: Alles auswählen

***
integer n = dom.GetObject("Temperatur_min").Value().ToInteger()  = 10;
dom.GetObject("Temperatur_min").State(n.ToString(0));

integer n = dom.GetObject("Temperatur_min").Value().ToInteger()  = 12;
dom.GetObject("Temperatur_min").State(n.ToString(0));

***
Wenn ich aber auf die Taste drücke werden die Werte nicht übernommen. Was muß ändern ?

Gruß
Andreas
Zuletzt geändert von Herbert_Testmann am 27.05.2017, 13:36, insgesamt 1-mal geändert.
Grund: Code tag eingefügt
umgestiegen auf CCU3. Die CCU2 bleibt auf Reserve

88 Geräte, 133 Programme und 75 SystemVariablen An Geräte Handsender , Statusanzeige LED 16 , Temeratur/Feuchtesensor außen , Tür- Fensterkontakte ( reed ) , Bewegungsmelder innen , Display Statusanzeige , Display Wandtaster 2 fach AP , E-Paper Display , Tür/Fensterkontakte optisch , Schaltaktor mit Leistungsmessung , Innensirene , Gong mit Signalleuchte , Rauchmelder , Schaltaktor 1fach UP , Heizkörperthermostate , Wandtaster 2fach , Wandthermonstate

ImKeBu
Beiträge: 91
Registriert: 02.04.2016, 12:48

Re: Script soll Systemvariable einstellen

Beitrag von ImKeBu » 27.05.2017, 10:13

Hab geschafft,
ich muße das Script wie folg ändern

Code: Alles auswählen

***
string MIN = 10;
dom.GetObject("Temperatur_min").State(MIN);

string MAX = 12;
dom.GetObject("Temperatur_max").State(MAX);

***
Nun gehts
Zuletzt geändert von Herbert_Testmann am 27.05.2017, 13:37, insgesamt 1-mal geändert.
Grund: Code tag eingefügt
umgestiegen auf CCU3. Die CCU2 bleibt auf Reserve

88 Geräte, 133 Programme und 75 SystemVariablen An Geräte Handsender , Statusanzeige LED 16 , Temeratur/Feuchtesensor außen , Tür- Fensterkontakte ( reed ) , Bewegungsmelder innen , Display Statusanzeige , Display Wandtaster 2 fach AP , E-Paper Display , Tür/Fensterkontakte optisch , Schaltaktor mit Leistungsmessung , Innensirene , Gong mit Signalleuchte , Rauchmelder , Schaltaktor 1fach UP , Heizkörperthermostate , Wandtaster 2fach , Wandthermonstate

ImKeBu
Beiträge: 91
Registriert: 02.04.2016, 12:48

Re: Script soll Systemvariable einstellen

Beitrag von ImKeBu » 27.05.2017, 10:33

Ok mom bekomme ich ' 10.00 ' angezeigt , als Ausgabe brache ich nur die Zahlen vor dem Komma, was muß ich umstellen ?

Andreas.
umgestiegen auf CCU3. Die CCU2 bleibt auf Reserve

88 Geräte, 133 Programme und 75 SystemVariablen An Geräte Handsender , Statusanzeige LED 16 , Temeratur/Feuchtesensor außen , Tür- Fensterkontakte ( reed ) , Bewegungsmelder innen , Display Statusanzeige , Display Wandtaster 2 fach AP , E-Paper Display , Tür/Fensterkontakte optisch , Schaltaktor mit Leistungsmessung , Innensirene , Gong mit Signalleuchte , Rauchmelder , Schaltaktor 1fach UP , Heizkörperthermostate , Wandtaster 2fach , Wandthermonstate

Xel66
Beiträge: 14162
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 585 Mal
Danksagung erhalten: 1499 Mal

Re: Script soll Systemvariable einstellen

Beitrag von Xel66 » 27.05.2017, 11:07

Vor der Anzeige in einen String wandeln, was aber für die Weiterverwendung als Rechen- oder Sollwert nicht wirklich zielführend ist. Mit Worten kann man nicht rechnen, auch wenn sie aus Ziffern bestehen. Ansonsten bräuchte man für Deine simple Aufgabe auch kein Script. Das kann man mit Bordmitteln und einem GUI-Programm auch erreichen. Aber es hat sich im Forum leider durchgesetzt, jede Banalität als Script abbilden zu müssen. Do it the hard way.

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

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

Re: Script soll Systemvariable einstellen

Beitrag von alchy » 27.05.2017, 16:39

ImKeBu hat geschrieben:Hab geschafft,
...
Ok mom bekomme ich ' 10.00 ' angezeigt , als Ausgabe brache ich nur die Zahlen vor dem Komma, was muß ich umstellen ?
Xel66 hat geschrieben:Vor der Anzeige in einen String wandeln,
na dann aber auch in eine Stringvariable speichern, sonst geht das auch wieder schief.
Er hat ja eine Zahlenvariable in Benutzung, die hat per se eben Nachkommastellen.



Um es abzukürzen:
Das was du willst, geht ganz einfach per Programm.
sysvar_perprog.jpg
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.

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“