NEWS
Test Adapter canbus v1.1.x Latest
-
Meine Rotex ist noch über einen eigenen Pi, auf dem FHEM läuft, angebunden.
Allerdings wäre es schon klasse alles auf einem System zu haben.
Mein Problem ist allerdings, dass der Pi auf dem ioBroker läuft, gute 10m von der Rotex entfernt ist, und ich auch da nichts ändern kann.Frage, hat jemand schon mal mit einem so langen CAN-Kabel gearbeitet? Verdrillt ist klar, aber evtl. auch noch geschirmt?
Welche Masse anschließen, die der Rotex oder vom CAN-Adapter?
Gibt es da Erfahrungswerte? -
@hg6806 Das hängt auch etwas von der verwendeten Baudrate ab, aber 10 m sind für einen CAN-Bus eigentlich gar nichts.
Bei 1 Mbit/s sind allgemein Kabellängen bis etwa 25m möglich. Bei 10 kbit/s sind es sogar über 6 km.Geschirmtes Kabel würde ich immer für (längere) Busleitungen empfehlen.
Ich selbst habe bei mir aktuell eine Busleitungslänge von rund 120 m bei einer Baudrate von 500 kbit/s mit Cat7 Verlegekabel. Die Masse habe ich dabei über den Kabelschirm bei allen Busteilnehmern verbunden. Läuft seit über 2 Jahren ohne Probleme.
-
@crycode
Ich weiß dass es eigentlich kein Problem sein sollte, allerdings hatte ich bei 40cm Kabel schon ein Problem, allerdings ohne Verdrillung.
Zumindest bei dem FHEM System und dem ELM327 Adapter, den ich ja weiterverwenden möchte.Kann man die Baudrate einstellen?
Wenn du wirklich die Masse bei beiden angeschlossen hast, würde ich eher ein Problem beim Potentialausgleich sehen. Da würde ich min. auf einer Seite einen Kondensator in Reihe schalten.
-
@hg6806 Verdrillte Leitungen machen hier schon einen großen Unterschied.
Die Baudrate ist in deine Fall ja durch die Rotex vorgegeben.
Der ELM327 ist mit dem canbus Adapter so nicht direkt kompatibel. Der Adapter benötigt ein vom Linux-Kernel unterstütztes CAN-Interface, welches dann z.B. als
can0
im System bekannt ist.
Es gibt im Netz aber für SocketCAN Treiber für den ELM 327. Inwieweit die funktionieren kann ich jedoch nicht sagen.Eine recht einfache Alternative wäre ein CAN Hat mit MCP2515 Controller für den Raspi.
-
OK, dann besorge ich mir erst einmal ein CAN-HAT und Kabel.
Ich hatte mir LiYCY 2x0,25mm2 rausgesucht. -
-
Hallo crycode
Vielen Dank für den Adapter. Zurzeit suche ich die Möglichkeit die Daten einer NMEA 2000 Schnittstelle in den iobroker und das in die Objekte zu bringen. Bevor ich mich nun in Unkosten stürze möchte ich dich fragen wie Du die Chancen siehst, dass ich das zum laufen bringe. Schlussendlich ist das Ziel die NMEA Daten zu visualisieren mit dem VIS um alles auf einem iPad anzuzeigen bzw. zu steuern.
Je nach deiner Meinung würde ich dann eine Versuchsanlage aufbauen; bestehend aus:
Nach meiner Recherche im Netz dürfte die NMEA Schnittstelle ein CAN BUS sein und somit müssten die Daten bzw. die Objekte in den iobroker übernommen werden.
https://de.wikipedia.org/wiki/NMEA_2000
https://seabits.com/nmea-2000-powered-raspberry-pi/Vielen Dank für deine Meinung. Hoffe ich kann das realisieren.
Gruss
-
@sentinel997 Hi, alles nach bestem Wissen, aber ohne Gewähr, da ich selbst bislang nichts mit NEMA zu tun hatte...
Also die Hardware sieht dafür schon mal gut aus würde ich sagen.
Ich hab mal kurz ein paar Sachen zum NEMA 2000 gelesen. Wenn ich das richtig sehe, werden hier 250 kbit/s und das Extrend Frame Format benutzt.
Für dich entscheidend wäre jetzt zu wissen, mit welchen CAN-IDs welche Daten übertragen werden. Sind evtl. die PGN auf Wikipedia die CAN-IDs (in dezimaler Darstellung)?
Mit ein paar Infos aus dem Netz und ein paar candumps sollte sich da aber sichlich was ableiten lassen.Wenn nur einfache Datensätze pro CAN-ID übertragen werden, dann reichen die "normalen" Parser des Adapters. Wenn es jedoch spezieller wird (wie bei der Rotex HPSU), müssen ein paar zusätzliche Parser-Scripte her.
Auf jeden Fall eine interessante Anwendung, die sicherlich auch andere Nutzer interessieren könnte.
Sofern wir eine funktionierende Config hinbekommen, kann ich die dann auch gerne als "vordefinierte Config" für den Adapter bereitstellen.Grüße
Peter -
Wenn hier Abtaugeschädigte von der Rotex HPSU sind habe ich ein Script vorbereitet was den WW Verbrauch reduziert.Sowas wird ja auch im FHEM Forum behandelt.Könnte man ja auch mit im Github aufnehmen.
Nen Script für einmalige WW Bereitung wo nicht der Heizstab genommen wird hab ich auch erstellt.
COP und Thermische Leistungsberechnung auch. -
@cb187 Hi. Ich wäre sehr interessiert an diesen Scripten. Könntest du sie zur Verfügung stellen?
Danke & Grüße
-
So, habe mich jetzt mal mit meinem gefährlichen Halbwissen und der HPSU 508 rangewagt.
CAN-HAT ist über ein 15m langes Kabel mit der Rotex verbunden, Masse ist nur an der Rotex dran.Die Utils habe ich gemäß https://crycode.de/can-bus-am-raspberry-pi installiert.
Sind die 500kb/s bei der HPSU korrekt?Im Adapter habe ich von Github die HPSU Konfig geholt in der V1.3.0
Adapter ist grün, Connection ist true.
Wieso habe ich jetzt 180, 300, 500, 680? Was ist wozu?
Wie kommen nun die Daten von der Rotex und wie schreibe ich? -
@hg6806 Ich habe zwar selbst keine HPSU, aber die Baudrate sollte hier soweit ich weiß 20kb/s sein.
Die drei Zahlen sind die hexadezimalen CAN-IDs der Nachrichten, die auf dem Bus gesendet werden.
180 - Daten, die vom Kessel gesendet werden
300 - Daten, die vom Bedienmodul gesendet werden
500 - Daten, die vom Heizmodul gesendet werden
680 - Daten/Abfragen von ioBroker an die HPSUDamit du überhaupt Daten von der HPSU erhältst, müssen die aktiv angefragt werden. Das kann entweder vom Bedienmodul, oder über die ioBroker-States unter 680 passieren.
Möchtest du z.B. die aktuelle Warmwassertemperatur (T-WW) abfragen, so musst du in den State
canbus.0.680.0e
den Werttrue
schreiben bzw. in der Objektansicht im Admin den Button anklicken. Der Adapter sendet daraufhin die Anfrage und der Kessel antwortet. Den Wert findest du dann im Statecanbus.0.180.0e
.Damit du nicht selbst (oder über ein Script) immer wieder in den Abfrage-State schreiben musst, gibt es in den Einstellungen der Adapterinstanz zu jedem "Parser" unter "680 HPSU abfragen/setzen" die Option "Automatisch einen bestimmten Wert setzen". Wenn du den z.B. für "0e T-WW abfragen" diese Option aktivierst, einen Intervall von 60000 angibst und bei "Zu setzender Wert" den Haken setzt, dann wird die Info jede Minute abgefragt.
-
Die 20kbit hatte ich schon in die Interfaces Konfig geschrieben und neu gestartet.
Jedoch erhalte ich keinen Daten, wenn ich bei den versch. Werten ein True setze bzw. Automatisch auf 1 Minute setze.Wie kann ich denn feststellen ob ich überhaupt eine funktionieren Verbindung zur Rotex habe?
-
@hg6806 Alle Daten, die (an deinem System/Raspi) über den CAN-Bus laufen, kannst du dir live mit
candump -tA -x can0
in einem Terminal anzeigen lassen. Zumindest beim Senden einer Anfrage vom ioBroker aus sollte da etwas aufgezeichnet werden. Zeilen mit "TX" sind Daten die von deinem System gesendet wurden und "RX" empfangene Daten.Den aktuellen Status des CAN-Bus an deinem System kannst du mittels
ip -details -statistics link show can0
anzeigen lassen. Die Ausgabe sollte in etwa so aussehen:pi@homepi:~ $ ip -details -statistics link show can0 3: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10 link/can promiscuity 0 minmtu 0 maxmtu 0 can state ERROR-ACTIVE restart-ms 0 bitrate 500000 sample-point 0.875 tq 125 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1 mcp251x: tseg1 3..16 tseg2 2..8 sjw 1..4 brp 1..64 brp-inc 1 clock 8000000 re-started bus-errors arbit-lost error-warn error-pass bus-off 0 0 0 0 0 0 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 RX: bytes packets errors dropped overrun mcast 293573 36716 0 0 0 0 TX: bytes packets errors dropped carrier collsns 129695 18637 0 0 0 0
Ansonsten bei den HPSU spezifischen Sachen könnte dir vlt. @cb187 besser weiterhelfen.
-
Hallo @hg6806,
also für meine HPSU 508 (Baujahr 2013) ist in der /boot/config.txt ist bei mir eingetragen:
dtoverlay=mcp2515-can0,oscillator=8000000,interrupt=25,spimaxfrequency=1000000
in der /etc/network/interfaces steht:
auto can0 iface can0 can static bitrate 20000
dann kommt für 80 Tage Betrieb (seit dem letzten Stromausfall)
ip -details -statistics link show can0 4: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10 link/can promiscuity 0 minmtu 0 maxmtu 0 can state ERROR-ACTIVE restart-ms 0 bitrate 20000 sample-point 0.850 tq 2500 prop-seg 8 phase-seg1 8 phase-seg2 3 sjw 1 mcp251x: tseg1 3..16 tseg2 2..8 sjw 1..4 brp 1..64 brp-inc 1 clock 4000000 re-started bus-errors arbit-lost error-warn error-pass bus-off 0 0 0 9 10 0 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 RX: bytes packets errors dropped overrun mcast 32677036 4668148 0 12 0 0 TX: bytes packets errors dropped carrier collsns 6125368 1325230 0 0 0 0
und ein
candump -tz can0 (000.000000) can0 190 [5] 31 00 FA C0 F6 (000.011586) can0 180 [7] 32 10 FA C0 F6 00 00 (009.098755) can0 680 [7] 30 00 FA 06 91 00 50 (009.171765) can0 190 [5] 31 00 FA 06 91 (009.181118) can0 180 [7] 32 10 FA 06 91 00 50
bringt dann sofort Ergebnisse, da ja ständig Daten hin und herflitzen.
Viel Spaß bei deinem Projekt.
Mic
-
Hallo @cb187,
hast du die Scripte für Abtaugeschädigte schon irgendwo publiziert? Würde mich auch brennend interessieren, an welchen Parametern du da geschraubt hast. Normalerweise stoppt die HPSU ja alle 2 Stunden (oder taut ab), auch wenn nichts zugefroren ist. Sie taut allerdings auch bei kälteren Temperaturen häufiger ab als alle 2 Stunden... das wird dann aber nicht verhindert, oder?
LG
Mic
-
@michael-wind
Habe nochmal den CAN angeschlossen und probiert:pi@raspberrypi:~ $ ip -details -statistics link show can0 4: can0: <NO-CARRIER,NOARP,UP,ECHO> mtu 16 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 10 link/can promiscuity 0 minmtu 0 maxmtu 0 can state BUS-OFF restart-ms 0 bitrate 20000 sample-point 0.850 tq 2500 prop-seg 8 phase-seg1 8 phase-seg2 3 sjw 1 mcp251x: tseg1 3..16 tseg2 2..8 sjw 1..4 brp 1..64 brp-inc 1 clock 4000000 re-started bus-errors arbit-lost error-warn error-pass bus-off 0 0 0 1 1 1 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 RX: bytes packets errors dropped missed mcast 0 0 0 2 0 0 TX: bytes packets errors dropped carrier collsns 0 0 0 0 0 0
Sieht nicht so wirklich toll aus.
Zudem steht im Display der HPSU "Keine Kommunikation"
Bedienen darüber kann ich aber -
Es kommen Daten!
Auf der Wiki Seite von den Waveshare CAN-HAT stand was mit unterschiedlichen Quarzen:
https://www.waveshare.com/wiki/RS485_CAN_HATIch hatte dann das neuere genommen, damit läuft es.
Also Obacht hier!
-
Hallo @hg6806 ,
wenn im Display der HPSU 508 "keine Kommunikation" steht, könnte der Parameter 'Terminaladdresse' im Menu 'Installation' nicht auf 'AUS' sondern evtl. auf 1 bis 9 (Ich habe allerdings keine RoCon, mit dieser kann es natürlich irgendwie anders sein). Zu diesem Menüpunkt kommt man allerdings nicht als normaler 'Benutzer' hin, nur als 'Fachmann' (nach Eingabe des Codes).
Oder vielleicht einfach mal neu starten (10s Strom aus). Mach ich inzwischen schon automatisiert, entweder direkt über Auswertung des Fehler Codes 9039 oder indirekt, wenn die über einen externen Fühler gemessene Speichertemperatur mit der internen T-WW mehr als 1° auseinanderläuft.
Freut mich, dass Dein 'neues' System nun mit der Heizung sprechen kann. Mein System ist ja schon ein paar Jahre alt, da war die Hardware wohl noch die Ältere...
LG
Mic
-
@michael-wind
"Keine Kommunikation" taucht nicht mehr auf.
Noch zwei Fragen.
Bei der FHEM Lösung hatte ich bei aktualisierten Werten diese sofort angezeigt bekommen. Geht das hier irgendwie auch?
Warum tauchen immer wieder diese nicht konfigurierte Daten auf? Habe schon auf Löschen bei Start gestellt, die kommen aber immer wieder.