Viessmann VitoConnect API

Begonnen von ritschi, 22 März 2018, 06:53:24

Vorheriges Thema - Nächstes Thema

Shadow3561

Das klappt bei mir leider nicht.
Wenn ich mich mit den Login Daten der vitoconnect einloggen möchte fragt er nach Benutzername und Passwort.
Sofort nach Eingabe und Bestätigung fragt er wieder danach.
Ein Login ist zumindest bei mir nicht möglich.

ritschi

Zitat von: Shadow3561 am 20 Juli 2018, 08:07:54
Das klappt bei mir leider nicht.
Wenn ich mich mit den Login Daten der vitoconnect einloggen möchte fragt er nach Benutzername und Passwort.
Sofort nach Eingabe und Bestätigung fragt er wieder danach.
Ein Login ist zumindest bei mir nicht möglich.

Komisch, ich logge mich mit den Zugangdaten meiner App (ViCare) ... Hast du dich vielleicht vertippt?

Shadow3561

#32
Leider habe ich mich nicht vertippt.
Habe das Passwort in der Vicare App auch schon geändert(1111)
So dass ein Tippfehler ausgeschlossen werden kann.
Habe es mit Android, Ios und diversen Desktopbrowsern versucht, aber nirgends ist ein Login mit meinen vicare Nutzerdaten möglich.

Schade eigentlich.
Habe auch schon mehrfach mit Viessmann telefoniert (arbeite in einer Heizungsinstallationsfirma). Dort sagte man mir, dass der Estrella-server wohl bald abgeschaltet werden soll und alle neuen Nutzer(zu denen ich wohl schön gehöre)  bereits auf dem neuen Server landen. Nur darf, besser möchte,  mir leider niemand mitteilen welche Adresse der Server hat und ob es eine api gibt.

Nun lese ich meine Heizung mit dem Vconnect Modul aus.
Auf die 5 Jahre Garantie bin ich hoffentlich nicht angewiesen, und falls doch, zahle ich auch nur die Ersatzteilkosten.

MfG

Edit:
Ich habe mir auch eine alte Version der Vitotrol Plus App heruntergeladen, damit ist ein Login mit meinen Daten ebenfalls nicht möglich.
Dann habe ich versucht die Vitoconnect damit in Betrieb zu nehmen, das klappt aber auch nicht.

ritschi

Seit wann hast denn deine Vito Connect im Einsatz. Ich habe meine am 15.03.2018 in Betrieb genommen.


Gesendet von iPhone mit Tapatalk

Shadow3561

Am 5.7.18

Ich habe mittlerweile ungefähr 10 Browser auf 3 verschiedenen Betriebssystemen ausprobiert und es ist immer das Gleiche.
Nach Eingabe von Benutzername(Email Adresse vom vicare Login) und Passwort (vicare) erscheint die Abfrage dieser sofort wieder.
Kannst du dich denn mit deinen vicare Daten noch bei der vitotrol-plus app einloggen?
Diese sagt mir "Benutzername oder Passwort falsch".

MfG

ritschi

Da kann ich mich auch nicht anmelden


Gesendet von iPhone mit Tapatalk

Viprex

Zitat von: ritschi am 20 Juli 2018, 06:43:12
Mensch, manchmal kann es doch so einfach sein. Danke für den Hinweis.

Hier eine kleine Anleitung

Hallo ritschi,

ich scheine etwas auf dem Schlauch zu stehen. Ich kann micht im Link https://api.viessmann.io/estrella/rest/v2.0/gateways/ sofort anmelden (habe meine Anlage seit Februar 2018). Dort sehe ich dann zwar eine ID, aber keine Controller ID. Es taucht eine Owner ID auf oder eine Gateway Seriennummer.

Beide führen eingesetzt in <controllerID> aber nur zu
error "UNKNOWN_RESOURCE"
errorData {}
.

Kannst du mir auf die Sprünge helfen?

Lieben Gruß,
Tim


renardfm

#37
Mist... mittlerweile wurde der Estrella Server abgeschalten.

Aber die Franzosen sind schon einen Schritt weiter... Leider fehlt mir mit den Informationen (trotz Google Translator) dann der letzte Schliff.. Kennt sich jemand mit OAuth2, und dem neumodischen Zeug aus?? Ich bekomme immer die Meldung NO TOKEN... :-\

ich habe es nach Angabe versucht mit ?client_id=...&isiwebuserid=user@xy.de&isiwebpasswd=12345

Quelle:
https://www.jeedom.com/forum/viewtopic.php?f=31&t=31567&sid=c14a9295cbc07369cd6ca3552badc7e9&start=100#p642666

ZitatFür das Token ist es Oauth2 (Träger-Token).

URL - Verbindung ist https://iam.viessmann.com/idp/v1/authorize
mit als Parameter client_id, isiwebpasswd, isiwebuserid

