Seite 1 von 1

Unerklärliches Verhalten der CCU

Verfasst: 12.06.2019, 12:34
von Lukas1979
Hallo zusammen,

ich bin gerade bei mir über eine völlig unverständliches "Ding" gestolpert. Ich habe eine Script laufen das etwas mit der Aussentempratur berechnet. Das Script ist so aufgebaut das es das nur tut wenn die Aussentemperatur über 14 Grad ist. Darünter wird es nicht benötigt. Somit hab ich eine If Afrage ob die Temperatur über 14 Grad ist.

Code: Alles auswählen

if ((old)&&(realtemp>Raumtemp)){

		if (CurTemp.Value()>14.0){
	dom.GetObject("Sprachausgabe").DPByHssDP("SUBMIT").State("0.8,1,108000,229,242");
	}
gesagt getan. Läuft. Das läuft und macht genau das was es gänzlich soll (Das Script ist in seine ganzen länge sehr viel länger. Hier aber nur er interessante Teil).

Eben wollte ich das Script anpassen. Ich öffne es kopiere es raus um zu bearbeiten. Stosse dabei über CurTemp.Value() in der if Abfrage. Klar hier wird geprüft ob es über 14 Grad ist. jetzt wird es spannend. Im Orginal Script das auch läuft steht CurTemp.Value() nur die Variable "CurTemp" gibts gar nicht mehr in dem Script. Sie ist bei einer anderen erweiterung raus geflogen. Dafür gibts realtemp (als Int).
Teste ich das Script im Testfenster geht es natürlich nicht weil ja logisch CurTemp nicht existiert.

Ich kapier nicht wie das Script das aktuell in der CCU gespeichert ist, so lauffähig ist... Aber es funktioniert. :shock:

Hat das schon mal einer erlebt von euch ?

Danke Grüße Lukas

Re: Unerklärliches Verhalten der CCU

Verfasst: 12.06.2019, 12:55
von Lukas1979
Das einzige was mir dazu einfällt wäre das das alte Script mit den neuen nur Teilweiße überschrieben würde....

Re: Unerklärliches Verhalten der CCU

Verfasst: 12.06.2019, 21:33
von alchy
DAS Script ist so natürlich gar nicht lauffähig, da weder old, realtemp noch Raumtemp und CurTemp deklariert sind.
Es sei denn siehe unten.

Was deine eigentliche Frage angeht.
Leider ist es seit einigen Versionen so, das in Scripten innerhalb von Programmen deklarierte Scriptvariablen in einem weiteren Programm und darin befindlichen Script einfach weiter verarbeitet werden können. Die sind also alle global.
Allerdings darfst du dich dann auch nicht wundern, wenn du die CCU / Rega mal neu startest und dein bis dato gut funktionierendes Script eben nicht mehr läuft, da das Programm/Script wo das Objekt CurTemp deklariert wurde nicht mehr ausgeführt wurde.
Also gewöhn dir das erst gar nicht an.

Alchy

Re: Unerklärliches Verhalten der CCU

Verfasst: 13.06.2019, 07:58
von jmaus
alchy hat geschrieben:
12.06.2019, 21:33
Leider ist es seit einigen Versionen so, das in Scripten innerhalb von Programmen deklarierte Scriptvariablen in einem weiteren Programm und darin befindlichen Script einfach weiter verarbeitet werden können. Die sind also alle global.
„seit einigen Versionen“? Meines Wissens sollte das bereits seit Ursprung der ReGaHss der Fall sein - ist aber ein IMHO negativer Effekt der Art&Weise der Skriptsprachenimplementierung und sollte in der Tat wie du beschrieben hast nicht (aus)genutzt werden und Variablen gehören in einem Nutzerskript immer vorher explizit deklariert.

Re: Unerklärliches Verhalten der CCU

Verfasst: 13.06.2019, 19:10
von alchy
Ob es "schon immer" so war, weiß ich nicht mehr. Seit 3 Jahren ist es aber auf alle Fälle schon so. (ohne Anspruch)
Der TE sollte ja jetzt wissen, was er machen kann oder sollte.

Alchy