Abfrage & Steuerung von Viessmann Heizungen

Hat wehr zufällig von euch die Adressen für die Lüftungsanlage Vitovent 300-F? In der Anleitung stehen nur die Adressen von den Sollwerten nicht aber von den Istwerten.
Gruß Stefan

Hallo Leute,
ich wollte mich nur mal kurz für diese tolle Anleitung bedanken, ich habe den openV Adapter bestellt und auf meiner IPSymcon Ubuntu Kiste installiert.
Nach etwas gefrickel mit ser2net und den anderen Tools bin ich dann auf diese Anleitung gestoßen und habe es gleich ohne viel Aufwandhin bekommen.

Ein Hinweis noch für die Linux Leute:
Bevor es ging musste ich in der ViessmannDeviceTools.inc.php den Pfad von
$DeviceXMLName = IPS_GetKernelDir().„scripts\ViessmannDevice“.$ViessmannDeviceID.".xml";
auf
$DeviceXMLName = IPS_GetKernelDir().„scripts/ViessmannDevice“.$ViessmannDeviceID.".xml";
ändern, dann ging es!

„//“ in „“ geändert.

SUPER! Danke!
Jetzt muss ich nur noch die Adressen der einzelnen Sensoren setzen.

und wer SensorID sucht, dem helfen vielleicht die hier von Viessmann aufgeführten Datenpunkt PDF’s:
http://connectivity.viessmann.com/de/mp_rt/vitogate/vitogate-200-typ-eib-ab-05-2012.html

Hi
die Listen sehen sehr vielversprechend aus. Muss ich am WE gleich mal prüfen
Vg
Tommes

Gesendet von iPhone mit Tapatalk

Hat jemand schon eine Vitocal 200 S mit Vitronic 200 und dem 300er Protokoll in IPS eingebunden?

Moin Zusammen,
habe das Skript aus dem ersten Post installiert und bekomme folgende Steuerung angezeigt: 0505
Leider komme ich jetzt nicht weiter. Hab die Skripte mal durchforstet und das ein oder andere $_IPS[‚Value‘] eingetragen, welches noch in alter „Sprache“ drin war, aber jetzt komme ich nicht weiter.
Hat jemand gleiches Protokoll und würde seine XML und die Skript für mich bereitstellen?

Danke und Grüße,
Peter

EDIT: Ich habe mal das V-Control installiert und da wird mir VScotH01 angezeigt?!

Moin Rangarin,
danke für deinen TIP, jetzt funktionier das Skript bei mir auch, zumindest so halb. Eventuell hab ich noch etwas übersehen?!
Kannst Du mir sagen, was du mit

„//“ in „“ geändert.

meinst?

Ich hab das Problem, das ich in den Werten immer wieder ausreisser habe. Bei der Aussentemperatur bekomme ich mehrmals am Tag 128,5 als Wert ausgeben.
Welche Steuerung hast Du?
Bekommst Du die Brennerstunden korrekt angezeigt?
Danke und Grüße,
Peter

PS: Kann hier eventuell noch mal jemand seine XML posten?

Schade das sich hier keiner angesprochen fühlt.

Gesendet von iPhone mit Tapatalk

Das Problem mit den 128,5 habe ich mit einer zweiten Hilfsvariable umgangen.
Wenn Wert >= 100 dann nicht im in Hilfsvariable speichern oder auch teilweise Differenz > 40 zwischen altem und neuem Wert dann nicht speichern.
Läuft ganz gut damit

Danke für die Antwort. Über die Idee einer 2.Variablen habe ich auch schon nachgedacht.
Welche Steuerung nutzt Du und welches Protokoll? Irgendwie traue ich den ganzen zurückgegeben Werten nicht.

Hallo wolt mal wider fragen ob schon wer zufällig die Adressen/Datenpunkte zum auslessen der ist Werte für die Vitovent 300-F hat.
gruß Stefan

Moin allerseits,

Da das Skript leider einige Probleme bei mir hatte habe ich mir jetzt ein PHP Modul dafür gebaut.
Es funktioniert aber nur mit dem Protokoll-KW(300 ist Abwärtskompatibilität)
Siehe: Protokoll KW · openv/openv Wiki · GitHub

Es ermöglicht mir unter anderen Befehle hintereinander zu senden.
Damit kann ich 20 Werte in unter einer Sec. abrufen.(vorher waren es 45 sec).
Befehle werden nun in den Buffer aufgelistet und nacheinander gesendet.

Wer es testen möchte findet das Modul wie immer hier:
GitHub - Acer90/SymconModule
Hier noch ein Bild zum Ausfüllen der des Moduls:

Anleitung folgt(nicht mehr diesen Monat), ausfüllen sollte sich aber anhand des Bildes erklären lassen.

Gruß: Swen

Probleme versuche ich schnellstmöglich zu beheben, aufgrund meiner geringen Freizeit die ich derzeit habe ist dieses aber nur bedingt möglich.

Hallo Swen,
die Geschwindigkeitsverbesserung ist ja krass. Ich habe gestern erst die Kommunikation übern Raspi und Vcontrold in Betrieb genommen weil die Skriplösung bei mir auch nicht zufiedenstellen funktionierte. Aber wenn das mit deinem Modul jetzt so extrem schnell läuft werde ich gleich noch mal das Basteln anfangen.
Danke dafür erst mal.
gruß
goran

Edit: Fehler gefunden. In der seriellen Schnittstelle nicht auf EVEN gestellt.
Jetzt kommen die ersten Werte.
Sieht echt gut aus. Ich werde mal die Daten von mir übertragen und schauen ob sie passen. Wäre natürlich klasse so, spare ich mir direkt wieder einen Raspberry :slight_smile:

