Unerklärliches Verhalten der CCU

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
Lukas1979
Beiträge: 19
Registriert: 01.04.2017, 11:45

Unerklärliches Verhalten der CCU

Beitrag von Lukas1979 » 12.06.2019, 12:34

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
Zuletzt geändert von alchy am 12.06.2019, 21:16, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

Lukas1979
Beiträge: 19
Registriert: 01.04.2017, 11:45

Re: Unerklärliches Verhalten der CCU

Beitrag von Lukas1979 » 12.06.2019, 12:55

Das einzige was mir dazu einfällt wäre das das alte Script mit den neuen nur Teilweiße überschrieben würde....

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

Re: Unerklärliches Verhalten der CCU

Beitrag von alchy » 12.06.2019, 21:33

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

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.

Benutzeravatar
jmaus
Beiträge: 9862
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 464 Mal
Danksagung erhalten: 1880 Mal
Kontaktdaten:

Re: Unerklärliches Verhalten der CCU

Beitrag von jmaus » 13.06.2019, 07:58

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.
RaspberryMatic 3.75.7.20240420 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

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

Re: Unerklärliches Verhalten der CCU

Beitrag von alchy » 13.06.2019, 19:10

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

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)“