Die Bezwingung des K9

Das Ganze hatte relativ harmlos begonnen. Damals hatte Irgendwer folgendes Ereignis penibel im Anlagenlogbuch vermerkt:

„Logbucheintrag 30.11.2016 04:59: Wärmepumpe zeigt Störung HOCHDRUCK an. Keine Ursache / kein besonderer Temperaturverlauf erkennbar. Nach Reset der Wärmepumpe arbeitet diese wieder normal. – Ursache für die Hochdruckstörung vorerst unbekannt.“

Störmeldung: HOCHDRUCK bei der Stiebel-Eltron WPF-7-Basic

Störmeldung: HOCHDRUCK bei der Stiebel-Eltron WPF-7-Basic

Dieser Eintrag war schon fast wieder in Vergessenheit geraten. Bis es Irgendwem irgendwann mitten im kältesten Jänner seit 30 Jahren kurz nach dem Aufstehen etwas frisch in der Siedlerhütte vorkam.

Als er noch etwas schlaftrunken einer alten Gewohnheit folgend an den Heizkörper griff, war er plötzlich hellwach: KALT!!! – eine schlimme Vorahnung beschlich Irgendwen. Und so führte ihn sein erster Weg in den Maschinenraum, wo er feststellen musste, dass die Wärmepumpe mit einer trotzigen Störmeldung ihren Dienst versagt hatte:

Störmeldung: SCHÜTZ KLEBT bei der Stiebel-Eltron WPF-7-Basic

Störmeldung: SCHÜTZ KLEBT bei der Stiebel-Eltron WPF-7-Basic

„Logbucheintrag 14.01.2017 23:12: Fehlermeldung SCHÜTZ KLEBT. Laut Logging-Daten wurde ein Heizzyklus normal beendet. Danach ist die WP nicht mehr angelaufen. Nach Reset läuft die Wärmepumpe wieder normal.“

Die Hoffnung, dass sich die Wärmepumpe wie vor fast zwei Monaten nur ‚verschluckt‘ hatte und ein Reset das Problem lösen würde, zerschlug sich leider nur wenige Stunden später mit einem erneuten ‚SCHÜTZ KLEBT‘.

So bewaffnete sich Irgendwer mit Schraubenzieher und Taschenlampe und unternahm eine Expedition in die Wärmepumpe. Neben den Schützen K1 und K2, die zumindest während seiner Beobachtungen sauber zu schalten schienen, erweckten eher die filigranen, aufgesteckten Hilfskontakte seinen Argwohn.

Schütz K1 und K2 in der WPF-7-Basic

Im Kabel-Dschungel machte Irgendwer diese Verdächtigen aus: Schütze K1 und K2 und die beiden aufgesteckten Hilfskontakte, die der Regelung den Schaltzustand der Schütze signalisierten.

Und während er noch überlegte, ob er nur die Hilfskontakte oder gleich die Schützen austauschen sollte, verwirrte ihn die Wärmepumpe vollends mit einer weiteren Störmeldung ‚HOCHDRUCK‘. Auch dieses Mal war diese Störung beim besten Willen nicht mit einer Überhitzung des Verflüssigers der Wärmepumpe in Zusammenhang zu bringen.

Was war denn plötzlich in die Wärmepumpe gefahren, dass sie scheinbar zusammenhanglose Fehlermeldungen produzierte, dann aber wieder einen halben Tag vollkommen normal funktionierte?!

Irgendwessen Verdacht, dass der ‚el(k)ementare‘ Hackerangriff auf die Wärmepumpe die ‚Aussetzer‘ der Wärmepumpenregelung verursacht haben könnten, waren vom Wissenschaftsoffizier zunächst vehement bestritten und kurz danach auch experimentell widerlegt worden.

So wurde es nun höchste Zeit, den Stiebel-Eltron Kundendienst mit diesem Verhalten zu konfrontieren! Nachdem er dessen erste Verteidigungslinie überwunden hatte, meldete sich ein Techniker, der die WPF-Basic in- und auswendig zu kennen schien. Dieser stellte einige sehr präzise Fragen über das Alter der Wärmepumpe und die Farbe (!?) der eingebauten Relais.

k9-relais-k9

Das schwarze(!) Relais K9, das sich in der hintersten Ecke des Schaltfeldes unter einem Gedärm aus Drähten verbarg, schien in der ganzen Affäre eine wesentliche Rolle zu spielen …

Nach einer kurzen Fachsimpelei war der Lösungsvorschlag des Technikers eindeutig. Dieser hörte sich im vertrauten oberösterreichischen Idiom ungefähr so an:

