NEWS
Viessmann-Adapter mit vcontrol
-
@issr4k
Ich habe hier eine interessante PDF von Viessmann gefunden. Hier stehen auch die Werte für die Lüftung:
204D_Vitocal_xxx-S_Vitotronic_200_Typ_WO1C__Vitocaldens__Vitolacaldens.pdfIch werde mir in den nächsten Wochen eine neue Vito.xml Datei bauen.
Vorbild wird die Vito.xml von @dtp sein. Seine Vito hat eine schöne Struktur mit einer Aufteilung nach Themen.
Ich versuche da auch die Lüftung einzubauen. Das wird aber eine weile dauern. Ich bin nun zuversichtlich, dass der vcontrold besser als die API Lösung ist, da man hier auf das Entgegenkommen von Viessmann angewiesen ist. -
@martybr Hmm Instanz entfernen… da hätte icu auch drauf kommen können
Danke probiere ich aus -
@issr4k
Ja wäre auch interessant die vcontrold.xml auf ein minimum zu verschlankenEDIT: das 300er läuft bei mir nun auch
Versuche weiter mit dem PV Thema
-
@issr4k
Hier mein Versuch mit der Vitovent. Ich habe mal zwei Datenpunkte, die in der Viessmann Beschreibung aufgeführt werden, eingetragen. Das habe ich dann auf meinem Testserver getestet, um mein Produktivsystem nicht zu verändern.Bei ersten Test ist VControld abgestürzt und hat keine Werte geliefert. Ein Telnet liess sich auch nicht beenden. Ich hatte als unit "RT" eingegeben.
Bei Zweiten Versuch hatte ich dann als init "CO" eingetragen. Das führte dann nicht zum Absturz, liefere aber keine Werte. Hast du eine Übersicht über die unit-Werte? Es scheint da eine Menge zu geben.Hier die vito.xml aus dem Test-System:
vito_test.xml -
@martybr habe leider keine Vitovent.
Hatte noch einen kleinen Erfolg zB beim Verdichter sperren (5012) Werkseinstellung sind 15.. Kann man in der Codierebene 1 natürlich aufrufen.
Vcontrold bekommt auch was allerdings habe ich noch nicht so recht die richtige einheit..
Wenn ich über telnet „debug on“ die 5012 aufrufe, versteht vcontrold die Antwort Stand jetzt nicht.
Bei debug bekomme ich aber ein 0x0F sprich 15.
Wenn ich über die Vitocal die 5012 anpasse auf zB 11 .
Steht bei Debug 0xB… also die werte kommen korrekt an, jetzt müsste man noch tüfteln, sodass vcontrol sie auch versteht.Bei dem 5012 (siehe Anleitung)
Handelt es sich um einen Parameter mit 4 Bit
Bit—Wertigkeit—Einstellwert—Summe
Bit 0 — 1 — 1 — 1
Bit 1 — 2 — 1 — 2
Bit 2 — 4 — 1 — 4
Bit 3 — 8 — 1 — 8Sind dann insgesamt 15, nimmt man Bit 2 raus bzw setzt den Einstellwert auf 0 landen wir bei den angesprochenen 11.
Ich lade morgen dazu nochmal Fotos hoch, dann ist es eventuell verständlicher. -
@issr4k Eine kurze Frage:
Laufen bei dir meine xml-Dateien? Ich habe gerade die vcontrold.xml etwas um neue Units erweitert. Sie läuft bei mir einwandfrei.
Ich kann sie dir hier einstellen. -
@martybr
Ja gerne doch!
Welche units sind denn die neuen?
Und wo hast du die her? -
@issr4k
Die kann man in der vcontrold.xml selber definieren. Schau mal rein:
vcontrold_neu.xml -
@martybr und woher weißt du wie?
-
@issr4k Ich habe mir verschiede vcontrold.xml Dateien angeschaut. Dort werden die <unit> Definitionen erstellt.
-
@martybr Kannst du mir das an einem Beispiel erklären?
-
@issr4k
Hier zwei Unit-Einträge:<unit name='BetriebsArt'> <abbrev>BA</abbrev> <type>enum</type> <enum bytes='00' text='Abschaltbetrieb'/> <enum bytes='01' text='Warmwasser'/> <enum bytes='02' text='Heizen und Warmwasser'/> <enum bytes='03' text='3'/> <enum bytes='04' text='dauernd reduziert'/> <enum bytes='05' text='dauernd normal'/> <enum bytes='06' text='normal Abschalt'/> <enum bytes='07' text='nur Kuehlen'/> <enum text='UNKNOWN'/> </unit> <unit name='Aktuelle Betriebsart'> <abbrev>ABA</abbrev> <type>enum</type> <enum bytes='00' text='Abschaltbetr. (Dauernd)'/> <enum bytes='01' text='Red. Betrieb (Schaltuhr)'/> <enum bytes='02' text='Normalbetrieb (Schaltuhr)'/> <enum bytes='03' text='Normalbetrieb (Dauernd)'/> <enum text='?'/> </unit>
Der obere steht in jeder XML. Hier werden Werte von 00 bis 07 ausgewertet. Der untere ist eine Variation, der die Werte von 00 bis 03 auswertet. Je nach Datenpunkt kannst du dann die entsprechende unit eintragen.
Beispiel vito.xml:
<command name="getTempSekVL" protocmd="getaddr"> <addr>0105</addr> <len>2</len> <unit>UT</unit> <description>Information - Heizkreis HK1: Vorlauftemperatur Sekundaer 1 (0..95)</description> </command>
Hier wird die unit == UT eingetragen. Die Definition steht wieder in der vcontrold.xml.
Hier:
<unit name='Temperatur'> <abbrev>UT</abbrev> <calc get='V/10' set='V*10'/> <type>short</type> <entity>° C</entity> </unit>
-
@martybr sagte in Viessmann-Adapter mit vcontrol:
@issr4k
Hier zwei Unit-Einträge:<unit name='BetriebsArt'> <abbrev>BA</abbrev> <type>enum</type> <enum bytes='00' text='Abschaltbetrieb'/> <enum bytes='01' text='Warmwasser'/> <enum bytes='02' text='Heizen und Warmwasser'/> <enum bytes='03' text='3'/> <enum bytes='04' text='dauernd reduziert'/> <enum bytes='05' text='dauernd normal'/> <enum bytes='06' text='normal Abschalt'/> <enum bytes='07' text='nur Kuehlen'/> <enum text='UNKNOWN'/> </unit> <unit name='Aktuelle Betriebsart'> <abbrev>ABA</abbrev> <type>enum</type> <enum bytes='00' text='Abschaltbetr. (Dauernd)'/> <enum bytes='01' text='Red. Betrieb (Schaltuhr)'/> <enum bytes='02' text='Normalbetrieb (Schaltuhr)'/> <enum bytes='03' text='Normalbetrieb (Dauernd)'/> <enum text='?'/> </unit>
Und wieder beispielhaft, mit welcher Adresse verwendest du die Einheit ABA ?
-
@issr4k
Habe ich noch nicht implementiert. Das wird mich in den nächsten Wochen beschäftigen. Ich schreibe ja gerade die vito.xml komplett um (hatte ich ja weiter oben geschrieben). Ich habe extra ein Testsystem aufgebaut, um mein laufendes System nicht zu himmeln. -
@issr4k
Meine Liste von Viessmann der Datenpunkte zur 204D muss fehlerhaft sein. Ich habe jetzt versucht, die Lüftung zu integrieren, das ist aber fehlgeschlagen. Beim Vergleich der Datenpunkte funktionierende Befehle zur Viessmannliste zeigt große Differenzen.
Hast du evtl. eine Liste der Datenpunkte? -
Hier gibts ein nettes Projekt wo man sich die möglichen Adressen für sein Gerät rausziehen kann:
https://github.com/sarnau/InsideViessmannVitosoftBei mir ist das leider schon lange her und hat auch nur bedingt funktioniert. Ich hab mir da folgende Daten rausgezogen und nen Excel erstellt:
EventTypes.xlsxWenn man nach
WPR3
filtert findet man alle Adressen inkl. Type für W01C Steuerung.
Allerdings muss man dann doch immer probieren ob die funktionieren. Ich hab mir das Handbuch genommen und dort nach den Adressen geschaut und dann getestet. Mit der Methode hab ich alles gefunden was ich so brauche. Die Adressen stehen ja auch in der Anlage wenn man in Codierebene 1 / 2 geht.Hier mal meine xmls:
vcontrold.xml
vito.xmlDamit hab ich dann ne ganz nette Visu erstellen können:
Edit:
Grad noch entdeckt: https://github.com/philippoo66/ViessData21
Hier gibts die Listen (DP_Listen_2.zip) pro Gerät. -
@scrounger Super, vielen Dank. Die Werte korrespondieren mit meinen Werten, dass scheint die gleiche Steuerung zu sein.
Eine Frage habe ich aber noch: Müssen eure Mieter niedrigere Temperaturen als ihr haben, oder ist das Zufall?Ich schaue mir mal in Ruhe die Excel an, auch hier für vielen Dank. Ich habe mir gerade das Handbuch der VitoTronic 200 rausgesucht. Dann kann ich da ja die Dateien finalisieren.
Ich habe nun auch im Handbuch endlich die Werte für die Vitovent gefunden:
Die liegen bei 7D0x.
Da steckt ja noch jede Menge Arbeit vor mir.Meine Visa sieht aktuell so aus (nicht so schön wie deine, bin noch am basteln):
-
@martybr sagte in Viessmann-Adapter mit vcontrol:
Eine Frage habe ich aber noch: Müssen eure Mieter niedrigere Temperaturen als ihr haben, oder ist das Zufall?
Ich wusste das diese Frage kommen wird
Da steckt ja noch jede Menge Arbeit vor mir.
Definitiv - ich habe Stunden damit verbracht. Hatte aber den positiven Nebeneffekt das ich mich sehr intensiv mit den Parametern beschäftigt habe und so noch einiges an der Anlage optimieren konnte.
Hat dabei geholfen Fehler in der Anlage aufzudecken und abzustellen, aber leider auch Fehler seitens Viessmann aufzudecken, die echt der Knaller sind....
https://www.viessmann-community.com/t5/Waermepumpe-Hybridsysteme/Standby-Stromverbrauch-Vitocal-200s/td-p/184588 -
@scrounger Das klingt heftig.
Ich ärgere mich seit einiger Zeit über Viessmann: Ich hatte mit 2016/2017, als ich neu gebaut habe, eine Steuerung von Viessmann installieren lassen: Homeautomatisierung live: die Vitocomfort. Damit konnte ich die Rollos etc. und die ganze Heizung inkl. Kühlung und Lüftung steuern. Alles über EnOcean. Top.
Letztes Jahr hat Viessmann die Vitocomfort abgekündigt. Als Ersatz gab es eine Migration (rabattiert) auf den Wibutler. Das ist ein tolles System mit u.a. Zwave, Zigbee und Enocean.
Das Dinges kann sogar mit Viessmann Komponenten. Leider keine Kühlung und es kennt die VitoVent 300F nicht.
Ich habe jetzt im Wibutler Forum einen Post hinterlassen, dass ich das Ding kostenlos abgebe. Schrottiges Forum, keine Antwort auf Fragen etc.
Nun Frust aus !! -
Hier wie angekündigt die Bilder zu Beitrag 50
Habt ihr eine Idee wie ich den Datentyp abbilden kann?
So 100% habe ich das mit dem erstellen der Datentypen noch nicht verstanden.Ich spreche 5012 an:
und zurück kommt 0x0F... sprich 15
gleiches hier mit 0x0B bzw. 11
EDIT:
Habe den Datentyp mal auf Integer geändert.<unit name="Test"> <abbrev>XX</abbrev> <calc get="V" set="V"/> <type>int</type> <entity/> </unit>
Damit bekomme ich zumindest mal den Dezimal Wert von vctrld rückgeliefert
Auf die gleiche Art einen Wert setzen geht allerdings nicht.