Lauschangriff auf SE WPL 13 CAN-Bus (Teil 1)

Was ich hier gemacht habe ist nicht wirklich neu siehe z.B. hier :
http://www.haustechnikdialog.de/Forum/t/79101/Stiebel-Eltron-WPC10-ueber-CAN-Bus-auslesen-steuern
Aber irgendwie habe ich nie eine Komplett Anleitung wie diese hier gefunden die auch noch bezahlbar ist.

Was braucht man ?
Ein Raspberry Pi Board z.B. von SK pang
http://www.skpang.co.uk/catalog/raspberry-pi-model-b-rev-2-512mb-ram-p-1140.html
Damit hat man dann auch gleich eine Möglichkeit die gewonnen Daten zu loggen
und anderweitig aus zu werten z.B. Datenbank und Webserver.

Ein PICAN Board von z.B. SK pang
http://www.skpang.co.uk/catalog/pican-canbus-board-for-raspberry-pi-p-1196.html
Das Herzstück um den Zugang zum CAN-BUS zu bekommen.

Beides kann man natürlich auch bei Alternativen Händlern einkaufen.

Bitrate
Über den Hinweis von :
http://www.haustechnikdialog.de/Forum/t/79101/Stiebel-Eltron-WPC10-ueber-CAN-Bus-auslesen-steuern
habe ich den Entscheidenden Hinweis zur Bitrate gefunden :

Ergebnis:
Baudrate: 20 kBaud, 11Bit CAN-ID’s (bei anderen Baudraten ist kein Datenverkehr zustande gekommen).
Es waren folgende 3 ID’s zu sehen 180, 480, 500 (hex).

Terminierung des Busses
Aber was noch viel wichtiger war, war die Terminierung des nun verlängerten Busses
mit 120Ohm (100+10+10 Oben Mitte zwischen CAN_H und CAN_L)
Ich habe vorher in den Bus hineingemessen, und entdeckte einen Wiederstand von 150Ohm in Richtung WPL2 Regler
(Auf dem zweiten Bild oben rechts, das Ding mit dem Bedienrädchen)
img_0883 img_0879

Anschluss an den CAN-BUS
Wenn man die Wärmepumpe öffnet findet man irgendwo auch ein grünes Buskabel,
welches bei mir über leicht zugängliche (und beschriftete) Klemmen ging.
img_0880

Initialisierung der Hardware Treiber
Danach ist das „Pre-compiled CAN-Test binary“ von
http://www.skpang.co.uk/catalog/pican-canbus-board-for-raspberry-pi-p-1196.html
notwendig.
Nach dem auspacken und kopieren ins /home/pi Verzeichnis und der Aktivierung des neunen Kernel.img konnte ich mit folgendem Script die Kommunikation abhören

 # initialize
 cd /home/pi/can-test
 insmod spi-bcm2708.ko
 insmod can.ko
 insmod can-dev.ko
 insmod can-raw.ko
 insmod can-bcm.ko
 insmod mcp251x.ko

 dmesg | tail -20                               # Wegen evtl. Fehler mal prüfen

 ip link set can0 type can bitrate 20000
 ifconfig can0 up

 ifconfig can0

 ./candump can0

Was nu ?
Der zweite Teil liegt nun wohl nun in der Auswertung und Weiterverarbeitung der Daten
– SQL Datenbank
– Web Application zur Darstellung
– Am besten gleich ein Interface zum http://www.volkszaehler.org/ (man muss das Rad ja nicht neu erfinden)
Aber, alles nach einander …

Links mit hilfreichen Informationen :
http://www.me-systeme.de/canbus.html#1578569eb20a41712