RESOL VBUS Adapter

960 views
Skip to first unread message

Arno Willig

unread,
Jun 12, 2010, 11:47:42 AM6/12/10
to fhem-...@googlegroups.com
Hallo,

ich würde gerne Unterstützung für das RESOL VBus Protokoll einbauen.

Hintergrund: Die Firma RESOL baut Heizungs- und Solarsteuerungsanlagen. Die Teile haben einen "VBUS" (2-adrig), der über einen Schnittstellenadapter von RESOL auf LAN gemappt wird.
Der LAN-Adapter wird über einen TCP-Socket angesprochen. Nach einem kurzen Einloggvorgang werden Binärdaten gesendet:
< +HELLO\n
> PASS vbus\r\n
< +OK: Password accepted.\n
> DATA\r\n
> +OK: Data incoming...\n
aa 00 00 51 77 20 00 05 00 00 00 00 00 00 00 12
aa 02 7e 01 04 09 00 02 73 00 05 05 78 00 38 22 05
28 38 22 38 22 05 46 38 22 5f 00 01 45 64 00 64
22 00 15 73 1d 28 00 02 45 02 36 32 01 02 12 39
03 00 01 01 41


Über das VBUS-Protokoll werden Temperaturwerte, Durchflussgeschwindigkeit, Betriebsdauer, Relaiszustände etc. übermittelt.
Umgekehrt kann man auch Einstellungen (z.B. manuelles Relais-Schalten usw.) vornehmen.


Wie sollte man da vorgehen?
Ich nehme an der erste Schritt wäre es, einen Provider wie 00_CUL.pm --> 00_VBUS.pm zu implementieren.
Und dann einen Consumer für das Heizungssteuergerät am VBUS. Ist das richtig?

Ich kann zwar kaum Perl, aber ich fuchs mich da schon irgendwie rein (mit etwas Hilfestellung :-)

Ciao, Arno

PS: Hat überhaupt noch jemand anderes an sowas Interesse? Ich glaube die RESOL-Teile sind recht weit verbreitet und finden sich bei anderen Herstellern wieder (in meinem Fall DeDietrich Diemasol C)



--
Arno Willig <a...@thinkwiki.org>

Rudolf Koenig

unread,
Jun 12, 2010, 12:09:55 PM6/12/10
to fhem-...@googlegroups.com
> Ich nehme an der erste Schritt w�re es, einen Provider wie 00_CUL.pm -->
> 00_VBUS.pm zu implementieren. Und dann einen Consumer f�r das
> Heizungssteuerger�t am VBUS. Ist das richtig?

Ich empfehle diese Vorgehensweise nur, wenn auf 00_VBUS mehrere
unterschiedliche Geraete zu empfangen sind, sonst wird es kompliziert.

Falls das nicht der Fall ist, dann wuerde ich vorschlagen 00_KM271 (ein Buderus
Heizungsmodul) als Vorlage zu nehmen, und in OpenDev() den seriellen Anteil mit
sowas wie
$server = IO::Socket::INET->new(PeerAddr => $addr);
zu ersetzen, $po->FILENO entspricht dann $server>fileno()


Gruss,
Rudi

Arno Willig

unread,
Jun 12, 2010, 2:09:02 PM6/12/10
to fhem-...@googlegroups.com
Dank Rudi,
ich werde mir das KM271 anschauen.
Prinzipiell ist VBUS natürlich ein Bus, und es können jede Menge verschiedene Geräte angekoppelt werden (Das Protokoll hat auch ein einfaches Adress-System etc.), aber ich probier es erstmal auf die einfachere Weise.
Das Protokoll findet man übrigens hier: http://groups.google.com/group/resol-vbus/web/VBus-Protokollspezifikation.pdf

Ciao, Arno


Am 12. Juni 2010 18:09 schrieb Rudolf Koenig <inf...@koeniglich.de>:
> Ich nehme an der erste Schritt wäre es, einen Provider wie 00_CUL.pm -->
> 00_VBUS.pm zu implementieren.  Und dann einen Consumer für das
> Heizungssteuergerät am VBUS. Ist das richtig?

Ich empfehle diese Vorgehensweise nur, wenn auf 00_VBUS mehrere
unterschiedliche Geraete zu empfangen sind, sonst wird es kompliziert.

Falls das nicht der Fall ist, dann wuerde ich vorschlagen 00_KM271 (ein Buderus
Heizungsmodul) als Vorlage zu nehmen, und in OpenDev() den seriellen Anteil mit
sowas wie
 $server = IO::Socket::INET->new(PeerAddr => $addr);
zu ersetzen, $po->FILENO entspricht dann $server>fileno()


Gruss,
 Rudi

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-...@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+...@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.




--
Arno Willig <a...@thinkwiki.org>

appi

