Geschwindigkeits Signal vom ABS simuliert und somit den Motor aus dem Notlauf geholt (Audi TT)

Hallo zusammen,

Kurz Notiert…

Heute haben wir erfolgreich das Geschwindigkeits Signal vom ABS eines Audi TT simuliert und damit einen Audie TT aus dem Notlauf geholt. Und das alles mit einem Raspberry Pi 2 und dem alten PICAN Module (http://skpang.co.uk/catalog/pican-canbus-board-retired-replacement-available-p-1196.html).

Damit war es uns dann möglich den Motor aus dem Notlauf zu holen,
und eine Drehzahl über 2000U/Min heraus zu holen.

Warum ?
Nun ja da ist noch ein anderer Audi/VW Motor in einem Boot verbaut,
und der lies eine Drehzal von mehr als 2000U/Min nicht zu.
Mit dieser Simulation des ABS wird er es aber…

Um das zu erreichen ware nur vier CAN Telegramme nötig die etwa ein Geschwindigkeit von 25km/h simulieren. Das Signal wurde im Abstand von ca. 20ms über den CAN-Bus geschickt.

messages = [[‘4A8′,’02 80 06 00 FE 00 50 2A’],
[‘1A0′,’00 40 A6 13 FE FE 00 1C’],
[‘4A0′,’A0 13 AE 13 AC 13 AA 13′],
[‘5A0′,’7F 8A 0D 60 00 70 09 AB’]]

Ein schöner Tag :-)

WPL 13 Keine Leistung / ERR 8005

Ich beobachte in den letzten Tagen das meine WPL 13 (Okt 2008) immer wieder mal mit den Fehlern ‘Keine Leistung’ oder ‘ERR 8005′ in eine Störung läuft . Die ich dann nur noch mit einem Reset aufheben kann.

Ich habe bisher zwei Fehler Fälle mit Temperaturen und Drücken aufgezeichnet.
ERR8005_18_56

Und Heute morgen wieder :
ERR8005_03_Mar_2018_08_06ERR8005_03_Mar_2018_08_06_2

Wass kann den Plötzlichen abfalles des Messstrom Hochdrucks unter 50 (Welche Einheit weiss ich nicht) bewirken ?

Gruß
Klaus

Edit am 29. März 2018 Klaus :

Hier auf dem Screenshot kann man es wohl besser erkennen.
Wie man sieht gibt es auf der roten (Messtrom Hochdruck) immer wieder ausreisser. Die andere rote Linie die bis auf den Anstieg in der Mitte flach ist, ist die Rücklauftemperatur Soll.
Bildschirmfoto 2018-03-29 um 14.20.58

Nach der Reperatur (Austausch des Hochdruck Transmitters) ist die rote Linie schön glatt.
Bildschirmfoto 2018-03-29 um 20.22.39
Gruß
Klaus

WPMII Warmwasser

Kurz Notiert, in welcher Zelle finde ich welchen Wert rund ums Warmwasser meiner WPMII

cansend can0 700#31.00.fa.xx.xx

00.0e:  01e8  (SPEICHERISTTEMP  48.8) Warmwassertemperatur
01.35:  0100  (WARMWASSERMODE  1)  1 Vorgang, 2 Parallelbetrieb, 3 Teilvorgang
01.81:  0258  (MAX_WW_TEMP  60.0)

01.b9:  0352  (SOLARTEMP_MAX  85.0) Max. Solartemperatur
01.d8:  01c8  (FUEHLER_1  45.6) Speichertemperatur U
01.d9:  00bf  (FUEHLER_2  19.1) Kollektortemperatur

 

 

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

Who is Who auf dem WPL 13 CAN Bus

Ich habe verschieden adressen auf dem WPL 13 CAN bus ausgemacht und
versuch hier diese Module zu entschlüsseln.

 

  • 31 180   WPM2 (Bedienmodul mit dem Rädchien)
  • 91 480   IWS.EVE (Kesselmodul0 ?)
  • A1 500   IWS.EVE (Kesselmodul0 ?)
  • xx 680   Mein Laptop mit der ComSoft Software
  • e2 700   Mein Raspbery Pi lasse ich immer mit der 700 fragen

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

