Autor Thema: Stiebel-Eltron mit CAN-Bus unter Verwendung eines C++-Wrappers  (Gelesen 15404 mal)

Offline juerg5524

  • New Member
  • *
  • Beiträge: 43
Hallo zusammen,

ich bin ein absoluter FHEM-/Perl-Anfänger. Mit meinem Modul können Daten aus der Wärmepumpe gelesen und verändert werden. Aus Vorsicht teste ich vorwiegend in einer Simulationsumgebung (Windows). Wenn jemand daran interessiert ist, werde ich gerne auch mehr dazu schreiben.

Viele Grüsse
Jürg

P.S.: Weitere Software dazu befindet sich unter http://juerg5524.ch im File can_progs_fhem_test.zip (später in can_progs.zip).
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Burny4600

  • Hero Member
  • *****
  • Beiträge: 1449
Antw:Stiebel-Eltron mit CAN-Bus unter Verwendung eines C++-Wrappers
« Antwort #1 am: 22 Dezember 2015, 13:31:27 »
@juerg5524

Habe einen Raspberry inklusive PICAN.
Möchte mich damit in die bestehende Heizung mit dem Elfatherm E6 hängen.

Wie muß ich den PICAN in FHEM dafür konfigurieren?
Mfg Chris

Raspberry Pi 2/2+/3/3+ / Betriebssystem: Jessie Stretch Lite
Schnittstellen: RFXtrx433E (Oregon) / SIGNALduino / nanoCUL 868MHz (FS20), nanoCUL 433 MHz (IT), LAN, ser2net, FHEM2FEHEM
Devices: S.USV, APC-USV, FS20, IT, WMR200, TEK603, YouLess, Resol VBUS & DL2, Fronius Datalogger Web 2

Offline juerg5524

  • New Member
  • *
  • Beiträge: 43
Antw:Stiebel-Eltron mit CAN-Bus unter Verwendung eines C++-Wrappers
« Antwort #2 am: 23 Dezember 2015, 15:54:10 »
Hallo Chris

der PICAN kann als SocketCAN-Schnittstelle konfiguriert werden. Die Bitrate für den E6 sollte bei 20000 bits/sec liegen:

# ip link set can0 up type can bitrate 20000

Dann kannst Du meine Software (ohne FEHM) verwenden. "can0" ist das Device, das Du verwenden kannst.

Zum Elfatherm E6 habe ich keine Zugriffsdaten (Zuordnung, zu welchem CAN-ID - Elster-Index - Paar man welchen Wert abfragen kann). Die benötigten Daten kannst Du aber selbst ermitteln. Dazu brauchst Du das Programm ComfortSoft. Warnung: Ist ziemlich kompliziert.

Viele Grüsse
Jürg 

Offline Burny4600

  • Hero Member
  • *****
  • Beiträge: 1449
Antw:Stiebel-Eltron mit CAN-Bus unter Verwendung eines C++-Wrappers
« Antwort #3 am: 23 Dezember 2015, 20:05:11 »
@juerg5524

Danke für den Tipp vorerst einmal.
Werde ich nach den Feiertagen gleich einmal ein wenig testen.

Gab es eigentlich schon Einbindungen via CAN an Heizungsreglern usw. in FHEM?
Mfg Chris

Raspberry Pi 2/2+/3/3+ / Betriebssystem: Jessie Stretch Lite
Schnittstellen: RFXtrx433E (Oregon) / SIGNALduino / nanoCUL 868MHz (FS20), nanoCUL 433 MHz (IT), LAN, ser2net, FHEM2FEHEM
Devices: S.USV, APC-USV, FS20, IT, WMR200, TEK603, YouLess, Resol VBUS & DL2, Fronius Datalogger Web 2

Offline Burny4600

  • Hero Member
  • *****
  • Beiträge: 1449
Antw:Stiebel-Eltron mit CAN-Bus unter Verwendung eines C++-Wrappers
« Antwort #4 am: 31 Dezember 2015, 09:28:52 »
@juerg5524

Mit diesen Einstellungen kommen jetzt Daten an.
Wie kann ich die Schnittstelle jetzt in FHEM einbinden?
Mfg Chris

