Neues Modul: vitoconnect

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

Vorheriges Thema - Nächstes Thema

andreas13

Zitat von: didy am 17 März 2020, 14:52:56
Hallo,

Viessmann hat heute einen neuen Forenthread geöffnet und darin auch Details zu ihrer eingeführten Begrenzung veröffentlicht:
https://www.viessmann-community.com/t5/Experten-fragen/Q-amp-A-Viessmann-API/qaq-p/1276601450 Aufrufe in 24 Stunden sollten für minütliches Logging genügen (Tag hat 1440 Minuten).
Obwohl ich am Wochenende auf 5-Minuten-Intervall (300s) heruntergestellt habe, habe ich seit heute morgen zwischen 8 und 9 keine Daten mehr im Log.

Stellt sich die Frage, wie arbeitet dein Modul? Deutet darauf hin, als ob es je eingestelltem Intervall nicht nur einen Aufruf macht und daraus alles ausliest, sondern jeweils mehrere Aufrufe?

Hallo,

also bei mir läuft es noch ganz gut. Ich habe das Intervall jetzt auf 5min gesetzt.

Wenn man "verbose" auf 4 stellt, sieht man, wie das Modul arbeitet:

2020.03.19 11:00:42 4: vitoconnect - GetUpdate called ...
2020.03.19 11:00:42 4: vitoconnect - getCodeCallback went ok
2020.03.19 11:00:42 4: vitoconnect - getAccessTokenCallback went ok
2020.03.19 11:00:43 4: vitoconnect - getGwCallback went ok
2020.03.19 11:00:43 4: vitoconnect - getResourceCallback went ok

In einem Intervall wird erst ein Code, dann ein AccessToken und dann ein Gateway geholt, bevor dann die eigentlichen Daten geholt werden können. Bei einer "Action" also "set vitoconnect HK1-Betriebsart dhwAndHeating" ist es genauso.

Die Readings werden also alle in einem Rutsch geholt und nicht einzeln. Ich weiß natürlich nicht, wie Vissmann das zählt, aber für mich wären die 4 Schritte ein API Call.

Ich habe auch schon mal versucht, ob man alle 4 Schritte jedesmal durchführen muss, oder ob beim 2. Mal z.B. nur der letzte Schritt notwendig ist, aber mangels Dokumentation habe ich keine eindeutige Antwort auf die Frage.

Mal sehen, wie es weitergeht.

Viele Grüße

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

didy

Zitat von: andreas13 am 19 März 2020, 11:09:36
Wenn man "verbose" auf 4 stellt, sieht man, wie das Modul arbeitet:
Diesen Output sieht man dann wo genau?

Zitat von: andreas13 am 19 März 2020, 11:09:36In einem Intervall wird erst ein Code, dann ein AccessToken und dann ein Gateway geholt, bevor dann die eigentlichen Daten geholt werden können.
Versteh ich nicht ganz. AccessToken und Daten holen ist klar. Was ist mit Code holen gemeint? Und was ist mit Gateway holen gemeint - die ID des jeweiligen VitoConnect? Die müsste man doch auch einfach fest setzen können, die ändert sich doch nicht?

Zitat von: andreas13 am 19 März 2020, 11:09:36Ich habe auch schon mal versucht, ob man alle 4 Schritte jedesmal durchführen muss, oder ob beim 2. Mal z.B. nur der letzte Schritt notwendig ist, aber mangels Dokumentation habe ich keine eindeutige Antwort auf die Frage.
Also wie gesagt, wenn Gateway die ID des VitoConnects ist, das sollte sich nicht ändern, das könnte man IMHO fest setzen.
Und beim AccessToken, das gilt IMHO eine gewisse Zeit lang. Da müsste man doch nur mal testen, wie lange das ist, und könnte dann die Zeit mitzählen und erst wenn abgelaufen (oder es halt trotzdem nicht geht) ein neues holen?

andreas13

Zitat von: didy am 19 März 2020, 12:22:37
Diesen Output sieht man dann wo genau?
Versteh ich nicht ganz. AccessToken und Daten holen ist klar. Was ist mit Code holen gemeint? Und was ist mit Gateway holen gemeint - die ID des jeweiligen VitoConnect? Die müsste man doch auch einfach fest setzen können, die ändert sich doch nicht?
Also wie gesagt, wenn Gateway die ID des VitoConnects ist, das sollte sich nicht ändern, das könnte man IMHO fest setzen.
Und beim AccessToken, das gilt IMHO eine gewisse Zeit lang. Da müsste man doch nur mal testen, wie lange das ist, und könnte dann die Zeit mitzählen und erst wenn abgelaufen (oder es halt trotzdem nicht geht) ein neues holen?

