Viessmann-Heizungsmodul - Unterstützung gesucht

Hi,

ich habe ja hier schon mal vor längerer Zeit ein paar Skripte zum auslesen von Viessmann-Heizungen gepostet.
Da mir das „Skript-Handling“ immer ein Dorn im Auge war, erstelle ich derzeit ein Modul, welches als Instanz einfach unter den COM-Port zur Viessmann-Heizung (Optolink) platziert wird, und die komplette Kommunikation übernimmt.

Die Entwicklung basiert auf dem OpenV-Wiki.

Derzeitiger Entwicklungsstand:
Das Modul erkennt die angeschlossene Heizungssteuerung und kann mit den Protokollen KW sowie 300 umgehen. Es können Werte ausgelesen werden, schreiben ist noch nicht getestet, im Protokolhandling aber bereits implementiert.

Durch die Protokolle KW und 300 können diverse Steuerungen angesprochen werden. Eine Liste findet ihr hier.

Ziel des Moduls:

  • [li]Stufe 1
    [/li]Es sollen Heizungszustände (Temperaturen, Laufzeiten, etc.) ausgelesen werden, zudem Modi wie „aus“, „nur Warmwasser“, „Warmwasser und Heizen“, „Partymodus“ und „Sparmodus“ gezielt angesteuert werden.
    Das Abrufen kann über ein zyklisches Skript realisiert werden, die Werte werden über Instanzvariablen zur Verfügung gestellt.
    [li]Stufe 2
    [/li]Zyklisches Abrufen, Automatisierungen (wie Deaktivierung des Partymodus bei erreichter WW Temperatur), etc. werde in das Modul selbst als Konfiguration eingebunden.

Kein Ziel des Moduls ist die Programmierung (Zeiten, Grenzwerte, etc.) der Heizung.

Was ist jetzt zu tun?
Jeder hat natürlich nur eine Heizung, so auch ich. Ich habe eine Vitodens 200 mit Vitotronic, genauer die Steuerung 20CB (VScotHO1) mit einem Heizkreis. Zum testen der Protokolle KW und 300 ist das schon mal ok :wink:

Das Problem ist, das die Adressen im OpenV-Wiki für die Heizungsdaten nicht wirklich immer stimmen. Komischerweise liest bei mir aber das auf OpenV angebotene V-Control-Programm (für die Installation ist auch die dort angebotene V-Comm DLL notwendig!) die Heizung korrekt aus. Ich nutze deshalb einen ComPort-Scanner, um die Kommunikation von V-Control mit der Heizung zu analysieren, wodurch ich fast alle notwendigen Adressen ermiteln konnte. Schwer ist dies nicht!

Aufruf!
Wer mich jetzt also unterstützen möchte, der sollte

[ul]
[li]Eine Viessmann-Heizung, sowie ein Optolink Kabel haben, mit der er die Heizung auslesen kann (Eigenbau, siehe OpenV-Wiki oder z.B. hier)
[/li][li]V-Control installieren und testen können (also Werte damit auslesen können)
[/li][li]Mit einem ComPort-Scanner (gibt es kostenfrei als Trial) umgehen können (kann ich erklären)
[/li][li]Mir das Hex-Protokoll der Kommunikation sowie einen ScreenShot von V-Control zukommen lassen (kann ich beschreiben)
[/li][/ul]

Zeitaufwand: Ca. 15min.
Hieraus kann ich die Addressen für weitere Steuerungen ermitteln und in das Modul einbauen.

Das Modul selbst bietet auch eine LowLevel-Schnittstelle an, mit der man Adressen gezielt abfragen und schreiben kann. Dies ist aber nicht für die „Masse“ gedacht, da man dort schon wissen sollte, was man macht. Und das Suchen nach Addressen mittels TrialAndError halte ich für wenig angebracht - es geht schliesslich um eine Heizung und nicht um ein Spielzeug.

Also: Wer Lust hat, schicke mir einfach eine PM.

Gruss
Coyote

