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)?
HM-Programme / Skripte
Moderator: Co-Administratoren
-
- Beiträge: 10752
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 672 Mal
Re: HM-Programme / Skripte
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.
-
- Beiträge: 1184
- Registriert: 09.01.2016, 17:42
- Wohnort: Sauerland
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: HM-Programme / Skripte
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
Parameter übergeben funktioniert mit Systemvariablen.
Beispiel für beides ist das zentrale Pushprogramm von 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
Ein direkter Aufruf eines Skripts in einem anderen Skript geht nicht. Da musst Du dann mit Systemvariablen arbeiten, um die Datensätze zu übergeben.Karl_999 hat geschrieben: Gibt es eine Möglichkeit, HM-Skripte in HM-Skripten aufzurufen und Parameter zu übergeben (Unterprogramme)?
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
-
- Beiträge: 1184
- Registriert: 09.01.2016, 17:42
- Wohnort: Sauerland
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: HM-Programme / Skripte
@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.
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.
-
- 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
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.