abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 

Hallo Community

bin derzeit sehr verzweifelt.  Ich habe hier eine Menge fragen. Leider verstehe ich die Doku
überhaupt nicht. Was ich verstanden habe ist das ich mir einen Accesstoken besorgen muss
damit ich API abfragen absenden kann die dann im Json Format zurückkommen
Wie in der Doku angegeben habe ich im Developer Portal einen User angelegt und einen API
key bekommen. Habe die Return Redirect URIs  mit LOCALHOST/4200/:

Habe dann den Webserver auf Port 4200 gestartet

Habe im Browser folgenden call eingeben

(http)iam.viessmann-climatesolutions.com/idp/v2/authorize?

client_id=unser API Code
&redirect_uri=unser WebServer
&response_type=code

&code_challenge=PKCE Code'
&code_challenge_method=S256&scope=IoT+User+offline_access

müssen uns trotzdem anmelden

Warum auch immer

 

Nach anmeldung bekomme ich wie beschrieben den Code zurück (soweit so gut

Die Beispiele mit curl funktionieren nicht da der Parameter Code fehlt

Trotzdem scheitern alle weitern Versuche entweder einen neuen Token zu generieren noch einen
zu bekommen

hier meine post Beispiele

(http) nicht erlaubt

(http)iam.viessmann-climatesolutions.com/idp/v3/token

grant_type=authorization_code
&code_verifier={veryfier aus pkceTool 64Bit}'
&client_id=unser API Key aus Portal
&redirect_uri=http://localhost:4200/&code=zurückgegebener code aus server Return

Response 400 invalid Grant

Der call für einen neuen Token scheitert ebenfalls

Url = (https)iam.viessmann-climatesolutions.com/idp/v3/token" 

header = "Content-Type: application/x-www-form-urlencoded"

DATEN = "client_id=usere API

&redirect_uri=adr unser Server

&grant_type=authorization_code&code_verifier=PKCE Code 64 Bit generiert

Sendet 
invalid_grant","error_description":"Invalid grant
 
Habe sogar den api User gelöscht und neu angelegt 
Vielleicht könnte mir da jemand helfen. Wäre sehr nett
Vielleicht hat ja jemand ein Postbeispiel für python

 

1 AKZEPTIERTE LÖSUNG

Akzeptierte Lösungen

Hallo

Danke erst mal probier es morgen nochmal

Lösung in ursprünglichem Beitrag anzeigen

10 ANTWORTEN 10

Erstmal solltest Du das Thema verschieben auf Konnektivität.

Dann einmal hier durchlesen:

https://community.viessmann.de/t5/Konnektivitaet/CAN-Bus-Home-Automation-E3-Generation-lokal-und-kos...

https://community.viessmann.de/t5/Konnektivitaet/ViEventLog-Tool-fuer-das-Ereignissprotokoll-VICARE-...

https://github.com/open3e/open3e/wiki/030-Installation-und-Inbetriebnahme-von-open3E

Wenn dann noch Fragen sind evtl. dort stellen.

Vor allem genauer was Du überhaupt herleiten möchtest.

#Vitocal 250-A13, 400L Puffer, 300L WW, VX3, 12 KWp, 10KWh Speicher, Haus BLB 180qm, Baujahr 1970 Umbau 2023, Fassade+Dach gedämmt#

Hallo

Die Antwort verstehe ich leider nicht 

Habe einfach Probleme mit der Api Schnittstellen Programmierung 

Können Sie mir da helfen. Der API Post funktioniert bei mir einfach nicht

Hast Du hier ein Client angelegt?:

https://app.developer.viessmann-climatesolutions.com/

In diesem Post wird erklärt wie das funktioniert und wie man das einbindet.

https://community.viessmann.de/t5/Konnektivitaet/ViEventLog-Tool-fuer-das-Ereignissprotokoll-VICARE-...

#Vitocal 250-A13, 400L Puffer, 300L WW, VX3, 12 KWp, 10KWh Speicher, Haus BLB 180qm, Baujahr 1970 Umbau 2023, Fassade+Dach gedämmt#

@Bodo_Luschi 

Hast du dir mal das PyViCare-Project angesehen.
https://pypi.org/project/PyViCare/ 
Dort findest du auch die "Basic Usage" damit und kannst dich dann weiter vortasten.


Vitocal 252-A AWOT-E 251.A10, SW2532, ohne HZW-Speicher, Radiatoren, 125m²

Natürlich sonst hätte ich ja keinen API Key und hätte auch die Doku nicht

Hallo

hab mal den relevanten Teil meines Programms in den Anhang gepackt
Vieleicht sieht ja jemand etwas

 

Habe ich gefunden 

Da braucht man aber einen oAuth 2.0 Zugang 

den habe ich leider nicht

 

Darum musst du dich nicht kümmern, das bringt PyViCare mit.
Du brauchst nur deine CLIENT_ID aus dem Developers-Portal sowie deine Zugangsdaten.

client_id = "INSERT CLIENT ID"
email = "email@domain"
password = "password"

 Die Datei "token.save" wird dann beim Aufruf der Authentifizierung erzeugt.

vicare.initWithCredentials(email, password, client_id, "token.save")

Vitocal 252-A AWOT-E 251.A10, SW2532, ohne HZW-Speicher, Radiatoren, 125m²

Hallo

Danke erst mal probier es morgen nochmal

Hallo an alle Helfer

Vielen Dank erstmal für alles
Ich glaube ich habe das Problem jetzt gelöst

Ich weis eigentlich was ein Bearer Token ist. Der wird im Header als Autorisierung mitgegeben
Das ein Header beim Post notwendig ist habe ich dem Curl- Beispiel entnommen. da ist ja ein Header mit

Content-Type": "application/x-www-form-urlencoded so angegeben.

Im Curl Beispiel fehlt auch der Parameter &Code. Ich dachte erst das man den gesendeten Code als Authorization mit im Header angeben muss also

headers = {"Content-Type": "application/x-www-form-urlencoded",
"Authorization": f'Bearer {gesendeter Code}'}

Funktioniert hat aber so nicht sondern

Generiere einen Token im Developer Portal

sende folgen Header:

headers = {"Content-Type": "application/x-www-form-urlencoded",
"Authorization": f'Bearer {token}'}

post mit

postData = f'grant_type=authorization_code' + \
f'&client_id=API Key' + \
f'&code_verifier={pkce-key}' + \
f'&redirect_uri=aus anmeldung wie definiert/&code={gesendeter code}'

 

und URL aus der Dokumentation

Für jedenweiteren Call den Header mitgeben bis der Token abgelaufen ist

Ob das genau stimmt weiß ich noch nicht hat jetzt aber erstmal funktioniert

 

Man oh man das hätte man aber auch in die Doku ganz einfach reinschreiben können dann würde man sich viel Zeit sparen. 

Draufgebracht hat mich übrigens folgender artikel

(http etc)rustimation.eu/index.php/1_zugang_api/

Trotzdem vielen Dank an alle

 

 

Top-Lösungsautoren