Der Output steht im Logfile.

Mit "da müsste man doch nur mal ..." habe ich ein bisschen ein Problem. Kannst Du ja gerne mal machen (vorausgesetzt es ist überhaupt einen Konstante). Und dann am besten einen Patch schreiben, der die Zeit mitzählt und die notwendige Programmlogik implementiert. Das muss dann aber auch noch sämtliche Fehlerfälle abfangen, wenn der Server zB mal nicht erreichbar ist, obwohl die Zeitspanne nicht abgelaufen ist und und und ... Ach ja ... und das ganze bitte noch NonBlocking, sonst hängt das ganze FHEM. ;-)

Liebe Grüße

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

Tomk

Hallo zusammen,

auch wenn die Lösung evtl. kurz vor dem Aus steht wollte ich es wagen und neu einsteigen. Leider habe ich ein Problem bei der Installation der benötigten Pakete auf meinem RPI.

Ich bekomme bei : "sudo apt install libtypes-path-tiny-perl libjson-perl libdatetime-perl" die Fehlermeldung:

E: Paket libtypes-path-tiny-perl kann nicht gefunden werden.
E: Paket libdatetime-perl kann nicht gefunden werden.


Wenn ich ein apt-get upgrade mache bekomme ich den Fehler:
W: Fehlschlag beim Holen von http://mirrordirector.raspbian.org/raspbian/dists/stetch/main/binary-armhf/Packages  404  Not Found [IP: 93.93.128.193 80]

W: Fehlschlag beim Holen von http://mirrordirector.raspbian.org/raspbian/dists/stetch/contrib/binary-armhf/Packages  404  Not Found [IP: 93.93.128.193 80]

W: Fehlschlag beim Holen von http://mirrordirector.raspbian.org/raspbian/dists/stetch/non-free/binary-armhf/Packages  404  Not Found [IP: 93.93.128.193 80]

W: Fehlschlag beim Holen von http://mirrordirector.raspbian.org/raspbian/dists/stetch/rpi/binary-armhf/Packages  404  Not Found [IP: 93.93.128.193 80]

E: Einige Indexdateien konnten nicht heruntergeladen werden. Sie wurden ignoriert oder alte an ihrer Stelle benutzt.


Wenn ich dem Pfad manuell nachgehe sehe ich das Problem das ein Typo bei "stetch" ist es müsste "stretch" heißen.

Das heißt das Problem ist wahrscheinlich hier zu suchen:


pi@raspberrypi:~ $ sudo apt-get update
Holen: 1 http://archive.raspberrypi.org jessie InRelease [22,9 kB]
Ign http://mirrordirector.raspbian.org stetch InRelease
Ign http://mirrordirector.raspbian.org stetch Release.gpg

Aber wie kann ich das beeinflussen... wo ist die Quelle für den Typo?

Danke vorab!


andreas13

Zitat von: Tomk am 21 März 2020, 05:50:32
Hallo zusammen,

auch wenn die Lösung evtl. kurz vor dem Aus steht wollte ich es wagen und neu einsteigen. Leider habe ich ein Problem bei der Installation der benötigten Pakete auf meinem RPI.

Ich bekomme bei : "sudo apt install libtypes-path-tiny-perl libjson-perl libdatetime-perl" die Fehlermeldung:

E: Paket libtypes-path-tiny-perl kann nicht gefunden werden.
E: Paket libdatetime-perl kann nicht gefunden werden.


Wenn ich ein apt-get upgrade mache bekomme ich den Fehler:
W: Fehlschlag beim Holen von http://mirrordirector.raspbian.org/raspbian/dists/stetch/main/binary-armhf/Packages  404  Not Found [IP: 93.93.128.193 80]

W: Fehlschlag beim Holen von http://mirrordirector.raspbian.org/raspbian/dists/stetch/contrib/binary-armhf/Packages  404  Not Found [IP: 93.93.128.193 80]

