Übergabe einer Variable auf eine andere in einen Skript

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
chris1780
Beiträge: 4
Registriert: 03.12.2018, 21:01

Übergabe einer Variable auf eine andere in einen Skript

Beitrag von chris1780 » 03.12.2018, 21:07

Hallo,
ich bin recht neu in der Skript Programmierung und Versucher gerade bei einen if Anweisung einer Variable den neue Wert zu zuweisen aber ich bekomme es nicht hin. Kann mir hierbei wer weiter helfen? Wo liegt mein Fehler? Es Handelt sich hierbei um Systemvariabeln.
hier mein Versuch:
real Heiz_Wohn_Soll_neu = dom.GetObject("Heiz_Wohn_Sollwert_Neu").Value(); ! real Var wird hier die Systemvariable Heiz_Wohn_Sollwert_Neu zugewiesen
real Heiz_Wohn_Soll_alt = dom.GetObject("Heiz_Wohn_Sollwert_Alt").Value(); ! real Var wird hier die Systemvariable Heiz_Wohn_Sollwert_Alt zugewiesen

if ( Heiz_Wohn_Soll_neu <> Heiz_Wohn_Soll_alt)
{ dom.GetObject("Heiz_Wohn_Sollwert_Alt").State(dom.GetObject("Heiz_Wohn_Sollwert_Neu").State();! der var Heiz_Wohn_Soll_neu zugewiesen
}
Grüße Chris
Zuletzt geändert von chris1780 am 04.12.2018, 09:43, insgesamt 1-mal geändert.

manfredh
Beiträge: 4155
Registriert: 09.09.2012, 10:41
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 78 Mal
Danksagung erhalten: 301 Mal

Script: Zuweisung eines neuen Wertes einer SV funktioniert nicht

Beitrag von manfredh » 04.12.2018, 09:07

Liebe Admins - könnt ihr vielleicht die Möglichkeit schaffen, Themen ganz ohne Betreff einzustellen?

Da muss man sich wenigstens nicht mehr über solch wahnsinnig aussagekräftige Beschreibungen ärgern. :mrgreen:
Zuletzt geändert von manfredh am 04.12.2018, 09:24, insgesamt 1-mal geändert.
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

Sven_A
Beiträge: 4152
Registriert: 26.01.2016, 08:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Renningen
Hat sich bedankt: 346 Mal
Danksagung erhalten: 281 Mal

Re: Systeme

Beitrag von Sven_A » 04.12.2018, 09:09

chris1780 hat geschrieben:
03.12.2018, 21:07
...aber ich bekomme es nicht hin. Kann mir hierbei wer weiter helfen?...
Vom Betreff mal abgesehen... bekommst du denn eine Fehlermeldung? Oder was passiert? Oder was passiert nicht? So wird dir kaum einer helfen wollen.

chris1780
Beiträge: 4
Registriert: 03.12.2018, 21:01

Re: Systeme

Beitrag von chris1780 » 04.12.2018, 09:18

Oh Entschuldigung!

Der Wert wird nicht übergeben, wenn ich beide Variablen anzeigen lasse in einen App über neo. Ändert sich der Wert nicht in dem Alten den ich versuche zu überschreiben!

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

Re: Übergabe einer Variable auf eine andere in einen Skript

Beitrag von Xel66 » 04.12.2018, 10:42

Vielleicht lässt Du mal raus, was Du damit erreichen willst. Denn Systemvariablen mit z.B. Sollwerten von Thermostaten beschreiben kann man auch ganz einfach via WebUI und einem Programm. Das Geheimnis liegt einerseits an der Bindung der Systemvariable an ein Gerät (muss nicht, ist aber ganz nüztlich) und dem "weißen Zettel" hinter der zu füllenden Systemvariablen. Hier kann man Werte übergeben und auch wieder holen.

Hier habe ich mal ein Beispiel gebracht, wie ich eine Solltemperatur einer Heizung zwischenspeichere und wieder setze. Das dient der zeitverzögerten Absenkung der Solltemperatur, solange die Haustür geöffnet ist (soll aber aus Batteriespargründen nicht wie bei der Direktverknüpfung zum TFK gleich beim kurzzeitigen Öffnen für das Raus- oder Reingehen passieren). Und hier etwas Ähnliches zum reinen Zwischenspeichern und Protokollieren einer Solltemperatur. Vielleicht kannst Du ja aus den Beispielen was für Dich ableiten.

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

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

Re: Übergabe einer Variable auf eine andere in einen Skript

Beitrag von dtp » 04.12.2018, 14:44

Und nur mal so nebenbei:

Code: Alles auswählen

dom.GetObject("Heiz_Wohn_Sollwert_Alt").State(dom.GetObject("Heiz_Wohn_Sollwert_Neu").State();
Da fehlt eine geschlossene Klammer. Aber wozu fragst du den Inhalt der Systemvariablen noch mal ab, wenn du ihn doch schon hast?

Code: Alles auswählen

(dom.GetObject(ID_SYSTEM_VARIABLES).Get("Heiz_Wohn_Sollwert_Alt")).State(Heiz_Wohn_Soll_neu);
Ach so, Skriptcode bitte in Codetags setzen, nicht in Quotas.
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.

chris1780
Beiträge: 4
Registriert: 03.12.2018, 21:01

Re: Übergabe einer Variable auf eine andere in einen Skript

Beitrag von chris1780 » 05.12.2018, 13:16

Hallo

vielen Dank für die Antworten
@ xell66 Ich habe es jetzt grafisch probiert und geht auch. Danke
@dtp Ich wollte damit den Wert der Variabel Neu in die Variabel alt schreiben um ihn mir zu merken.
Wenn ich das richtig verstanden habe, muss ich doch im Homematic skript nur die Variable neu in die alte über den Befehl übergeben.
Bin ich bin bei der Zuweisung der Variablen noch etwas unsicher. Wie das funktioniert!!! Habe Jahre lang SPS Programmiert auch in Skripten und da empfand ich das einfacher Eingänge und Ausgänge Werte zu zuweisen. :oops: :oops:

Grüße Chris

Antworten

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