ein Yport Device und passend ein Vaillant Modul

Begonnen von macmattes, 29 Januar 2013, 10:28:52

Vorheriges Thema - Nächstes Thema

macmattes

Hallo habe mir folgendendes zusammengebastelt, und beschicke damit ein Dummy mit Log.
hab mir schon ein paar Module angesehen, aber null plan wie ich meinen Code jetzt entsprechend umsetzen kann.

define vaillant_therme dummy
define l_vaillant_therme FileLog /var/log/fhem/vaillant_therme-%Y.log vaillant_therme.*
define w_vaillant_therme1 weblink fileplot l_vaillant_therme:vaillant_therme1:CURRENT
define w_vaillant_therme2 weblink fileplot l_vaillant_therme:vaillant_therme2:CURRENT

Wenn mir jemand ein naktes Modul mit einer kleinen Anleitung zur Verfügung stellen könnte.
Ich würde gerne einzelne Attribute anlegen können, denen die parameter mitgegeben werden (wie beim CUL_IR die Buttons).
Dann soll nach einer Delay zeit jedes Attribut abgefragt werden und das Ergebnis als Attribut_Wert abgelegt werden.

Wäre wohl schon sinnvoll dann einmal ein Yport Device zu basteln dass die übergebenen Parameter absetzt und das Ergebnis zurückholt, weil es andere Sachen gibt die darüber angesprochen werden können. Denke dabei zBsp an Ultraschallsensoren (Füllstandsmessung).
Dazu dann eine Vaillant Device wie oben beschrieben dass auf dem Yport aufsetzt.

Hoffe dazu gibts konstruktive Hilfe, da ich mit diesen "Hash" und "->" und sonstigem in den Modulen nicht klarkomme.


Thorsten

Hi,

bin gerade über eine Suche auf deinen Beitrag gestoßen. Ich würde auch gerne meine Vaillant Therme auslesen können. Wie oder womit (NetIo ?) hast du das denn bis jetzt realisiert ? Ich verstehe die Skripte leider nicht so richtig.

Viele Grüße
 


macmattes

Hallo

habe ein AVRNETIO von Pollin (Atmega 1284p), darauf Ethersex mit aktiviertem Yport.
die Serielle Schnittstelle vom AVRNETIO hängt an der Therme (entweder MAX 232 ausbauen und direkt dass Board anklemmen , oder einen externen Wandler benutzen)
auf dem FHEM Server liegen die Shell Scripte die eine Socketverbinung zum AVRNETIO/Yport aufbauen, die werte abholen und dann in ein Dummy Device in Fhem schreiben.
das Shellscript vaillant_send.sh wird von einem Timer in Fhem getriggert, und benutzt socket_vaillant um die Werte abzuholen
das Dummy Device in Fhem wird mitgeloggt und die Werte sind dann in den Plots dargestellt.
Vielleicht alles nicht super sauber programmiert aber es läuft seit einer ganzen Weile ohne mucken bei mir.

Ein Fhem Modul lässt noch was auf sich warten, ist aber eigentlich auch nicht unbedingt nötig.


Thorsten

Vielen Dank für die Erklärung und die Scripte!!!

 Ein NetIo mit Ethersex  habe ich hier auch noch liegen. Ich nutze ein YPort um meinen SML Stromzähler auszulesen, parse und schreibe in ein FHEM Dummy mit einem Shellscript, Perl versuche ich grade etwas zu verstehen.

Ich dachte bisher immer ich müsste an den EBus meiner Heizung, die serielle Schnittstelle hatte ich gar nicht gesehen. Du bist also einfach mit Pin 15 RXD und 16 TXD des Atmega an den X6 Stecker (3/4) der Heizung gegangen?

Aus dem send.sh wird die socket.pl mit dem entsprechendem Argument aufgerufen,richtig? Könnte ich dann sogar etwas einstellen wie zum Beispiel den Aussentemperatur Korrekturwert? Der ist ja in deinem Script auskommentiert.

macmattes

Hallo

ja den Atmega RX/TX direkt an 3/4 am X6 Stecker.  ( oder ein TTL Wandler an den Seriellen Anschluss  geht auch, ist halt doppelt gemoppelt)

