Stiebel-Eltron mit CAN-Bus unter Verwendung eines C++-Wrappers

Begonnen von juerg5524, 14 Oktober 2015, 13:43:31

Vorheriges Thema - Nächstes Thema

juerg5524

Hallo Brun,

mich würde interessieren, welche CAN-IDs Deine WP verwendet. Mit dem Befehl

./can_logger ttyACM0

werden diese aufgelistet und mit

./can_logger ttyACM0 60 logfile

werden die Meldungen alle 60 Sekunden in "logfile..." abgespeichert. Mit einem solchen Log kann ich Dir eventuell weiterhelfen.

Viele Grüsse
Jürg

P.S.: Welchen CAN-Adapter hast Du im Einsatz?

Brun

Hallo Jürg,

mit can_log sehe ich immer folgende Adressen:
180
480
500

Ich Kann dir gerne so ein Logfile geben. Aber ungern öffentlich.

Als Adapter verwende ich den USBtin von Fischl.


Gruß Brun

juerg5524

Hallo Brun,

dann sollte zu diesen Adressen mit

  ./can_scan ttyACM0 680 xxx.000b trace

eine Antwort kommen. (Anstelle von xxx 180, 480 oder 500 einsetzen.)

Viele Grüsse
Jürg

korreander12

Hallo zusammen,
Hallo juerg5524,

ich habe meine Stiebel Eltron WPF13 mit WPM2 über CAN Bus an meinen RPI2 angeschlossen.
Verwendet habe ich ein PiCan2 Interface und ein aktuelles Jessie System.
Abschlusswiderstand 120 Ohm habe ich direkt auf dem PiCan Board durch die Brücke (JP) gesetzt

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

aktiviere ich das Can Interface.
danach habe ich folgende Daten empfangen:

pi@rpi_can:~/can/can_progs $ candump can0
  can0  602   [7]  66 02 FE 01 00 00 00
  can0  180   [7]  66 79 FE 01 00 00 00
  can0  480   [7]  A6 79 FE 01 00 00 00
  can0  602   [7]  66 02 FE 01 00 00 00
  can0  180   [7]  66 79 FE 01 00 00 00
  can0  480   [7]  A6 79 FE 01 00 00 00
  can0  601   [7]  60 01 52 00 00 00 00



es kommt aber nur alle paar Minuten mal ein Telegramm.
Ist das normal? oder ist das erstmal der Anfang?

Muss ich nun eine dieser Adressen mit dem 
./can_scan ttyACM0 680 xxx.000b trace
"anfragen" ?

Bin über jeden Hinweis dankbar.




korreander12