Kurze Frage… Welchen Vorteil hat diese Schnittstelle gegenüber den Modulen die Viessmann direkt anbietet? z.B. Gateway nach KNX… Dort wäre das mit IP-Symcon so ziemlich Plug&Play. Und die Kosten halte sich ja, dafür dass ich nicht basteln muss (:cool:), in Grenzen.

Seit letztem Jahr (?) gibt es bei Viessmann eine neue Generation der Steuerungen… Die scheinen im OpenV noch gar nicht aufgelistet zu sein.

Grüße,
paresy

[ol]
[li]ich habe kein KNX…
[/li][li]sehe ich das richtig, das das KNX Gateway > 500,-- € kostet? (Der Optokopler kostet ca. 140,-- €, also fast nur ein viertel!)
[/li][/ol]

Ich denke, das umreisst die Zielgruppe recht genau :wink:

Und gerade solche Dinge sind es, die :loveips: erzeugen :smiley:

Bzgl. neuer Steuerungen gebe ich dir absolut Recht. Solange diese das KW oder 300er Protokol nutzen (was eigentlich wohl alle neuen Steuerungen machen) ist es also eine Frage der Adressen. Hier muss man dann halt ggf. wirklich mittels „TrialAndError“ testen bzw. hoffen, das V-Control die doch schon unterstützt.

Ich hatte 200€ für das Vitogate 200 im Kopf gehabt… grad nachgesehen… Listenpreis ist 549€+MwSt… Okey. Das ist kein Schnäppchen.

paresy

Hi,

da sich schon ein paar gemeldet haben, und das Auslesen der Daten zu funktionieren schein, poste ich mal hier die Anleitung, damit jeder, der möchte, gleich loslegen kann.

Schon einmal ein herzliches Dankeschön für eure Unterstützung.

Wie in meinem Beitrag schon geschrieben (und wie ihr sicherlich schon wisst, wenn ihr die bisherigen Scripte verwendet habt) liegt eines der Hauptprobleme bei den Adressen der Viessmann-Steuerungen. Hier ist leider das OpenV Wiki nicht wirklich genau.

Aus diesem Grund müssen die Adressen verifiziert bzw. anders ermittelt werden.

Vorbereitung
Ich möchte euch bitten, die folgende Software zu installieren:

  • [li]COM Port Monitor (Trial Version)
    [/li]Den Monitor könnt ihr HIER herunterladen.
    [li]V-COMM DLL
    [/li]Die DLL kann HIER heruntergeladen werden.
    [li]V-Control 1.2.5
    [/li]V-Control ist HIER verfügbar.

Nach deren Installation solltet ihr die Programme „Advanced Serial Port Monitor“ sowie „V-control1_2_5“ starten können. V-Control sollte zudem in der Lage sein, über einen COM-Port die Heizung auszulesen und Werte anzuzeigen.

Weiteres Vorgehen
Im folgenden Ermitteln wir nun die Adressen, die V-Control verwendet, um die Heizungsdaten auszulesen.

  1. [li]V-Control starten, aber noch keine Verbindung aufbauen
    [/li]


    [li]COM-Port Monitor starten, den entsprechenden COM-Port einstellen (4800 Baud, 8 Datenbits, EVEN Parität sowie 2 Stopbits) und die Verbindung mit „Open“ öffnen
    [/li]


    [li]Nun kann man in V-Control mit „Start“ die Verbindung aufbauen, und die Daten auslesen lassen. Warten, bis alle Daten gelesen wurden.
    [/li]


    [li]Im Com-Port Monitor sollte man jetzt den Datenfluss auf dem COM-Port sehen können:
    [/li]


    [li]Im Com-Port Monitor die Hex-Daten markieren und mit „Rechtsklick->Copy Hex to Clipboard“ kopieren
    [/li]http://www.ip-symcon.de/forum/attachment.php?attachmentid=12468&stc=1&d=1309417885


    [li]Ein neues TXT File öffnen, und die Daten dort einstellen
    [/li]


    [li]Bis hierhin habt ihr nun das Auslesen der Viessman-Heizung durch V-Control protokoliert. Das ist für mich schon mal der WESENTLICHE Schritt. Wenn ihr mir dieses TXT-File sowie einen Screenshot der V-Control mit den ausgelesenen Daten (wie unter 4) oder im TXT File die Felder mit Daten selbst aufführt (siehe in meinem angehängten Beispiel TXT) zukommen lasst, kann ich schon die wesentlichsten Daten in das Modul einbauen.
    [/li]Ich hoffe, das V-Control die Daten immer in derselben Reihenfolge ausliest, wie bei mir. Dann ist das Matchen und ermitteln der Adressen schon fast erledigt. Die Daten aus der V-Control brauche ich zum verifizieren.

