Vitoconnect - Verbesserte Version

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

Vorheriges Thema - Nächstes Thema

kkoeniger

Zitat von: stefanru am 19 Dezember 2024, 17:41:26...

@kkoenig: Das ist schon setzbar...
Aber wenn Viessmann was ändert geht es wieder nicht.
Deshalb hatte ich gesagt man soll wenn möglich mit raw readings arbeiten.
Dann hat man automatisch alle Setter dynamisch erzeugt.
...

Danke Stefan! Das war mir nicht klar - jetzt funktionierts auch bei mir.
LG,
Karl

stefanru

Danke fürs Feedback, Karl.

Ja ich kann nur alle ermutigen auf RAW Readings zu switchen.
Hier ist der Haupt Entwicklungsaufwand reingeflossen um eben die API dynamisch auszuwerten und auch die Setter dynamisch zu erstellen.
D.h. selbst wenn Viessmann nun etwas an der API Struktur ändert oder neue Readings oder Setter hinzunimmt, es wird direkt automatisch erzeugt.
Natürlich nur solange sie nicht die komplette Syntax der API umkrempeln.
Aber in dem Rahmen wartet sich das Modul selbst. Und das geht eben nur mit RAW Readings.

Auch finde ich sie gut wiederzufinden oder wenn man im Viessmann Forum etwas diskutieren möchte sind es eben diese Namen die bekannt sind und nicht irgendwas gemapptes.

Will man die Namen in einer Readingsgroup oder auf Tablet UI anzeigen kann man sie eh dann dort auf etwas Mappen das einem gefällt.

Auch weiterhin habe ich vor die meiste Entwicklung und Wartung in dem Bereich der Raw Readings zu tätigen, das ist für mich die Zukunftsfähige Programmierung für das Modul.


Danke und Gruß,
Stefan

kkoeniger

Zu Danken haben wir Nutzer Deines Moduls für Deinen Einsatz:)

Deine Frage nach den Leisungswerten der WP ist sehr berechtigt. Was die WP hier liefert ist mM eigentlich nur Unsinn, selbst die Addition ist falsch. Vielleicht sind hier bei der WP thermische Werte gemeint? - Aber das kann es auch nicht sein, denn in ViCare stehen andere Werte.

Ich habe einen Shelly davor und der zeigt mir einen ganz anderen Wert an. Siehe screenshot: die WP zeigt mir gerade 33.5kWh (Gesamt heating.power.consumption.total.day.asSingleValue = Wasser heating.power.consumption.dhw.day.asSingleValue + Wärme heating.power.consumption.heating.day.asSingleValue), der Shelly EM3 15.81 (berechnet anhand gestrigem Gesamtwert um 23:59), und letzterem glaube ich jedenfalls mehr. (Das SVG der WP ist heute unvollständig - vor 12h habe ich auf die RAW Readings umgestellt)
LG,
Karl

stefanru

Hi Karl,

danke für die Antwort.
Und super du verwendest genau das Setup das ich auch noch installieren will, also ein Shelly zur Überwachung.

Jetzt würde mich etwas interessieren.
Die Shelly Werte hast du sicher pro Tag?

Bei den Consumption Readings musst du aber aufpassen, sie werden von der API stark verzögert geliefert. D.h. 1-3 Tage verzögert.
Der Wert passt dann aber genau zu ViCare und ViGuide zum passenden Tag.
Deshalb habe ich diese Reading eingeführt: heating.power.consumption.total.day.asSingleValue.
Bei diesem Reading schreibe ich von der API gelieferte Werte mit dem korrekten Zeitstempel im Reading weg.
Also das ist kein aktueller Wert sondern immer von den Tagen die die API gerade liefert. Ich schreibe nur komplette Tage weg und dann immer mit dem Zeitstempel Tag 23:59:59.
Heißt du musst auf den Zeitstempel achten um die richtigen Tage zu vergleichen.
Man kann den Wert gut in Plots anzeigen und es sollte dann so aussehen (auch bei mir startet es erst vor ein paar Tagen).
Du darfst diesen Dateianhang nicht ansehen.

Wäre jetzt wirklich für mich interessant wie sich diese Werte im Vergleich zum Shelly verhalten.

Danke und Gruß,
Stefan