Für das Token: https://iam.viessmann.com/idp/v1/token
für Aktualisieren Sie es und normalerweise, um es zu haben.

und für die API ist es diejenige, die gegeben wurde.

...

Eine weitere Möglichkeit , direkt auf den Anruf zu erhalten ist:
GET https://api.viessmann-platform.io/operational-data/installations/55994/gateways/7571381753685105/devices/0/features/heating.boiler.sensors.temperature.main

andies

kenne mich nicht wirklich aus, hatte das aber mal beim speedport. beim aufruf der login-seite wird der token vergeben. Loggst du dich ein, musst du den token mit aufrufen, sonst wird der login nicht durchgeführt. Das ist eigentlich alles. Ausgelesen habe ich das damals mit HTTPMOD. Weil das am ende alles so umständlich war, habe ich mir dann eine Fritzbox gekauft ;-)


Gesendet von iPad mit Tapatalk Pro
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

renardfm

#39
Hallo zusammen,
im JEEDOM Forum bzw. auf Github wurde bereits vom französischen Kollegen eine php Datei zur Verfügung gestellt.
Diese handelt den Token aus, und verwendet den dann für die Abfrage (neue API). Es sollte auch für die Kollegen funktionieren, bei denen die alte Schnittstelle nicht mehr funktionierte.
Ich habe es bereits mit FHEM zum Laufen gebracht und auch einen Großteil extrahieren können (Speicher, Kessel, Soll-Temperaturen, Aussentemperatur)... leider finde ich den Datenpunkt für die Abgastemperatur nicht (war zum Optimieren des Brennwerteffektes ganz brauchbar). Ich konnte auch nur Messwerte extrahieren, die mit meiner Heizungskonfig in der App verfügbar sind, da ich mit Wireshark den Traffic der ViCare App mitgeschnitten habe.

Die PHP Datei wird ausführbar gemacht und dem User fhem zugeordnet (Raspi), der Aufruf geht dann mittels {my $output = qx(/opt/fhem/viessmann.php &); fhem("setreading testdummy rohdaten ${output}")} ...
edit: besser ist die folgende Funktion dafür zu nehmen, da sonst der Aufruf Blocking stattfindet. Über system() ist der Aufruf nicht möglich, hier landet die php-Ausgabe nur im Logfile. :
https://forum.fhem.de/index.php/topic,60474.msg523776.html#msg523776


Die Werte werden in ein Dummy-Reading geschrieben. Aktuell stehe ich noch vor dem Problem die Werte zu trennen (Userreading und Regexp) .. wir sind nicht unbedingt Freunde :-D

Es soll wohl demnächst noch eine neue Version der php Datei geben, mit der dann auch Werte geschrieben werden können.
Somit ist dann endlich auch eine prädiktive Vorsteuerung (z.B. an Hand Wettervorhersage) möglich :-)

budaks

Hallo renardfm,

super, erst mal vielen Dank! Deine Infos waren genau, was ich gerade brauche. Ich will meine Vitodens mit dem MAX! -System reden lassen. Leider ist gerade etwas Ernüchterung eingekehrt: Nach den ersten (positiven) Tests mit dem Estrella-Server wollte ich das ganze jetzt konkretisieren. Beim rumspielen mit dem php-script hat sich aber gezeigt, dass über die (neue) api offenbar nur das angeboten wird, was in der Vicare-app darstellbar ist. Und die kann im Vergleich zur alten VitotrolPlus viel weniger. Ich wollte den Zustand der Heizkreis-Pumpe abfragen - die hab ich aber nirgends gefunden. Komischerweise funktioniert die VitotrolPlus-App aber noch, worauf ich mir keinen Reim machen kann. Hast du eine Idee - ich bin leider des französischen nicht mächtig...

viele Grüße,
budaks

renardfm

hi.
ich habe es mit Google Translate (im Browser) gelesen.

Gestern habe ich nochmal versucht über "man in the middle" via Packet Capture auf dem Handy den Traffic der Vitotrol App mitzumessen. Hier scheint irgendwie noch die alte Syntax zu laufen, die es eben in der Vicare nicht mehr gibt. Da bin ich nicht weitergekommen. Kannst du auch mal probieren. Die App macht lokal einen VPN über den der gesamte Traffic läuft.. Ist ganz interessant.. die alte App hat Passwort und Benutzer auch noch im Klartext übertragen!