„Des schwoaze K9-Relais gheat tauscht! Gaunz hinten am Schoitföd. Weu des hängt do ois zaum, de Hüfskontakte von de Schütz und da Hochdruckwächta!“

Und so machte sich Irgendwer umgehend auf die Suche nach einem Ersatz für das Relais K9. Aber bis der geliefert und auch eingebaut war, galt es noch einige Tage zu überstehen, in denen die Wärmepumpe zu allen Tages- und Nachtzeiten eine erhöhte Aufmerksamkeit erforderte.

k9-onlineschema-handy

Mit dem Online-Schema auf seinem Smartphone hatte Irgendwer die Anlage immer im Blickfeld, um sofort auf Störungen reagieren zu können …

Denn wie zwei Lausbuben wechselten sich die Störmeldungen ‚SCHÜTZ KLEBT‘ und ‚HOCHDRUCK‘ ab. Scheinbar nur um Irgendwen auf Trab zu halten, der mehrmals täglich  brav in den Maschinenraum trabte, um einen Reset der Wärmepumpe durchzuführen.

Endlich war das heiß ersehnte Paket eingetroffen. Mit dem neuen, weißen 😉 Relais.

Finder 66.82.8.230.0000

Schließlich war das neue Relais K9 in die Wärmepumpe eingebaut.

Und tatsächlich: nach dem Einbau der Ersatz-Relais war der Spuk genauso schnell wieder vorüber, wie er begonnen hatte…

Wärmepumpen-Forensik – Teil 2: Mitloggen der Heizenergiewerte

Nachdem sich der neue CAN-Bus-Sniffer warmgeschnüffelt hatte mit nicht sehr spannenden Testwerten, wurde es Zeit für den Einsatz im Feld.

Der Raspberry Pi erhielt zunächst einmal einen würdigen Platz, um sich Überblick über den Heizraum zu verschaffen …

Raspberry Pi hat Alles im Blick

Eine typische provisorische Teststellung. Die einzige Stelle, an der am Beginn der Tests das WLAN-Signal halbwegs OK war. Ein ausgekreuztes Ethernet-Kabel gibt’s außerdem auch noch!

Das CAN-Bus-Kabel wurde entsprechend der Bedienungsanleitung an die Wärmepumpe angeklemmt:

Bedienungsanleitung Stiebel-Eltron WPF 7 basic, Abschnitt Kleinspannung

Manual (nicht mehr online) – Abschnitt 12.2.3 – Kleinspannung, Bus-Leitung. Die optionale zusätzliche Stromversorgung („+“) wurde nicht verwendet.

Wie beim Testen mit UVR1611 wurde der ebenfalls kurze CAN-Bus nicht speziell terminiert:

Bedienungsanleitung Stiebel-Eltron WPF 7 basic, CAN-Bus angeschlossen

Stiebel-Eltron WPF 7 basic mit offenem Gehäuse – High (rot), Low (blau) und Ground (gelb) sind angeschlossen.

Damit konnten die elkementaren Tests beginnen …

Der beste Arbeitsplatz

(Für eine mögliche Einreichung bei Wettbewerben wie ‚Great place to work…‘)

… und die CAN-Schnittstelle wurde aktiviert, entsprechend der Anleitung von messpunkt.org mit einer Bitrate von 20kbit/s:

sudo ip link set can0 type can bitrate 20000
sudo ifconfig can0 up

Ohne aktive Kommunikation sind auf dem Bus mit Wireshark dann nur alle paar Minuten zwei Pakete zu sehen – die Wärmepumpe will also gefragt werden.

Besten Dank wieder an juerg5524.ch für die Bereitstellung von CAN-Tools und der Elster-Tabellen, die die diversen interessanten Parameter / ‚Indizes‘ enthalten!

Wir verschaffen uns zuerst einen Überblick darüber, welche CAN-IDs die Wärmepumpe überhaupt verwendet. Eine CAN-ID repräsentiert ein Set von Eigenschaften wie z.B. Ausgänge und kann auch Informationen über die Knoten-ID am CAN-Bus enthalten (Zu CAN-Grundlagen siehe z.B. dieses Dokument.)

Wird der CAN-Bus angefragt mit einer Sender-ID von 680 (siehe ) …

./can_scan can0 680

… erhält man folgende IDs …

elster-kromschroeder can-bus address scanner and test utility
copyright (c) 2014 Jürg Müller, CH-5524

scan on CAN-id: 680
list of valid can id's:

  000 (8000 = 325-07)
  180 (8000 = 325-07)
  301 (8000 = 325-07)
  480 (8000 = 325-07)
  601 (8000 = 325-07)

Fragt man gezielt nach jeder dieser IDs …

./can_scan can0 680 180

