Fensterstatus mittels XML-RPC API abrufen

HMIP lokale Installation

Moderator: Co-Administratoren

Fox1984
Beiträge: 12
Registriert: 26.06.2023, 20:21
System: CCU und Access Point
Hat sich bedankt: 3 Mal

Fensterstatus mittels XML-RPC API abrufen

Beitrag von Fox1984 » 10.02.2024, 21:57

Hallo zusammen,

ich verwende eine CCU3 mit Homematic IP Fensterkontakten.

Seit Tagen versuche ich nun verzweifelt die XML-RPC API dazu zu verwenden, um den Status meiner Fensterkontakte im Haus abzufragen.

Im ersten Schritt wollte ich nun gern über die in der Dokumentation von eq3 genannte Methode "listDevices" schauen ob die Fensterkontakte da sind und evtl. sogar schon der Fensterstatus ausgegeben wird. Der Aufruf der Methode klappt mittlerweile auch, allerdings erhalte ich hier ausschließlich Informationen über die virtuelle "BidCoS-RF" Funkfernbedienung der CCU3.

Muss ich meine Fensterkontakte erst der XML-RPC API zuweisen? Wenn ja, wie geht das und wo finde ich mehr Informationen dazu?

Bin für jede Hilfe dankbar :)

[sprotte80]
Beiträge: 336
Registriert: 05.10.2020, 18:37
System: CCU
Hat sich bedankt: 30 Mal
Danksagung erhalten: 25 Mal

Re: Fensterstatus mittels XML-RPC API abrufen

Beitrag von [sprotte80] » 10.02.2024, 22:58

Hi
Fox1984 hat geschrieben:
10.02.2024, 21:57
Muss ich meine Fensterkontakte erst der XML-RPC API zuweisen? Wenn ja, wie geht das und wo finde ich mehr Informationen dazu?
ne... du must nur den richtigen port nehmen

siehste ja hier das da was nich passen tut.
Fox1984 hat geschrieben:
10.02.2024, 21:57
ich verwende eine CCU3 mit Homematic IP Fensterkontakten.
Fox1984 hat geschrieben:
10.02.2024, 21:57
allerdings erhalte ich hier ausschließlich Informationen über die virtuelle "BidCoS-RF" Funkfernbedienung
Thomas
Wenn du keine App zur Bedienung brauchst, dann hast du kein Smarthome, sondern nur eine angefangene Baustelle, oder nur ein unsmartes Autohome.

Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.

Fox1984
Beiträge: 12
Registriert: 26.06.2023, 20:21
System: CCU und Access Point
Hat sich bedankt: 3 Mal

Re: Fensterstatus mittels XML-RPC API abrufen

Beitrag von Fox1984 » 11.02.2024, 04:42

Hallo Thomas,

vielen Dank für Deine Antwort!

Verrätst Du mir denn auch, welchen Port ich nutzen soll?

In der offiziellen Dokumentaion werden nur zwei Ports genannt:

Port: 2001 (BidCos-RF für Funk-Komponenten)
Port: 2000 (BidCos-Wired für Drahtgebundene Geräte)

Ich verwende derzeit Port 2001, da meine HMIP Fensterkontakte Funk-Komponenten sind. An diesem Port erhalte ich jedoch, wie erwähnt leider nur Informationen über die virtuelle Fernbedienung BidCoS-RF.

Benutzeravatar
Henke
Beiträge: 1526
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 141 Mal
Danksagung erhalten: 306 Mal

Re: Fensterstatus mittels XML-RPC API abrufen

Beitrag von Henke » 11.02.2024, 05:51

[this.Iface.HmIP_RF]: { kenn: 'H', port: isLocal ? 32_010 : (tls ? 42_010 : 2010), path: "" },
[this.Iface.BidCos_Wired]: { kenn: 'W', port: isLocal ? 32_000 : (tls ? 42_000 : 2000), path: "" },
[this.Iface.BidCos_RF]: { kenn: 'B', port: isLocal ? 32_001 : (tls ? 42_001 : 2001), path: "RPC2" }, // RPC2?
[this.Iface.VirtualDevices]: { kenn: 'V', port: isLocal ? 39_292 : (tls ? 49_292 : 9292), path: "groups" },
[this.Iface.CCU_Jack]: { kenn: 'J', port: tls ? 2122 : 2121, path: "RPC3" },

[sprotte80]
Beiträge: 336
Registriert: 05.10.2020, 18:37
System: CCU
Hat sich bedankt: 30 Mal
Danksagung erhalten: 25 Mal

Re: Fensterstatus mittels XML-RPC API abrufen

Beitrag von [sprotte80] » 11.02.2024, 15:10

Hi
Fox1984 hat geschrieben:
11.02.2024, 04:42
In der offiziellen Dokumentaion werden nur zwei Ports genannt:

Port: 2001 (BidCos-RF für Funk-Komponenten)
Port: 2000 (BidCos-Wired für Drahtgebundene Geräte)
da sind nur 2001 und 2000 genannt wo du die falsche Doku nimmst.
Du liest die Doku für HM nicht für HmIP

Für HmIP gibs die hier
Homematic IP Legacy API (XML-RPC-Schnittstelle)
Dort steht dan auch der Port 2010 für HmIP.

Thomas
Wenn du keine App zur Bedienung brauchst, dann hast du kein Smarthome, sondern nur eine angefangene Baustelle, oder nur ein unsmartes Autohome.

Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.

Fox1984
Beiträge: 12
Registriert: 26.06.2023, 20:21
System: CCU und Access Point
Hat sich bedankt: 3 Mal

Re: Fensterstatus mittels XML-RPC API abrufen

