Vitoconnect - Verbesserte Version

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

Vorheriges Thema - Nächstes Thema

stefanru

Hi Ralph,

wow und danke für die detailierte Analyse.
Das ist toll.
Ja klar dein Fix würde mich sehr interessieren.
Perfekt wäre wenn du es als pull request in mein git repo stellen könntest, dann kann ich direkt diffen und deine Änderung übernehmen.
https://github.com/StefanRu1/FHEM/tree/main/FHEM

Nochmals vielen Dank,
Stefan
FHEM: Raspberry PI 400+SSD
Viessmann, Fronius, BYD, Wunderground, Max, Shelly, ESPEasy, FHEMPY,...  Docker + Portainer: Immich, HA, Authelia, Caddy
Maintainer: Vitoconnect
GIT: https://github.com/StefanRu1
Kaffeekasse: https://www.paypal.me/stefanru01

stefanru

Ok danke Ralph,

Dein Pullrequest war sauber.
Gab keine Probleme bei mir

Version habe ich eben ins SVN eingechecked.
Neue Version ab morgen:
  "1.1.3"  => "04.06.2026  Bugfix-Fork von v1.1.3 durch R. Bergmann [RB-FIX-01] Parsing-Stride 4->6 in getErrorCode korrigiert; [RB-FIX-02] BlockingGet-Cache verhindert FHEM-Freeze; [RB-FIX-03] ReadFn toter Code entfernt"

Danke und Gruß,
Stefan
FHEM: Raspberry PI 400+SSD
Viessmann, Fronius, BYD, Wunderground, Max, Shelly, ESPEasy, FHEMPY,...  Docker + Portainer: Immich, HA, Authelia, Caddy
Maintainer: Vitoconnect
GIT: https://github.com/StefanRu1
Kaffeekasse: https://www.paypal.me/stefanru01

stefanru

Hallo zusammen,

vitoconnect v1.1.7 ist im SVN. Es ist einiges zusammengekommen, daher mehr als sonst:

Bugfixes (alle isoliert, kein Risiko für bestehende Setups):
- Präzedenz-Bug in errorHandling
- decode_json undef-Schutz, my-if Severity-Scope
- Sprach-Default 0 -> 'EN'
- Object-Type Ref-Schutz (verhindert HASH(0x...) in Readings)
- Tippfehler in 429-Meldung
- diverser toter Code raus, fehlende Forward-Declarations ergänzt

Neue Diagnose-Readings:
- apiCallsToday / apiCallsLastDay - Call-Counter pro Tag
- apiCallsTodayAccount - Summe über alle Devices mit gleichem apiKey (nur bei Multi-Device)
- apiQuotaUsedPercent - in % vom 1450/Tag-Limit, Warnlog ab 80%
- currentError - aktive F-Codes als kommagetrennter String, change-only-Trigger für notify-Regeln

Aufräumen:
- 24h-Cleanup läuft jetzt für alle device.messages.*.list-Typen (auch unknown), nicht nur die aktiven. Räumt alte stale-Einträge weg.

Wiki ist aktualisiert: https://wiki.fhem.de/wiki/Vitoconnect

Bei Fragen oder Bugs einfach melden.

Grüße,
Stefan
FHEM: Raspberry PI 400+SSD
Viessmann, Fronius, BYD, Wunderground, Max, Shelly, ESPEasy, FHEMPY,...  Docker + Portainer: Immich, HA, Authelia, Caddy
Maintainer: Vitoconnect
GIT: https://github.com/StefanRu1
Kaffeekasse: https://www.paypal.me/stefanru01

stefanru

Noch mal 2 kleine Erweiterungen:
"1.1.9"  => "28.06.2026  Neues Reading apiQuotaUsedPercentLastDay - zeigt im Nachhinein wie nah man gestern am 1450/Tag-Limit war. Bei Multi-Device basiert auf apiCallsLastDayAccount, sonst auf apiCallsLastDay."
"1.1.8"  => "28.06.2026  Neues Reading apiCallsLastDayAccount fuer Multi-Device-Symmetrie zu apiCallsTodayAccount (Summe der gestrigen Calls ueber alle Devices mit gleichem apiKey). Live-berechnet, kann in den ersten Minuten nach Mitternacht kurz inkonsistent sein."

