Viessmann VitoConnect API

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

Vorheriges Thema - Nächstes Thema

andreas13


Die erste Version eines Moduls für die Vissmann API ist fertig: https://forum.fhem.de/index.php/topic,93664.0.html

Maintainer des Vitoconnect Moduls
In Betrieb: FritzBox 7590, Homematic
piko Wechelrichter (HTTPMOD). Sonos ....
noch: IT

Frini

Hat es schon jemand geschafft eine manuelle Warmwasserladung aus FHEM heraus zu starten?

ritschi

Zitat von: Frini am 06 Dezember 2018, 12:27:34
Hat es schon jemand geschafft eine manuelle Warmwasserladung aus FHEM heraus zu starten?

Das würde mich auch interessieren:)

renardfm

Nein, es wird leider in meinen Features und in der Vicare App bei mir nicht angeboten.
Vitoladens 300c (Ölbrennwert) mit Vitocell 100B (400l Speicher)

Frini

#199
Ich habe schon versucht mittels notify manuell auf WW-Bereitung zu stellen, dann die WW-Solltemperatur heraufzusetzen und danach wieder in den normalen Bereich zurückschalten. Das hat leider auch nicht funktioniert.
Die ViCare-App hat mittlerweile sogar ein Widget für manuelle Warmwasserbereitung.
Ich schaffe es leider nicht den gesendetet Befehl an die API zu sniffen.

Hier steht die Auswertung der OneTimeCharge Zeilen. Aber ich stehe da echt auf dem Schlauch, wie ich das umsetzen kann.
Zitat von: thetrueavatar am 03 November 2018, 00:02:28
To be honest I don't know. I have seen this feature in the demo sample that can be found in the ViCare App(guess it's a mistake that we can find it there). I don't know exactly the meaning of it. Since I don't have this on my own heating device I have only be able to test it against those demo sample but till now demo sample was corresponding to what viessmann service expose...
Here is the json file from demo sample:

{
  "actions": [
    {
      "isExecutable": true,
      "href": "http://0.0.0.0:8082/operational-data/installations/demo/gateways/7123456789123456/devices/0/features/heating.dhw.oneTimeCharge/activate",
      "method": "POST",
      "title": "activate",
      "name": "activate"
    },
    {
      "isExecutable": true,
      "href": "http://0.0.0.0:8082/operational-data/installations/demo/gateways/7123456789123456/devices/0/features/heating.dhw.oneTimeCharge/deactivate",
      "method": "POST",
      "title": "deactivate",
      "name": "deactivate"
    }
  ],
  "links": [
    {
      "rel": [
        "self"
      ],
      "href": "http://0.0.0.0:8082/operational-data/installations/demo/gateways/7123456789123456/devices/0/features/heating.dhw.oneTimeCharge"
    },
    {
      "rel": [
        "up"
      ],
      "href": "http://0.0.0.0:8082/operational-data/installations/demo/gateways/7123456789123456/devices/0/features"
    },
    {
      "rel": [
        "http://schema.viessmann.com/link-relations#live-updates"
      ],
      "href": "/operational-data/installations/demo/gateways/7123456789123456/devices/0/features/heating.dhw.oneTimeCharge"
    },
    {
      "rel": [
        "via"
      ],
      "href": "https://staging-estrella.viessmann-platform.io/estrella/rest/v1.0/installations/demo/gateways/7123456789123456/devices/0/features/heating.dhw.oneTimeCharge"
    }
  ],
  "properties": {
    "active": {
      "value": false,
      "type": "boolean"
    }
  },
  "entities": [
    {
      "rel": [
        "http://schema.viessmann.com/link-relations#feature-meta-information"
      ],
      "properties": {
        "apiVersion": 1,
        "isEnabled": true,
        "isReady": true,
        "gatewayId": "7123456789123456",
        "timestamp": "2017-12-22T12:19:05.613Z",
        "uri": "/v1/gateways/7123456789123456/devices/0/features/heating.dhw.oneTimeCharge",
        "feature": "heating.dhw.oneTimeCharge",
        "deviceId": "0"
      }
    }
  ],
  "class": [
    "heating.dhw.oneTimeCharge",
    "feature"
  ]
}

My guess it's that's kind of manual charging indeed. I know that I can on my Vitocell 100-B add an electrical heating to increase hot-storage water temperature. Maybe this is related but I'm not sure...

ritschi