Die Übergabeparameter kann jeder für sich selber einpflegen (send.sh).
Um alle Parameter von meiner Therme auszulesen, hab ich mich mit einem Serial-logger auf die Verbindung zwischen VRDIAG und Yport gehängt.
Wenn man im VRDIAG eine Seite öffnet kann man dann gut auf die Werte zurückschliessen die aus der Therme ausgelesen werden.
Je nach Modell sind manche Werte verfügbar und manche eben nicht. Muss man halt schauen.


Diese Seite ist sehr hilfreich: https://www.zerties.org/index.php/Vaillant_X6_Schnittstelle
und einen russische die dort verlinkt ist.

kr51_neuling

Servus!
Den Beitrag habe ich schon seit ein paar Woche gelesen aber nach einige Überlegungen melde ich mich erst an :-)
Also, wenn ich es verstanden habe, die X6 Schnittstelle bei Vaillant VSC und co., ist einen RS232 mit TTL Pegel, korrekt?
 
Würde dann bedeuten dass ich mit einen TTL->USB Wandler schon RAW daten am Port bekommen könnte ?
Brauche ich wirklich eine Galvanische Trennung ?
Warum wurde hier auch ein Yport mit-geschaltet ?

Ich danke euch für eure Geduld schon mal :-)




macmattes

Hallo

einfach Raw-Daten mitlesen ist nicht möglich, weil nichts ohne vorherige Anfrage ausgesendet wird.
Man muss also immer zyklisch alles abfragen was man wissen möchte und erhält dazu die passende Antwort. Macht VRDIAG genauso.

bei meiner Vaillant ist der X6 Port tatsächlich einfach nur eine serielle Schnittstelle mit ttl Pegel
ob da  nun gavanisch getrennt werden muss, kann ich nicht beantworten. Ich hatte den TTL pegel mal direkt auf dem Atmega anliegen und meine dadurch störungen gehabt zu haben, deshalb benutze ich jetzt den rs232-ttl Wandler am seriellen Anschluss des avr-net-io.

Yport ist doch die Umsetzung von Netzwerk auf Seriell im Ethersex. Oder versteh ich jetzt die Frage falsch?


kr51_neuling

Hi!
Danke für deine Antwort!:-)
Also, soweit alles klar. Wie bei dir, ich habe nur TTL Direkt da meine WP schon älter als 10 Jahre ist.
Mit ein perl script kann ich ein paar befehle schicken an den Port, ich bekomme auch antworten.
Die konstellation sieht bei mir so aus.
Raspberry mit USB->TTL Adapter am WP angeschlossen.
mit socat und HW VSP ermögliche eine Serial über IP Umleitung und so kann ich am Laptop der VRdialog laufen lassen mit den Serial Port am Raspberry.
Mir fehlen infos vom Befehlen und ä. da das Mittschitt vom VrDialog sehr zeh ist :-)
Hast du irgendein script oder so wo ich mich etwas schlau machen kann ?
Im prinzip das was zu mit XPORT machst, mache ich mit Raspberry :-)
Grüße,



kr51_neuling

Hallo nochmals,
Ich wäre echt dankbar wenn  es möglich wäre Scripte/ Gedankestütze zu bekommen :-)
vielen dank :-)

macmattes

das Protokoll kann hier nachlesen und ein script dass das Protokoll nachbaut liegt im ersten post "socket"

http://old.ethersex.de/index.php/Vaillant_X6_Schnittstelle

hoffe dass hilft weiter

im endeffekt wird eine Anfrage zusammengebastelt, diese dann seriell rausgeschickt und auf die Antwort gewartet. Diese wird dann ins lesbare übersetzt.

talion303

Hallo macmattes,

wäre es sehr schwierig deine Skripte für eine direkte serielle Kommunikation umzuschreiben? Der TTL<->Serial-Adapter steckt bei mir quasi im lokalen FHEM-Server. Oder wäre es einfacher einfach sowas wie yport lokal zu starten und dann über localhost die Sockets zu öffnen?

Super arbeit - kanns noch gar nicht fassen ;-) Hab den Beitrag eben gefunden und früher schon mit vrdiag herumgespielt - will das unbedingt einbinden über fhem.

Grüße, Chris