damit ist es installiert und dann mit truma_service
kommt logischerweise:
weil die miqro.yml file nicht gefunden wird, also dann weiter der Anleitung folgen und dann geht es.
damit ist es installiert und dann mit truma_service
kommt logischerweise:
weil die miqro.yml file nicht gefunden wird, also dann weiter der Anleitung folgen und dann geht es.
Ja die miqro.yml muss noch erstellt werden.
Man muss doch nicht vorher Pakete downloaden und in das site-packages Verzeichnis kopieren, oder?
Die sollten doch vom Github Server direkt geholt werden.
@Vincent Die Installation wie du sie beschrieben hast hat funktioniert.
In derKonfig miqro.yml kommt ja folgendes rein:
broker:
host: localhost
port: 1883
keepalive: 60
log_level: INFO
services:
truma:
serial_device: /dev/ttyAMA1
Damit AMA1 nicht doppelt benützt wird, hatte ich mir folgendes in der alten Version notiert:
AMA1 in Node-Red Flow “Connections” disable selected nodes/appearance
Nun finde ich das in der 2.02 aber nicht mehr. Ignoriere ich das einfach, oder wie hast du das gemacht?
Du kannst mit ls -l /dev/ttyAMA1
sehen ob da irgendwas aktuell verbunden ist oder nicht.
AMA1 wird aber nicht benutzt in der 2.0.1
DIe seriellen Schnittstellen haben sich in BOOKWORM geändert, oder ?
after merging Bookworm changes from current arm64
branch the device enumeration changes and there are UART warnings in the kernel log:
UART GPIO pins | kernel device | connected to |
---|---|---|
UART0 14/15 | ttyAMA1 |
tester console |
UART2 00/01 | ttyAMA2 |
GPS |
UART5 12/13 | ttyAMA0 |
Linux console |
UART | Bullseye | Bookworm |
---|---|---|
0 | ttyAMA0 | ttyAMA0 |
2 | ttyAMA1 | ttyAMA2 |
5 | ttyAMA2 | ttyAMA5 |
Wie war das in der 1.01 mit AMA1 ?
Wie kann ich mir einen weiteren UART Port /ttyAMA(n) erstellen?
Ich habe in der config.txt uart2 zusätzlich eingetragen, aber leider kommt nach dem reboot untder /dev/ kein AMA
[all]
dtoverlay=w1-gpio
dtoverlay=uart5
enable_uart=1
enable_uart=2
Dz kannst theoretisch (!) in der config.txt dtoverlay=uart0
bis uart5
eintragen um UART Ports auf weiteren Pins zu aktivieren.
Dabei musst du aber aufpassen welche Pins verwendet werden, sonst gibts da Probleme.
Die Pins stehen in der /boot/overlays/README Datei
Ich habe mir nun UART2 als /dev/ttyAMA2 konfiguriert.
Wenn ich nun den TrumaService in der console starte, wird mir gemeldet, daß der Port nicht geöffnet werden kann:
pi@pekaway:/dev $ truma_service
2024-09-25 15:40:58,165 truma.main INFO started
2024-09-25 15:40:58,165 truma.main INFO Opening serial device /dev/ttyAMA2 in exclusive mode
Traceback (most recent call last):
File “/home/pi/.local/lib/python3.11/site-packages/serial/serialposix.py”, line 385, in _reconfigure_port
fcntl.flock(self.fd, fcntl.LOCK_EX | fcntl.LOCK_NB)
BlockingIOError: [Errno 11] Resource temporarily unavailable
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.11/site-packages/inetbox/truma_service.py”, line 142, in run
miqro.run(TrumaService)
File “/home/pi/.local/lib/python3.11/site-packages/miqro/init.py”, line 578, in run
service(
File “/home/pi/.local/lib/python3.11/site-packages/inetbox/truma_service.py”, line 55, in init
self.serial = Serial(serial_device, baudrate, timeout=timeout, exclusive=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/pi/.local/lib/python3.11/site-packages/serial/serialutil.py”, line 244, in init
self.open()
File “/home/pi/.local/lib/python3.11/site-packages/serial/serialposix.py”, line 332, in open
self._reconfigure_port(force_update=True)
File “/home/pi/.local/lib/python3.11/site-packages/serial/serialposix.py”, line 387, in _reconfigure_port
raise SerialException(msg.errno, “Could not exclusively lock port {}: {}”.format(self._port, msg))
serial.serialutil.SerialException: [Errno 11] Could not exclusively lock port /dev/ttyAMA2: [Errno 11] Resource temporarily unavailable
Resource temporarily unavailable
und was macht der Port?
sudo fuser /dev/ttyAMA2
sudo lsof /dev/ttyAMA2
pi@pekaway:~ $ sudo fuser /dev/ttyAMA2
/dev/ttyAMA2: 681
pi@pekaway:~ $ sudo lsof /dev/ttyAMA2
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python3 681 root 3uW CHR 204,66 0t0 132 /dev/ttyAMA2
Na und jetzt hast du die Process ID (PID) und kannst schauen was da den Port blockiert
Kannst du mir helfen, wie ich das mache?
ps -p <PID>
Zeigt dir den Prozess der PID an
ps aux | grep ttyAMA2
Kannst du auch noch versuchen, das sollte ebenfalls den Prozess anzeigen
dmesg | grep ttyAMA2
fällt mir noch ein, falls ein Kernel-Treiber oder Hardware den Port belegt
Anbei die Ergebnisse:
pi@pekaway:~ $ ps -p 681
PID TTY TIME CMD
681 ? 00:04:18 python3
pi@pekaway:~ $ ps aux | grep ttyAMA2
pi 108020 0.0 0.0 6088 1920 pts/0 S+ 07:41 0:00 grep --color=auto ttyAMA2
pi@pekaway:~ $ dmesg | grep ttyAMA2
[ 1.583162] fe201400.serial: ttyAMA2 at MMIO 0xfe201400 (irq = 36, base_baud = 0) is a PL011 rev2
pi@pekaway:~ $ ps -p 681
PID TTY TIME CMD
681 ? 00:04:18 python3
Also ein Python Script. Bringt ps -fp 681
mehr Aufschluss, welches script genau?
Ansonsten kannst du den Prozess auch einfach stoppen mit sudo kill 681
ähm ja, der Truma-Service selber:
pi@pekaway:~ $ ps -fp 681
UID PID PPID C STIME TTY TIME CMD
root 681 1 0 Sep25 ? 00:05:41 python3 /usr/local/bin/truma_service
Ich baue demnächst alles ein und teste es. Sollte dann eigentlich gehen.
Wie ich gerade im Schaltplan sehe, ist der UART 2 nicht herausgeführt.
Wird der vorn euch für etwas verwendet?
Welcher Uart wird für das NEXTION Display verwendet?
Ich hatte in der alten Konfig UART5 auf J12 für Truma LIN verwendet . Wird der in der aktuellen Software von euch verwendet?
Das ist ja klasse! Würde eine Ähnliche Anwendung/Steuerung auch mit der Aventa Klimaanlage funktionieren?
Grüße Kai
Hallo Kai
Das sollte hiermit gehen.
Wird nicht über UART angeschlossen, sondern über einen ESP32
Bin gerade auch damit am testen, hab leider noch keine Heizung