Nun habe ich mit ./can_logger can0 60 logfile.txt   folgende Aufzeichnung gemacht:

 
  0  26.1.2017 13:26:40.742       602 00 [7] 66 02 fe 01 00 00 00     f......
  1  26.1.2017 13:26:40.763       180 00 [7] 66 79 fe 01 00 00 00     fy.....
  2  26.1.2017 13:26:40.786       480 00 [7] a6 79 fe 01 00 00 00     .y.....
  3  26.1.2017 13:33:40.752       602 00 [7] 66 02 fe 01 00 00 00     f......
  4  26.1.2017 13:33:40.774       180 00 [7] 66 79 fe 01 00 00 00     fy.....
  5  26.1.2017 13:33:40.798       480 00 [7] a6 79 fe 01 00 00 00     .y.....
  6  26.1.2017 13:40:40.746       602 00 [7] 66 02 fe 01 00 00 00     f......
  7  26.1.2017 13:40:40.768       180 00 [7] 66 79 fe 01 00 00 00     fy.....
  8  26.1.2017 13:40:40.790       480 00 [7] a6 79 fe 01 00 00 00     .y.....
  9  26.1.2017 13:41:54.783       601 00 [7] 60 01 52 01 00 00 00     `.R....
10  26.1.2017 13:47:40.767       602 00 [7] 66 02 fe 01 00 00 00     f......
11  26.1.2017 13:47:40.789       180 00 [7] 66 79 fe 01 00 00 00     fy.....
12  26.1.2017 13:47:40.811       480 00 [7] a6 79 fe 01 00 00 00     .y.....
13  26.1.2017 13:51:24.766       601 00 [7] 60 01 52 00 00 00 00     `.R....
14  26.1.2017 13:54:40.773       602 00 [7] 66 02 fe 01 00 00 00     f......
15  26.1.2017 13:54:40.795       180 00 [7] 66 79 fe 01 00 00 00     fy.....
16  26.1.2017 13:54:40.817       480 00 [7] a6 79 fe 01 00 00 00     .y.....
17  26.1.2017 14:01:40.756       602 00 [7] 66 02 fe 01 00 00 00     f......
18  26.1.2017 14:01:40.778       180 00 [7] 66 79 fe 01 00 00 00     fy.....
19  26.1.2017 14:01:40.800       480 00 [7] a6 79 fe 01 00 00 00     .y.....
20  26.1.2017 14:08:40.769       602 00 [7] 66 02 fe 01 00 00 00     f......
21  26.1.2017 14:08:40.791       180 00 [7] 66 79 fe 01 00 00 00     fy.....
22  26.1.2017 14:08:40.813       480 00 [7] a6 79 fe 01 00 00 00     .y.....
23  26.1.2017 14:15:40.763       602 00 [7] 66 02 fe 01 00 00 00     f......
24  26.1.2017 14:15:40.785       180 00 [7] 66 79 fe 01 00 00 00     fy.....
25  26.1.2017 14:15:40.807       480 00 [7] a6 79 fe 01 00 00 00     .y.....
26  26.1.2017 14:22:40.783       602 00 [7] 66 02 fe 01 00 00 00     f......
27  26.1.2017 14:22:40.805       180 00 [7] 66 79 fe 01 00 00 00     fy.....
28  26.1.2017 14:22:40.827       480 00 [7] a6 79 fe 01 00 00 00     .y.....
29  26.1.2017 14:25:08.817       601 00 [7] 60 01 52 01 00 00 00     `.R....
30  26.1.2017 14:29:40.788       602 00 [7] 66 02 fe 01 00 00 00     f......
31  26.1.2017 14:29:40.810       180 00 [7] 66 79 fe 01 00 00 00     fy.....
32  26.1.2017 14:29:40.832       480 00 [7] a6 79 fe 01 00 00 00     .y.....
33  26.1.2017 14:34:38.779       601 00 [7] 60 01 52 00 00 00 00     `.R....
34  26.1.2017 14:36:40.788       602 00 [7] 66 02 fe 01 00 00 00     f......
35  26.1.2017 14:36:40.810       180 00 [7] 66 79 fe 01 00 00 00     fy.....
36  26.1.2017 14:36:40.832       480 00 [7] a6 79 fe 01 00 00 00     .y.....
37  26.1.2017 14:43:40.785       602 00 [7] 66 02 fe 01 00 00 00     f......



anbei meine log Datei als Anhang.

Sind darin nun meine Zugangsadressen?

Zitat von: juerg5524 am 02 Dezember 2016, 10:35:41

dann sollte zu diesen Adressen mit

  ./can_scan ttyACM0 680 xxx.000b trace

eine Antwort kommen. (Anstelle von xxx 180, 480 oder 500 einsetzen.)


Das werde ich nachher mal ausprobieren....


Oder hat jemand dazu noch einen weiteren Hinweis?






korreander12

Das Ergebnis meines scans:

pi@rpi_can:~/can/can_progs $ ./can_scan can0 680 180.0126 trace
elster-kromschroeder can-bus address scanner and test utility
copyright (c) 2014 Jürg Müller, CH-5524

     680 00 [5] 31 00 fa 01 26           1...&
  0  27.1.2017 07:58:46.969       680 00 [5] 31 00 fa 01 26           1...&
  1  27.1.2017 07:58:46.982       180 00 [7] d2 00 fa 01 26 3b 00     ....&;.

send ComfortSoft: 0d00030100fa0126800801ba   can232: t68053100FA0126
recv ComfortSoft: 03000d0200fa01263b00016e   can232: t1807D200FA01263B00

value: 3b00  (MINUTE  59)
pi@rpi_can:~/can/can_progs $ ./can_scan can0 680 480.0126 trace
elster-kromschroeder can-bus address scanner and test utility
copyright (c) 2014 Jürg Müller, CH-5524

     680 00 [5] 91 00 fa 01 26           ....&
  0  27.1.2017 07:59:57.829       680 00 [5] 91 00 fa 01 26           ....&
  1  27.1.2017 07:59:57.852       480 00 [7] d2 00 fa 01 26 00 00     ....&..

