CCU Programm per windows batch starten

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

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

CCU Programm per windows batch starten

Beitrag von Cash » 09.10.2016, 19:02

Ich möchte gerne ein CCU Programm per Windows Batch starten.

Folgender Hintergrund: Sobald ich meinen PC anschalte möchte ich gerne das einmal meine Büro Ambiente Beleuchtung und die Arbeitsleichte (beides Philips Hue) angeschaltet werden.

Das könnte ich zwar theoretisch auch per cuxd und ping lösen aber alle x Minuten einen Ping abfragen wo der Laptop nur 2-3 mal die Woche an ist halte ich für suboptimal. Dedhalb die Idee das Programm per Windows Autostart zu starten. Dort führe ich bereits eine Datei aus die mir z. B. alle Netzlaufwerke verbindet.

Der http Befehl sollte möglichst unsichtbar ausgefürht werden. Ich möchte also eigentlich nicht das ein Browser gestartet wird.

Habt Ihr eine Idee?

Noch ein kleines Problem. Mein Programm heißt "PRG STROM Buero". Wie finde ich die Programm-id heraus?

-=FuF=-
Beiträge: 97
Registriert: 30.12.2013, 21:08
Hat sich bedankt: 2 Mal

Re: CCU Programm per windows batch starten

Beitrag von -=FuF=- » 09.10.2016, 20:51

Cash hat geschrieben: Der http Befehl sollte möglichst unsichtbar ausgefürht werden. Ich möchte also eigentlich nicht das ein Browser gestartet wird.

Habt Ihr eine Idee?
such mal nach XMLRPC für die CCU2 und wget, bzw. cURL für windows.
Damit geht es problemlos.

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

Re: CCU Programm per windows batch starten

Beitrag von Cash » 09.10.2016, 21:18

Curl hatte ich im Vorfeld schon gefunden. Allerdings waren die Suchergebnisse nicht sonderliche hilfreich. Irgendwann hatte ich curl dann endlich erfolgreich installiert.

Und ich kriege es damit fast hin:

Code: Alles auswählen

curl http://ip:8181/rega.exe?x=dom.GetObject('test').ProgramExecute()
Programmname ohne Leertaste geht

Code: Alles auswählen

curl http://ip:8181/rega.exe?x=dom.GetObject('PRG STROM Buero').ProgramExecute()
geht leider nicht.

Wie kann ich nun die Programm-id ermitteln?

-=FuF=-
Beiträge: 97
Registriert: 30.12.2013, 21:08
Hat sich bedankt: 2 Mal

Re: CCU Programm per windows batch starten

Beitrag von -=FuF=- » 09.10.2016, 21:27

Ich gehe immer den Weg über die URLs hier: https://www.homematic-inside.de/softwar ... tem/xmlapi

Im Zweifel mal in den Quelltext im Browser schauen (Strg+U)

Wenn du kein Programm direkt gestartet kriegst, setze eine Variable und lasse so indirekt ein Programm triggern

Jack99n
Beiträge: 98
Registriert: 21.09.2015, 20:37

Re: CCU Programm per windows batch starten

Beitrag von Jack99n » 09.10.2016, 21:33

Kannst du in deinem Programm nicht unter Wenn eine Virtuelle Taste der CCU mit einfügen? Dann kannst du es unter diesem Link hier auch ausführen.
Das wäre die erste Taste kurzer Tastendruck. Oder du guckst mal nach Ccu-Remote Pc!

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

Re: CCU Programm per windows batch starten

Beitrag von alchy » 09.10.2016, 22:15

Cash hat geschrieben: Wie kann ich nun die Programm-id ermitteln?
Um mal deine Frage zu beantworten, z.B mit folgenden Script:

Code: Alles auswählen

WriteLine((dom.GetObject(ID_PROGRAMS)).Get("PRG STROM Buero").ID());
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: CCU Programm per windows batch starten

Beitrag von Cash » 09.10.2016, 22:18

xmlapi möchte ich nicht installieren. Über den Tastendruck wäre möglich finde ich aber nicht sauber.

Sollte ich es anders nicht hin kriegen werde ich es aber wohl nutzen. Systemvariablen haben bei mir ebenfalls Leertasten :-)

@Alchy: Perfekt. Werde ich testen. Vielen Dank

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

Re: CCU Programm per windows batch starten

Beitrag von Cash » 10.10.2016, 19:48

Sollte jemand mal so etwas machen wollen --> Kein Problem

Code: Alles auswählen

http://www.confusedbycode.com/curl/
von hier habe ich curl installiert.

Danach ein Programm in der ccu erstellen und mittels Script Testen die ID ermitteln.

Code: Alles auswählen

WriteLine((dom.GetObject(ID_PROGRAMS)).Get("Programmname").ID());
danach eine batch Datei erstellen oder falls vorhanden die bestehende Batch-Datei die beim Windoof start ausgeführt wird, editieren. Dort einfach:

Code: Alles auswählen

curl http://192.xxx.xxx.xxx:8181/rega.exe?x=dom.GetObject('ID').ProgramExecute()
Beim starten von Windows wird nun die Batch ausgeführt und mittels curl das ccu Programm ausgeführt. Bei mir geht nun zwei Philips Hue Strips im Büro an.

Wichtig beim Programm wird immer der erste Dann Zweig ausgeführt. (Ich glaube auch ohne Prüfung ob die Kriterien dort stimmen oder nicht??)

Feintuning bei mir ist jetzt noch zu bestimmen wann die Hue-Lampen angehen sollen. Was ich dann im Hue Script mache. Dort vergleiche ich die aktuelle Zeit mit z. B. Sonnenauf- und -untergang.

Vielen Dank an an Helfer und besonders mal wieder an Alchy :mrgreen:

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

Re: CCU Programm per windows batch starten

Beitrag von Xel66 » 10.10.2016, 20:15

Cash hat geschrieben:Wichtig beim Programm wird immer der erste Dann Zweig ausgeführt. (Ich glaube auch ohne Prüfung ob die Kriterien dort stimmen oder nicht??)
Ja, das ist so. Du kannst per URL aber auch Aktoren direkt schalten oder auch Systemvariablen verändern. Es unterscheidet sich nur die URL. Ich öffne per URL meine Haustür (allerdings auch per Programmaufruf). Grundsätzlich machen ja die verbreiteten Apps auch nichts anderes. Diese greifen aber auf eine installierte XMLAPI zu.

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

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

Re: CCU Programm per windows batch starten

Beitrag von alchy » 10.10.2016, 20:35

XMLAPI stand ja nicht zur Debatte.
Aber wie auch immer, das Starten eines Programmes per Script ist wie händisches Auslösen desselben.

Der Umweg über das Starten eines Programms ist wirklich unnötig, wenn du den Aktor direkt einschalten würdest:

Code: Alles auswählen

http://IP.DEINER.EIGENEN.CCU:8181/alchy.exe?sagt=dom.GetObject(0815).State(1)
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 allgemein“