Neues Modul: vitoconnect

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

Vorheriges Thema - Nächstes Thema

andreas13

Anbei mein erstes eigenes Modul:

vitoconnect nutzt die Vissmann API mit der man den Zustand diverser neuerer Viessmann Heizungen abfragen kann. Dies ist die API, die auch die ViCare App nutzt. Man benötigt ein Internetschnittstellenmodul (https://www.viessmann.de/de/viessmann-apps/vitoconnect.html) und einen entsprechenden Viessmann Account. ViCare App und dieses Modul können gleichzeitig genutzt werden.

Das Modul basiert auf dem PHP Modul von thetrueavatar (https://github.com/thetrueavatar/Viessmann-Api). Siehe auch die Diskussion hier im Forum https://forum.fhem.de/index.php/topic,86073.0.html.


Die Dokumentation findet ihr im Wiki https://wiki.fhem.de/wiki/Vitoconnect !!

Da dieses Modul Werte der Heizung nur über die API von Vissmann verändern kann, sollte die Benutzung risikoarm sein. Allerdings kann ich keine Garantie übernehmen, dass es nicht doch zu irgendwelchen unerwünschten Nebeneffekten kommt. Nutzung auf eigene Gefahr.

Außerdem ist es mein erstes Modul. Perl wird bestimmt nicht meine Lieblingsprogrammiersprache werden!

Daher bin ich für Anregungen, Verbesserungen und kontruktive Kritik dankbar.

Viel Spass mit dem Modul!

Andreas






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

tcbh

Hallo Andreas,

vielen Dank für Deine Mühe!
Ich habe Dein Modul eingebunden, aber der Login funktioniert bei mir nicht, obwohl ich die Login-Daten noch einmal direkt mit der ViCare-App verglichen habe.

Allerdings taucht bei mir im Log auch ein Fehler auf. Vielleicht liegt es daran?
Kannst Du damit etwas anfangen?

PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_vitoconnect.pm line 314.


Viele Grüße
Till

PeterLustig

Hallo Andreas,

ich habe das Modul heute ausprobiert. Alle Daten werden vom Viessmann-Server abgeholt, genau wie bei der PHP-Version zuvor.

Aber:
Bei jedem Abruf der Daten meckert Freezemon im Logfile, weil FHEM mehrere Sekunden hängt. Ein Non-Blocking wäre hier sehr "nett".

Außerdem ist die Geräte-Seite im Browser sehr, sehr breit, so dass ein horizontaler Scrollbalken entsteht und das Datum der letzen Aktualisierung rechts
nicht mehr zu sehen ist. Ich habe aber keine Ahnung, ob das von der großen Anzahl von Readings kommt oder ein sonstiges Problem bei meiner Installation ist.

Ansonsten finde ich die Integration mittels Modul besser als die PHP-Variante. Vielleicht lassen sich die o.a. Probleme ja irgendwie lösen....

Viele Grüße
PeterLustig

andreas13

Zitat von: tcbh am 25 November 2018, 18:54:28
Hallo Andreas,

vielen Dank für Deine Mühe!
Ich habe Dein Modul eingebunden, aber der Login funktioniert bei mir nicht, obwohl ich die Login-Daten noch einmal direkt mit der ViCare-App verglichen habe.

Allerdings taucht bei mir im Log auch ein Fehler auf. Vielleicht liegt es daran?
Kannst Du damit etwas anfangen?

PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_vitoconnect.pm line 314.


Viele Grüße
Till

Hallo Til,

bitte mal mit verbose 5 starten  und kompletten Log und List des Objekt mailen, aber vorher Passwort löschen!

Andreas


Gesendet von iPad mit Tapatalk Pro
Maintainer des Vitoconnect Moduls
In Betrieb: FritzBox 7590, Homematic
piko Wechelrichter (HTTPMOD). Sonos ....
noch: IT

andreas13

Zitat von: PeterLustig am 25 November 2018, 21:23:52
Hallo Andreas,

ich habe das Modul heute ausprobiert. Alle Daten werden vom Viessmann-Server abgeholt, genau wie bei der PHP-Version zuvor.

Aber:
Bei jedem Abruf der Daten meckert Freezemon im Logfile, weil FHEM mehrere Sekunden hängt. Ein Non-Blocking wäre hier sehr "nett".

Außerdem ist die Geräte-Seite im Browser sehr, sehr breit, so dass ein horizontaler Scrollbalken entsteht und das Datum der letzen Aktualisierung rechts
nicht mehr zu sehen ist. Ich habe aber keine Ahnung, ob das von der großen Anzahl von Readings kommt oder ein sonstiges Problem bei meiner Installation ist.

Ansonsten finde ich die Integration mittels Modul besser als die PHP-Variante. Vielleicht lassen sich die o.a. Probleme ja irgendwie lösen....

Viele Grüße
PeterLustig

Das Blocking hängt mit dem curl zusammen.  Würde gerne auf auf htmltools umstellen, aber dazu brauche ich mal viel Zeit oder jemanden, der mir hilft.

Bei den Readings kann ich ein paar Trennzeichen einfügen damit Fhem die langen Readings umbricht. Kommt in der nächsten Version.


Gesendet von iPad mit Tapatalk Pro
Maintainer des Vitoconnect Moduls
In Betrieb: FritzBox 7590, Homematic
piko Wechelrichter (HTTPMOD). Sonos ....
noch: IT

tcbh

Zitat von: andreas13 am 25 November 2018, 21:52:49
Hallo Til,

bitte mal mit verbose 5 starten  und kompletten Log und List des Objekt mailen, aber vorher Passwort löschen!

Andreas


Gesendet von iPad mit Tapatalk Pro

Hallo Andreas,

ich bin bisher nicht der ganz große FHEM-Profi  ;)
Du meinst vermutlich folgenden Teil des Logs?


2018.11.25 22:07:22 4: vitoconnect: GetUpdate called ...
2018.11.25 22:07:22 5: getCode: https://iam.viessmann.com/idp/v1/authorize?client_id=blablabla&scope=openid&redirect_uri=vicare://oauth-callback/everest&response_type=code
2018.11.25 22:07:27 3: getCode went ok
2018.11.25 22:07:27 5: Received response: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>
<TITLE>Error Page</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER><H2>
ERROR!: error class 'Client Error'; error code '400'; error text 'bad request'
</H2></CENTER>
</BODY></HTML>
2018.11.25 22:07:27 5: code =


Hilft das bei der Fehlersuche weiter?

Vielen Dank und viele Grüße
Till

Frini

Hallo,
ich habe es gestern abend mal eingespielt. Läuft soweit. Mir ist aufgefallen, dass nach jedem Aufrufen die Readings für den Schedule anders ausschauen. Mal beginnen die mit Samstag, mal mit Dienstag. Konnte da gestern abend kein System hinter entdecken. Was ich gut finde, ist dass es alle position abfragt. Also verschiedene Startzeiten für den Tag.

Gharac Durac

Danke für das Modul! Läuft soweit.

Ich habe eine Vitodens 200 mit entsprechendem Vitoconnect 100.

Was mir aber unklar ist, sind die Gasverbrauchswerte. Ich habe die Heizung und den Gasanschluß diesen April frisch installieren lassen. Der Wert der mir als Jahresverbrauch angezeigt wird liegt bei 23456,0.

Auf meinem Gaszähler standen vor einer Woche 739 qm³ Gasverbrauch seit Installation. Nun bringe ich den qm³ Wert nicht zu einem kw/h Verbrauch der irgendwie zu dem 23456,0 passt. Was bedeuten also die 23456,0 ?  Leicht verwirrend.

andreas13

Zitat von: Frini am 26 November 2018, 13:00:36
Hallo,
ich habe es gestern abend mal eingespielt. Läuft soweit. Mir ist aufgefallen, dass nach jedem Aufrufen die Readings für den Schedule anders ausschauen. Mal beginnen die mit Samstag, mal mit Dienstag. Konnte da gestern abend kein System hinter entdecken. Was ich gut finde, ist dass es alle position abfragt. Also verschiedene Startzeiten für den Tag.
Wenn ich Perl richtig verstanden habe, ist die Reihenfolge in einem Hash zufällig. Bei der PHP Version war das anders.


Gesendet von iPad mit Tapatalk Pro
Maintainer des Vitoconnect Moduls
In Betrieb: FritzBox 7590, Homematic
piko Wechelrichter (HTTPMOD). Sonos ....
noch: IT

andreas13

Zitat von: Gharac Durac am 26 November 2018, 17:31:33
Danke für das Modul! Läuft soweit.

Ich habe eine Vitodens 200 mit entsprechendem Vitoconnect 100.

Was mir aber unklar ist, sind die Gasverbrauchswerte. Ich habe die Heizung und den Gasanschluß diesen April frisch installieren lassen. Der Wert der mir als Jahresverbrauch angezeigt wird liegt bei 23456,0.

Auf meinem Gaszähler standen vor einer Woche 739 qm³ Gasverbrauch seit Installation. Nun bringe ich den qm³ Wert nicht zu einem kw/h Verbrauch der irgendwie zu dem 23456,0 epasst. Was bedeuten also die 23456,0 ?  Leicht verwirrend.
Ich zeig die Werte so an, wie sie die API liefert. In dem anderen Thread wurde verifiziert, dass die Gasverbräuche wohl durch 8 geteilt werden müssen um den kWh Wert zu erhalten. Die userreadings sind entsprechend definiert. Wieviel kWh ein qm bei dir enthält, kann von Versorger zu Versorger unterschiedlich sein und kann bei ihm erfragt werden bzw. steht auf der Gasrechnung. Im Wiki habe ich auch schonmal was darüber gelesen. Einfach mal suchen.
Bei mir sind die Verbräuche für Wasser und Heizung immer gleich. Wie das zu interpretieren ist, weiß ich auch noch nicht.


Gesendet von iPad mit Tapatalk Pro
Maintainer des Vitoconnect Moduls
In Betrieb: FritzBox 7590, Homematic
piko Wechelrichter (HTTPMOD). Sonos ....
noch: IT

Frini

Und es es werden wohl aktuell auch nur die Gasverbräuche für den Heizbetrieb übermittelt. Hier müssen wir auf das nächste Update von Viessmann warten.

OK. Kann man den Zeitplan irgendwie aufdröseln? btw. Läuft immer noch fehlerfrei.

CoolTux

Hallo Andreas,

Wenn Du die Umstellung von curl auf das FHEM interne HTTPUtils machst und Fragen hast kannst Du mich gerne anschreiben. Habe gesehen das Du die Umstellung auf Deiner ToDo Liste hast  :)