Gruß,
Stefan
FHEM: Raspberry PI 400+SSD
Viessmann, Fronius, BYD, Wunderground, Max, Shelly, ESPEasy, FHEMPY,...  Docker + Portainer: Immich, HA, Authelia, Caddy
Maintainer: Vitoconnect
GIT: https://github.com/StefanRu1
Kaffeekasse: https://www.paypal.me/stefanru01

Rewe2000

Hallo Stefan,

zunächst mal vielen Dank für deine unermüdliche Arbeit am vitoconnect Modul.
Ich habe seit einer Woche auch eine Vitocal 250A Modular und seit Anfang die Anbindung mit deinem Modul problemlos durchgeführt.
So wie empfohlen verwende ich nur die RAW-Readings und gewöhne mich von Anfang an daran. Es ist aber für mich als "Anfänger" nicht immer ganz einfach das passende Reading aus den vielen Readings herauszufinden. Als große Hilfe empfinde ich das HTML-Bild, welches mit dem Attribut eingeblendet werden kann, schade ist nur, dass der Datenpunktname nicht sichtbar gemacht werden kann, wenn man mit der Maus über den Datenpunkt fährt (Tooltip).

Ich habe gestern eine Strommeßgerät bestellt und werde dieses noch in die Unterverteilung der Wärmepumpe mit einbauen, da ich auch mit den von der API gelieferten "heating.power.consumption.summary" Werten nicht ganz glücklich bin. Der Tageswert für die WW-Erwärmung von vorgestern ist bei mir z.B. nicht erschienen (ich schreibe die Tageswerte immer um 23:59:59 Uhr in eine DBLog Datenbank), aber im Messwert der letzten 7 Tage wird dieser korrekt angezeigt. Das gleiche gilt auch für die Werte der JAZ und COP, diese werden nur sehr spärlich über die API aktualisiert. Aber auch ein externer Stromzähler kann nicht zwischen WW, Heizstab und Heizbetrieb unterscheiden, da bin ich dennoch auf die API-Werte angewiesen.

Werde sicherlich noch ein wenig benötigen bis ich alle Datenpunkte finde, welche ich suche und auch noch die eine oder andere Frage haben, bis alles zu meiner Zufriedenheit läuft.

Nochmals Danke für das perfekte Modul
Gruß Reinhard
Fhem 6.4 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

stefanru

Hi Reinhard,

danke für deine Rückmeldung und schön dass das Modul bei dir gut läuft.

Beim Tooltip kann ich überlegen, ob das umsetzbar ist.
Das Problem ist, dass die Werte nicht bei jedem Viessmann-Gerät gleich heißen. Viessmann ist hier leider nicht sehr konsequent in der Namensgebung.

Ich habe aber einige der Datenpunkte schon durchgeackert, z.B. für die Erstellung des Bildes. Eventuell kann ich da zumindest für One-Base-Geräte eine Liste erzeugen.

Das mit den Verbrauchswerten ist ein leidiges Thema, obwohl es bei mir seit einiger Zeit sehr gut läuft. Ich habe dafür ja die asSingleValue-Readings erfunden. Sie werden immer genau 1× aktualisiert, wenn es neue Werte gibt.
Diese logge ich einfach in die DB mit:

DbLogInclude heating.power.consumption.total.day.asSingleValue, heating.power.consumption.dhw.day.asSingleValue, heating.power.consumption.heating.day.asSingleValue
Damit bekomme ich sauber alle Werte.

Eventuell liegt es aber auch an der schlechten Verbindung der Vitoconnect. Ich habe einen Repeater direkt neben der Inneneinheit, so dass die Verbindung immer stabil läuft.

Viele Grüße,
Stefan
FHEM: Raspberry PI 400+SSD
Viessmann, Fronius, BYD, Wunderground, Max, Shelly, ESPEasy, FHEMPY,...  Docker + Portainer: Immich, HA, Authelia, Caddy
Maintainer: Vitoconnect
GIT: https://github.com/StefanRu1
Kaffeekasse: https://www.paypal.me/stefanru01