Raspberry Pi 2/2+/3/3+ / Betriebssystem: Jessie Stretch Lite
Schnittstellen: RFXtrx433E (Oregon) / SIGNALduino / nanoCUL 868MHz (FS20), nanoCUL 433 MHz (IT), LAN, ser2net, FHEM2FEHEM
Devices: S.USV, APC-USV, FS20, IT, WMR200, TEK603, YouLess, Resol VBUS & DL2, Fronius Datalogger Web 2

Offline juerg5524

  • New Member
  • *
  • Beiträge: 43
Antw:Stiebel-Eltron mit CAN-Bus unter Verwendung eines C++-Wrappers
« Antwort #5 am: 04 Januar 2016, 13:42:35 »
Hallo Burny4600

Das Wrapper-Modul (Files elster_perl.so und elster_perl.pm) kannst Du mit dem Skript can_elster_perl.arm erzeugen. Diese beiden Files ins Library-Perl-Verzeichnis kopieren. Bei mir ist das:

/usr/lib/perl/5.14.2

Das Modul "50_Elster.pm" solltest Du auf Deine WP anpassen. Danach ins FHEM-Verzeichnis kopieren.

Viele Grüsse
Jürg

Offline Burny4600

  • Hero Member
  • *****
  • Beiträge: 1449
Antw:Stiebel-Eltron mit CAN-Bus unter Verwendung eines C++-Wrappers
« Antwort #6 am: 12 Januar 2016, 18:32:08 »
@juerg5524

Kannst du mir das etwas genauer erläutern was du mit dem Wrapper-Modul usw. meinst.

Ich finde zwar die Dateien aber wo muss ich mit dem Skript can_elster_perl.arm die Dateien erzeugen, bzw. wo muß ich das gesamte can_progs Verzeichnis am Raspi ablegen?
« Letzte Änderung: 12 Januar 2016, 18:40:08 von Burny4600 »
Mfg Chris

Raspberry Pi 2/2+/3/3+ / Betriebssystem: Jessie Stretch Lite
Schnittstellen: RFXtrx433E (Oregon) / SIGNALduino / nanoCUL 868MHz (FS20), nanoCUL 433 MHz (IT), LAN, ser2net, FHEM2FEHEM
Devices: S.USV, APC-USV, FS20, IT, WMR200, TEK603, YouLess, Resol VBUS & DL2, Fronius Datalogger Web 2

Offline juerg5524

  • New Member
  • *
  • Beiträge: 43
Antw:Stiebel-Eltron mit CAN-Bus unter Verwendung eines C++-Wrappers
« Antwort #7 am: 15 Januar 2016, 13:57:14 »
Hallo Chris

Das Wrapper-Modul elster_perl.so wird zur Laufzeit mit "use elster_perl;" in ein Perl-Programm eingebunden. Alle Methoden, die im File elster_perl.h aufgeführt sind, können dann vom Perl-Programm verwendet werden. In Deinem Fall solltest Du

elster_perl::setdev("can0");

verwenden. set_can232 solltest Du auskommentieren.

Wo das Verzeichnis can_progs steht, spielt keine Rolle. Am besten vielleicht in Deinem Home-Verzeichnis. Wechsle ins prog-Verzeichnis und starte can_elster_perl.arm:

>cd can_progs
>./can_elster_perl.arm

Dabei wird die Open-Source swig verwendet (generiert elster_perl_wrap.cxx).

Viele Grüsse und gutes Gelingen
Jürg 

Offline niwa83

  • New Member
  • *
  • Beiträge: 31
Antw:Stiebel-Eltron mit CAN-Bus unter Verwendung eines C++-Wrappers
« Antwort #8 am: 03 Februar 2016, 21:14:48 »
Hallo zusammen,

Ich habe einen Raspberry und PICAN paltine.  Diese hängt an einer Tecalor TTL 15A .

Bekomme das Modul und das PICAN Board nicht zum laufen.

Kann jemand eine Detailierte Anleitung schreiben?

Danke und Gruß

NIWA

Offline juerg5524

  • New Member
  • *
  • Beiträge: 43
Antw:Stiebel-Eltron mit CAN-Bus unter Verwendung eines C++-Wrappers
« Antwort #9 am: 04 Februar 2016, 16:04:46 »
Hallo Niwa,

was alles geht nicht? Für den Einstieg gibt es eine Beschreibung auf messpunkt.org.

Viele Grüsse
Jürg

Offline Brun

  • Full Member
  • ***
  • Beiträge: 136
