abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 
Beantwortet! Gehe zur Lösung.

Vitodens 200 Wb2 mit VitoConnect oder andere Art auslesen

Hallo Zusammen,

wie doch die Zeit so vergeht. Meine Vitodens 200 Wb2 als GasBrennwerttherme

hat wenn ich es richtig verstehe die Regelung für witterungsgeführten Betrieb mit Comforttrol.

Ich würde gern die Anlage auslese oder überwachen. Daher habe ich mir nun die Vito Connect OPTO2 bestellt. Diese scheint aber nicht mit der Heizung zu kommunizieren oder Daten anzuzeigen. Liegt es am Alter der Heizung/Regelung ist bei der Regelung etwas defekt oder wie könnte man das Problem lösen?
7170311401359107 müsste die Nummer der Gasbrennwerttherme sein.

 

Kann man hier eine modernere Regelung einbauen?

33 ANTWORTEN 33

Dankeschön

hatte ich eher vergessen richtig im Fhem zu speichern oder so.
Habe jetzt eine Datei angelegt.
So Punkte wie Mischerstatus ,... suche ich mir dann noch zusammen

Schade ich kann die Anlage oder den Rechner immer nur gelegendlich direkt also Vorort abfragen.

Nachdem das Log einen Sprung von 99 Betriebsstunden innerhalb von 3 Minuten angezeigt hat, habe ich mal direkt am Gerät geschaut was der Berenner gelaufen ist. Hier steht ein völlig anderer Wert.

Habe jetzt grob in den Dateien nach Zahlendrehern oder so gesucht aber erstmal nichts gefunden.

Auch scheint der Brennerstatus öfters einen falschen Wert zu liefern.

 

Jemand schon so ein Problem gehabt?

 

Hattest du mal meine cfg aus der Cloud gefischt?

Das ist alles nicht perfekt, aber bei mir funktioniert gut und zuverlässig:

Aussentemp, Betriebsart, Drehz. Pumpe (nur 0/1), Kessel_ist, Speicher_Soll, Speicher_Ist, Fehlermeldung.

Die Temps kann man dann auch gut loggen und plotten. Der Rest ist mir als noch nicht schlüssig aufgefallen,

aber da versuche ich nach und nach noch das Eine oder Andere besser hinzubekommen, falls möglich.

Die Fehlermeldung kannst du dir ggf. per Nachrichtendienst aufs Handy oder per Mail schicken lassen.

 

 

Servus,

ja Frage den Status über den Raspberry Pi und Nachrichtendienst ab. Dies funktioniert auch super.

Außer folgendes:

- die Kesseltemperatur egal ob soll oder ist hat im Bereich um 60°C (denke so ab 55°C)ein negatives Vorzeichen

- der Brennerbetriebsstundencounter liefert über "getBrennerStunden1" den falschen Wert

- der Brennerstatus scheint hin und wieder einen falschen Wert über den Befehl" getBrennerStatus" zu liefern

 

 

 

Diese "Ausreißer" habe ich noch nicht bemerkt, da ich mein Device noch nicht logge und plotte.

Ich hab das auch noch nicht lange am Laufen und die Jahre zuvor hatte ich einen 1- Wire- Bus mit vielen Sensoren an die Therme gebastelt, der bis heute zuverlässig die Temperaturkurven liefert.

 

Aber gegen die Ausreißer kann man etwas tun. Zum beheben der Ursache reicht mein Wissen nicht,

aber ich kann dir zeigen wie du die falschen Werte rausfiltern kannst.

Du legst in der "99_myUtils.pm" eine kleine Routine an, die z.B. bewirkt dass die negativen Werte

verworfen werden (das sprintf "%.1f" kürzt bei Bedarf noch auf eine Kommastelle):

 

sub v200_filter_kesseltemp($) {

my ($v200_name) = @_; # übergebene Daten einlesen
my $temp = ReadingsNum("$v200_name","Kessel_Ist",0); # Variable mit akt. Temp.- Wert befüllen

if ($temp > 0 ) {  # nur positive Werte durchlassen
return sprintf "%.1f",$temp; # Rückgabe der pos. Werte und kürzen auf eine Kommastelle
      }
}

 

Diese Routine rufst du dann in deinem Vito.- Device als "userReadings" (ist ein Attribut) auf und bekommst

dadurch immer eine sauber plotbare Wertereihe geliefert (es muss dann dieses userReading geloggt werden):

 

kesseltemp_filter {v200_filter_kesseltemp($name)}

 

So kann man sich viele Arten von "Ausreißern" gut hinbiegen. Falls du dazu den alten Wert zum

Vergleich alt/aktuell brauchst, musst du für das entspr. Reading das Attribut "oldreadings" aktivieren.

 

Der Zugriff geht dann so (Beispiel mit Vergleich alt/aktuell):

 

