[erledigt] Programme per ext. Script ansprechen.

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

dll-live
Beiträge: 66
Registriert: 08.01.2017, 15:42

[erledigt] Programme per ext. Script ansprechen.

Beitrag von dll-live » 16.04.2018, 20:00

Liebe Foren-Gemeinde
noch ein Post von mir.

Wie kann ich ein Programm von extern per Script triggern (starten)?

Gruss Dani
Zuletzt geändert von dll-live am 17.04.2018, 19:28, insgesamt 1-mal geändert.

Benutzeravatar
Black
Beiträge: 742
Registriert: 12.09.2015, 22:31
Wohnort: Wegberg
Kontaktdaten:

Re: Programme per ext. Script ansprechen.

Beitrag von Black » 16.04.2018, 20:11

vllt ein wenig besser beschreiben...


was ist extern ? womit starten ?
Die Wahrheit ist ein Chor aus Wind
Meine Seite, ok noch bisschen im Aufbau

RaspberryMatic 2.31.25.20180225 mit Groundplane Antennenmod (Mein Grundstück ist halt etwas gross)
jede Menge Sensoren und Aktoren, Logamatic 2107 Gateway zum Buderus Kessel
ioBroker als Hauptsteuersystem und Visualisierung
Script Time Scheduler V1.2
Script Developer V2.27.1

dll-live
Beiträge: 66
Registriert: 08.01.2017, 15:42

Re: Programme per ext. Script ansprechen.

Beitrag von dll-live » 16.04.2018, 20:14

Hallo Black.

Gern gebe ich weitere auskünfte.