send ComfortSoft: 0d00090100fa0126800801c0   can232: t68059100FA0126
recv ComfortSoft: 09000d0200fa012600000139   can232: t4807D200FA01260000

value: 0000  (MINUTE  0)
pi@rpi_can:~/can/can_progs $ ./can_scan can0 680 602.0126 trace
elster-kromschroeder can-bus address scanner and test utility
copyright (c) 2014 Jürg Müller, CH-5524

     680 00 [5] c1 02 fa 01 26           ....&
  0  27.1.2017 08:00:20.507       680 00 [5] c1 02 fa 01 26           ....&
     680 00 [5] c1 02 fa 01 26           ....&
  1  27.1.2017 08:00:21.544       680 00 [5] c1 02 fa 01 26           ....&
  2  27.1.2017 08:00:21.551       602 00 [7] d2 00 fa 01 26 00 00     ....&..

send ComfortSoft: 0d000c0102fa0126800801c5   can232: t6805C102FA0126
recv ComfortSoft: 0c020d0200fa01260000013e   can232: t6027D200FA01260000

value: 0000  (MINUTE  0)
pi@rpi_can:~/can/can_progs $


(Ich hoffe ich habe jetzt nichts verstellt oder überschrieben)

Hmmmmmm....
:o :o :o
und was sagt mir das Ergebnis nun?

ich möchte gerne meine ganzen Wärmepumpen-Daten über das Fhem_Modul  aufzeichnen und darstellen?
Kann mir jemand den weiteren Weg beschreiben wie es nun weiter geht?

Gerhard

Hallo Korre,

der CAN Bus ist ein multi Mater Bus, dh. alle fangen an zu senden nach ein IDL und hören gleichzeitig mit,
wobei der Knoten mit dem kleinstem ID gewinnt und sendet weiter und die Anderen hören ab da mit (Arbitrierung).
Also das war nur eine kleine Teorie die der Sache nicht weiter hilft, aber hilft dazu zu verstehen wie die einzelne
Messages aufgebaut sind.
Die Zahlen 680, 180 etc. sind CAN-Ids (werden in einem Bus von 1 bis 2047 vergeben).
Ein CAN-Message ist so Aufgebaut:

CAN-ID byte1 .. .. byte8 (maximal)

hier:
680 [len] 31 00 fa 01 26
hier muss man aufpassen (in dein CAN-Programm nachlesen) wie die einzelnen Bytes bei einem Word oder Long dargestellt werden (high low Folge).

Eine CAN-ID kann nur von einem Knoten gesendet werden aber alle können es empfangen.

Aus den CAN-IDs sieht man das es kein CANopen Protokol ist (dann wäre es einfacher gewisse dinge rauszufinden).

Als erstes muss man wissen was die einzelnen Messages transportieren und wie sie aufgebaut sind (vll. eine CAN Beschreibung
der einzelnen Messages von Hersteler?).
Wenn nicht muss man das rausfinden:
z.B. Etwas verstellen und schauen was gesendet wird und was geantwortet wird.
Wenn man dies hat, kann man sich an die Anbindung an fhem machen.

Gerhard
FB6890LTE, cubietruck, orangePi, raspberry 2/3/4, HM/HMIP, shelly > 50, etc.

juerg5524

Hallo Korre,

Du hast damit nichts verstellt. Das ist eine einfache Anfrage, die vermutlich nur zur ID 180 die korrekten Minuten zurück gibt.

Wie zu Beginn dieses Beitrags, kannst Du den Wrapper zusammen mit 50_Elster.pm verwenden. Das Perl-Modul musst Du aber an Deine WP anpassen.

In 50_Elster.pm gibt es eine kleine Anleitung.

Viele Grüsse
Jürg

korreander12

Hallo zusammen,

habe nun wie in der 50_Elster - Anleitung beschrieben einen Total-scan gemacht.
Hatte dabei einige Unklarheiten.

Wenn ich nur ./can_scan can0 680 total trace durch führe konnte ich keine Aufzeichnung als Trace-Datei finden.
Weiß nicht genau wie das vorgesehen ist, aber ich dachte die Option "trace" erzeugt eine Datei. ???