Hallo,

Auf Grund der Anfragen von Oliver, habe ich mir endlich mal die Zeit genommen um den nächsten Teil zu posten.

Wie bekomme ich die CAN-Bus Daten in die Volkszähler Instanz

can_to_vz ist ein einfaches bash Script das den ‘candump’ Zeile für Zeile ausliest und diese dann analysiert. Wenn die Zeile eine der gesuchten ist, dann wird der Messwert aus der CAN-Message herausgebrochen und der Wert an die Volkszähler Instanz übermittelt.

Empfehlen würde ich aber die CAN Tools von Jürg : http://juerg5524.ch/data/can_progs.zip
Die sind deutlich performanter, und vielseitiger…

Gruss
Klaus

Kostal Pico 7.0 Daten in eine Volkszaehler.org Instanz schreiben

Hallo,

Nachdem ich über den volkszaehler.org gestolpert bin dachte ich mir,
warum das Rad neu erfinden :-)
Super Sache, die Datenbank und das Webfrontend lassen sich relativ einfach auf einem
angemieteten Webspace mit einem LAMP unterbau packen. So das ich auf meinem
Sheevaplug Computer nur noch ein kleines PHP Script brauchte um die Daten dorthin
zu transportieren.

Der Wechselrichter ist nach wie vor ein Kostal Piko 7 der eine Netzwerkschnittstelle hat,
und auf der ersten Seite diese Informationen anzeigt :
img_1018Kostal Piko 7

Das angehängte PHP Script : transmit_pv_values_to_volkszaehler.org
lasse ich als user über ein cronjob alle 6 Minuten auf einem
Sheevaplug Computer mit Debian Linux “wheezy” ausführen und füttere so
die Volkszähler Instanz.

Ihr müsstet vor eigener nutzung diese PHP Scripts allerdings :

  • Die UUID’s aus eurer volkszähler.org Instanz im Script anpassen
  • Die Zugangsdaten für Piko 7 im Script anpassen
  • Den Path zum “middleware.php” des volkszaehler.org Script anpassen
  • Den Cronjob einrichten wenn das script läuft

Gruss
Klaus

Kostal Pico 7.0 Daten in eine MySQL Datenbank schreiben

Hallo,

Von meiner Photovoltaik Anlage möchte ich gern die Gesamt erwirtschaftete Energie und andere Werte in einer Datenbank ablegen. So das ich die Daten im nachhinein auch noch
in irgendeiner Form später visualisieren kann (Jahres Energie pro Tag, oder Tagesenergie
pro Stunde, Einspeiseleistung usw.)

Der Wechselrichter ist ein Kostal Piko 7 der eine Netzwerkschnittstelle hat,
und auf der ersten Seite diese Informationen anzeigt :
img_1018Kostal Piko 7

Das angehängte PHP Script : transmit_pv_values_to_mysqldb.php
lasse ich als user über ein cronjob alle 6 Minuten auf einem
Sheevaplug Computer mit Debian Linux “wheezy” ausführen und füttere so
meine MySQL Tabelle “pv_messdaten” in meiner Datenbank “mysweethome“.

Ihr müsstet vor eigener nutzung diese PHP Scripts allerdings :

  • MySQL installieren und dort die Datenbank mit der Tabelle darin erstellen.
    Das SQL Kommando zum erstellen der Tabelle lautet :

    CREATE TABLE `pv_messdaten` (`id` INT( 7 ) UNSIGNED NOT NULL AUTO_INCREMENT ,`Datum` DATE NOT NULL ,`Uhrzeit` TIME NOT NULL ,`Aktuell` INT( 4 ) NOT NULL ,`Gesamtenergie` INT( 6 ) NOT NULL ,`Tagesenergie` FLOAT( 2 ) NOT NULL ,`Gesamtberechnet` INT( 6 ) NOT NULL ,`S1_Spannung` INT( 3 ) NOT NULL ,`S1_Strom` FLOAT NOT NULL ,`S2_Spannung` INT( 3 ) NOT NULL ,`S2_Strom` FLOAT NOT NULL ,`L1_Spannung` INT( 3 ) NOT NULL ,`L1_Leistung` INT( 4 ) NOT NULL ,`L2_Spannung` INT( 3 ) NOT NULL ,`L2_Leistung` INT( 4 ) NOT NULL ,`L3_Spannung` INT( 3 ) NOT NULL ,`L3_Leistung` INT( 4 ) NOT NULL ,PRIMARY KEY ( `id` ));

  • Die Zugangsdaten für Piko 7 im Script anpassen
  • Die Zugangsdaten für MySQL DB im Script anpassen
  • Den Cronjob einrichten wenn das script läuft