Ich hätte noch Datenpunkte für Betriebsart, Kesseltemperatur und Solltemperaturen anzubieten...
Leider fehlen auch mir Punkte wie Abgastemperatur, Brenner- und Pumpenzustände :-(
Vielleicht kriegen die Franzosen noch etwas hin.

Philipp_CGN

Hallo renardfm,

ich möchte die Messwerte meiner VitoDens 300 über VitoConnect und die neue API auch in Fhem einfließen lassen. Könntest du deine Datenpunkte mal posten. Ich habe bisher

  • .../devices/0/features/heating.sensors.temperature.outside
  • .../devices/0/features/heating.boiler.sensors.temperature.main

Viele Grüße
Philipp

renardfm

#43
voilà


$resource = getResource($access_token, "https://api.viessmann-platform.io/operational-data/installations/$installation/gateways/$gw/devices/0/features/heating.boiler.sensors.temperature.main");
debug_msg("resource: $resource", $debug);
$Kesseltemperatur = strval(json_decode($resource, true)["properties"]["value"]["value"]);
echo "Kesseltemperatur=$Kesseltemperatur\n";

$resource = getResource($access_token, "https://api.viessmann-platform.io/operational-data/installations/$installation/gateways/$gw/devices/0/features/heating.circuits.0.sensors.temperature.supply");
debug_msg("resource: $resource", $debug);
$Raumsolltemperatur = strval(json_decode($resource, true)["properties"]["value"]["value"]);
echo "supply_temperatur=$Raumsolltemperatur\n";

$resource = getResource($access_token, "https://api.viessmann-platform.io/operational-data/installations/$installation/gateways/$gw/devices/0/features/heating.circuits.0.sensors.temperature.room");
debug_msg("resource: $resource", $debug);
$Raumsolltemperatur = strval(json_decode($resource, true)["properties"]["value"]["value"]);
echo "room_temperatur=$Raumsolltemperatur\n";

$resource = getResource($access_token, "https://api.viessmann-platform.io/operational-data/installations/$installation/gateways/$gw/devices/0/features/heating.circuits.0.operating.programs.normal");
debug_msg("resource: $resource", $debug);
$solltemperatur = strval(json_decode($resource, true)["properties"]["temperature"]["value"]);
echo "Solltemperatur_normal=$solltemperatur\n";

$resource = getResource($access_token, "https://api.viessmann-platform.io/operational-data/installations/$installation/gateways/$gw/devices/0/features/heating.circuits.0.operating.programs.reduced");
debug_msg("resource: $resource", $debug);
$solltemperatur = strval(json_decode($resource, true)["properties"]["temperature"]["value"]);
echo "Solltemperatur_reduziert=$solltemperatur\n";

$resource = getResource($access_token, "https://api.viessmann-platform.io/operational-data/installations/$installation/gateways/$gw/devices/0/features/heating.dhw.temperature");
debug_msg("resource: $resource", $debug);
$sollSpeichertemperatur = strval(json_decode($resource, true)["properties"]["value"]["value"]);
echo "Speicher-Solltemperatur=$sollSpeichertemperatur\n";


$resource = getResource($access_token, "https://api.viessmann-platform.io/operational-data/installations/$installation/gateways/$gw/devices/0/features/heating.dhw.sensors.temperature.hotWaterStorage");
debug_msg("resource: $resource", $debug);
$Speichertemperatur = strval(json_decode($resource, true)["properties"]["value"]["value"]);
echo "Speicher-Isttemperatur=$Speichertemperatur\n";

$resource = getResource($access_token, "https://api.viessmann-platform.io/operational-data/installations/$installation/gateways/$gw/devices/0/features/heating.circuits.0.operating.modes.active");
debug_msg("resource: $resource", $debug);
$art = strval(json_decode($resource, true)["properties"]["value"]["value"]);
echo "Betriebsart=$art\n";

$resource = getResource($access_token, "https://api.viessmann-platform.io/operational-data/installations/$installation/gateways/$gw/devices/0/features/heating.burner.automatic");
debug_msg("resource: $resource", $debug);
$brennerzustand = strval(json_decode($resource, true)["properties"]["status"]["value"]);
echo "Brennerzustand=$brennerzustand\n";

$resource = getResource($access_token, "https://api.viessmann-platform.io/operational-data/installations/$installation/gateways/$gw/devices/0/features/heating.burner.automatic");
debug_msg("resource: $resource", $debug);
$errorcode = strval(json_decode($resource, true)["properties"]["errorCode"]["value"]);
echo "ErrorCode=$errorcode\n";

$resource = getResource($access_token, "https://api.viessmann-platform.io/operational-data/installations/$installation/gateways/$gw/devices/0/features/heating.circuits.0.operating.programs.active");
debug_msg("resource: $resource", $debug);
$state = strval(json_decode($resource, true)["properties"]["value"]["value"]);
echo "Programmstatus=$state\n";






hier stehen auch noch welche:
https://github.com/thetrueavatar/Viessmann-Api/blob/master/src/API/ViessmannAPI.php

ist schon die zweite api der franzosen...

seppe

ja von den Franzosen scheints einer geschafft zu haben... aber ich werd dadraus einfach nicht schlau... wie erfahre ich die Knotenpunkte?