Vitoconnect - Verbesserte Version

Begonnen von stefanru, 14 Dezember 2024, 23:32:17

Vorheriges Thema - Nächstes Thema

stefanru

@JWRu,

ok verstehe.
Wenn du willst kann ich dir mal ne Testversion machen wo auch die "isExecutable": false Parameter zur Auswahl stehen.
Dann könntest du testen was passiert wenn du ihn trotzdem ausführst.
Ich denke es wird abgelehnt von der API aber wer weiß.

Du kannst auch ab Zeile 1505 einfach diesen Block löschen und das Modul neu laden.
                    if ($item->{commands}{$commandName}{isExecutable} == 0) {
                    Log(5,$name.", -vitoconnect_Set_New $commandName nicht ausführbar");
                     next; #diser Befehl ist nicht ausführbar, nächster
                    }

Gruß,
Stefan

JWRu

ZitatWenn du willst kann ich dir mal ne Testversion machen wo auch die "isExecutable": false Parameter zur Auswahl stehen.
Vielen Dank - das ist nicht nötig.
Bin mal wieder unterwegs und versuche es rein interessehalber nächste Woche nach dem Löschen des Blocks.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon- und Bresser-Sensoren; Steuerung Viessmann-Heizung; ESP32 für Strom-, Wasser-, Gaszähler, Arduino für Rauchmelder und FI-Schutzschalter

JWRu