Antw:Stiebel-Eltron mit CAN-Bus unter Verwendung eines C++-Wrappers
« Antwort #10 am: 04 November 2016, 12:59:44 »
Servus,

haben schon einige die Verbindung realisiert?
Ich wollte mich mal dran machen. Scheitere leider aber schon ein ein paar Punkten.

Ich wollte erstmal einen can_scan machen.
Aber die gewünschten informationen kommen leider nicht. Und ich bekomme immer was anderes.

root@rpi-keller:~/can_progs# ./can_scan ttyACM0 780 total
elster-kromschroeder can-bus address scanner and test utility
copyright (c) 2014 Jürg Müller, CH-5524

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

  000 (a51a = 165-26)


root@rpi-keller:~/can_progs# ./can_scan ttyACM0 780 total
elster-kromschroeder can-bus address scanner and test utility
copyright (c) 2014 Jürg Müller, CH-5524

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

  000 (a51a = 165-26)
  483 (a51a = 165-26)
  503 (4307 = 67-07)


root@rpi-keller:~/can_progs# ./can_scan ttyACM0 780 total
elster-kromschroeder can-bus address scanner and test utility
copyright (c) 2014 Jürg Müller, CH-5524

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

  000 (a51a = 165-26)
  183 (a51a = 165-26)



Vorschläge?
Ideen?

Offline juerg5524

  • New Member
  • *
  • Beiträge: 43
Antw:Stiebel-Eltron mit CAN-Bus unter Verwendung eines C++-Wrappers
« Antwort #11 am: 10 November 2016, 10:31:50 »
Hallo Brun,

möglicherweise ist die Id 780 bereits vergeben. Könntest Du es bitte mit der Id 680 versuchen (und zunächst ohne den Zusatz "total").

Viele Grüsse
Jürg

Offline Brun

  • Full Member
  • ***
  • Beiträge: 136
Antw:Stiebel-Eltron mit CAN-Bus unter Verwendung eines C++-Wrappers
« Antwort #12 am: 15 November 2016, 17:54:16 »
Hallo Jürgen,

das Ergebnis ist reproduzierbar immer das selbe.
Ich bekomme immer eine ähnliche Ausgabe wie schon oben. Egal welche Sender ID ich nehme.

Gruß Brun

Offline juerg5524

  • New Member
  • *
  • Beiträge: 43
Antw:Stiebel-Eltron mit CAN-Bus unter Verwendung eines C++-Wrappers
« Antwort #13 am: 16 November 2016, 15:41:06 »
Hallo Burn,

es könnte auch an der Hardware liegen. Z.B., wenn keine galvanische Trennung vorliegt und ein Fehlerstrom fliest (kann die Hardware zerstören). Ebenfalls zu einem Fehlverhalten kann ein falsch abgeschlossener CAN-Bus führen. Ich nehme aber an, dass Du ein sehr kurzes Kabel (1 oder 2 Meter) verwendest, welches nicht abgeschlossen werden muss.

Wenn Du passiv die Daten am CAN-Bus analysierst, sind da Unregelmässigkeiten zu sehen (siehe Programm can_logger)?

Gibt es beim Wiederholen von

./can_scan ttyACM0 680 503.000b trace

auch Unregelmässigkeiten?

Viele Grüsse
Jürg

Offline Brun

  • Full Member
  • ***
  • Beiträge: 136
Antw:Stiebel-Eltron mit CAN-Bus unter Verwendung eines C++-Wrappers
« Antwort #14 am: 29 November 2016, 16:03:43 »
So. Habs jetzt endlich mal geschafft.

Angeschlossen habe ich den Adapter mit nur einen 10cm langen Kabel. Da der RPI direkt neben dem WPM ist. Hab ich da vielleicht schon was falsch gemacht?

mit can_scan bekomme ich nur etwa sowas:
./can_scan ttyACM0 680 503.000b trace
elster-kromschroeder can-bus address scanner and test utility
copyright (c) 2014 Jürg Müller, CH-5524

     680 00 [5] a1 03 fa 00 0b           .....
     680 00 [5] a1 03 fa 00 0b           .....
  0  29.11.2016 15:02:40.856       680 00 [5] a1 03 fa 00 0b           .....
no value read
Und das ändert sich auch permanent.

Sorry, aber von CAN habe ich leider kein blassen Schimmer.


Gruß Brun

 

decade-submarginal