… sieht man die Liste der Elster-Indizes mit selbst erklärenden Namen der einzelnen Parameter. Die Siedler finden die interessanten (Logging-würdigen) Parameter alle ‚unter‘ der CAN-ID 180 – hier ein Auszug aus dem Output:

elster-kromschroeder can-bus address scanner and test utility
copyright (c) 2014 Jürg Müller, CH-5524

0001:  0000  (FEHLERMELDUNG  0)
0003:  019a  (SPEICHERSOLLTEMP  41.0)
0005:  00f0  (RAUMSOLLTEMP_I  24.0)
0006:  00c8  (RAUMSOLLTEMP_II  20.0)
0007:  00c8  (RAUMSOLLTEMP_III  20.0)
0008:  00a0  (RAUMSOLLTEMP_NACHT  16.0)
0009:  3a0e  (UHRZEIT  14:58)
000a:  1208  (DATUM  18.08.)
000c:  00e9  (AUSSENTEMP  23.3) 
000d:  ffe6  (SAMMLERISTTEMP  -2.6)
000e:  fe70  (SPEICHERISTTEMP  -40.0)
0010:  0050  (GERAETEKONFIGURATION  80)
0013:  01e0  (EINSTELL_SPEICHERSOLLTEMP  48.0)
0016:  0140  (RUECKLAUFISTTEMP  32.0) 
...
01d4:  00e2  (QUELLE_IST  22.6) 
...
092a:  030d  (WAERMEERTRAG_WW_TAG_WH  781)
092b:  0000  (WAERMEERTRAG_WW_TAG_KWH  0)
092c:  0155  (WAERMEERTRAG_WW_SUM_KWH  341)
092d:  001a  (WAERMEERTRAG_WW_SUM_MWH  26)
...
092e:  02db  (WAERMEERTRAG_HEIZ_TAG_WH  731)
092f:  0006  (WAERMEERTRAG_HEIZ_TAG_KWH  6)
0930:  0073  (WAERMEERTRAG_HEIZ_SUM_KWH  115)
0931:  0027  (WAERMEERTRAG_HEIZ_SUM_MWH  39)

Um z.B. den Stand der Raumheizungsenergie in MWh abzufragen, sendet man …

./can_scan can0 680 180.0931

… und der Output enthält gleich die Summe der MWh- und kWh- Angaben (Indices 0930, 0931):

elster-kromschroeder can-bus address scanner and test utility
copyright (c) 2014 Jürg Müller, CH-5524

value: 0027  (WAERMEERTRAG_HEIZ_SUM_MWH  39.115)

Beim Mitschnüffeln mit Wireshark sieht man die beiden Abfagen (Sender-ID 680) und Rückgabe der beiden Werte. Die Bedeutung der einzelnen Bits wird im Englischen elkementaren Artikel zu diesem Thema beschrieben.

Mitsniffen am CAN-Bus: Wärmepumpe, Abfrage Heizenergie

Netzwerk-Pakete am CAN-Bus: Abfrage der Elster-Indices 0930 (kWh Heizenergie) und 0931 (MWh Heizenergie) mit can_scan.

Um das Monitoring dieser Werte zu automatisieren, wird can_scan alle paar Minuten für die interessanten Parameter ausgeführt und der Zahlenwert aus dem Output in eine CSV-Datei geschrieben. Eine andere Option wäre, nur die Abfrage mit can_scan zu starten und den Output dann mit can_logger einzusammeln.

Die CSV-Datei wird dann per FTP an den Server geschickt, der als Datenkrake sämtliche Logfiles aus unterschiedlichen Quellen (UVR1611 / 16×2, PV-Wechselrichter, Smart Meter) zusammenfasst.

Das komplette Skript – wie auch noch etwas mehr Details zur CAN-Forschung – findet man wie immer auf dem elkementaren Blog.

Natürlich muss der neue Logger auch das Professionalitäts-Level des UVR16x2 einhalten, was die Montage betrifft: Deshalb sind im Routinebetrieb nun beide friedlich auf ihrem Holzbrettchen vereint zu finden (und nach einer Restrukturierung der Netzwerk-Architektur gibt es im Heizraum auch verlässliches LAN und WLAN):

Raspberry Pi mit PiCAN-Board von SK Pang, neben UVR16x2

Raspberry Pi mit PiCAN-Board von SK Pang neben UVR16x2 auf ökologischem Brettchen.

Wie der aufmerksame Leser sieht, wurde auch das CAN-Board getauscht – eine serielle Schnittstelle eröffnet Perspektiven für zukünftige Forschungsprojekte. Danke an SK Pang für ein eigentlich gar nicht mehr verfügbares Board!!