inetbox.py icon indicating copy to clipboard operation
inetbox.py copied to clipboard

Truma D6e

Open maseb24 opened this issue 3 years ago • 72 comments
trafficstars

Hallo,

ich habe deine Software nochmal auf einer neuen Raspi Installation aufgesetzt.

Das Skript starte ich von Hand, den service habe ich erst gar nicht enabled. Wenn ich nun truma_service als normaler user starte kommen Fehlermeldungen

pi@raspberrypi:~ $ truma_service 2022-10-06 13:52:32,220 truma.main INFO started Traceback (most recent call last): File "/home/pi/.local/lib/python3.9/site-packages/serial/serialposix.py", line 322, in open self.fd = os.open(self.portstr, os.O_RDWR | os.O_NOCTTY | os.O_NONBLOCK) PermissionError: [Errno 13] Permission denied: '/dev/serial0'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/home/pi/.local/bin/truma_service", line 8, in sys.exit(truma_service.run()) File "/home/pi/.local/lib/python3.9/site-packages/inetbox/truma_service.py", line 56, in run miqro.run(TrumaService) File "/home/pi/.local/lib/python3.9/site-packages/miqro/init.py", line 578, in run service( File "/home/pi/.local/lib/python3.9/site-packages/inetbox/truma_service.py", line 21, in init self.serial = Serial(serial_device, 9600, timeout=0.03) File "/home/pi/.local/lib/python3.9/site-packages/serial/serialutil.py", line 244, in init self.open() File "/home/pi/.local/lib/python3.9/site-packages/serial/serialposix.py", line 325, in open raise SerialException(msg.errno, "could not open port {}: {}".format(self._port, msg)) serial.serialutil.SerialException: [Errno 13] could not open port /dev/serial0: [Errno 13] Permission denied: '/dev/serial0'

Kannst du mir einen Tip geben wie ich weiterkommen könnte.

LG Rudi

maseb24 avatar Oct 06 '22 11:10 maseb24

Hallo Rudi,

da fehlt die Berechtigung, den Port als normaler Benutzer zu nutzen. Du hast zwei Optionen:

  1. Du kannst die Berechtigung vergeben: sudo adduser pi dialout -> wichtig: danach ausloggen und wieder einloggen (oder neustarten), sonst ist die Berechtigung nicht aktiv.
  2. Du kannst das Skript auch mit sudo installieren und starten. (Alle Befehle wie in der Readme, aber mit sudo davor.)

danielfett avatar Oct 06 '22 12:10 danielfett

Hallo Daniel,

der user pi war bereits in der Gruppe dialout.

Nach der Installation des Skripts mit sudo kann man truma_service ohne Fehler aufrufen. Eine Verbindung zur CP Plus findet aber nicht statt.

Was mich stutzig macht, ist das das Programm read-logfile.py nicht gefunden wird.

PATH habe ich angegeben mit PATH=$PATH:/home/pi/.local/bin

in .local/bin sind folgende Dateien enthalten pi@raspberrypi:~/.local/bin $ ls -l insgesamt 12 -rwxr-xr-x 1 pi pi 220 6. Okt 12:56 pyserial-miniterm -rwxr-xr-x 1 pi pi 222 6. Okt 12:56 pyserial-ports -rwxr-xr-x 1 pi pi 228 6. Okt 12:56 truma_service

Gruß Rudi

maseb24 avatar Oct 06 '22 13:10 maseb24

Hallo Rudi,

read-logfile.py wird nicht installiert, sondern muss direkt gestartet werden. Es ist aber nur für spezielle Anwendungen notwendig.

Was heißt denn genau, dass keine Verbindung stattfindet?

Bist du dir sicher, dass du den richtigen PIN am RJ12-Stecker angezapft hast und dass RX/TX richtig verkabelt sind?

danielfett avatar Oct 06 '22 15:10 danielfett

Nach der Installation des Skripts mit sudo kann man truma_service ohne Fehler aufrufen. Eine Verbindung zur CP Plus findet aber nicht statt.

