Vitoconnect - Verbesserte Version

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

Vorheriges Thema - Nächstes Thema

satprofi

Hmm, hab neueste Version, aber kann das reading nicht finden.
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

stefanru

#46
Hi satprofi,

bin wieder zurück ;-)

Welche Wärmepumpe hast du denn?
Ich sehe, dass bei dir die Werte fehlen.

Kannst du mir, nur um auf Nummer sicher zu gehen, die resource.json Datei aus deinem FHEM Log Verzeichnis schicken?

Ich habe eine VitoCal 250 und da kommen folgende Werte:
heating.power.consumption.dhw.day
heating.power.consumption.dhw.day.asSingleValue
heating.power.consumption.dhw.dayValueReadAt
heating.power.consumption.dhw.month
heating.power.consumption.dhw.monthValueReadAt
heating.power.consumption.dhw.week
heating.power.consumption.dhw.weekValueReadAt
heating.power.consumption.dhw.year
heating.power.consumption.dhw.yearValueReadAt
heating.power.consumption.heating.day
heating.power.consumption.heating.day.asSingleValue
heating.power.consumption.heating.dayValueReadAt
heating.power.consumption.heating.month
heating.power.consumption.heating.monthValueReadAt
heating.power.consumption.heating.week
heating.power.consumption.heating.weekValueReadAt
heating.power.consumption.heating.year
heating.power.consumption.heating.yearValueReadAt
heating.power.consumption.summary.dhw.currentDay
heating.power.consumption.summary.dhw.currentMonth
heating.power.consumption.summary.dhw.currentYear
heating.power.consumption.summary.dhw.lastMonth
heating.power.consumption.summary.dhw.lastSevenDays
heating.power.consumption.summary.dhw.lastYear
heating.power.consumption.summary.heating.currentDay
heating.power.consumption.summary.heating.currentMonth
heating.power.consumption.summary.heating.currentYear
heating.power.consumption.summary.heating.lastMonth
heating.power.consumption.summary.heating.lastSevenDays
heating.power.consumption.summary.heating.lastYear
heating.power.consumption.total.day
heating.power.consumption.total.day.asSingleValue
heating.power.consumption.total.dayValueReadAt
heating.power.consumption.total.month
heating.power.consumption.total.monthValueReadAt
heating.power.consumption.total.week
heating.power.consumption.total.weekValueReadAt
heating.power.consumption.total.year
heating.power.consumption.total.yearValueReadAt

Im Viessmann Forum gibt es hier einen Thread zu den Power Werten der Vitocal.
https://community.viessmann.de/t5/The-Viessmann-API/API-liefert-Verbrauchswerte-nicht-mehr/td-p/445412
Es gibt wohl auch einen Hack über einen nicht offiziell bereit gestellten Endpoint.
Die Frage ist wie lange so etwas geht. Kann ich mir aber mal anschauen.

Aber lass uns erstmal schauen warum du die offiziellen Daten nicht bekommst.


Gruß,
Stefan

satprofi

Hallo.
Anbei die datei, Vitocal 200-s
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

stefanru

Hi Satprofi,

ich habe mir dein JSON angeschaut, aber es kommen keine Werte zurück.
Daher habe ich im Viessmann Forum nach einer Antwort gesucht und Folgendes gefunden:

Es gibt Funktionen, deren Verfügbarkeit von der vorliegenden Regelung abhängen. Ein Beispiel ist "heating.power.consumption.total", welches nur auf ONE BASE Geräten verfügbar ist. Du erkennst, ob du ein ONE BASE Gerät hast, wenn deine Anlage ein integriertes Wifi-Modul besitzt, mit dem du die Anlage mit dem Internet verbindest. Sollte deine Anlage einen Optolink-Anschluss besitzen, mit dem ein Vitoconnect Gateway verbunden ist, besitzt du kein ONE BASE Gerät.

Siehe: https://community.viessmann.de/t5/The-Viessmann-API/Energy-consumption-for-Viessmann-heat-pump-300G/td-p/289425