Grüße
Leon
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

andreas13

Zitat von: tcbh am 25 November 2018, 22:15:10
Hallo Andreas,

ich bin bisher nicht der ganz große FHEM-Profi  ;)
Du meinst vermutlich folgenden Teil des Logs?


2018.11.25 22:07:22 4: vitoconnect: GetUpdate called ...
2018.11.25 22:07:22 5: getCode: https://iam.viessmann.com/idp/v1/authorize?client_id=blablabla&scope=openid&redirect_uri=vicare://oauth-callback/everest&response_type=code
2018.11.25 22:07:27 3: getCode went ok
2018.11.25 22:07:27 5: Received response: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>
<TITLE>Error Page</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER><H2>
ERROR!: error class 'Client Error'; error code '400'; error text 'bad request'
</H2></CENTER>
</BODY></HTML>
2018.11.25 22:07:27 5: code =


Hilft das bei der Fehlersuche weiter?

Vielen Dank und viele Grüße
Till

Das habe ich so noch nie gesehen. Ein Loginfehler ist das nicht. Ist der Fehler immer noch da oder war das nur temporär (der Vissmann Server hat manchmal Schluckauf). Setz bitte mal in Zeile 301 "CURLOPT_VERBOSE" auf "1" und schick mir dann das nochmal das Log. An dem Modul hast Du nichts geändert, oder? Auch nicht die client_id (die ist für alle gleich).
Maintainer des Vitoconnect Moduls
In Betrieb: FritzBox 7590, Homematic
piko Wechelrichter (HTTPMOD). Sonos ....
noch: IT