Gruss
Klaus

SQL Query aller UUID’s im VZ

Das Abfragen einer Liste mit allen UUID’s und dem entsprechendem TITLE die in
der volkszaehler.org Datenbank stecken. Kann man dies mit folgendem SQL Query
z.B. in phpmyadmin für die Datenbank durchführen :

SELECT entities.uuid, properties.value
FROM entities entities, properties properties
WHERE entities.id = properties.entity_id
AND properties.pkey = 'title'

Fleißaufgabe

So wie komme ich nun an die Temperaturen, Pumpenaktivitäten usw.
Ich habe mir den Messaufbau so gestaltet :

* Paspberry Pi mit PICAN Modul und 120Ohm zwischen CAN_High and CAN_Low an CAN-Bus
* Laptop mit ComfortSoft 4.0 und RS232-to-OpticalSerial an WPM Manager der Wärmepump

Der Raspberry nimmt nun mit “candump” die Kommunikation auf
und mit dem Laptop sehe ich mir ein Wert nach dem anderem an.
Die Abfragen vom Laptop kommen von Adresse “680” somit kann ich gut
erkennen wann es losgeht, und welche Antwort dann wohl von einem anderem
Device auf dem Bus zurückkommt.

Ich habe bisher zwei Varianten beobachtet eine Art kurzes Abfrage Wort
und ein Art langes Abfrage Wort. Beide Antworten kommen mit dem selben
Wort vom Empfänge zurück und hinten dran hängen zwei 8Bit Werte die
zusammengenommen die Temperatur usw. darstellen.

Heizmodul0 “Ruecklauftemperatur WP” = “21,40°Celsius”
can0  680  [7] A1 00 16 00 00 00 00
can0  500  [7] D2 00 16 00 D6 00 00     “h00D6” = “d214″ = formatiert “21,40”

Heizmodul0 “Rekuperatortemperatur” = “20,70°Celsius”
can0  680  [7] A1 00 FA 07 A3 00 00
can0  500  [7] D2 00 FA 07 A3 00 CF    “h00CF” = “d207” = formatiert “20,70

Und das war nicht alles :-(
Könnte einige Zeit dauern bis man sämtliche Werte die einem die
Module Liefern können zusammen hat.

 

Nachdem mir Jürg mit seinem Beitrag wieder etwas Motivation verpasst hatte,
versuchte ich gleich gezieht einige IWS.EVE Werte aus zu lesen und mit meine
bash Script zu verfolgen. Da kam sogar etwas bei raus …

 

> cansend can0 700#A1.00.0C

can0 700 [3] A1 00 0C
can0 500 [7] E2 00 0C 00 BA 00 00 | 18.60 | = Aussentemperatur IWS

> cansend can0 700#A1.00.FA.07.A8

can0 700 [5] A1 00 FA 07 A8
can0 500 [7] E2 00 FA 07 A8 00 08 | .80 | = DHC 1 / DHC 2 IWS
# DHC 1 und DHC 2 werden mit dem selben Muster abgefragt, daher gehe ich davon aus das
# nur noch der ausgelesene Wert angibt ob beide aus, DHC 1 ,DHC 2 oder beide an sind.

> cansend can0 700#A1.00.16

can0 700 [3] A1 00 16
can0 500 [7] E2 00 16 00 D4 00 00 | 21.20 | = Ruecklauftemperatur WP IWS.EVE

> cansend can0 700#A1.00.FA.07.A9

can0 700 [5] A1 00 FA 07 A9
can0 500 [7] E2 00 FA 07 A9 00 B2 | 17.80 | = Verdampfertemperatur IWS

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