Ich würde gerne die Programme auf der Homematic CCU2 - von meinem Linux-Rechner aus starten.
(z.B.: Gibt es ein Programm auf der Homematic das Heisst- MAch das Fenster auf und Shcliesse es nach 45 min automatisch wieder - nennen wir es "Fenster auf",
Gerne würdei ch nun auf dme Linux.rechner einen Befhle an die CCU absetzen mit dem das Script "Fenster auf" ausgeführt wird.

Hoffe das dies nun verständlicher ist.

Gruss Dani

Benutzeravatar
Black
Beiträge: 742
Registriert: 12.09.2015, 22:31
Wohnort: Wegberg
Kontaktdaten:

Re: Programme per ext. Script ansprechen.

Beitrag von Black » 16.04.2018, 20:22

geht... wenn du beispielsweise python auf deiner Maschine hast:

Code: Alles auswählen

     from datetime import datetime
    from urllib.request import urlopen
    from http.server import BaseHTTPRequestHandler, HTTPServer
    import time as t
    import http.client

    # Verbindungsinformationen zur CCU2
    # ---------------------------------
    ipCCU2      = "192.168.2.2"  <----------------IP DEINER CCU
    xmlrpcPort  = 8181
    ENpushCCU   = True

    def pushState (command):
    # im Testmode schreiben wir nicht wild auf de CCU rum
        if ENpushCCU:
            try:
                httpServ = http.client.HTTPConnection(ipCCU2, xmlrpcPort)
                httpServ.connect()
                httpServ.request('POST', 'blabla.exe', command)
                response = httpServ.getresponse()
                reason= response.status,response.reason
                httpServ.close()
                return reason
            except:
            # Wenn eine Fehlübertragung: egal in dem Test
                return


    pushState ('dom.GetObject ("ZZTEST").State (22.22)')   


ein programm startest dann mit dom.GetObject (ID_PROGRAMS).Get ("IchBinDeinProgrammName").ProgramExecute (true);
Die Wahrheit ist ein Chor aus Wind
Meine Seite, ok noch bisschen im Aufbau

RaspberryMatic 2.31.25.20180225 mit Groundplane Antennenmod (Mein Grundstück ist halt etwas gross)
jede Menge Sensoren und Aktoren, Logamatic 2107 Gateway zum Buderus Kessel
ioBroker als Hauptsteuersystem und Visualisierung
Script Time Scheduler V1.2
Script Developer V2.27.1

dll-live
Beiträge: 66
Registriert: 08.01.2017, 15:42

Re: Programme per ext. Script ansprechen.

Beitrag von dll-live » 16.04.2018, 20:35

Sali Black.

Meine Maschine hat Python drauf.

Darf ich fragen woher du die ganzen Befehle kennst.
Wie komm ich zu dazu?

Gruss
Dani

Benutzeravatar
Black
Beiträge: 742
Registriert: 12.09.2015, 22:31
Wohnort: Wegberg
Kontaktdaten:

Re: Programme per ext. Script ansprechen.

Beitrag von Black » 16.04.2018, 20:39

python Befehle ? ich hab da mehrere nett fette Fachbücher über Python. und in Python ist auch mein Gateway zur Anbindung einer Buderus Logamatic 2107 Heizungssteuerung mit einem nachgebildeten 3964R Protokoll programmiert ^^

Black
Die Wahrheit ist ein Chor aus Wind
Meine Seite, ok noch bisschen im Aufbau

RaspberryMatic 2.31.25.20180225 mit Groundplane Antennenmod (Mein Grundstück ist halt etwas gross)
jede Menge Sensoren und Aktoren, Logamatic 2107 Gateway zum Buderus Kessel
ioBroker als Hauptsteuersystem und Visualisierung
Script Time Scheduler V1.2
Script Developer V2.27.1

dll-live
Beiträge: 66
Registriert: 08.01.2017, 15:42

Re: Programme per ext. Script ansprechen.

Beitrag von dll-live » 16.04.2018, 20:45

Sali Balck
Ach so ja dann ist mein leiden ja nur doppelt so schlimm... Python geht so einigermassen udn die CCU habei ch auch nicht komplett im griff. juhui....

Zwei blöde Fragen zu dem Code:

In der Zeile " pushState ('dom.GetObject ("ZZTEST").State (22.22)') "
Für was steht das 22.22?

Ist die Annahme: das in der Zeile " httpServ.request('POST', 'blabla.exe', command)" das blabla.exe genau so stehen bleiben muss richtig?
Zudem gehe ich davon aus, dass das command -> sprich "ZZTEST" der Name meines Programms ist. richtig?

Gruss Dani

Benutzeravatar
Black
Beiträge: 742
Registriert: 12.09.2015, 22:31
Wohnort: Wegberg
Kontaktdaten:

Re: Programme per ext. Script ansprechen.

Beitrag von Black » 16.04.2018, 21:06

nein, die zeile wäre bepsielhaft dazu da, eine Systemvariable mit dem Namen ZZTEST auf den Wert 22.22 zu setzen.

zu müsstest schreiben

pushState ('dom.GetObject (ID_PROGRAMS).Get ("IchBinDeinProgrammName").ProgramExecute (true)');

viel Erfolg, Black
Die Wahrheit ist ein Chor aus Wind
Meine Seite, ok noch bisschen im Aufbau

RaspberryMatic 2.31.25.20180225 mit Groundplane Antennenmod (Mein Grundstück ist halt etwas gross)
jede Menge Sensoren und Aktoren, Logamatic 2107 Gateway zum Buderus Kessel
ioBroker als Hauptsteuersystem und Visualisierung
Script Time Scheduler V1.2
Script Developer V2.27.1

dll-live
Beiträge: 66
Registriert: 08.01.2017, 15:42

Re: Programme per ext. Script ansprechen.

Beitrag von dll-live » 16.04.2018, 22:42

Hallo Black.

Leider will das nicht ganz.

Mein Script sieht sfolgendermassen aus:

Code: Alles auswählen

from datetime import datetime
from urllib.request import urlopen
from http.server import BaseHTTPRequestHandler, HTTPServer
import time as t
import http.client

        # Verbindungsinformationen zur CCU2
        # ---------------------------------
ipCCU2      = "192.168.1.76"
xmlrpcPort  = 8181
ENpushCCU   = True

def pushState (command):
       # im Testmode schreiben wir nicht wild auf de CCU rum
            if ENpushCCU:
                try:
                    httpServ = http.client.HTTPConnection(ipCCU2, xmlrpcPort)
                    httpServ.connect()
                    httpServ.request('POST', 'blabla.exe', command)
                    response = httpServ.getresponse()
                    reason= response.status,response.reason
                    httpServ.close()
                    return reason
                except:
                # Wenn eine Fehlübertragung: egal in dem Test
                    return

pushState ('dom.GetObject(ID_PROGRAMS).Get("Testig").ProgramExecute(true)');
der aufruf dazu lautet:

Code: Alles auswählen

python3 Homematic_prgorammstarten_test.py
Doch auf der Homematic-Seite bewegt sich nichts.

Anbei ein Printscreen des Programms:
testprogramm.PNG
testprogramm.PNG (24.05 KiB) 369 mal betrachtet
Wenn ich es direkt auf der Hm ausführe blinkt die Leuchte 5x kurz blau.

Kann mir jemand noch beim "letzten" schritt helfen - sprich mir zeigen - was noch nötig ist, dmait es funktioniert.

Gruss Dani

Benutzeravatar
Black
Beiträge: 742
Registriert: 12.09.2015, 22:31
Wohnort: Wegberg
Kontaktdaten:

Re: Programme per ext. Script ansprechen.

Beitrag von Black » 16.04.2018, 22:49

wie sieht die firewalleinstellung in deiner ccu aus ?
unter HomeMatic XML-RPC API und Remote HomeMatic-Script API beides auf vollzugriff ?
Die Wahrheit ist ein Chor aus Wind
Meine Seite, ok noch bisschen im Aufbau

RaspberryMatic 2.31.25.20180225 mit Groundplane Antennenmod (Mein Grundstück ist halt etwas gross)
jede Menge Sensoren und Aktoren, Logamatic 2107 Gateway zum Buderus Kessel
ioBroker als Hauptsteuersystem und Visualisierung
Script Time Scheduler V1.2
Script Developer V2.27.1

Antworten

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