sub v200_filter_kesseltemp($) {

my ($v200_name) = @_; # übergebene Daten einlesen
my $temp = ReadingsNum("$v200_name","Kessel_Ist",0); # Variable mit akt. Temp.- Wert befüllen

my $old_temp = OldReadingsNum("$v200_name","Kessel_Ist","$temp"); # Variable mit altem Temp.- Wert befüllen
my $diff = ($temp - $old_temp);  # Subtraktion der beiden Werte (aktuell - alt)

if ($diff >= 100) { # Ergebnis der Subtraktion auswerten -> wenn größer/gleich 100 -> liefere alten Wert

Log 1, "if... temp:$temp old-temp:$old_temp diff:$diff" ; # Testausgabe der Werte im Logfile (später auskommentieren!)
return sprintf "%.1f",$old_temp;
      }
else {  # sonst liefere aktuellen Wert
Log 1, "else... temp:$temp old-temp:$old_temp diff:$diff" ; # Testausgabe der Werte im Logfile (später auskommentieren!)
return sprintf "%.1f",$temp;
       }
}

 

 

 

 

Servus,

wenn man falsch liest oder klickt. Und daher gesagt es wäre die Lösung.

Wollte eigentich nur antworten 🙄

 

Ansich funktioniert ja das Auslesen nun mit folgenden Einschrängungen:

  • HK2 mit Mischer.Hier bekomme ich leider überhaupt keine Rückmeldungen über den Bus oder der Mischerstellung. Wenn ich z.B. den Erweiterungssatz für HK mit Mischer ausschalte, Kommt in der Vitodens 200 der Fehler "A5" (glaube ich) aber in der Software steht "UNKOWN"
  • Brennerstatus bin ich mir noch nicht sicher ob hier hin und wieder falscher Aktivitäten angezeigt werden
  • Brennerstunden laut Vitodens bei ca. 7200 h und die Sofware VCONTROLD oder der VCLIENT liefern Werte um die 4500. Sobald am Brenner eine Stunde dazukommen, springt die Software in 99er Schritten weiter
  • Die Kesseltemperatur hat im Bereich 60°C für die Warmwassererwärung dann negative Werte. Diese will ich ja auch nicht herausfiltern sondern müsste die umwandeln auf positive Werte. Beispiel 35°C ist ok -61°C -> 61°C

Hier wandelt die Funktion direkt immer in pos. um. 

sub v200_filter_kesseltemp($) {

my ($v200_name) = @_; # übergebene Daten einlesen
my $temp = ReadingsNum("$v200_name","Kessel_Ist",0); # Variable mit akt. Temp.- Wert befüllen

return sprintf "%.1f",abs$temp; # Rückgabe der pos. Werte und kürzen auf eine Kommastelle
      }
}

 

Zu den anderen Sachen muss ich mal in der Heizperiode gucken. Momentan läuft nur die Solaranlage.

Die Fehlermeldungen im Klartext sind in meiner CFG hinterlegt. Den Cloud- Link hast du ja.

Dankeschön

 

ja in deiner Config sind Werte für Fehlermeldungen hinterlegt.

Aber scheinbar wenn nicht genau der Fehlercode beschreiben ist kommt UNKOWN oder?

Hatte gedacht, dass der Angezeigte Fehlercode von der Vitodens war glaube ich A5 eingebaut wird dieser auch angezeigt wird. Vielleicht hier noch einen Programmierfehler gemacht oder so aber hat beim ersten Test nicht funktioniert. Kann man denn Werte der Vitoden oder vom GWG direkt im Raspi auslesen, um so z.B. weitere Parameter entdecken zu können?

Frage zur Routine
my ($v200_name) = @_; baute ich so um

my ($v200_name) = Vitodens200;
my $temp = ReadingsNum("$v200_name","Kesseltemperatur",0);

?

Das musst du schon alles genau so lassen, nur der Readings- Name muss zu deiner Def. passen -

einen Fehler hatte ich trotzdem drin 😉 :

 

sub v200_filter_kesseltemp($) { # so lassen, hier wird nur der Name der Funktion festgelegt, die du in deinem userReadings aufrufst

my ($v200_name) = @_; # so lassen, hier wird aus der Übergabe "@_" der Name deiner Def. geholt und in die Variable "$v200_name" gesteckt
my $temp = ReadingsNum("$v200_name","Kessel_Ist",0); # so lassen bis ggf. auf "Kessel_Ist": Hierfür nimmst du den Namen deines original- Readings für die Kesseltemp. (die manchmal neg. Werte bringt) ; hier wird der manchmal negative  Temp.- Wert in die Variable "$temp" gesteckt

return sprintf "%.1f",abs($temp); # so lassen ; Rückgabe der pos. (Absolut-)Werte zum aufrufenden userReadings und kürzen auf eine Kommastelle (hier war ein Fehler drin - Klammern haben gefehlt)
      } # hier war eine Klammer zu viel

 

Aber scheinbar wenn nicht genau der Fehlercode beschreiben ist kommt UNKOWN oder?

Genau, jeder Fehler muss in der cfg eine Textentsprechung haben. Das kannst du einfach so erweitern.

 

Kann man denn Werte der Vitoden oder vom GWG direkt im Raspi auslesen, um so z.B. weitere Parameter entdecken zu können?

Das geht leider nicht so einfach: Die Befehle sind in der vclient- Konfiguration hinterlegt und stammen aus Versuchen, die jemand mal gemacht hat (nicht ich). Man müsste dazu eine Software haben (z.B. die originale von Viessmann) und dann die serielle Komm. mitloggen. Das will ich ja mal mit der Testversion versuchen, aber erst im Herbst/Winter wenn die Therme wieder läuft.

 

 

Top-Lösungsautoren