unread,
Jun 15, 2010, 1:35:39 AM6/15/10
to FHEM users
hallo arno
ich beabsichtige mir sonnenkollektoren zu installieren und habe auch
schon die Resol Steuerung angeschaut. dein vorhaben ist deswegen für
mich sehr interessant.
meine perl kenntnisse genügen allerdings kaum um mit zu programmieren,
sorry.

einen Gruss

Remo




Oliver

unread,
Jun 15, 2010, 2:05:14 AM6/15/10
to FHEM users

> PS: Hat überhaupt noch jemand anderes an sowas Interesse?

Also ich hätte da auf jeden Fall Interesse, bei mir zuhause läuft eine
Deltasol M für die Heizung- und Solarsteuerung. Programmiertechnisch
kann ich Dir aber leider nicht helfen, null Ahnung davon.

Grüße Oli

Arno Willig

unread,
Jun 15, 2010, 5:06:51 AM6/15/10
to fhem-...@googlegroups.com
Am Wochenende werde ich es versuchen.

Mit C kann ich das Busprotokoll schon dekodieren, aber PERL bringt mich zur Verzweifelung.
PERL = Pathologically Eclectic Rubbish Lister

Das Busprotokoll basiert im wesentlich darauf, dass Pakete mit einem Sync-Byte (0xaa) beginnen. Daraufhin folgen nur nur 7-bit Bytes ohne MSB. Die fehlenden MSBs werden spätestens 7 Bytes später in einem Septett-Byte übertragen.
Etwas merkwürdig, aber damit kann man sich zu jedem Zeitpunkt in dem Bus einklingen und muss nur auf ein Byte mit MSB (0xaa) warten.

Ciao, Arno

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-...@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+...@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.




--
Arno Willig <a...@thinkwiki.org>

Arno Willig

unread,
Oct 28, 2010, 6:22:14 PM10/28/10
to fhem-...@googlegroups.com
Hallo,

ich geb's auf, wer kann PERL und kann das implementieren?
Ich kann Hinweise zum Protokoll und Beispielcode in C liefern, aber
PERL ist einfach nicht meine Welt. :-(
Hat jemand Interesse?

Ciao, Arno

--
Arno Willig <a...@thinkwiki.org>

Arno Willig

unread,
Sep 5, 2011, 12:45:29 PM9/5/11
to fhem-...@googlegroups.com
Hi,

ich hab's jetzt endlich mal geschafft, ein Modul für
Heizungs-/Solarsteuerungen von RESOL zu bauen.
Diese Geräte (die u.a. von DeDietrich vertrieben werden) haben einen
sog. VBUS. Dafür gibt es einen LAN-Adapter. ("RESOL - Interface
adapter VBus/LAN" googlen)

Mein Modul fragt den Adapter in einem einstellbaren Intervall ab und
ließt die Werte auf dem Solarregler aus.
Es ist bislang nur für die "Diemasol C" von DeDietrich nutzbar, aber
mit wenigen Anpassungen läßt es sich auch für andere VBUS-fähige
Geräte nutzen.
Außerdem habe ich ein .gplot-File gemacht, dass die Daten anzeigen kann.
Der Code ist noch nicht ganz sauber (ich bin kein PERL-Held), aber ich
werde weiter dran arbeiten.
Falls jemand Interesse an dem Modul hat und vielleicht eine andere
Hardware als die "Diemasol C" verwendet, soll mal Bescheid sagen, ob's
klappt.
Das VBUS-Netzwerkprotokoll ist ziemlich fies. Es gibt auch eine
Protokollversion, die das Verändern der Einstellungen des Gerätes
ermöglicht (manuell Ventile öffnen etc), aber das habe ich noch nicht
implementiert.


Der Code ist verfügbar unter:
http://svn.bytefeed.de/trunk/fhem/vbus/

(Benutzername und Passwort lauten beide "guest")

Benutzung:
20_VBUS.pm und vbus.gplot ins FHEM-Verzeichnis kopieren und wie folgt
Gerät anlegen:

define MyVBUSDevice VBUS <IP-Addr> <Port> <Intervall>


In meiner Konfiguration sieht das dann so aus:
define hr_Solarthermie VBUS 192.168.178.11 7053 60
attr hr_Solarthermie delay 60
attr hr_Solarthermie loglevel 3
attr hr_Solarthermie room Heizungsraum

define FileLog_hr_Solarthermie FileLog
/Users/akw/src/fhem/var/hr_Solarthermie-%Y.log hr_Solarthermie
attr FileLog_hr_Solarthermie logtype vbus,text
attr FileLog_hr_Solarthermie room Heizungsraum

Wen's interessiert: Viel Spaß beim Testen,

Ciao, Arno

--
Arno Willig <a...@thinkwiki.org>

Reply all
Reply to author
Forward
0 new messages