kkoeniger

Super. Dass die Werte nicht fortlaufend geschrieben werden können habe ich auch erkannt.

Hier ein kurzer kWh-Vergleich ViCare/Shelly (23:59 Uhr):

17.12.: 15.9 / 19.0600000000013
18.12.: 23.3 / 26.2099999999991
19.12.: 28.7 / 31.380000000001

Die kWh-Werte aus dem Modul hatte ich nicht gelogt. Es scheint mir die Relation zu stimmen, aber nicht der Wert. Meine ursprüngliche Schätzung von rund 10% zu wenig kann passen. In meinem einfachen SVG sieht das so aus:
LG,
Karl

stefanru

Ah super, der Graph sieht gut aus und ähnliche Idee wie meine.
Vergleich Verbrauch und Außentemp ;-)

Ich habe mal bei mir geschaut, mein Zwischenzähler für die WP zeigt 2535 kWh und die WP selbst sagt 2750 kWh.
Sind bei mir auch ca. 10% aber in die andere Richtung?
Das ist seltsam.
Der Zähler ist geeicht da ich damit im Haus die Stromkosten für die WP bestimmen muss.

Vielleicht liegts auch an dem genauen Modell und der verbauten Zähler. Habe die VitoCal 250AH.
Oder an der Software Version, habe 2404.

Danke und Gruß,
Stefan

kkoeniger

Ich denke der unterschiedliche Stromverbrauch liegt wohl an der Firmware. Bei mir die veralterte 2324. Und über die Updatepolitik von Viessmann möchte ich mich hier nicht auslassen :-(

Heute hat meine VitoCal 252-A-16 zwar die Warmwasserbereitung wunschgemäß bei niedrigen Strompreisen gemacht, aber verzögert (siehe screenshot von ViGuide). Dafür kann das Modul nichts, das ist einfach die WP. Ich muss dabei mit dem DOIF noch mehr testen.
LG,
Karl

87insane

Zitat von: stefanru am 19 Dezember 2024, 21:27:01Hi @87insane,

freut mich, dass du mit dem Modul zufrieden bist.
Klar, das braucht man nicht alles.
Ich baue gern ein dass man die Raw Readings auch ganz ausblenden kann, das ist nicht viel Arbeit.

Eine kleine Frage ich habe oft gelesen dass die Leistungswerte der Wärmepumpe nicht stimmen.
Weißt du wie weit sie abweichen?
Ich habe mir deswegen schon einen Shelly besorgt mit dem ich die echte Leistungsaufnahme messen will.
Ich frage mich aber woher bekomme ich die Wärmeleistungsabgabe um auch den COP zu berechnen?
Die Wärmeleistung kann ich doch nur von der Wärmepumpe bekommen?

Danke und Gruß,
Stefan

P.S.: Habe es dir eingebaut, neues Attribut heißt vitoconnect_disable_raw_readings.
Könntest du es für mich bei dir testen?
Einfach das Attribut auf 1 stellen und einmal alle Readings löchen mit clearReadings.
Beim nächsten Abruf sollten die raw readings nicht mehr auftauchen.

Im Anhang die Version, stelle sie auf GIT sobald sie getestet wurde.

Danke und Gruß,
Stefan


Hey,

inwieweit die Werte bei einer WP abweichen weiß ich nicht. Ich selber habe eine Gas Therme. Aber auch hier ist es immer anders. Daher sind diese Werte für mich nutzlos.

Ich habe die Test Version eingespielt, FHEM restart und mal ein Update gemacht. Leider bekomme ich mit aktiviertem vitoconnect_disable_raw_readings
gar keine Readings mehr. Stelle ich das auf 0 und mache ein Update, sehe ich wieder alles.

stefanru

Hi @87insane,

dann habe ich deine Anfrage falsch verstanden.

Ich dachte du wolltest nur die im Mapping enthaltenen Werte und gar keine Raw Readings mehr?
Wie genau soll das Verhalten sein?

@kkoeniger:
Das Verhalten habe ich bei mir auch schon beobachtet.
Trotz Anfrage zur einmaligen Warmwasserbereitung ist nichts passiert.
Ich bin mir noch nicht sicher ob es nur bei der Anfrage durch die API nicht passiert oder auch bei Anfrage aus der App.
Aber ja das scheint ein Fehler zu sein und müsste man mal im Viessmann Forum melden.

Ich hatte dann mal die gewünschte Warmwasser Temperatur um 5 Grad erhöht so dass er aufheizen muss. Das schien funktioniert zu haben und er hat warmes Wasser gemacht.
Das ist aber natürlich nicht wirklich was man tun will.

Gruß,
Stefan


stefanru

Hi @87insane,

sorry hatte nicht aufmerksam genug gelesen.
Es hatte gar keine Updates der Readings mehr gegeben, verstanden ;-)