Das ist natürlich wieder großer Murks von Viessmann und man kann nur hoffen, dass hier nachgearbeitet wird.

Du könntest noch versuchen, ob du über diesen Endpoint Daten bekommst, aber ich glaube, auch hier gibt es nur Daten bei ONE BASE Geräten:
https://api.viessmann.com/iot/v1/analytics-api/dataLake/chronos/v0/thermal_energy
Dieser ist undokumentiert, den ich im Notfall einbauen könnte, aber da er undokumentiert ist, würde ich das lieber nicht machen.

Eine weitere Möglichkeit ist, einfach einen Shelly Pro 3EM zur Messung zu verwenden.
Ich hätte sogar noch einen hier, den ich nicht verwendet habe, da ich meinen Stromzähler der Wärmepumpe auslesen kann.

Eine andere Möglichkeit ist, an den CANBUS des Gerätes mit open3E zu gehen:
https://community.viessmann.de/t5/Konnektivitaet/CAN-Bus-Home-Automation-E3-Generation-lokal-und-kostenlos/td-p/356066

Gruß,
Stefan

satprofi

Wir haben den optolink. In der App aber selbst sehe ich zumindest den Gesamtstromverbrauch.
Danke, lg
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

stefanru

Ok, das hatte ich vermutet.
Wenn du willst baue ich mal testweise eine Abfrage des anderen Endpoints ein, ob dann Werte kommen.
Ich bezweifle es aber wer weiß.

Zur Zeit komme ich nicht dazu, aber zum WE hin kann ich dir denke ich mal eine Testversion geben.

Gruß,
Stefan

stefanru

Hi satprofi,

ich habe den in dem GIT beschriebenen Endpoint ausprobiert.
https://api.viessmann.com/iot/v1/analytics-api/dataLake/chronos/v0/thermal_energy
Das bekam ich aber keine Antwort von der API.

Das ist im Viessmann Forum nun auch so erwähnt. Siehe:
https://community.viessmann.de/t5/The-Viessmann-API/API-liefert-Verbrauchswerte-nicht-mehr/td-p/445412/page/6

Also es tut mir leid aber das Thema muss ich erstmal zurück stellen bis es hier von Viessmann eine offizielle Lösung für nicht ONEBASE Geräte gibt.
Du kannst gern in dem oben erwähnten Thread im Viessmann Forum auch lesen und sobald es etwas gibt kann ich versuchen es einzubauen.

Gruß,
Stefan


Schlimbo

Hi Stefan,
erst mal vielen Dank für die Weiterentwicklung des Moduls. Ich hatte es schon einige Wochen in Verwendung und es hat alles super geklappt. 
Ich habe gerade mein FHEM neu aufgesetzt, beim erneuten einrichten des Moduls bekomme ich beim versuch den API Key zu setzen jedoch folgende Meldung:
Zitatunknown value apiKey, choose one of update:noArg clearReadings:noArg password apiKey logResponseOnce:noArg
Weißt du woran das liegen könnte?

Viele Grüße
Schlimbo

satprofi

@stefanru

Keine Ursache, in der App sieht man es ja.
Danke trotzdem für die Arbeit
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

stefanru

Hi Schlimbo,

ich habe es gerade bei mir nochmal ausprobiert und ein neues Device erstellt und einen API Key eingetragen.
Es ging leider ohne Probleme.

Welche Version hast du denn im FHEM?
Die letzte aus meinem GIT? (Meine Version ist noch nicht im FHEM Repo, da arbeite ich dran sobald ich den Umbau für mehrere Standorte abgeschlossen habe)
In den alten Versionen gab es ja noch keinen API Key.

Hast du schon irgendwelche Attribute gesetzt?

Gruß,
Stefan

buec65

Hallo Stefan,
den API-Key brauchte man doch auch in der "alten" Version.

Wozu braucht es eigentlich eine Version für mehrere Standorte, kann man da nicht einfach 2 Instanzen von vitoconnect laufen lassen eventuell sogar mit unterschiedlichen Zugangsdaten.

stefanru

Hi buec65,

