HM-Programme / Skripte

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
Karl_999
Beiträge: 18
Registriert: 21.10.2017, 17:44

HM-Programme / Skripte

Beitrag von Karl_999 » 12.11.2017, 20:20

Hallo zusammen,

ich habe gelernt, dass ich aus HM-Programmen Skripte aufrufen kann.

Gibt es auch eine Möglichkeit aus HM-Skripten heraus HM-Programme aufzurufen (nicht über Status "getriggert")?
Gibt es eine Möglichkeit, HM-Skripte in HM-Skripten aufzurufen und Parameter zu übergeben (Unterprogramme)?

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

Re: HM-Programme / Skripte

Beitrag von alchy » 12.11.2017, 21:27

Code: Alles auswählen

object prog = dom.GetObject(ID_PROGRAMS).Get("PROGRAMMNAME");
if (prog) { 
prog.ProgramExecute();
WriteLine("Programm vorhanden und ausgeführt");
}else{WriteLine("Programm nicht vorhanden");}

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.

Cash
Beiträge: 1184
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: HM-Programme / Skripte

Beitrag von Cash » 12.11.2017, 21:32

Nachteil bei dem aufgerufenen Programm wird nicht geprüft sondern immer der erste Zweig ausgeführt.

Parameter übergeben funktioniert mit Systemvariablen.

Beispiel für beides ist das zentrale Pushprogramm von dtp

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

Re: HM-Programme / Skripte

Beitrag von dtp » 13.11.2017, 07:36

Karl_999 hat geschrieben: Gibt es eine Möglichkeit, HM-Skripte in HM-Skripten aufzurufen und Parameter zu übergeben (Unterprogramme)?
Ein direkter Aufruf eines Skripts in einem anderen Skript geht nicht. Da musst Du dann mit Systemvariablen arbeiten, um die Datensätze zu übergeben.

Bis vor einiger Zeit - ich glaub, das wurde mittlerweile geändert - konnte man lokal deklarierte Skriptvariablen (nicht zu verwechseln mit den stets global nutzbaren Systemvariablen) auch global nutzen, da sie von der CCU nicht überschrieben und entsprechend geblockt wurden. Damals gab es aber noch das Limit von maximal 200 deklarierbaren Skriptvariablen. Sprich, wenn Du in Skript A eine lokale Variable deklariert und mit einem Wert gefüllt hast, dann konntest Du ihren Inhalt in Skript B weiterverwenden, sofern Du sie dort nicht neu oder anders deklariert hattest. Das dürfte sich aber mittlerweile - so hoffe ich - geändert haben. Du kannst es ja mal ausprobieren. Für mich kam das nie in Frage, weil es ein großes Risiko war, da z.B. nach einem Neustart der CCU das Skript B nicht mehr unmittelbar funktionierte. Soviel ich weiß, muss mittlerweile in jedem Skript jede lokale Skriptvariable definiert sein. Ansonsten gib es eine Fehlermeldung.

Bis dann,

Thorsten
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.

Cash
Beiträge: 1184
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: HM-Programme / Skripte

Beitrag von Cash » 13.11.2017, 08:48

@dtp nach meinen Kenntnisstand funktionieren die Scriptvariablen immernoch Scriptübergreifend. Allerdings wird der Inhalt gelöscht wenn man die Variable im anderen Script deklariert.
Wenn ich mich nicht täusche nutzt doch eq3 diese Methode in den eigenen Scripten!?

Die Methode würde ich auch eher nicht verwenden, da man dabei zu sehr aufpassen muss.

DrTob
Beiträge: 3426
Registriert: 29.10.2010, 08:24
Danksagung erhalten: 5 Mal

Re: HM-Programme / Skripte

Beitrag von DrTob » 13.11.2017, 08:53

Scriptvariablen gelten nach wie vor global.

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

Re: HM-Programme / Skripte

Beitrag von dtp » 13.11.2017, 10:15

Alles klar. Ich würde sie aber wirklich nur lokal verwenden. Alles andere kann früher oder später zu massiven Problemen führen.
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.

Antworten

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