Bei Fragen, einfach eine Mail schicken.

Gruss
Coyote

VControl.png

Hallo,

Ich habe eine Vitodens 200 mit Steuerung VdensH01 Code 20CB. Besteht noch Interesse an deren Addressen?

Gruß
Stephan

Hi,

ich könnte dir Daten einer Vitoligno 300-P liefern, interesse? Dann mach ich mich gleich ans Werk.

-tom

Hi,

derzeit verfolge ich die Vermutung, das alle Heizungen diesselben Adressen verwenden. Das scheint auch aufzugehen.

Es gibt aber wohl bei der Rücklauftempereatur einen Fehler :wink:

@tomsche: Ich nehme dich mal in die Liste auf und schicke dir die nächste Version der Beta (sobald verfügbar) zu. Dann kannst du mittesten.

Gruss
Coyote

Hallo Coyote.

Wenn möglich würde ich auch den Betatester machen. Habe das zwar schon mit dem alten Script zufriedenstellend laufen und kann wenn Du willst mit ein paar Adressen dienen - würde mir aber gerne Deine Lösung ansehen.

Grüsse.

Alles klar, sag einfach bescheid…

-tom

Hallo Coyote,

gibt es schon etwas neues zu Deinem Modul? Gibt es schon die Möglichkeit etwas zu testen?

Grüße

wango


Alles über die Nase im Gesicht Nordfrieslands
http://www.Eiderstedt.net

Hallo,

ich würde gerne die Soll-Raumtemperatur und die Soll-Kesseltemperatur auslesen und einstellen können. Heizungstyp ist bei mir:
Device VScotHO1
ID 20CB
ExtID 002B
Protocol 300

Als Adressen würde ich die
Kesselsollteperatur 0x555A und
Raummtemperatur 0x2544 nehmen.

Weiss jemand, ob das Adressen mit Read/Write sind?

Danke für Antworten
gremlin36

Hi,

die Adressen der Temperaturen sind Read-Werte. Ich wäre aus Gewährleistungsgründen auch sehr vorsichtig, darauf Write Versuche zu unternehmen. So kann man z.B. auch die Zeiten etc. programmieren. Das muss aber sehr penibel sein, da dort keine Sicherheitsmechanismen greifen, wie über die menügeführte Programmierung. Man kann schnell mal was zerschiessen, und dann…

@All
mal ein kurzes Update…

Nachdem bei uns der Indian Summer ausgebrochen ist (wunderbare Sonnentage) kam ich kaum zum Codieren.

Aktueller Modulzustand:

  • Auslesen von bestimmten Werten funktioniert, aber das Modul stürzt
    Gelegentlich ab, wenn die ID der Statusvariablen ermittelt wird.

Ich habe jetzt eine überarbeitet Version, die die ID speichert, wodurch eine Ermittlung (die zum Absturz führte) nur noch 1x stattfindet. Gleichzeitig trat jedoch ein Problem mit einem Serverneustart auf (warum auch immer), das ich noch beheben muss (Paresy hat mir hier schon eine Info zukommen lassen, Danke!).

Ich habe 2 Tester, die beide den Dump haben/hatten. Denen möchte ich die neue Version zukommen lassen, um zu schauen, ob das Modul stabiler läuft.

Ich hoffe, das in dieser Woche (am Wochenende) erledigt zu haben.

[3.11.2011, 20:30] Update: Erledigt :wink:

