NEWS
Viessmann-Adapter mit vcontrol
-
@issr4k
Teste ich morgen. In meiner Vito.xml steht ja als unit "RT". -
@martybr
spreche ich "set1xWW" mit 2 an, steht auf dem Display der Vitocal dick und fett Manueller Modbus..EDIT: Wo genau hast du denn die Tabelle mit den Datentypen her?
EDIT 2: So klappt es jetzt... B020 ist wohl nicht der Richtige...
<command name="set1xWW" protocmd="setaddr"> <addr>B0D0</addr> <len>1</len> <unit>RT</unit> <description>Bedienung WW 1xWW Bereitung</description> </command>
Bei "2" wird das Häkchen auf der Vitocal gesetzt und bei "0" entfernt... Bei der "1" passiert gar nichts, soweit ich sehen kann...
-
@issr4k
Bei läuft der Wert B020. Ich habe es heute Morgen getestet.
Umschaltung erfolgt über set1WWein und set1WWaus. Kontrolliert an der Wärmepumpe.
Geschaltet habe ich über telnet.Die Beispiel-XML habe aus dem openv Forum. Leider sind die Werte in der Tabelle extrem dünn:
https://github.com/openv/openv/wiki/Adressen -
@martybr
Prima, dass es bei dir auch klappt!
Ich habe inzwischen mal die Geräte ID auch auf die 204D angepasst und komischerweise klappt das auch.
Auch wollte ich das 300er Protokoll verwenden.
Aber sobald ich das umstelle von KW2, bekomme ich eine Außentemperatur von 128,5 und nicht mehr 8,5.
Hintergrund war es das ganze einheitlicher zu haben und um gemeinsam besser voran zu kommen…Wie alt ist deine Vitocal?
Meine ist im Oktober 21 eingebaut worden. -
@issr4k
Meine ist Bj. 2017. Ich habe noch eine VitoVent300F an der Anlage (zentrale Lüftung mit Wärmerückgewinnung).
Mit der VitoComfort kann ich sie auch zentral mit der Vitocal zusammen steuern. Zumindest die Lüftungssteuerung kann ich auch per VitoConnect steuern, das müsste also auch über vcontrold gehen. Infos gibt es dazu nicht. Ich suche mir hier einen Wolf. -
@martybr
Naja das ist ja nicht verwunderlich, wenn man Viessmann‘s aktuelle Strategier sieht… mit Cloud Geld verdienen… das sind wir denen natürlich ein Dorn im Auge…Suche mal bei Google nach Datenpunkten Vitocal KNX Vitogate… da steht möglicherweise noch was brauchbares.
Ließt du nach jeder Änderung an der vito.xml im ioBroker adapter neu ein?
Bei mir passiert irgendwie gar nichts mehr im Adapter.
Wenn ich „neu einlesen“ ankreuze meldet iobroker das der adapter wiederholt abstürzt -
@issr4k
Da such ich mal. Zu deiner Frage: Wenn ich die xml-Dateien (auch die Vito.xml) ändere, dann starte ich den vcontrld-Server neu. Auch entferne ich die Viessmann-Instanz und konfiguriere ich neu. Die Instanz startet ansonsten nicht mehr. Auch wenn ich angebe, die Vito.xml neu zu laden. Das ist echt zeitaufwendig. -
@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 ?