danke für deine Anmerkung.
Es wäre schön von euch zu erfahren was ihr davon haltet und wie die fertige Version dann am besten tickt.

Freibeuter hat 2 Standorte mit einem Account.
Ich habe 2 Gateways mit einem Account.
Denkbar sind auch X Standorte mit X Gateways.

Mein erster Umbau hat sich einzig und allein auf mehrere Gateways bezogen.
Und ich habe versucht dies in einem FHEM Gerät zu lösen.
Das benutze ich selbst nicht mal so und macht die Sache sehr kompliziert, ganz zu schweigen dass setter gar nicht möglich sind.

Mein Plan ist nun, dass ich pro Account (FHEM Device) schaue was ich dort finde.
Finde ich nur ein Gateway an einem Standort läuft alles wie bisher.
Finde ich mehrere Gateways oder Standorte merke ich mir alle und schreibe ins Status Reading "Mehrere Geräte entdeckt, bitte unter Attribute das gewünschte Gerät auswählen".
Unter den Attributen findet man eine Liste aller erkannten Geräte und muss eins auswählen.
Ab dann arbeitet dieses FHEM Device mit diesem Viessmann Gerät.

Will man weiter einbinden geht es wieder so.
Am Schluss hat man also pro Gerät ein FHEM Device.
Für den Standard User mit einem Gerät geht das voll automatisch.

Was hältst du davon?

Danke und Gruß,
Stefan




buec65

Hi Stefan,

bei mir gibt es nur 1 Standort 1 Gateway und bisher auch keine aktive Eingriffe mit Setter.

Bin aber glücklich das am Modul aktiv gearbeitet wird und es sehr gut funktioniert.

Wenn das mit mehreren Fhem Devices funktioniert und dadurch die Programmierung einfacher ist macht das doch Sinn.

Gruß
buec65

stefanru

Ok,
danke für deine Rückmeldung.

Werde den Umbau baldmöglichst angehen.
Sollte das Modul und das Handling mit mehreren Geräten stark vereinfachen.

Wenn das geschafft und getestet ist würde ich das Modul im FHEM SVN updaten.

Beim Testen wäre es super wenn du auch dabei bist.
Da ich nun mal zwei Geräte habe kann ich den Standard Fall der natürlich nach wie vor sofort funktionieren soll ohne Auswahl der Geräte in den Attributen nicht selbst testen.

Ich gebe bescheid sobald es eine neuen Version gibt.

Gruß,
Stefan



Schlimbo

Zitat von: stefanru am 17 Januar 2025, 13:16:29ich habe es gerade bei mir nochmal ausprobiert und ein neues Device erstellt und einen API Key eingetragen.
Es ging leider ohne Probleme.

Danke für die Rückmeldung.
Ich habe es jetzt auch noch einmal gelöscht und neu angelegt, und jetzt funktioniert es auch bei mir. :-)

Die Version, die ich nutze, ist bereits deine angepasste (98_vitoconnect.pm:v0.5.0-s26738/2022-11-23, wird im Internal "FVERSION" angezeigt). Allerdings scheint das Datum dort noch nicht zu stimmen.

Zuvor hatte ich es über "Raw definition" erstellt und meine alte Definition mit allen Attributen hineinkopiert.
Habe es gerade noch mal getestet und es hängt mit dem Attribut "vitoconnect_raw_readings" zusammen, ist das auf 1 gesetzt bevor apiKey gesetzt ist, kommt der Fehler.

Mir ist außerdem aufgefallen, dass bei einem Delete passwd und apiKey in der uniqueID-Datei erhalten bleiben. Vom 70_BOTVAL-Modul kenne ich es so, dass bei einem Delete auch das Passwort gelöscht wird.
sub Delete {
    my ( $hash, $arg ) = @_;
    my $name = $hash->{NAME};

    Log3( $name, 5, "BOTVAC $name: called function Delete()" );

    my $index = $hash->{TYPE} . "_" . $name . "_passwd";
    setKeyValue( $index, undef );

    return;
}
Mir gefällt es, wenn die Module beim Löschen auch wieder aufräumen  :)

Gruß,
Schlimbo