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

6 Gedanken zu “Fleißaufgabe

  1. Hallo,

    ich hab eine andere Hardware verwendet (Arduino Uno mit einem CAN BUS Shield) und erhalte auch viele Werte.
    z.B.
    160 121 250 1 215 0 205
    146 0 250 1 214 1 33
    161 0 250 1 214 0 0
    146 0 250 1 214 1 32
    161 0 250 7 168 0 0
    146 0 250 7 168 0 8

    Leider kann ich diese noch nicht interpretieren.
    Habt’s Ihr schon Fortschritte?

    Gruß Jürgen

    • Hallo Jürgen,

      Es geht nur langsam voran ich logge zwar schon diverse Temperaturen
      auf einer volkszaehler.org instanz, leider bin ich mir dabei nicht
      sicher ob diese Temperaturen auch wirklich richtig Beschrieben sind.

      http://messpunkt.org/vt/htdocs/frontend/?uuid=bde36840-e9ea-11e2-bf17-ad9a969756aa

      Du musst gegebenfalls die weitere öffentliche Channels hinzufügen um alles zu sehen.
      Wenn man einfach nur am CAN-Bus Lauscht sieht man das sich 2-3 CAN-Module aus der WP
      untereinander unterhalten und immer wieder sich gegenseitig Messwerte abfragen.
      Ich habe nur kein fixen Hinweis das der Wert “3,2” auch wirklich z.B. die “Aussentemperatur” ist.

      Deine Werte oben sind in Decimal und ich denke das ich diese aus meiner Anlage Hexadcimal auslese.
      Ich gehe davon aus das wir übereinstimmungen finden können.

      Gruss
      Klaus

  2. Hallo Klaus

    Du hattest offenbar Glück, dass dir ein Interface zur ComfortSoft angeboten wurde. Mir wollte der Heizungsfachmann kein Angebot machen!

    Hast du einmal versucht, mit der ComfortSoft Werte, wie Solltemperatur usw., zu ändern und die Informationen, die dann am Can-Bus anstehen, mit dem Raspberry zu sammeln? So etwas wäre sehr hilfreich, damit könnte man die Steuerungsprotokolle analysieren und nachbilden. Ebenfalls gut wäre es, wenn ungefilterte Can-Bus-Protokolle von Winter-Monaten zur Verfügung stünden. Hast du (oder jemand anderer) so etwas?

    Ich habe mir zum Raspberry ein Interface gebaut. Es hat die Funktionalität des PICAN Moduls, aber mit galvanischer Trennung (mittels Opto-Koppler 6N137). Die gleichzeitige Anbindung an die Wärmepumpe und das Ethernet schien mir zu riskant!

    Wenn die Heizperiode beginnt, werde ich die Can-Nachrichten von meiner Wärmepumpe sammeln. Ich habe dazu ein C++-Programm geschrieben. Ich kann den Quell-Code auch zur Verfügung stellen, sollte jemand Interesse daran haben.

    Gruss
    Jürg

    • Hallo Jürg,

      Ja das meinte ich mit Fleißaufgabe :-)
      Leider fehlt mir die Zeit, seitdem mein Zwerg auf der Welt ist.

      Genau das oben beschriebene vorgehen hatte ich auch vor, aber ich habe einige Schwierigkeiten.
      1) Wenn ich mit dem Laptop z.B. nach der Aussentempertatur des WPM2 Modules frage kann ich das mit dem Raspbery auf dem CAN Bus nicht sehen. Ich vermute weil der Sensor am WPM Modul angeschlossen ist und das dann
      erst gar nicht auf den CAN Bus raus schreibt. Nur wenn ich nach Werten frage die das Kesselmodul vorhält kann ich das auf dem CAN-Bus mitlesen.

      2) Ich habe mir ein bash Script geschrieben das die CAN Nachrichten auswertet, und dann analysiert.
      Also z.B. bei dem passendem Prefix dann dahinter schreibt das es sich hier um die Vorlauftemperatur handelt und das dann “grün” darstellt da es für mich erst einmal uninteressant ist.
      Und bei unbekannten messages entprechend “rot” einfärbt, damit ich das dann mit der Abfarge vom Laptop verbinden könnte. (Da ist immer viel gequatsche auf dem CAN-Bus so das man das was ein interessiert oft übersieht)
      Leider ist das script zu langsam auf dem Raspbery Pi, und ich habe eine CPU Load deutlich grösser als 1 !

      Aber wenn dein C++ Programm ähliches leisten könnte und es performanter arbeiten als
      mein bash script. Könnte ich es vieleich damit analysieren.

      Gruss
      Klaus

    • Und zu der Frage,


      Ebenfalls gut wäre es, wenn ungefilterte Can-Bus-Protokolle von Winter-Monaten zur Verfügung stünden. Hast du (oder jemand anderer) so etwas?”

      leider habe ich soetwas nicht, könnte es aber im Winter erstellen.
      Nur wie schon unten beschrieben wird viel auf dem CAN-Bus
      viel gequatscht aber meistens nur ein und die selben fragen vom
      WPM Modul an das Kesselmodul.

      Das sind aber bei weitem nicht alles möglichen Werte die man auslesen könnte :-(

      Gruß
      Klaus

  3. Die DLL “CommunicationsDeclarations.dll” enthält alle Adressen der Geräte (z.B. 0016 für die Rücklauf-Ist-Temperatur). Allerdings gibt es jeweils Verschiebungen um eine Zeile (siehe bei DATUM)

    1 FEHLERMELDUNG 00 01
    2 KESSELSOLLTEMP 00 02
    3 SPEICHERSOLLTEMP 00 03
    4 VORLAUFSOLLTEMP 00 04
    5 RAUMSOLLTEMP_I 00 05
    6 RAUMSOLLTEMP_II 00 06
    7 RAUMSOLLTEMP_III 00 07
    8 RAUMSOLLTEMP_NACHT 00 08
    9 UHRZEIT 00 09
    10 DATUM
    11 GERAETE_ID 00 0a
    12 AUSSENTEMP 00 0b
    13 KESSELISTTEMP 00 0c
    14 SAMMLERISTTEMP 00 0d
    15 SPEICHERISTTEMP 00 0e
    16 VORLAUFISTTEMP 00 0f
    17 GERAETEKONFIGURATION 00 10
    18 RAUMISTTEMP 00 11
    19 VERSTELLTE_RAUMSOLLTEMP 00 12
    20 EINSTELL_SPEICHERSOLLTEMP 00 13
    21 VERDAMPFERTEMP 00 14
    22 SAMMLERSOLLTEMP 00 15
    23 RUECKLAUFISTTEMP 00 16

    Die ganze Tabelle ist unter http://pastebin.com/kp4Wjscg abrufbar. Die eingefügten Verschiebungen stimmen nur ungefähr!

    Ein Link zur selben Problematik: http://www.haustechnikdialog.de/forum/NewPost.aspx?t=98046&page=6

    Gruss
    Jürg

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>