Ankündigung

Einklappen
Keine Ankündigung bisher.

Vissmann Heizungssteuerung ViCare / Vitaconnect

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Vissmann Heizungssteuerung ViCare / Vitaconnect

    Moin ihr Lieben,

    ich bin gerade über diesen Beitrag gestolpert:

    https://knx-user-forum.de/forum/proj...f%C3%BCr-edomi

    Hat jemand schon mal probiert eine Anbindung in smartVISU vorzunehmen?



    #2
    Du meinst ein Widget in SmartVISU, das die Heizung dort visualisiert? Oder meinst Du ein Plugin, das die Daten nach SmartHomeNG holt?

    Kommentar


      #3
      Zitat von bmx Beitrag anzeigen
      Du meinst ein Widget in SmartVISU, das die Heizung dort visualisiert? Oder meinst Du ein Plugin, das die Daten nach SmartHomeNG holt?
      Der größte Wunsch, wäre natürlich eine Visualisierung in der smartVISU. Ein Plugin in die smartNG würde mir schon mal reichen, dann könnte ich die Werte selber visuell darstellen.

      Kommentar


        #4
        Meinst du nun ViCare (also die Variante mittels WLAN und die App von Viessmann) oder die direkte Anbindung über das USB-Kabel und vcontrold?

        Kommentar


          #5
          Zitat von tsb2001 Beitrag anzeigen
          Meinst du nun ViCare (also die Variante mittels WLAN und die App von Viessmann) oder die direkte Anbindung über das USB-Kabel und vcontrold?
          Ich meine die ViCare, da meine Heizung leider zu weit für eine direkte Verbindung entfernt ist.

          Kommentar


            #6
            Ich hab da was als inoffizielles Plugin für SmarthomeNG gestrickt.

            Nutzt die API von dem Viessmann-Server. Funktioniert seit einem Jahr tadellos; bis auf die Tatsache, das Viessmann wegen der Häufung an Anfragen auf dem Server die Zugriffe auf 15-Minuten-Intervalle begrenzt hat.
            Ist halt von deren Seite zwar akzeptiert, aber nicht erwünscht.

            Mir persönlich reichen allerdings die Datenaktualisierungen in dem Intervall.

            Ich nutze das Hauptsächlich, um die Außentemperatur auf den Bus zu bekommen. Und die schwankt innerhalb dieser Zeit nicht extrem.

            Sonst lassen sich aber trotzdem alle Daten abgreifen, inklusive dem letzten Wartungsstand den Fehlermeldungen. Umgekehrt kannst du damit natürlich auch steuern.

            Die Daten laufen dann in die Smartvisu.

            Es besteht in großen Teilen aus dem Pyvicare-Code. Dieser legt die den Token für die Authentifizierung lokal als Datei ab.
            Mir ist das egal, aber als offizielles Plugin ist das nicht gewünscht.
            Und für das rauszuprogrammieren bin ich einfach zu doof...

            Daher hab ich das bisher nur für mich genutzt. Vielleicht kann hier ja mal einer helfend eingreifen?

            Kommentar


              #7
              Ich hatte das Theme nicht verfolgt: Worin lag das (unerwünschte) Problem mit der Ablege des Token?
              Viele Grüße
              Martin

              There is no cloud. It's only someone else's computer.

              Kommentar


                #8
                Zitat von tsb2001 Beitrag anzeigen
                Nutzt die API von dem Viessmann-Server. Funktioniert seit einem Jahr tadellos; bis auf die Tatsache, das Viessmann wegen der Häufung an Anfragen auf dem Server die Zugriffe auf 15-Minuten-Intervalle begrenzt hat.
                Ich habe beim PyViCare das Caching eingebaut. Damit ist nun ohne Probleme möglich, jede Minute abzufragen. Du musst beim Erstellen nur als letzten Parameter "60" mitgeben.

                Code:
                t=GazBoiler("email@domain","password","token.save", 0, 60)

                Kommentar


                  #9
                  crazyfx

                  Aber was nützt das Caching?
                  Viessmann kappt aber doch die Verbindung?!

                  Siehe hier: https://www.viessmann-community.com/...I/qaq-p/127660
                  In order to keep operation through our API safe and still give you the chance to interact with your system, we limit the use for all applications by setting a threshold for the requests. The limit is set for both a larger (e.g. daily) and a smaller (<15 mins) time scale. Reaching the limit will prevent you to execute any further requests with your account in the specific time frame.
                  Wie soll das dann umgangen werden?
                  Der letzte Parameter ist cycle in Sekunden und gibt den Abrufintervall mit.

                  Der stand bei mir bis März auf 120. Somit erhielt ich alles 2 Minuten die Werte.
                  Ab März war Ende! Da wurden diese Restriktionen eingeführt und Viessmann hat mir eine liebe Email geschrieben, mit der Bitte, diesen dauerhaften Anfragen an den Server zu unterlassen. Ich habe den Parameter auf 1200 gesetzt und bekomme alle 20 Minuten daher nur die Daten. Das funktioniert. Setze ich den wieder auf 120, werde ich wieder gesperrt...
                  Und es waren ja nur die Datenabfragen mit den statischen Zugangsdaten. Selbst der Token wird ja nur alle 60 Minuten ausgetauscht, weil er abgelaufen ist.

                  Folglich verstehe ich nicht, wie du die Einschränkung von Viessmann umgehen kannst (die gibts ja immer noch, oder habe ich was verpasst?)...

                  Msinn
                  Der serialisiert den Token und speichert den unter „Token.save“
                  Es wird dann abgeprüft, ob der gespeicherte Token noch Gültigkeit hat. Wenn ja, erfolgt die Anmeldung mit dem gültigen Token, wenn nein, wird dieser neu generiert. Das Ganze läuft über oauth2.
                  Du hattest seinerzeit den Vorschlag in einem alten Thread von mir gemacht, den Token einfach als Variable über die Laufzeit ohne zu speichern festzuhalten, aber ich habe das Dutzend mal versucht umzubauen, bin aber kläglich gescheitert.

                  EDIT:
                  hier steht übrigens der originale Code:
                  https://github.com/somm15/PyViCare/b...CareService.py
                  Zuletzt geändert von tsb2001; 14.06.2020, 10:11. Grund: Quelle hinzugefügt

                  Kommentar


                    #10
                    Kannst Du mir das Plugin mal schicken? Vieleicht sehe ich eine einfache Lösung den Token in einer Variablen abzulegen.
                    Viele Grüße
                    Martin

                    There is no cloud. It's only someone else's computer.

                    Kommentar


                      #11
                      Zitat von tsb2001 Beitrag anzeigen
                      crazyfx
                      Aber was nützt das Caching?
                      Viessmann kappt aber doch die Verbindung?!
                      Man übergeht hier gar nichts.
                      Die offiziellen Limits von Viessmann sind wie in deinem Link geschrieben:
                      Currently, we have the following limits active:
                      120 calls for a time window of 10 minutes
                      1450 calls for a time window of 24 hours


                      Das heißt rein von den Limits ist es schon mal möglich, jede Minute einen Request an Viessmann zu schicken.

                      Das Problem in der alten Version war, dass jeder Wert einzeln abgefragt wurde. Dh für zB getOutsideTemperature und getReturnTemperature wurden in der alten Version zwei Requests an Viessmann geschickt.
                      Der Cache hingegen speichert einmal pro angegebenen Intervall alle Werte ab und liefert für alle Methodenaufrufe die Werte aus dem Cache. Somit wird jede Minute nur eine Abfrage an die API gemacht.

                      Der Code läuft im Home-Assistant schon mehrere Monate ohne Probleme mit dem Cache.

                      Kommentar


                        #12
                        crazyfx
                        Warum zitierst du nicht alles?
                        Du reisst das damit aus dem Zusammenhang und deutest das daher falsch:
                        We have a rate limit with sliding window. Whenever the first request arrives, we open a time window and count all request in that window. If the number of requests reach the limitation, we block all incoming user requests until the time window ends. Then, with the next user request, a new time window opens.
                        Currently, we have the following limits active:
                        120 calls for a time window of 10 minutes
                        1450 calls for a time window of 24 hours
                        Please take note that we are taking the right to adjust the limits if seen necessary. Information about adjustment of the threshold will be given with a reasonable amount of time in advance for all affected user.
                        Das bezieht sich nicht auf den einen User, der 120 Abrufe in 10 Minuten machen kann, sondern über die ganze API aller User.
                        Sonst hätte Viessmann wohl kaum reagieren brauchen. Denen läuft ihr Server mit Anfragen über, weil die Anzahl der Datenabfragen logischerweise mit der Anzahl an registrierten Nutzern steigt. Wenn die jedem Nutzer dieses Zeitfenster alleine einräumen, könnte ja jeder problemlos minütlich die Werte abfragen und nichts hätte sich verändert. Dann wäre die Anfrage bei 1440 Stück innerhalb 24 Stunden möglich.

                        Denn wenn ich alle zwei Minuten die Abfrage starte, generiere ich in 10 Minuten 5 Requests, in 24 Stunden 720. Warum sperren die mich wohl sonst und schreiben mir eine Mail?

                        Mit dem Cache hingegen ist mir neu und habe ich auch auf der github-Seite eben gefunden. Ich habe das jetzt über ein Jahr schon in Betrieb (ist mir eben aufgefallen) und da war noch nichts mit Caching. Das nach der Limitierung erst aufgetreten. Damit werde ich mich mal beschäftigen...

                        Kommentar


                          #13
                          Zitat von tsb2001 Beitrag anzeigen
                          Das bezieht sich nicht auf den einen User, der 120 Abrufe in 10 Minuten machen kann, sondern über die ganze API aller User.
                          Das ist schlichtweg falsch, das Limit ist pro User.
                          Klar steigt die Last pro User, dafür bezahlt der User aber auch mit dem Kauf der Heizung bzw. dem Vitoconnect.

                          Das Sliding Window hat bei einer minütlichen Abfrage keine Relevanz, da man hier ständig unter dem Limit operiert.

                          Das Problem ist, wie oben beschrieben, dass die PyViCare Library ohne Caching für jeden Wert extra eine Abfrage gemacht hat. Somit wurden von den Usern im Falle vom Home-Assistant 15 Abfragen (weil 15 Werte abgefragt wurden) pro Minute gemacht. Jetzt mit Caching sind es tatsächlich 1 Abfrage pro Minute.

                          Ich habe das Caching übrigens selbst in der Library eingebaut, kenne somit die Limits ganz gut und es funktioniert genau so, wie ich es beschrieben habe.

                          Für mehr Infos auf Codeebene bzw. der damaligen Diskussion kannst du dir gern meinen Pull Request ansehen:
                          https://github.com/somm15/PyViCare/pull/28

                          Kommentar


                            #14
                            wenn ich richtig verstehe, läuft es derzeitig noch mit Fehlern?
                            Zuletzt geändert von Medicusi; 14.06.2020, 17:23.

                            Kommentar

                            Lädt...
                            X