W: Fehlschlag beim Holen von http://mirrordirector.raspbian.org/raspbian/dists/stetch/non-free/binary-armhf/Packages  404  Not Found [IP: 93.93.128.193 80]

W: Fehlschlag beim Holen von http://mirrordirector.raspbian.org/raspbian/dists/stetch/rpi/binary-armhf/Packages  404  Not Found [IP: 93.93.128.193 80]

E: Einige Indexdateien konnten nicht heruntergeladen werden. Sie wurden ignoriert oder alte an ihrer Stelle benutzt.


Wenn ich dem Pfad manuell nachgehe sehe ich das Problem das ein Typo bei "stetch" ist es müsste "stretch" heißen.

Das heißt das Problem ist wahrscheinlich hier zu suchen:


pi@raspberrypi:~ $ sudo apt-get update
Holen: 1 http://archive.raspberrypi.org jessie InRelease [22,9 kB]
Ign http://mirrordirector.raspbian.org stetch InRelease
Ign http://mirrordirector.raspbian.org stetch Release.gpg

Aber wie kann ich das beeinflussen... wo ist die Quelle für den Typo?

Danke vorab!

Hallo,

werfen wir die Flinte nicht gleich ins Korn. Noch funktioniert das Modul und wird nach den letzten Ankündigungen auch noch weiter funktionieren. Sollten Anpassungen nötig werden, werde ich möglichst zeitnah umsetzen. Über Eure Unterstützung dabei zB in Form von Tests würde ich mich freuen.

Zurück zu deinem Problem. Du hast offensichtlich ein Problem mit Deinem Basissystem und nicht mit dem Modul oder mit FHEM. Daher meine Bitte das Problem nicht hier zu diskutieren, sondern einen Thread in einem passenden Unterforum zu eröffnen.

Daher hier nur kurz ein paar Hinweise:

Dein Basissystem war wohl mal Debian jessie. Hast du mal versucht händisch oder automatisch ein Release Upgrade zu machen?

Vielleicht ist dabei was schief gegangen? Hier findest du alles was du dazu wissen musst

https://www.debian.org/releases/stretch/i386/release-notes/ch-upgrading.de.html

Vielleicht setzt du deinen raspberry bei der Gelegenheit aber besser gleich neu mit aktuellen Debian Buster auf.

Ich würde mich freuen, dich bald als neuen Nutzer des Moduls willkommen zu heißen. Wenn du Hilfe beim Upgrade brauchst, kannst Du mich gern der PN anschreiben.

Viel Erfolg

Andreas


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

Tomk