#!/bin/bash
export CLIENTID=79742319e39245de5f91d15ff4cac2a8
export CLIENTSECRET=8ad97aceb92c5892e102b093c7c083fa
export TOKEN_EP=https://iam.viessmann.com/idp/v1/token
export AUTHZ_EP=https://iam.viessmann.com/idp/v1/authorize
export SCOPE=openid
export REDIRECTURI=vicare://oauth-callback/everest
export isiwebuserid=user
export isiwebpasswd=pw
CODE=`curl -s -k --user "$isiwebuserid:$isiwebpasswd" "$AUTHZ_EP?client_id=$CLIENTID&scope=$SCOPE&redirect_uri=$REDIRECTURI&response_type=code"| grep -Eio 'code=(.)*"'|  cut -c"6-" | sed 's/.$//'`
#echo "CODE=$CODE"
TOKEN=`curl -s -k --user "$CLIENTID:$CLIENTSECRET" -d "code=$CODE&grant_type=authorization_code&client_id=$CLIENTID&redirect_uri=$REDIRECTURI" $TOKEN_EP | sed 's/{"access_token":"//' | sed 's/".*//'`
#REP_STATUS=`curl -k -H "AUTHORIZATION: Bearer $TOKEN" "https://api.viessmann-platform.io/operational-data/installations/votre_numero/gateways/votre_numero/devices/0/features/heating.circuits.0.operating.modes.active?expanded=false&"`
#echo "$REP_STATUS"
REP=`curl -X POST  https://api.viessmann-platform.io/operational-data/installations/xxxx/gateways/xxxxxxxxxx/devices/0/features/heating.dhw.oneTimeCharge/activate -S -s -H "Content-Type: application/json" -H "AUTHORIZATION: Bearer $TOKEN" -d '{"mode":"activate"}'`
echo "$REP"


Damit lässt sich die einmalige Speicherladung starten ... vielleicht hilft es euch weiter?

Frini

Cool. Das packe ich mir in eine php und führe die einfach aus? Also nach vorheriger Passwort, Benutzername und Gateway Anpassung meine ich.

ritschi

Zitat von: Frini am 07 Dezember 2018, 12:15:31
Cool. Das packe ich mir in eine php und führe die einfach aus? Also nach vorheriger Passwort, Benutzername und Gateway Anpassung meine ich.

Ne das ein Shell Script ... Ich dachte es hilft irgendwie bei der Umsetzung

Frini

OK. Damit habe ich noch nicht gearbeitet. Ich werde mich mal dran setzen :-)
Vielen Dank  :D

Frini

Ich habe mir gerade ein bash skript erstellt. Allerdings meckert er mit folgender Meldung:

test.sh: line 10: curl: command not found
test.sh: line 12: curl: command not found
test.sh: line 15: curl: command not found


Aufgerufen mit sudo bash test.sh


oli82

Zitat von: Frini am 07 Dezember 2018, 16:53:47
Ich habe mir gerade ein bash skript erstellt. Allerdings meckert er mit folgender Meldung:

test.sh: line 10: curl: command not found
test.sh: line 12: curl: command not found
test.sh: line 15: curl: command not found


Aufgerufen mit sudo bash test.sh
https://www.cyberciti.biz/faq/how-to-install-curl-command-on-a-ubuntu-linux/

Frini

Jetzt klappt es. Ich dachte ich hätte curl schon installiert gehabt.
Ich habe hier jetzt einen DashButton mit dem ich endlich vor dem Baden eine Warmwasserladung starten kann. Vielen Dank

andreas13

Hallo zusammen,

nutzt noch jemand das PHP Skript? Ich habe das Skript in ein FHEM Modul migriert (https://forum.fhem.de/index.php/topic,93664.0.html). Fehlt Euch noch etwas an dem Modul um Euch zum Schwenken zu überreden? ;-)

Liebe Grüße

Andreas
Maintainer des Vitoconnect Moduls
In Betrieb: FritzBox 7590, Homematic
piko Wechelrichter (HTTPMOD). Sonos ....
noch: IT

Mave


Frini

Ich habe es vor Weihnachten durch dein Modul abgelöst. Nutze aber noch die php und das Bash Skript um die Heizkurve,Temperaturen, manuelle Wasserladungen und Modi zu setzen.

Was wirklich genial wäre wäre ebenfalls ein setzen der Urlaubszeiten.

Aber ist kein Muss. Ich habe schon mehr realisieren können als vorher gedacht.