Beitrag von Fox1984 » 11.02.2024, 19:40

Guten Abend,

vielen Dank für die Info, das hilft mir sehr weiter! Verzeiht, die Verwechslung der beidem Dokus, ich bin auf dem Gebiet noch sehr neu und unerfahren :roll:

Habe nun den Zugriff auf Port 2010 umgestellt, erhalte derzeit noch keine Antwort von der API, was seltsam ist. Weder die Methoden "system.methodHelp", "system.listMethods" als auch "listDevices" liefern eine Antwort der API. Sie scheint zwar da zu sein (da keine Fehlermeldung erscheint, was jedoch sofort passiert wenn ich z.B. falsche Zugangsdaten beim Zugriff verwende), liefert jedoch einen leeren String als Antwort. Über Port 2001 ging das alles noch. Und die drei genannten Methoden sind in beiden Dokus identisch.

Bin aber erstmal optimistisch und dank Eurer Hilfe schon mal auf dem richtigen Weg. Danke!

Benutzeravatar
Henke
Beiträge: 1526
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 141 Mal
Danksagung erhalten: 306 Mal

Re: Fensterstatus mittels XML-RPC API abrufen

Beitrag von Henke » 11.02.2024, 20:24

Ich vermute du weißt nicht wie die XML-RPC funktioniert. Ist aber nur mal wieder ein Raten, da weder Code gezeigt wird, noch ansatzweise was eigentlich das Ziel sein soll. Fasziniert bin ich jedoch, das mit einem Acces Point, wie in deiner Signatur steht, so alles möglich ist.
Mal eine ganz simple Frage: Wie hast du den RPC-Client aufgebaut um die Nachrichten zu empfangen?

Fox1984
Beiträge: 12
Registriert: 26.06.2023, 20:21
System: CCU und Access Point
Hat sich bedankt: 3 Mal

Re: Fensterstatus mittels XML-RPC API abrufen

Beitrag von Fox1984 » 11.02.2024, 22:30

Hallo Henke,

irgendwie klingst Du provokant und/oder scheinst mich nicht zu mögen.

Um ehrlich zu sein, fühle ich mich gerade von Dir irgendwie in eine unangenehme Rechtfertigungshaltung gedrängt. Da ich jedoch derjenige bin, der hier um Hilfe fragt, gebe ich dem gern nach...

Wie erwähnt bin ich neu auf dem Gebiet. Daher gebe ich Dir recht, ich habe keinen Plan wie genau die API funktioniert und kämpfe mich derzeit durch die Dokumentation. Mache teilweise auch dumme Fehler (wie in der falschen Doku nachzuschlagen). Deshalb bin ich auch hier im Forum auf der Suche nach Unterstützung von Experten (wie Dir?), wenn ich allein nicht weiterkomme. Ist doch legitim oder?

Ich habe mich erst vor knapp einem Monat "getraut" auf die CCU3 zu wechseln, vorher habe ich die Cloudlösung mit AccessPoint betrieben. Sieh es mir doch bitte nach, dass ich das auf meinem Profil noch nicht aktualisiert habe.

Um Deine Simple Frage nach meinem aktuellem Code zu beantworten, der ist in der Tat sehr überschaubar:

Code: Alles auswählen

import requests

def list_devices(ccu_ip, port, username, password):
    try:
        url = f"http://{ccu_ip}:{port}"
        headers = {'Content-Type': 'application/xml'}
        data = """
        <?xml version="1.0"?>
        <methodCall>
            <methodName>system.listMethods</methodName>
        </methodCall>
        """
        response = requests.post(url, auth=(username, password), headers=headers, data=data)

        print("HTTP-Statuscode:", response.status_code)
        print("API-Antwort:")
        print(response.text)
    except Exception as e:
        print("Fehler:", e)

if __name__ == "__main__":
    ccu_ip = "192.168.2.214"
    port = 2010
    username = "ABC"
    password = "XYZ"

    list_devices(ccu_ip, port, username, password)
Bin wie erwähnt für jede Hilfe dankbar. Nur wollte ich auch nicht gleich alle (dummen) Fragen die ich derzeit habe hier in diesem Post auf Euch Experten abrollen, bevor ich mich in die neue Doku in Ruhe eingelesen habe. Das ist der Grund warum ich mich mit dem Code so zurückgehalten habe.

Mein Ziel: Ich möchte mit einem Python-Skript in meinem eigenen Netzwerk den Status meiner Fensterkontakte abrufen.

Ich hoffe die Infos schaffen nun mehr Transparenz und Vertrauen.

Benutzeravatar
Henke
Beiträge: 1526
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 141 Mal
Danksagung erhalten: 306 Mal

Re: Fensterstatus mittels XML-RPC API abrufen

Beitrag von Henke » 12.02.2024, 03:53

Bleib mal locker, vernünftige Frage erzeugt die Möglichkeit einer vernünftigen Antwort.

Python-Skripte sind nicht meine Welt, aber teste mal das:

Code: Alles auswählen

<?xml version="1.0"?><methodCall><methodName>system.listMethods</methodName><params><param><value/></param></params></methodCall>

Fox1984
Beiträge: 12
Registriert: 26.06.2023, 20:21
System: CCU und Access Point
Hat sich bedankt: 3 Mal

Re: Fensterstatus mittels XML-RPC API abrufen

Beitrag von Fox1984 » 12.02.2024, 07:34

Guten Morgen,

vielen Dank für den Tipp. Habe es gerade mal getestet, aber leider bleibt die Ausgabe unverändert:

Code: Alles auswählen

HTTP-Statuscode: 200
API-Antwort:


Antworten

Zurück zu „HomeMatic IP mit CCU“