Danke für deine Hinweise! Mit meiner Unterstützung kannst du rechnen sobald ich es geschafft habe die Pakete zu installieren  >:(

andreas13

Zitat von: Tomk am 21 März 2020, 07:13:17
Danke für deine Hinweise! Mit meiner Unterstützung kannst du rechnen sobald ich es geschafft habe die Pakete zu installieren  >:(

Wie ich in dem anderen Thread gelesen habe, konntest Du das Problem inzwischen lösen. Klappt es jetzt mit der Installation des Moduls?

Viele Grüße

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

Tomk

Hallo Andreas,

danke der Nachfrage. Ja ich konnte Vitoconnect nach der installation der benötigten Pakete erfolgreich in Betrieb nehmen! Sieht erstmal super aus. Polling habe ich auf 5min eingestellt. Jetzt brauche ich nur noch ein paar gute Anwendungsfälle.

Melde mich nochmal sobald ich etwas mehr Zeit habe.

Viele Grüße



mrschnulle

#443
Zitat von: mrschnulle am 18 Februar 2019, 16:16:53
Hallo,
seit dem Update von der Viesmann viCare app, kann ich die set Befehle nicht mehr ausführen.

Ach, mittlerweile bekomme ich endlich die Brennerstunden  ;)

Hier ein Auszug aus dem LOG...

2019.02.18 16:10:38 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/98_vitoconnect.pm line 1275.
2019.02.18 16:10:38 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/98_vitoconnect.pm line 1231.
2019.02.18 16:11:10 1: set Brennwert_Heizung_Viessmann HK1-Betriebsart dhwAndHeating: Fehler während der Befehlsausführung:  :: {"statusCode":502,"error":"Bad Gateway","message":"DEVICE_COMMUNICATION_ERROR"}


LG
Marc

Hallo,

ich habe wieder die gleichen Meldungen im Log, wie damals...

2020.04.04 12:19:14 1: set Brennwert_Heizung_Viessmann HK1-Betriebsart standby: Fehler während der Befehlsausführung:  ::
2020.04.04 12:19:40 1: set Brennwert_Heizung_Viessmann HK1-Betriebsart active: Fehler während der Befehlsausführung:  :: {"statusCode":502,"error":"Bad Gateway","message":"DEVICE_COMMUNICATION_ERROR"}
2020.04.04 12:19:56 1: set Brennwert_Heizung_Viessmann HK1-Betriebsart dhw: Fehler während der Befehlsausführung:  :: {"statusCode":502,"error":"Bad Gateway","message":"DEVICE_COMMUNICATION_ERROR"}
2020.04.04 12:20:05 1: set Brennwert_Heizung_Viessmann HK1-Betriebsart dhwAndHeating: Fehler während der Befehlsausführung:  :: {"statusCode":502,"error":"Bad Gateway","message":"DEVICE_COMMUNICATION_ERROR"}
2020.04.04 12:20:17 1: set Brennwert_Heizung_Viessmann HK1-Betriebsart forcedReduced: Fehler während der Befehlsausführung:  ::
2020.04.04 12:20:30 1: set Brennwert_Heizung_Viessmann HK1-Betriebsart forcedNormal: Fehler während der Befehlsausführung:  ::
2020.04.04 12:21:02 1: set Brennwert_Heizung_Viessmann HK1-Betriebsart heating: Fehler während der Befehlsausführung:  ::


Nur, dass jetzt alle Befehle nicht mehr funktionieren. Ich habe das aktuelle Modul, wie auch die aktuelle Vikare.app am laufen.
Könnt ihr wieder helfen?

LG
Marc

andreas13

Zitat von: mrschnulle am 04 April 2020, 12:23:51
Hallo,

ich habe wieder die gleichen Meldungen im Log, wie damals...

2020.04.04 12:19:14 1: set Brennwert_Heizung_Viessmann HK1-Betriebsart standby: Fehler während der Befehlsausführung:  ::
2020.04.04 12:19:40 1: set Brennwert_Heizung_Viessmann HK1-Betriebsart active: Fehler während der Befehlsausführung:  :: {"statusCode":502,"error":"Bad Gateway","message":"DEVICE_COMMUNICATION_ERROR"}
2020.04.04 12:19:56 1: set Brennwert_Heizung_Viessmann HK1-Betriebsart dhw: Fehler während der Befehlsausführung:  :: {"statusCode":502,"error":"Bad Gateway","message":"DEVICE_COMMUNICATION_ERROR"}
2020.04.04 12:20:05 1: set Brennwert_Heizung_Viessmann HK1-Betriebsart dhwAndHeating: Fehler während der Befehlsausführung:  :: {"statusCode":502,"error":"Bad Gateway","message":"DEVICE_COMMUNICATION_ERROR"}
2020.04.04 12:20:17 1: set Brennwert_Heizung_Viessmann HK1-Betriebsart forcedReduced: Fehler während der Befehlsausführung:  ::
2020.04.04 12:20:30 1: set Brennwert_Heizung_Viessmann HK1-Betriebsart forcedNormal: Fehler während der Befehlsausführung:  ::
2020.04.04 12:21:02 1: set Brennwert_Heizung_Viessmann HK1-Betriebsart heating: Fehler während der Befehlsausführung:  ::


Nur, dass jetzt alle Befehle nicht mehr funktionieren. Ich habe das aktuelle Modul, wie auch die aktuelle Vikare.app am laufen.
Könnt ihr wieder helfen?

LG
Marc

Hallo Marc,

ich hatte vergessen, die letzte Version einzuspielen. Ab morgen müsste es dann gehen. Ich hoffe, ich habe alle Fälle der API jetzt abgedeckt.

Der Statuscode 502 bedeutet übrigends einen fehlerhaften Aufruf der API, also zB, dass man versucht die WW-Haupttemperatur auf 99 Grad zu setzen (erlaubt sind nur Werte zwischen 10-60 Grad, glaube ich. Die mögliche Werte werden von der API übertragen, aber vom Modul ausgewertet) oder dass man versucht einen Befehl für einen Heizkreis aufzurufen, den es gar nicht gibt.
Im Menü sind nur sinnvolle Befehle und Werte auswählbar, aber man kann in der Befehltszeile auch unsinnige Befehle ausführen.


2020.04.05 10:18:32 1: set vitoconnect HK2-Betriebsart dhwAndHeating: Fehler während der Befehlsausführung: https://api.viessmann-platform.io/operational-data/v1/installations/129846/gateways/7571381616514108/devices/0/features/heating.circuits.1.operating.modes.active/setMode: Select timeout/error:  ::
2020.04.05 10:31:13 3: set vitoconnect WW-Haupttemperatur 60
2020.04.05 10:31:29 1: set vitoconnect WW-Haupttemperatur 99: Fehler während der Befehlsausführung:  :: {"statusCode":502,"error":"Bad Gateway","message":"DEVICE_COMMUNICATION_ERROR"}
2020.04.05 10:36:53 1: set vitoconnect HK2-Betriebsart dhwAndHeating: Fehler während der Befehlsausführung:  :: {"statusCode":502,"error":"Bad Gateway","message":"DEVICE_COMMUNICATION_ERROR"}


Viele Grüße

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

Roger

Hi Andreas,
ich nutze Dein Modul 98_vitoconnect.pm.
Nun habe ich den Log-Pfad über das globale Attribut logdir verändert.
Da der FHEM-User auf log keine Schreibrechte hat --> stürzt das Modul bei:
set <name> logResponseOnce
ab  :(.
Kannst Du die beiden Zeilen my $dir = path("log"); in:
my $dir = path(AttrVal("global","logdir","log"));
ändern. Das entspricht eher der FHEM-Philosophie.

//Roger
Zotac, BBB, RPIs mit 10*FHEM
2*HM-LAN, 2*JeeLink, 2*RS485, SignalESP
HomeMatic, PCA301 Komponenten, ModBus: Stromzähler, Fronius WR, Shelly

andreas13

Zitat von: Roger am 06 April 2020, 11:13:07
Hi Andreas,
ich nutze Dein Modul 98_vitoconnect.pm.
Nun habe ich den Log-Pfad über das globale Attribut logdir verändert.
Da der FHEM-User auf log keine Schreibrechte hat --> stürzt das Modul bei:
set <name> logResponseOnce
ab  :(.
Kannst Du die beiden Zeilen my $dir = path("log"); in:
my $dir = path(AttrVal("global","logdir","log"));
ändern. Das entspricht eher der FHEM-Philosophie.

//Roger

Erledigt. Kommt mir dem Update morgen

Viele Grüße

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

RichardCZ

Hi,

zu spät diesen Thread gesehen. Verweise auf: https://forum.fhem.de/index.php/topic,110223.0.html

leider kann ich den Thread nicht mehr löschen.
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

ph1959de

Zitat von: RichardCZ am 15 April 2020, 10:18:04
Hi,

zu spät diesen Thread gesehen. Verweise auf: https://forum.fhem.de/index.php/topic,110223.0.html

leider kann ich den Thread nicht mehr löschen.
Und (@andreas13) um das Offensichtliche aber dennoch hinreichend lange Übersehene auch noch mal explizit auszusprechen:

Richard möchte auf des fehlende e hinweisen, also Vissmann -> Viessmann.

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

Steigerbalett

Wenn man das Modul durch perlcritic jagt werden auch jede Menge return undef; und Prototypen reklamiert - die kann man ja relativ einfach ausmerzen.
Ich habe mal alles was per ersetzen einfach zu eliminieren war beseitigt. Gibt aber noch Fehler die ich ohne Perlkenntnisse nicht anfassen möchte.
Aber da ich keine Ahnung habe wie man eine Patch Datei korrekt erstellt, hier mal die Version die ich mir zusammengebastelt hab:
https://github.com/steigerbalett/FHEM-Addonrepo/blob/master/FHEM/98_vitoconnect.pm

@RichardCZ:
Wenn Du gerade die Module anschaust, wie bekommt man die Fehlermeldung:
2020.04.15 11:57:04 1:  PERL WARNING: Use of uninitialized value in string eq at ./FHEM/98_vitoconnect.pm line 1390.
2020.04.15 11:57:04 1:  PERL WARNING: Use of uninitialized value in string eq at ./FHEM/98_vitoconnect.pm line 1435.
noch weg?