Projekt MAC, Linux und Windows mit CAN-Bus
Die Verwendung der hier angebotenen Software geschieht auf eigene Verantwortung. Es besteht absolut kein Garantieanspruch!
Spezialitäten:
- Stiebel-Eltron-, Elster-Kromschröder- und ComfortSoft-Protokoll-Unterstützung
- Logging von CAN-Telegrammen in einer Datei oder in einer MySQL-DB
- ganze CAN-Telegramm-Blöcke in einer entfernten MySQL-DB abspeichern (ein php-Skript nimmt die Daten entgegen und speichert sie auf dem Web-Server)
- Logging von Volkszähler-Daten
- ComfortSoft kann ohne optisches Interface verwendet werden (auch mit simulierten Daten)
- alle Programme sind in C++ programmiert und deshalb sehr performant
Download Verzeichnis:
Links:
Software-Stand:
- Die Umsetzung CAN-Bus-Telegramme <==> ComfortSoft-Codierung ist offengelegt.
- CS_Bruecke.exe ist ein Windows-Programm, mit dessen Hilfe man ComfortSoft ohne optisches Interface verwenden kann (oder als Simulator meiner WP).
- Die Elster-Tabelle verrät, mit welchem Index ein Parameter oder Wert anzufordern ist. Bei Unklarheiten kann man sich die Zugangs-Werte (Elster-Indizes) mit CS_Bruecke und ComfortSoft anzeigen lassen (siehe CS_Bruecke.jpg). Dies ist die Voraussetzung für ein "universelles ISG" (siehe unten).
- Der Zugriff auf den CAN-Bus kann entweder mit SocketCAN (Raspberry Pi), USB2CAN von 8devices.com oder dem CAN232 von Lawicel erfolgen. Der CANUSB von Lawicel kann mit einem virtual COM-Port Treiber gemäss dem Benutzerhandbuch als CAN232 verwendet werden (ist nicht ausgetestet).
- Es gibt ein Python-Import-Modul "elster" (Datei elster.so) für Linux, MAC und Windows. Das Standard-Device ist /dev/can0.
- Es gibt ein Perl-"Wrap"-Modul "elster_perl" (Datei elster_perl.dll bzw. elster_perl.so) für Windows und Linux (kann unter MAC nicht geladen werden). Das FHEM-Modul "50_Elster.pm", welches elster_perl.dll verwendet, ist in einer ersten Testphase.
- Eine Logging-Möglichkeit von UVR1611-Werten befindet sich im Test. Die Daten werden wahlweise in eine MySQL-DB oder eine Volkszaehler-Instanz abgespeichert. Wird in der neusten Version nicht mehr unterstüzt.
Kosten für die Hardware:
- Raspberry Pi mit CAN-Bus (mein Favorit): Der Raspberry Pi kostet 40 €; das CAN-Interface erhält man hier. Ich bevorzuge zwischen der WP und dem Raspberry Pi eine galvanische Trennung. Dazu das Schema piCan_Schema.pdf. Wenn man sich mit Linux nicht gut auskennt, wird man sehr viel Zeit investieren müssen (ist mir passiert)!
- CAN232: kostet etwa 90 €. Diese Installation bietet keine galvanische Trennung. CAN232 ist auf Linux, MAC sowie auf Windows einsetzbar. Er wird mit "AUTO POLL/SEND" verwendet und die serielle Schnittstelle muss auf 115200 bit/s voreingestellt sein.
- optisches Interface zum WP-Manager von Stiebel-Eltron: "lötbar" vom Forum haustechnikdialog.de bietet es für 64 € an. Die hier angebotene Software ist auf dieses und das Original-Interface angepasst. Es gibt aber eine Einschränkung: Der CAN-Bus-Datentransfer kann nicht "mitgehört" werden.
- ISG: kostet etwa 400 €. Das ISG ist ein Web-Server. Das ISG kann nicht mit dieser Software verwendet werden.
- USBtin von Fischl.de: ist das günstigste Angebot und kostet 36 €. Wird als kompatibel zum CANUSB von Lawicel angeboten (auch ohne galvanische Trennung).
- USB2CAN von "8devices.com": bietet eine galvanische Trennung und kostet 65 $. Von Bernd Krumböck gibt es dazu einen SocketCAN-Treiber. Die Programme sind an die Funktionalität der usb2can.dll für Windows angepasst worden.
- Tecalor THZ: Die THZ hat eine serielle Schnittstelle. Dazu sollte man unter dem Projekt "FHEM.de" nachschauen – das ist praktisch gratis. Hier gibt es Hinweise, dass die THZ auf dem CAN-Bus dieselben Telegramme verwendet, wie der WP-Manager von SE, d.h. mit einer CAN-Bus-Anbindung kann die hier angebotene Software verwendet werden.
Vorzüge der Variante Raspberry Pi mit CAN-Bus:
- Der Energieverbrauch ist sehr klein.
- Es gibt eine Ethernet-Schnittstelle.
- Die Software-Schnittstelle (SocketCAN) erlaubt es, mehrere Programme parallel zu betreiben. Z.B. "can_vz" für ein selektives Logging und parallel dazu ein HTTP/cgi als Web-Server; oder man kann Werte mit can_scan ändern und parallel dazu die Telegramme mit can_logger beobachten.
- Ein Programm (can_logger, can_vz, can_scan oder can_server) lastet die CPU mit weniger als 5% aus!
Was ich gerne machen würde:
- Das optische Interface (ComfortSoft) durch den "USBtin" (siehe Fischl.de) ersetzen. Dazu müsste der PIC-Prozessor umprogrammiert werden.
- Ein "universelles ISG" programmieren: Es soll mit allen oben erwähnten Hardware-Anbindungen (ausser dem ISG) funktionieren. Es soll von den verschiedensten Plattformen genutzt werden können. Ich selbst verwende einen MAC und ein iPad. Am universellsten wäre ein cgi-Progamm auf einem Apache-Server (z.B. auf dem Raspberry Pi mit CAN-Bus). Mit einer Konfigurationsdatei soll man bestimmen können, welche Werte man sieht und welche man auch ändern kann.
Rückmeldungen und Anfragen:
Aufruf zur Mithilfe:
Weitere Projekte (kein CAN-Bus, kein Raspberry Pi):
Meine WPL33 mit CAN-Interface (im Schaltschrank unten rechts):