Ich habe die Zeilen auskommentiert und das Modul neu geladen:
2025.10.08 14:59:43 1: Heizung_Vitoconnect,vitoconnect_action: set Heizung_Vitoconnect heating.circuits.0.operating.modes.active.value 1, Fehler bei Befehlsausfuehrung (1/20):  :: {
  "viErrorId": "00-944bc21e4054fab6f6ca7a346982bac0-d27ac78804935e74-00",
  "statusCode": 400,
  "errorType": "DEVICE_COMMUNICATION_ERROR",
  "message": "Device communication error",
  "extendedPayload": {
    "httpStatusCode": "BadRequest",
    "code": "400",
    "reason": "VALIDATION_ERROR",
    "details": "The parameter mode=\"forcedReduced\" does not meet the constraints {\"type\":\"string\",\"enum\":[\"dhw\",\"dhwAndHeating\",\"standby\"]}: Value 'forcedReduced' is not within allowed values: dhw, dhwAndHeating, standby"
  }
Die API unterstützt den Befehl also anscheinend nicht mehr.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon- und Bresser-Sensoren; Steuerung Viessmann-Heizung; ESP32 für Strom-, Wasser-, Gaszähler, Arduino für Rauchmelder und FI-Schutzschalter

JWRu

Ich erhalte seit einigen Tagen (nach einem Update/Restart von FHEM) morgens bis ca. 2:00 Uhr und teilweise abends diese Meldungen:
2025.10.12 20:14:59 1: Heizung_Vitoconnect - Anzahl der möglichen API Calls in überschritten!
2025.10.12 20:16:30 1: Heizung_Vitoconnect - Anzahl der möglichen API Calls in überschritten!
2025.10.12 20:16:30 1: Heizung_Vitoconnect - Anzahl der möglichen API Calls in überschritten!
2025.10.12 20:18:01 1: Heizung_Vitoconnect - Anzahl der möglichen API Calls in überschritten!
2025.10.12 20:18:01 1: Heizung_Vitoconnect - Anzahl der möglichen API Calls in überschritten!
2025.10.12 20:19:31 1: Heizung_Vitoconnect - Anzahl der möglichen API Calls in überschritten!
2025.10.12 20:19:31 1: Heizung_Vitoconnect - Anzahl der möglichen API Calls in überschritten!
2025.10.12 20:21:01 1: Heizung_Vitoconnect - Anzahl der möglichen API Calls in überschritten!
Am Intervall habe ich nichts geändert - das stand unverändert auf 90. Das müsste nach meiner Rechnung knapp 1000 API-Calls pro Tag ergeben.
Ich habe das Intervall jetzt mal auf 120 geändert.

P.S. Die URL für das Developer-Portal in der FHEM-CommandRef stimmt nicht mehr.
Die neue lautet https://developer.viessmann-climatesolutions.com/
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon- und Bresser-Sensoren; Steuerung Viessmann-Heizung; ESP32 für Strom-, Wasser-, Gaszähler, Arduino für Rauchmelder und FI-Schutzschalter

stefanru

#319
Hi JWRu,
das ist aber seltsam.

Ich habe 2 Devices am selben Account beide mit 140er Intervall und es gibt keine Probleme.
Setzt du viele Set Befehle ab? Diese kosten auch API Calls.

Durch die Änderung die noch nicht ganz ausgereift ist versucht er bei Misserfolg eines Set Befehls diesen 20 mal.
Hier will ich die Fehlercodes noch besser auswerten und die Wiederholungen nur bei Fehlern machen die sich auch lösen können und nicht bei API Fehlern die sich nicht durch Retries lösen.

Mit 90er Intervall solltest du auf jedenfall durchkommen. Man hat 1450 API Calls per day.
Du verwendest mit 90 nur 960.
Etwas Overhead könnte es durch relogins geben aber ein Intervall von 70 geht bei mir und es ist noch Raum für set Befehle.
Das beschränkt sich aber vielleicht auf 5 - 10 pro Tag bei mir.

Welche Version des Moduls verwendest du gerade und wieviele Set BEfehle machst du pro Tag?
Hast du ein Device das am Account API Calls macht?

P.S.: URL ist angepasst, danke!

Gruß,
Stefan


JWRu

Hi Stefan,

ich verwende 98_vitoconnect.pm:v0.9.2-s30296/2025-09-15 und habe in den letzten Tagen überhaupt keinen set-Befehl genutzt.

Heute Nacht gab es wieder (diesmal im 2-Minuten Takt) die Meldungen:
2025.10.15 00:37:57 1: Heizung_Vitoconnect - Anzahl der möglichen API Calls in überschritten!
2025.10.15 00:37:57 1: Heizung_Vitoconnect - Anzahl der möglichen API Calls in überschritten!
2025.10.15 00:39:57 1: Heizung_Vitoconnect - Anzahl der möglichen API Calls in überschritten!
2025.10.15 00:39:57 1: Heizung_Vitoconnect - Anzahl der möglichen API Calls in überschritten!
2025.10.15 00:41:57 1: Heizung_Vitoconnect - Anzahl der möglichen API Calls in überschritten!
2025.10.15 00:41:58 1: Heizung_Vitoconnect - Anzahl der möglichen API Calls in überschritten!
.....
2025.10.15 01:56:08 1: Heizung_Vitoconnect - Anzahl der möglichen API Calls in überschritten!
2025.10.15 01:56:08 1: Heizung_Vitoconnect - Anzahl der möglichen API Calls in überschritten!
2025.10.15 01:58:08 1: Heizung_Vitoconnect - Anzahl der möglichen API Calls in überschritten!
2025.10.15 01:58:08 1: Heizung_Vitoconnect - Anzahl der möglichen API Calls in überschritten!
Um 2:00 Uhr hören die Meldungen dann ganz auf (da läuft bei mir ein tägliches configDB-Backup) und es gibt seitdem keinerlei Log-Einträge von vitoconnect mehr.
Seltsam ist auch, dass zu jedem Zeitpunkt die Meldung zweimal auftaucht.
Nachdem ich gestern das Intervall auf 120 Sekunden gestellt habe, habe ich mir mal die Anzahl der API-Calls auf meiner Developer-Seite notiert ("Use of API transaction").
Bis heute Morgen habe ich trotz des 2-Minuten-Intervalls im Mittel fast einen API-Call pro Minute verbraucht.
Ich habe dann auch beobachtet, dass die Zahl der API-Calls auf der Developer-Seite bei jedem Update des FHEM-Devices um 2 zunimmt.

Gruß,
Jochen
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon- und Bresser-Sensoren; Steuerung Viessmann-Heizung; ESP32 für Strom-, Wasser-, Gaszähler, Arduino für Rauchmelder und FI-Schutzschalter