@maseb24 Hallo Rudi! Wie meinst Du das mit "findet nicht statt"? Fehlt bei Dir auch diese Zeile? (kopiert aus Daniels README)) 2022-10-02 14:21:27,234 inet-lin INFO Received status data from cp plus

Bei mir fehlt sie, und ich bin noch nicht dahinter gekommen, woran es liegt (siehe https://github.com/danielfett/inetbox.py/issues/8).

7wells avatar Oct 06 '22 17:10 7wells

Hallo Rudi! Wie meinst Du das mit "findet nicht statt"? Fehlt bei Dir auch diese Zeile? (kopiert aus Daniels README)) 2022-10-02 14:21:27,234 inet-lin INFO Received status data from cp plus

Bei mir fehlt sie, und ich bin noch nicht dahinter gekommen, woran es liegt (siehe https://github.com/danielfett/inetbox.py/issues/8).

Ja genau, diese Zeile kommt nicht.

Ich werde als nächstes versuchen die Verbindung zur Truma mit dem RJ12 Splitter zu machen. Dafür fehlt mir aber noch ein weiteres RJ12 Kabel. Muss ich mir erst besorgen. Die direkte Verbindung über die zweite RJ12 Buchse an der Truma scheint nicht zu funktionieren.

Gruß Rudi

maseb24 avatar Oct 06 '22 17:10 maseb24

Ich habe beides versucht, d.h. am 2. Anschluss der Truma, also parallel zum Kabel, das zum CP+ geht, sowie mit dem Splitter, also das vorhandene Kabel vom CP+ (vom Truma-Anschluss 1 kommend) getrennt, an den Splitter (Seite mit 1 Buchse) dran und auf der anderen Seite des Splitters (Seite mit 2 Buchsen) das Kabel zum CP+ dran sowie das Kabel, von dem nur 1 Ader dann an LIN des UART-Boards geht. Ergebnis aber leider bisher identisch, d.h. die letzte Zeile kommt nicht.

Mir ist noch völlig unklar, ob's rein Problem mit der Verkabelung oder der Software-Installation gibt.

Ich habe die Combi EDIT: 4 (nicht 6) ohne E.

Vielleicht findest Du ein RJ12 Kabel mit 6 Adern bei einem alten Telefon- oder Routerset (Fritzbox o.ä.).

@danielfett Kann es sein, dass es Unterschiede aufgrund verschiedener Truma Firmwares gibt? Oder müsste diese letzte Zeile immer kommen (korrekte Verkabelung vorausgesetzt)?

7wells avatar Oct 06 '22 18:10 7wells

@7wells Das ist möglich, aber aufgrund der Fehlerbeschreibung eher nicht wahrscheinlich - mal schauen.

Zur Sicherheit: Eure CP Plus hat jeweils das "inet Ready"-Symbol?

danielfett avatar Oct 06 '22 19:10 danielfett

Ich habe hier einen Hinweis hinzugefügt:

https://github.com/danielfett/inetbox.py#hardware-requirements

danielfett avatar Oct 06 '22 19:10 danielfett

Ja, hat es, und ich hatte auch schon die iNet Box angeschlossen und konnte mit der Truma App auf dem Handy via Bluetooth einiges einstellen und auswerten.

Ich frage mich auch gerade, ob ich die iNet Box für Deine Skripte noch verwenden kann, also im Sinne von Testen und Vergleichen von Werten, Reaktionen etc. Sag gerne Bescheid, ob das Sinn macht.

Aber zuerst muss ich das Ganze ohne die iNet Box zum Laufen bekommen.

Vielleicht hat @maseb24 Rudi noch eine Idee.

7wells avatar Oct 06 '22 19:10 7wells

ich habe auch CP Plus mit iNetReady im Bus installiert.

ich bekomme die Initialisierung mit dem LIN Bus der Truma nicht zum laufen.

Daniel hat das schon mal jemand hin bekommen, ausserhalb deiner Installation?. Ich muss passen.

Gruß Rudi

maseb24 avatar Oct 08 '22 12:10 maseb24

Ja, das wurde schon reproduziert. Insofern ist es zumindest kein grundlegender Fehler, sondern irgendwas anders...

Welche Pi-Version benutzt ihr jeweils?

Könnt ihr bitte einmal folgendes ausprobieren?

  • sudo apt install --no-install-recommends screen um das Programm screen zu installieren
  • sudo systemctl disable miqro_truma um den Dienst zu deaktivieren, falls er schon installiert wurde
  • Pi neustarten (wichtig!)
  • sudo screen /dev/serial0 9600 starten
  • Dort sollte spätestens alle 10 Sekunden Datenmüll vorbeikommen. Wenn ihr nichts seht, gibt es ein Problem mit der Verbindung. Ihr könnt dann noch /dev/serial1 statt serial0 testen.
  • Mit Strg+A, dann K kommt ihr wieder aus screen raus.

Kommt Datenmüll rein oder nicht?

danielfett avatar Oct 08 '22 19:10 danielfett

Und falls keine Daten kommen:

sudo apt install wiringpi
sudo gpio -g mode 15 up
  • dann bitte nochmal probieren.

danielfett avatar Oct 08 '22 20:10 danielfett

hallo bin am selben Punkt angelangt, bekomme die Initialisierung auch nicht zum laufen. mit sudo screen /dev/serial0 9600 kommt im Sekundentakt Datenmüll (unleserlich). Habe Bulleye installiert und wiringpi gibt es nicht mehr als Paket.

appi1 avatar Oct 09 '22 07:10 appi1

Hallo, ich bekomme auch mit sudo screen /dev/serial0 9600 Datenmüll. Auf serial1 bleibt der screen leer. Wiringpi lässt sich ebenfalls nicht installieren. Ich habe auch Bullseye installiert

Mein Raspi ist ein Pi 3 B V 1.2 aus 2015.

Immerhin mal ein Erfolgsergebnis. Aber eine Initialisierung mit dem LIN Bus der Truma ist nicht möglich.

LG Rudi

maseb24 avatar Oct 09 '22 09:10 maseb24

Ich ergänze auch mal, hatte mit Daniel direkt geschrieben:

Truma 6 Gasheizung mit CPplus. Rpi4 mit exakt dem LIN Transceiver aus der readme. Gleiches Fehlerbild wie bei euch: stecke ich den pi an, geht das display auf W255H, ein PR RESET dauert ewig und anschließend ist die Heizung im Display "weg". Die Zeile "inet-lin INFO Received status data from cp plus" kommt nicht. Der Datenmüll bei mir sieht aus wie im Anhang.

VG, Sönke Bildschirmfoto 2022-10-09 um 11 58 53

skrebber avatar Oct 09 '22 10:10 skrebber

Momentan kann ich das nicht live testen, aber Anfang kommender Woche.

Ich verwende einen RPi 4 Model B (Debian bullseye).

Müssen bei den Interfaces evtl. noch andere Sachen aktiviert werden wie 1-wire oder remote GPIOs?

7wells avatar Oct 09 '22 15:10 7wells

Wenn das CP Plus den Fehler 255h meldet, kann es nicht mehr mit der Combi reden, das heisst es liegt ein Anschlussfehler am LIN vor. Wichtig, das Interface braucht auch die Vbat (12V vom Wohnmobil) Spannung. bitte auch noch mal zusätzlich die Ground am RJ12 Verbinden.

morawekj avatar Oct 09 '22 21:10 morawekj

Der Fehler "W255 H" kommt bei mir regelmäßig, wenn ich die Verkabelung neu herstelle. Aber nach "PR SET" geht sie sofort weg (dauert höchstens ein paar Sekunden).

Das UART-Board versorge ich mit 12V direkt von einer 12V Camping-Steckdose vom WoMo (auch GND, es ist ja derselbe Stecker). Die grüne LED ist an, und die Spannung ist gemessen ok.

Ich vermute ein Problem bei der Verkabelung mit dem RJ12-Kabel/Stecker.

Später mache ich nochmal einen Versuch...

7wells avatar Oct 10 '22 05:10 7wells

Ich teste heute Abend auch gerne noch den GND-pin vom RJ12 auch aufzulegen. Was jedoch bei mir schon funktioniert, lässt mich zweifeln, ob's daran liegt: mit exakt gleicher Verkabelung zum LIN Transceiver, nur das CPplus ausgesteckt und die RX-TX vom LIN Transceiver auf nen ESP32 gelegt, kann ich mit dem Code aus der WomoLIN Gruppe die Heizung steuern.

Sind die RX-TX pins vom pi eigentlich galvanisch getrennt? Ne, oder? Mir fällt gerade auf, dass der ESP32 über die 12V vom CPplus (also Womo-Batterie) läuft und daher sicher das gleiche GND-Niveau wie die Truma hat. Den pi habe ich aber zum Testen über Wechselrichter und 230V Netzteil betrieben.

VG, Sönke!

skrebber avatar Oct 10 '22 07:10 skrebber

Hallo Sönke,

das mit dem GND aus dem Wechselrichter ist sicher kein Batterie-GND.

Könntest Du mal einen Link zu dem ESP32-Code teilen. Das wäre toll. Ich würde es gerne auf der Plattform zum Laufen bringen.

Danke und LG Magnus

mc0110 avatar Oct 10 '22 07:10 mc0110

Was meinst Du mit "dem Code aus der WOMOLin Gruppe"

mc0110 avatar Oct 10 '22 07:10 mc0110

Exakt der Fehler, ohne GND passieren komische Dinge. Die TX/RX Pins sind nicht getrennt, es könnten Ausgleichströme fließen, die den Uart im PI zerstören. Die GND verbindung ist deshalb auch wichtig.

morawekj avatar Oct 10 '22 07:10 morawekj

Es gibt eine Telegram-Gruppe, dort gibt es einen Arduino-Code, der ein CPplus emuliert und über MQTT Status bereitstellt und sich über MQTT steuern lässt.

skrebber avatar Oct 10 '22 08:10 skrebber

Oh je, das klingt interessant, aber da komme ich wohl nicht an den Code. Aber danke für Deine schnelle Antwort.

mc0110 avatar Oct 10 '22 08:10 mc0110

Direkt auf der Startseite ist der Link zur Telegram-Gruppe. ;-) https://womolin.de Dort unter Dateien in der Gruppe "Code_v2.ino"