Ich habe mir dann mit folgendem Befehl beholfen und die Ausgaben in eine Datei umgeleitet.
./can_scan can0 680 total trace >totalscan_korre

Die Datei im Anhang sieht sehr umfangreich und vielversprechend aus.
Ist die Datei korrekt und kann diese so weiterverwendet werden?

Ich habe versucht die Datei in CS_Brücke zu laden, kam leider nicht  weiter,
da beim "Start" die Meldung "serielle Schnittstelle konnte nicht geöffnet werden" erschien.
Ich muss bestimmt erst "com2com" starten, bzw. aus dem Internet downloaden. ( habe das Programm in Jürgs can_progs nicht finden können ....)

Kann mir jemand einen weiteren Tipp geben, bzw. könnte jemand meine totalscan-Datei mit comfortSoft umwandeln?




juerg5524

#24
Hallo Korre,

ich werde Dir helfen. Aber leider muss ich feststellen, dass in meiner Software ein Fehler auftritt, den ich zuerst korrigieren muss. Der Fehler äussert sich so, dass die Zuordnung im Scan verschoben ist. Bei den Zeilen aus Deinem Scan

45227  30.1.2017 14:54:05.563       680 00 [5] c1 02 fa fd b7           .....
45228  30.1.2017 14:54:05.582       602 00 [7] d2 00 fa fd b4 96 00     .......
  { 0x602, 0xfdb7, 0x9600},
     680 00 [5] c1 02 fa fd b8           .....
45229  30.1.2017 14:54:05.587       680 00 [5] c1 02 fa fd b8           .....
45230  30.1.2017 14:54:05.605       602 00 [7] d2 00 fa fd b6 80 00     .......
     680 00 [5] c1 02 fa fd b9           .....
45231  30.1.2017 14:54:05.610       680 00 [5] c1 02 fa fd b9           .....
45232  30.1.2017 14:54:05.628       602 00 [7] d2 00 fa fd b7 80 00     .......

ist die erste Anfrage zum Elster-Index fdb7, die Antwort taucht aber erst in der übernächsten Anfrage auf. Es mag auch damit zusammenhängen, dass ich für den Live-Test nur den Raspi verwendete. Windows und MAC wurden mit Simulationen getestet!

Ich hoffe, dass Du etwas Geduld aufbringen kannst.

Ja, es braucht zuerst com0com (und nicht com2com).

Viele Grüsse
Jürg

korreander12

Hallo Jürg,

danke schonmal vorab, dass du dich der Sache annimmst.
Warum könnte das verschoben sein?
Habe ich was falsch gemacht mit meinem umleiten der Ausgaben in die Datei, oder reagiert bei meiner Konstellation etwas träge?
Ich habe es mit meinem Raspi B  und der PiCan Schnittstelle gescannt.

Klar habe ich etwas Geduld, auch wenn ich schon sehr gespannt bin, was bei diesem meinem Projekt als nächstes passiert. 8) 8) 8) .


niwa83

Hsllo,
bin relativer Laie in der Thematik.

Habe vor einen WPMII über einen USBtin an einen Raspberry 3 anzubinden.

Probleme gehen schon los einen Totalscan zu machen.
Bei der Befehlseingabe kommt folgendes :

./can_scan.arm: Permission denied

Hab versucht was im Forum in Erfahrung zu bringen. Leider ohne Erfolg.

Wer kann helfen?

GRuß
niwa


juerg5524

Hallo niwa,

vermutlich kannst Du mit dem Befehl "chmod" das Ausführungsrecht freischalten:

chmod 777 can_scan.arm

eventuell auch

sudo chmod 777 can_scan.arm

Viele Grüsse
Jürg

niwa83

Hallo Jürg,

danke für deine Hilfe.

Das Problem war die Berechtigung . Ich hab vor lauter Bäumen den Wald nicht gesehen.

ich bekomme nach dem kompelieren folgende Ausgabe

./can_scan /dev/ttyACM0 680

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

list of valid can id's:

  000 (0000 = 0-00)


Sieht irgendwie nicht so gut aus, oder?

Gruß
Niwa

juerg5524

Hallo Niwa,

nein, sieht wirklich nicht gut aus! Welche WP hast du im Einsatz?

Viele Grüsse
Jürg