Weitere Schritte:

  • [li]Umstellen der Codierten Adressen auf eine XML Konfigurationsdatei[/li][li]Weitere Einstellungen via XML Konfigurationsdatei[/li][li]Schreib-Option auf Adressen einbauen[/li]Ich weiss noch nicht, ob ich hier wirklich alles öffne, oder die Adressen einschränke auf die Modi. Beim Schreiben muss man wirklich wissen, was man tut.
    [li]Default-Aktionen an den Status-Variablen[/li]Damit sollte eigentlich im 95% Fall kein eigenes Schreiben mehr nötig sein
    [li]Automatisches Aktualisierungs Intervall via XML Konfiguration[/li]Damit man eigentlich gar keine eigenen Skripte mehr braucht

Und dann war da noch was…

Es gibt bereits für die 2.5 Beta ein SDK. Ich werde beim Modul auf der 2.4 bleiben, damit alle interessierten testen können. Die 2.5 wird erst dann in Angriff genommen, wenn 2.5 offiziell draussen ist UND das Modul in der 2.4 stabil läuft.

Gruss
Coyote

Hi,

ich habe einen Vitodens 333, v-control läuft bei mir.

Ich habe das Original Optolink und leite die Daten per dlan 200 USB über das Stromnetz an meinen PC.

John

So.
Nachdem ich gestern mein Optolink Gehäuse entsprechend gebohrt und gefeilt habe ist jetzt mein Nachbau Optolink Kabel auf einsatzfähig.

Erste Tests wurden erfolgreich durchgeführt und die einzige Herausforderung ist jetzt ein stabiles V in des Gehäuse einzusetzen damit der Optolink Kopf an seinem Platz bleibt.

Aktuell übernimmt diese Funktion ein Powerstrip von Tesa und auch das läuft ohne grosse Probleme.

Erste Eingaben in die Zeitprogramme und Auslesung der Stati sind ein wahrer Genuss im Vergleich zu den kryptischen Programmiermöglichkeiten der Steuerung.

Coole Sache.

Nun noch per USB Fernanschluss das Ding an den Server dran und dann könnte ich mit Deinem Modul loslegen.

Gruss
B71

Hi,
habe eine Vitodens200 VSCOTH01 mit Vcontrol ,würde mich auch als Betatester zur Verfügung stellen,orig Optolink habe ich bereits und kann auch bei bedarf mitsniffen

mfg
mikewolf

Hallo Coyote,

ich habe auch eine Vitodens 200, allerdings mit der Erweiterung H1, ich habe Dir die Daten einmal zusammengestellt und sende sie dann per PM.

Gruß Frank

Hi!
Ich habe aus dem anderen thread den Weg versucht, um den Wert für den Partymodus zu setzen:
// Variablen Includieren
include( „ViessmannDeviceTools.inc.php“ );

// Verbindung zur Heizung öffnen
ViessmannOpen();

// Partymodus für Kreis A1M1 aktivieren
$erg = ViessmannSetData( „PartybetriebM2“, chr(0x01) );

// Verbindung schliessen
ViessmannClose();

Bei mir hat der Heizungsbauer M2 genutzt.

Problem: Wenn ich an der Anlage den Partymodus setze und das auslese, wird der richtige Wert geliefert. Versuche ich, den Wert über das o.g. script zu setzen und dann ca. 90 Sekunden später wieder auszulesen, scheint das nicht angekommen zu sein. Der Wert ist nach wie vor auf „aus“.

Hat jemand eine Idee, woran das liegen könnte?

Danke für Tips
gremlin36

Übrigens gibt es bei openv eine neue xml, die auch sehr viele Werte „schreibbar“ macht.

Ich hab mal ne Frage zur „Hardware“

Nachdem sich mein elektrotechnisches Wissen in grenzen hält,
meine Frage „Wie groß ist denn der originale Viessman Stecker?“
sprich wie weit steht der denn vorne weg?

Unsere Therme hängt in der Waschküche, wo meine bessere Hälfte immer wieder reingeht
und das Ding rausreißen könnte.
Oder gibt es eine Möglichkeit, die Datenschnittstelle IM Gehäuse anzustecken?

Der trägt schon etwas auf. 5-6 Zentimeter werden das mit Knickschutz schon sein. Wenn Du willst messe ich heute abend mal nach.