skrebber avatar Oct 10 '22 08:10 skrebber

Super hilfreich, ich danke Dir!

mc0110 avatar Oct 10 '22 08:10 mc0110

Exakt der Fehler, ohne GND passieren komische Dinge. Die TX/RX Pins sind nicht getrennt, es könnten Ausgleichströme fließen, die den Uart im PI zerstören. Die GND verbindung ist deshalb auch wichtig.

@morawekj @danielfett Verstehe ich das richtig, dass wir nicht nur Tx und Rx zwischen LIN UART-Board und RPi anschließen sollen (Tx und Rx natürlich "verdreht"), sondern auch GND zwischen LIN UART-Board und RPi verbinden sollen?

7wells avatar Oct 10 '22 11:10 7wells

GND vom Truma RJ12 Connector PIN5 auf GND LIN Transceiver UND GND LIN Transceiver auf GND vom pi. Damit alle auf dem gleichen Niveau sind.

skrebber avatar Oct 10 '22 11:10 skrebber

Welches ist denn PIN 5 (GND) an der Truma bzw. am RJ12-Stecker?

Links im Bild ist das von @danielfett farblich hervorgehobene LIN-Kabel, und rechts im Bild mein RJ12-Stecker:

Truma_06.jpg

7wells avatar Oct 10 '22 12:10 7wells

Der markierte ist LIN pin3. Rechts pin1. Links ist pin6.

Ist es ohne Bild verständlich? ;-)

skrebber avatar Oct 10 '22 13:10 skrebber