[i]Habe auch gerade das Kabel aus dem Raspberry gezogen und die Lösung mal testweise umgesetzt.
Leider bekomme ich keine Daten zurück. Ich sehe das er den Befehl auch korrekt hinschickt, die Heizung liefert mir aber keine Werte zurück

Received 05
Transmit 01 F7 39 00 02
Received 05
Received 05
Received 05
Received 05
Transmit F7 08 08 02
Received 05
Received 05
Received 05
usw.[/i]

Ja die Schnittstelle passe ich noch nicht automatisch an.
Ich schau mal ob ich das heute noch kurz umsetze.
Geht denn jetzt der abruf der Daten bei dir?
Und kannst du auch Daten setzten?(Wenn Nur Lessen deaktiviert ist wird einen Standard Aktion gesetzt)

Update: Ist umgesetzt und hochgeladen, jetzt muss noch der Port eingestellt werden.

@goran

Ja bei den alten Skript musste immer wieder auf 0x05 gewartet werden.
Mein Modul listet alle Befehle im Buffer und sendet direkt nach Erhalt einer Antwort den nächsten Befehl.

Update2:
Kurze Erklärung der Funktion SendData:


$modulid = 12345;
$hexstamp= "0808";
$bytes = 2; //Ausgabelänge in Byte
$read_only = true; //F7 = true F4 = false 
$return_data = false; // es wird der Rückgabe wert ausgegeben, oder false bei einen Fehler oder einen Timeout 
$value = ""; //wenn read_only "False" ist wird der angebene Wert (Wert in Hex) Gesetzt 
$ips_id = 0; //Setzen des Rückgabe wertes in eine Variable 
$convert = 0; // 0 = aus, 2 = /2, 10 = /10, 3600 = /3600

$output = SendData($modulid, $hexstamp, $bytes, $read_only = true, $return_data = false, $value = "", $ips_id = 0, $convert = 0)

//output =  true senden erfolgreich
//output = false senden fehlgeschlagen oder Timeout
//output = Ausgabe der Antwort wenn $return_data = true


Update3:
Bitte Modul Updaten, habe noch ein Bug gefixt, wo es dazu kam das er nicht mehr beim ersten Befehl den Startparameter 01 mitgegeben hat.

Swen

Super. Ich wollte eigentlich demnächst hat ein Modul schreiben… das kann ich mir ja dann sparen [emoji6]

So nächstes Feedback.
Auslesen klappt sehr gut.
Schreiben nicht. Ich kann dazu die Option „Nur lesen“ nicht umstellen. Diese steht ja default auf true. Möchte ich diese umschalten auf false, bekomme ich den Fehler „Checkbox benötigt eine Caption“. Danach eine Execption, so dass ich die Management Console abschießen und neu starten muss.
Mit dem Testmode kann ich die Betriebsart ebenfalls nicht umschalten. Da passiert gar nichts.

Nachtrag: Wenn ich auf „Warmwasser“ klicke passiert doch was. Und zwar geht dann die Betriebsart auf 5, was Partybetrieb bedeutet. Dieser wird dann durch die Heizung aber automatisch wieder auf das vorherige Programm zurückgestellt.

Noch ein Nachtrag
Die möglichen Werte bei der Betriebsart sind bei mir
‚00‘ -> ‚Aus‘
‚01‘ -> ‚WW‘
‚02‘ -> ‚HZ/WW‘
‚03‘ -> ‚Dauer Red.‘
‚04‘ -> ‚Dauer Nor.‘
und werden auf die Adresse 3323 geschrieben.
Im Debug Protokoll der seriellen Schnittstelle sehe ich jedoch, dass abhängig von den Button „Abschaltbertrieb“, „Warmwasser“ und „Heizen und Warmwasser“ bei dir 2 unterschiedliche Adressen beschrieben werden.

@gogo20012002

Kannst du mir bitte ein Log Auszug schicken.
Das mit dem Form Caption prüfe ich heute noch.

Swen

Habe mir bisher nur den Quelltext mal grob angeschaut.

Ich würde den Befehl „SendData“ ohne Rohdaten realisieren. Wenn man schon in der Config die Hex-Werte mit Namen versieht (finde ich sehr gut), dann würde ich diese Namen auch als Parameter nutzen.

Ich finde Befehle wie


VControl_SetValue( "Partymodus", true );
VControl_GetValue( "Partymodus" );
VControl_SetValue( "Heizmodus", WarmwasserHeizen ); // WarmwasserHeizen als Konstante definiert
VControl_GetTemperature( "Kesseltemperatur" );

ansprechender als die technischen Settings in den Befehlen zu haben :wink:

Man könnte natürlich auch dynamisch das PHP patschen und Befehle wie VControl_SetPartymodusActive() oder Control_IsPartymodusActive() generieren (verfügbar nach Neustart von IPS) :wink:

Bzgl. des KW Protokolls bin ich mal gespannt. Ich habe das ja bisher auch verwendet, hatte aber beim Schalten leichte Probleme (z.B. Partymodus aktivieren wollte bei mir mit meiner! Lösung nicht). Deshalb wollte ich bei einem Modul auf das 300er Protokoll aufbauen. Mal schauen, ob deine Variante besser funzt :wink:

Jetzt muss ich nochmal Nachfragen. Ich habe die Wärmepumpe Regelung WO1C mit einem 300er Protokoll, funktioniert das auch?

Sollte abwärtskompatibel sein

Gesendet von meinem CLT-L29 mit Tapatalk