andreas13

Zitat von: CoolTux am 27 November 2018, 10:30:43
Hallo Andreas,

Wenn Du die Umstellung von curl auf das FHEM interne HTTPUtils machst und Fragen hast kannst Du mich gerne anschreiben. Habe gesehen das Du die Umstellung auf Deiner ToDo Liste hast  :)


Grüße
Leon

Hallo Leon,

ich komme darauf zurück, aber erstmal muss ich die Basics lernen damit ich weiß, was ich fragen soll ;-)

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

Gharac Durac

Zitat von: andreas13 am 27 November 2018, 04:14:37
Ich zeig die Werte so an, wie sie die API liefert. In dem anderen Thread wurde verifiziert, dass die Gasverbräuche wohl durch 8 geteilt werden müssen um den kWh Wert zu erhalten. Die userreadings sind entsprechend definiert. Wieviel kWh ein qm bei dir enthält, kann von Versorger zu Versorger unterschiedlich sein und kann bei ihm erfragt werden bzw. steht auf der Gasrechnung. Im Wiki habe ich auch schonmal was darüber gelesen. Einfach mal suchen. Bei mir sind die Verbräuche für Wasser und Heizung immer gleich. Wie das zu interpretieren ist, weiß ich auch noch nicht.

Die Werte sind bei mir auch für Heizung und Wasser gleich. Ich denke es ist einfach der Gesamtwert des Gasverbrauchs, egal ob Heizung und/oder Wasser.
Mein Wert der heute um gut 800 höher ist als gestern, passt egal wie ich es rechne zu nichts. Da ich alles neu habe und der Gaszähler bei 0 anfing, kann ich das gut vergleichen. Die Rechnung (ich habe nur eine für die ersten 3 Monate und da war quasi Dauersommer) erschliesst sich mir auch nicht wirklich. Das passt alles hinten und vorne nicht zu den von der API angezeigten Werten und schon gar nicht zum tatsächlichen Verbrauch in qm³ Gas. Ich habe jetzt mal beim Gasversorger direkt angefragt, wie sie denn die qm³ bei meinem Anschluß in kw/h umrechnen. Mal sehen ob das schlauer macht.  Warum auch einfach, wenn man sowas kompliziert machen kann....