Hallo zusammen und @MichaelHanna,
ich nutzte bisher die Viessmann API um die Daten in mein SmartHome (Loxone) zu bekommen (über HTTP-Abfragen). Seit dem 15.07.21 ist das ja auf dem alten Weg nicht mehr möglich.
Wie erstelle ich denn diesen Zugriffs Token? Ich habe mich im Developer Portal angemeldet, eine ID erstellt usw. Ich habe auch die Beschreibung/Erklärung gelesen aber komme nun nicht mehr weiter.
Aktuell hänge ich hier fest:
- was muss da anstelle der "my-website" eingetragen werden?
curl -X POST "https://iam.viessmann.com/idp/v2/authorize?
client_id=my_oauth_client_id
&redirect_uri=http://my-website.com/oauth-callback
&response_type=code
&code_challenge=2e21faa1-db2c-4d0b-a10f-575fd372bc8c-575fd372bc8c
&scope=IoT%20User"
- muss ich folgenden Code komplett in die Browserzeile eingeben und wenn ja wie? Was genau setze ich anstelle des localhost?
curl -X POST "https://iam.viessmann.com/idp/v2/token"
-H "Content-Type: application/x-www-form-urlencoded"
-d "grant_type=authorization_code&client_id=my_oauth_client_id
&redirect_uri=http://localhost:4200/
&code_verifier=2e21faa1-db2c-4d0b-a10f-575fd372bc8c-575fd372bc8c
&code=owusQEHqhhosGHlod2oTuUXfxU9mMBtzurlyKK0IGjM"
Vielen Dank schon mal.
Die redirect_uri ist egal. Es muss nur die gleiche sein, die Du beim Erzeugen des API Keys angegeben hast.
In den Browser gibst Du nur den Teil an der in Anführungszeichen steht. "curl" ist ein Unix-Befehl, der den HTTP-Request ausführt, oder habe ich dich da missverstanden?
Wichtig ist noch dass Du das Recapcha der API Key Erzeugung ausschaltest, wenn Du den Aufruf automatisieren willst.
Hallo @ceeage ,
um deine Daten via API abzurufen, musst du dich zunächst authentifizieren. Die Authentifizierung nutzt den sog. "OAuth" workflow. Hierbei ist die redirect_uri die Adresse, die bei der erfolgten Authentifizierung aufgerufen wird. Du kannst die redirect_uri frei wählen, sie muss aber in den Einstellungen deines API Keys und in deinem Befehl identisch sein. Für Testzwecke bietet es sich an, als redirect_uri "http://localhost:4200/" (ohne Anführungszeichen) zu verwenden. Bei der Nutzung der API über eine andere Applikation wird meist verlangt, eine bestimmte redirect_uri zu verwenden.
Hast du schon in die Dokumentation auf dem Developer Portal reingeschaut? Dort haben wir eine Anleitung für die Authentifizierung: https://developer.viessmann.com/de/doc/authentication
Ansonsten kann ich dir auch empfehlen, den Sample Code aus @nerixs Beitrag zu testen (Thanks nerixs!)
Den ReCaptcha kannst du in den Einstellungen zum API Key aus- und einschalten (während des Erstellens oder beim nachträglichen editieren). Aus Sicherheitsgründen empfehlen wir, ReCaptcha einzuschalten, für die Automatisierung ist das Captcha allerdings abzuschalten.
Gruß,
Michael