Habe den Fehler gefunden und eine neue Version erstellt.
Kannst du bitte nochmal testen?

Danke und Gruß,
Stefan

mthome

#25
Guten Morgen @stefanru,

ich habe gerade bemerkt, dass ich doch noch ein Problem mit dem Modul habe. Ich hatte seither (mit dem alten Modul) immer per Sprachbefehl eine Speicherladung starten lassen. Gestern ging das dann plötzlich nicht mehr und dabei habe ich gesehen, dass bei mir keine Setter erzeugt wurden.

Ich habe das Attribut vitoconnect_raw_readings auf 1 gesetzt, clearReadings und logResponseOnce duchgeführt. Es kommen auch sofort alle Readings - nur habe ich eben keine Setter. Verstehe ich es richtig, dass sie eigentlich dynamisch erzeugt werden sollten?


Ich habe eine Vitodens 300 mit vitoconnect Opto1. Was mit aufgefallen ist, dass sich device.serial.value = heating.boiler.serial.value sind aber ungleich heating.controller.serial.value.

Hast Du eine Idee, was ich falsch mache?

Vielen Dank im Vorraus.

--- Edit:
Hat sich erledigt - obwohl ich nur eine Vitodens 300 habe, musste ich vitoconnect_serial setzen. Die Seriennummer hatte ich dann aus der Datei device_xxx.json genommen ("gatewaySerial"), die nach dem logResponseOnce erzeugt wurde (falls jemand noch das gleiche Problem hat).


stefanru

Hi @mthome,

das ist ja interessant.
Also hat er irgendwie die falsche Serial verwendet und erkennt 2 Gateways?

Bei einem Device versuche ich das eigentlich automatisch zu ermitteln.
Für mich interessant wären alle json Files deiner Anlage bevor du die Serial gesetzt hast.
Kannst du mir gern per PM zukommen lassen.
Dann könnte ich das vielleicht auch automatisch richtig machen.
Danke!

@87insane
Hattest du Zeit die letzte Version mal zu testen und zu schauen ob es für dich passt?

Gruß und Danke,
Stefan

stefanru

Hi @mthome,

hier eine Debug Version wie in der PM besprochen.

Danke fürs helfen!


stefanru

Hi,

Ich konnte einen Bug bei den Raw Settern finden.
Hat man nur eine Serial wurden die Setter nicht automatisch erzeugt, nur nach setzen dieser Serial.
Er hatte sich eingeschlichen als ich das Abspeichern für mehrere Serials implementiert habe.
Danke @mthome fürs bereitstellen der Infos nach Aufspielen der Debug Version.

Hier die neue Version mit dem Fix und einer Verbesserung beim benutzen von activate/deactivate settern.
Außerdem ein neues Attribut nach Wunsch von @87insane.

Changelog:
  "0.4.0"  => "28.12.2024  Fixed setNew to work again automatically in case of one serial in gateways,".
                           "for more than one serial you have to define the serial you want to use".
  "0.3.2"  => "27.12.2024  Set in case of activate and deactivate request the active value of the reading".
  "0.3.1"  => "19.12.2024  New attribute vitoconnect_disable_raw_readings".

Die Version liegt in meinem GIT.
https://github.com/StefanRu1/FHEM/raw/refs/heads/main/FHEM/98_vitoconnect.pm


Da wir mittlerweile eine ziemlich stabile Version haben die abwärtskompatibel geblieben ist werde ich mich mal darum kümmern ob wir sie ins FHEM SVN einchecken können.

Danke und Gruß,
Stefan

mthome

@stefanru,

getestet und funktioniert einwandfrei  ;D - vielen Dank!!!