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
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