Neues Modul: vitoconnect

Begonnen von andreas13, 24 November 2018, 17:42:33

Vorheriges Thema - Nächstes Thema

SebHH

so, ich hab es endlich geschafft das update einzuspielen und die gw.json zu generieren.

  'entities' => [
                  {
                    'properties' => {
                                      'description' => 'PA2',
                                      '_id' => '123456',
                                      'id' => 123456,
                                      'aggregatedStatus' => 'WorksProperly',
                                      'updatedAt' => '2020-07-08T19:54:13.050Z',
                                      'registeredAt' => '2020-07-08T19:53:39.083Z'
                                    },


sowie später im gleichen File:
'properties' => {
                                      'registeredAt' => '2020-06-25T12:09:55.352Z',
                                      '_id' => '234567',
                                      'id' => 234567,
                                      'aggregatedStatus' => 'WorksProperly',
                                      'updatedAt' => '2020-06-25T12:26:00.325Z',
                                      'description' => 'V200'
                                    },

123456 und 234567 habe ich eingesetzt als imaginäre IDs eingesetzt
PA2 bzw V200 ist die Bezeichnung, die ich in der App für den Standort gewählt habe. In meinem Fall ist es einfach der Name der Heizung zwischen denen ich auf dem home-screen der Vicare app wechseln kann.


und dann sehe ich folgendes - einfach doppelte Einträge die sich in der ID unterscheiden.
https://api.viessmann-platform.io/general-management/v1/installations/123456/gateways
bzw
https://api.viessmann-platform.io/general-management/v1/installations/234567/gateways


was mir noch aufgefallen ist - nachdem ich beide Anlagen in den gleichen Account gepackt hatte und danach wieder zurück haben sich scheinbar die IDs geändert da es nur noch zu einem Fehler kam.

Viele Grüße
Seb

andreas13

Hallo Seb,

vielen Dank, ich werde es mir bei Gelegenheit mal anschauen. Kann aber noch ein bisschen dauern. Bin mal gespannt, was die am Wochenende am Server schrauben. Ich habe die Ankündigung für ein Wartungsfenster bekommen. :-)

Viele Grßße

Andreas


Zitat von: SebHH am 08 Juli 2020, 22:33:53
so, ich hab es endlich geschafft das update einzuspielen und die gw.json zu generieren.

  'entities' => [
                  {
                    'properties' => {
                                      'description' => 'PA2',
                                      '_id' => '123456',
                                      'id' => 123456,
                                      'aggregatedStatus' => 'WorksProperly',
                                      'updatedAt' => '2020-07-08T19:54:13.050Z',
                                      'registeredAt' => '2020-07-08T19:53:39.083Z'
                                    },


sowie später im gleichen File:
'properties' => {
                                      'registeredAt' => '2020-06-25T12:09:55.352Z',
                                      '_id' => '234567',
                                      'id' => 234567,
                                      'aggregatedStatus' => 'WorksProperly',
                                      'updatedAt' => '2020-06-25T12:26:00.325Z',
                                      'description' => 'V200'
                                    },

123456 und 234567 habe ich eingesetzt als imaginäre IDs eingesetzt
PA2 bzw V200 ist die Bezeichnung, die ich in der App für den Standort gewählt habe. In meinem Fall ist es einfach der Name der Heizung zwischen denen ich auf dem home-screen der Vicare app wechseln kann.


und dann sehe ich folgendes - einfach doppelte Einträge die sich in der ID unterscheiden.
https://api.viessmann-platform.io/general-management/v1/installations/123456/gateways
bzw
https://api.viessmann-platform.io/general-management/v1/installations/234567/gateways


was mir noch aufgefallen ist - nachdem ich beide Anlagen in den gleichen Account gepackt hatte und danach wieder zurück haben sich scheinbar die IDs geändert da es nur noch zu einem Fehler kam.

Viele Grüße
Seb
Maintainer des Vitoconnect Moduls
In Betrieb: FritzBox 7590, Homematic
piko Wechelrichter (HTTPMOD). Sonos ....
noch: IT

Spook112

Hi
auch von  meiner Seite vielen Dank und Lob für dieses tolle Modul.
Installiert und funktioniert mit meiner Vitodens 200, obwohl die Therme schon 15 Jahre alt ist.

Kleine, vermutlich einfache Frage: Welches Reading zeigt mir den Gerätestatus an, also ob das Gerät normal läuft oder auf Störung ist?
Es gibt so viele Readings, nur dafür habe ich keines gefunden.

Das was dem (aus meiner Sicht) noch am nähsten kommt ist Brenner_Status mit Status ok.
Weiss jemand welche Statusmeldungen bei diesem Reading auftreten können?

Das wäre ohnehin gut, wenn es darüber eine Info/Doku gäbe, welches Reading welche Ausgaben/Zustände melden kann.

Danke im Voraus für Eure Hilfe.
Gruß
Michael
Raspberry PI / RaZberry ZWAVE Modul / RFXTRX433E / 13 Fibaro FGS-222-EN-A-v1.00 / 17 VISION ZD2102-5 / 10 Somfy RTS / 4 Greenwave GWRENS310-F / Gardena Sileno City / 3 Gardena Gartensteckdosen / 2 devolo Home Control Funkschalter / 8 FIBARO System FGSD002 Smoke Sensoren

andreas13

Hallo Michael,

Du hast Recht: Es wäre gut, wenn eine Doku diese API gäbe. Leider ist Viessmann diesbezüglich sehr verschlossen :-( Aber schreib denen ruhig mal. Wenn es genug tun, haben sie vielleicht ein Einsehen. Die Hoffnung stirbt zuletzt.

Ich habe alles, was ich weiß in den entsprechenden Wiki-Artikel (https://wiki.fhem.de/wiki/Vitoconnect) geschrieben. Wenn Du mehr weißt, kannst Du es gern da reinschreiben.

Die Frage, ob Deine Heizung "normal" läuftfindest du unter "Fehlereintraege_aktive", was normalerweise so aussehen sollte {"new":[],"current":[],"gone":[]}. Wenn mal eine Störung auftritt, sieht das z.B. so aus: {"new":[{"timestamp":"2019-10-16T11:29:25.000Z","errorCode":"f1","priority":"criticalError","accessLevel":"customer"}],"current":[{"timestamp":"2019-10-16T11:29:25.000Z","priority":"criticalError","errorCode":"f1","accessLevel":"customer"}],"gone":[{"timestamp":"2020-07-21T22:56:30.207Z","priority":"criticalError","errorCode":"f1","accessLevel":"customer"}]}

Wenn der Fehlerzustand beendet wurde, wandern die Störungsmeldungen in Fehlereintraege_Historie.

Was der "errorCode" bedeutet, musst Du googlen. Hat Viessmann irgendwo auf Ihrer Webseite versteckt. "f1" heißt z.B. dass der Abgastemperaturbegrenzer ausgelöst hat (mein Handwerker meinte das Wasser aus dem Heizkreislauf ablassen zu können, woraufhin die Wärme natürlich nicht mehr abgeführt wurde. Gut dass es so einen Begrenzer gib).

Brenner_Status hat bei mir noch nie etwas anderes angezeigt als "ok". Keine Ahnung, was es noch gibt. Ein Kollege hier, hatte  wohl mal einen "Brenner_Fehlercode" ungleich 0, aber ich weiß nicht mehr, was das war.

Ein Reading mit dem Wert "error" muss übrigends nicht heißen, dass irgendwas nicht so läuft, wie es soll. Das Reading "WW-Sensoren_Auslauf_Status" hat bei mir schon immer den Wert "error", weil meine Heizung einfach keinen Warmwassertemperatursensor am Auslauf hat.

Und damit es nicht zu einfach wird, variiert nicht nur die Liste der Reading von Heizungstyp zu Heizungstyp, sondern auch die Bedeutung der Reading und von Zeit zu Zeit ändert Viessmann auch noch was an der API ...

Lange Rede, kurzer Sinn: Das Modul liest nur die von Viessmann gelieferten Werte aus. Die Interpretation der Readings obliegt dem Nutzer. Den einzigen Luxus, den ich implementiert habe, sind die sprechenden Bezeichnungen für die Readings.

Viele Grüße

Andreas



Zitat von: Spook112 am 31 Juli 2020, 13:58:23
Hi
auch von  meiner Seite vielen Dank und Lob für dieses tolle Modul.
Installiert und funktioniert mit meiner Vitodens 200, obwohl die Therme schon 15 Jahre alt ist.

Kleine, vermutlich einfache Frage: Welches Reading zeigt mir den Gerätestatus an, also ob das Gerät normal läuft oder auf Störung ist?
Es gibt so viele Readings, nur dafür habe ich keines gefunden.

Das was dem (aus meiner Sicht) noch am nähsten kommt ist Brenner_Status mit Status ok.
Weiss jemand welche Statusmeldungen bei diesem Reading auftreten können?

Das wäre ohnehin gut, wenn es darüber eine Info/Doku gäbe, welches Reading welche Ausgaben/Zustände melden kann.

Danke im Voraus für Eure Hilfe.
Gruß
Michael
Maintainer des Vitoconnect Moduls
In Betrieb: FritzBox 7590, Homematic
piko Wechelrichter (HTTPMOD). Sonos ....
noch: IT

didy

Hallo zusammen,

erstmal vielen Dank für die Überarbeitung!

Nachdem das Thema bei mir jetzt ein halbes Jahr brach lag, habe ich diese Woche das neueste Update eingespielt und das Modul wieder aktiviert. Bzgl. der Updaterate wollte ich mich langsam rantasten. Und bin dabei auf ein seltsames Verhalten gestoßen.

Viessmann lässt ja angeblich 1450 Zugriffe / 24h zu.
Minütliche Abfrage wäre 1440 Zugriffe / 24h. Zu knapp, wenn man die App auch noch gelegentlich benutzen will, und generell auch für den ein oder anderen "Schluckauf" Luft lassen will.
Das kurze Zeitfenster, 120 Zugriffe je 10 Minuten, sollte kein Gegner sein.

Mein Plan mich voranzutasten und jeweils min 24h warten. 5 Min --> 2 Min --> 1,5 Min.
1,5 Minuten ergäbe 960 Zugriffe je 24h. Auch mit gelegentlich neuen Token abrufen sollte das eigentlich weit genug weg sein.

Jetzt habe ich mal die tatsächliche Zeitdiffferenz ausgewertet. Log der Außentemperatur per Text in Excel, die Zeitdifferenz zwischen zwei Einträgen berechnet und als Diagramm dargestellt.

Erste Phase mit 300 Sekunden sieht aus wie erwartet: Eine Linie bei 5 Minuten. Den gelegentlichen Ausreißern nach oben messe ich jetzt mal keine tiefere Bedeutung bei - im Zweifelsfall ist das auch die Internetanbindung, die dort über Mobilfunk läuft.

In einer zweiten Phase habe ich auf 120 Sekunden gestellt. Und das sieht jetzt definitiv nicht aus wie erwartet. Die 2 Minuten sind eher eine Obergrenze. Der Mittelwert liegt bei 1:07. Sieht man auch sehr schön an der blauen Linie, das ist immer der Mittelwert aus zwei Zeitdifferenzen.
Wenn ich alle mit Zeitdifferenz 0 aus meiner Tabelle lösche (Annahme, hier wird einfach zweimal das selbe ins Log geschrieben), sieht es optisch nicht sehr viel besser aus, Mittelwert dann bei 1:13
Erst wenn man alle mit Zeitdifferenz kleiner 5 Sekunden wegfiltere, sieht man Teilbereiche wo die 2 Minuten gut eingehalten werden. Es hat aber immer noch genügend Bereiche, wo das irgendwie einfach passen kann.

Zur Info: Auf der Aussentemperatur liegt ein "event-on-update-reading" und kein min- oder max- intervall.
Es gibt noch einige andere on-update, sowie einige on-change. Für die on-change gibt es dann häufig ein min-intervall alle 300, 600 oder 3600s. (Z.B. Betriebsart bei Änderung, mindestens alle 5 Sekunden. Brennerstarts bei Änderung, mindestens alle 1h, usw.)

Wo kann der Hund begraben liegen?



Andere Frage: Gibt es eine Tabelle, welche Roh-Namen unter welchen "eleganten" Namen geführt werden? Hier hat sich mindestens die Kessel-Solltemperatur geändert (war früher das rohe Kessel_Exact) was ich anpassen musste, und früher wohl auch Werte für Service_faellig und Service_letzter, die jetzt gar nicht mehr kommen?

trs

Moin,

gibt es die Möglichkeit, über das Modul die Systemzeit von der Heizung einzustellen? Oder die Zeit anzeigen zu lassen? Bei mir ist die Urzeit manchmal verstellt, seit dem ich das Modul nutze, keine Ahnung warum. Dann ist das Warmwasser morgens so kalt...

Gruss
Thorsten

renardfm

Hallo zusammen,
Ich verwende noch die ursprüngliche PHP Datei zum periodischen Abruf... Und seit heute Abend schmeißt diese einen Fehler.

PHP Notice:  Undefined index: entities in /home/pi/viessmann2.php on line 80
Installation=
PHP Notice:  Undefined index: entities in /home/pi/viessmann2.php on line 82
Gateway=
PHP Notice:  Undefined index: entities in /home/pi/viessmann2.php on line 88
PHP Warning:  Invalid argument supplied for foreach() in /home/pi/viessmann2.php on line 105
FHEM session open ...


Meine Frage, geht euer Modul noch?
Am Wochenende gab es seitens Server ein größeres Update. Allerdings lief es auch heute früh reibungslos. Die Vicare App funktioniert.

Danke und Gruß

moskito

Seit heute Nachmittag läuft mein Modul auch nicht mehr. Soll angeblich das Abfragelimit überschritten worden sein, was aber eigentlich nicht sein kann.
Wie bei dir tut es die App trotzdem noch.
Ich warte einfach mal ab.

Gruß
Danny
FHEM auf Intel NUC/Proxmox & Debian 12 + HM-CFG-USB + zigbee2mqtt + Zwave + Enocean

MrGAN

#488
statusCode: 401 errorType: UNAUTHORIZED message: Token provided in request is expired or invalid. error: EXPIRED TOKEN
Heute seit 2020-10-12 16:53:34

Sollte sich das nicht per Autologin selbst lösen?  ???
App geht.

Mit besten Grüßen
Markus

moskito

Zitat von: MrGAN am 12 Oktober 2020, 21:25:13
statusCode: 401 errorType: UNAUTHORIZED message: Token provided in request is expired or invalid. error: EXPIRED TOKEN
Heute seit 2020-10-12 16:53:34
Hatte ich auch ursprünglich.
Mit
set <device> logResponseOnce
kannst du in den erzeugten Dateien mal schauen was Viessmann zurückliefert.
Bei mir steht in der gw.json:
API calls rate limit has been exceeded. Please wait until your limit will renew.
Die Uhrzeit seit dem es nicht mehr funktioniert ist sogar mit deiner identisch.
Ich glaube da hat der Praktikant Feierabend gemacht, der die Zähler zurücksetzt...  ;D

Gruß
Danny
FHEM auf Intel NUC/Proxmox & Debian 12 + HM-CFG-USB + zigbee2mqtt + Zwave + Enocean

uron

Ich kann nur bestätigen, dass mit der Fehlermeldung
statusCode: 401 errorType: UNAUTHORIZED message: Token provided in request is expired or invalid. error: EXPIRED TOKEN
gleichzeitig auch der Plot endete - das letzte Reading ist von 16:50 Uhr!
Raspberry Pi  fhem  FHEMobile  CUL  FS20-, HM-, Intertechno-, AVM- und Shelly-Aktoren, Vitoconnect 100, Vitocal 200-S, Optolink, FTUI auf iPad, FTUI auf iPhone, Stromzähler von Powerfox, Wechselrichter Growatt MIN 4600 TL-XH, RasPi ioBroker

MrGAN

#491
Kann ich bestätigen:

VAR1 = {
          'message' => 'API calls rate limit has been exceeded. Please wait until your limit will renew.',
          'extendedPayload' => {
                                 'name' => 'ViCare day limit',
                                 'limitReset' => '1602563764167',
                                 'requestCountLimit' => 1450,
....

Interessant ist aber der requestCountLimit. 24h * 60min = 1440
D.h. selbst minütlich müsste noch unter dem Limit liegen.  :-\

Ich polle alle 5 min, was man auch sehr gut im Log verfolgen kann

docwoelle

Zitat von: MrGAN am 12 Oktober 2020, 22:01:32
Kann ich bestätigen:
(..)
                                 'limitReset' => '1602563764167',
                                 'requestCountLimit' => 1450,
....


Bei Dir müsste inzwischen das Quota zurückgesetzt worden sein, Dein Timestamp zeigt auf Dienstag, 13. Oktober 2020 06:36:04.167 GMT+02:00 DST.

Funktioniert es denn wieder?

Ich muss noch eine Weile warten, mein Timestamp ist um 19:38 heute.

Ich polle minütlich, der Ausfall war aber zeitgleich mit den anderen gestern um 16:50 etwa.
Es kann somit eigentlich nicht am Limit liegen. Es wäre doch ziemlich seltsam, wenn auch bei niederfrequentem Pollen das Limit zur selben Zeit erreicht würde.

VG Wolfgang

uron

Seit heute Morgen, ca. 7:30 Uhr, 'läuft' mein SVG ohne Fehlermeldung weiter!
Raspberry Pi  fhem  FHEMobile  CUL  FS20-, HM-, Intertechno-, AVM- und Shelly-Aktoren, Vitoconnect 100, Vitocal 200-S, Optolink, FTUI auf iPad, FTUI auf iPhone, Stromzähler von Powerfox, Wechselrichter Growatt MIN 4600 TL-XH, RasPi ioBroker

kroemmel

Guten morgen!

Bei mir riss der plot gestern um 16.50 auch ab.
Heute morgen folgende Meldung im Modul:

JSON error while request: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/98_vitoconnect.pm line 1478.

Plot wird nicht geschrieben, update habe ich gestern laufen lassen.

Cheers
Kroemmel
() FHEM als Ubuntu-VM
() VCCU mit 1 HMLAN, 2 UARTs und div. Sensoren/Aktoren (primär HM), HUE,
() Integration Fritz!Box, Googlekalender, Unifi, Viessmann Heizung, Umweltbedingungen, Sonnenstand, PWM, Jalousiesteuerung, Anwesenheitserkennung, Raumklimaüberwachung, Telegram