EnOcean + phoscon/zigbee auf 1 Raspberry?

Quick question. Kann ich beides haben, EnOcean und Zigbee, auf einem und dem gleichen Raspberry? Sie brauchen beide einen Serial Port, korrekt? Gibt es da einen Konflikt?

Nein, kannst Du machen. Achte im „dmesg“-Output auf die korrekten ports. Diese erhalten dann z.B. /dev/ttyUSB0 etc.
Noch besser geht es mit der Angabe von „ /dev/serial/by-id“, da diese stabil bleibt für das jeweilige Device.
Noch ein Tipp: Nutze USB Verlängerungskabel um Funkbeeinträchtigungen untereinander und zum Raspi zu verringern.

danke, sehr geschätzt! Ich komme dennoch nicht wirklich weiter. Ich sollte sagen, dass ich keine USB verwende. Ich habe sowohl den EnOcean-Hat wie auch den RaspBee Hat aufs GPIO gesetzt, über einen GPIO-doubler. Ist das zulässig? Jedenfalls funktioniert Phoscon unproblematisch, enocean jedoch nicht.
Auf etc/ser2net.conf habe ich
entweder:
7970:raw:0:/dev/ttyAMA0:57600 8DATABITS NONE 1STOPBIT
oder
7970:raw:0:/dev/ttyAMA1:57600 8DATABITS NONE 1STOPBIT
(beides geht nicht)

Ser2net scheint aktiv zu sein, hier die YAML Config:

              /dev/ttyS1,
              9600n81,local

connection: &con0192
    accepter: tcp,3000
    enable: on
    options:
      banner: *banner
      kickolduser: true
      telnet-brk-on-sync: true
    connector: serialdev,
              /dev/ttyS0,
              19200n81,local

connection: &con1192
    accepter: tcp,3001
    enable: on
    options:
      banner: *banner
      kickolduser: true
      telnet-brk-on-sync: true
    connector: serialdev,
              /dev/ttyS1,
              19200n81,local

Nicht wenn sie beide die gleiche physikalische Schnittstelle belegen.
Also musst du das Pinout der Platinen raussuchen und schauen ob dies der Fall ist (wovon ich ausgehe).
Je nach Pi hast du mehrere gpio welche als UART benutzt werden können.
Habe aber auch nur einmal zum testen das Enocean benutzt.
Läuft Symcon auch auf den Pi? Dann brauchst du ser2net nicht.
Michael

  • Ahhh, das heisst, ich muss doch ein USB ConBee II kaufen? Naja, für 41 CHF ist das noch machbar. :slight_smile:
  • Nein, symcon läuft als VM auf einem Windows Server.

danke
AAG

Nein,
du musst nicht unbedingt auf das USB Conbee ausweichen.

Ich habe bei mir einen Raspberry pi 4 mit 3 Seriellen Adaptern am laufen. (Enocean, Zwave und Zigbee)
Die Schnittstellen müssen dafür nur in der config-Datei des Raspberry freigeschaltet sein. Bei einem Raspberry 3 bin ich mir nicht sicher ob das geht. Müsste mich da etwas einlesen. Aber der 4er unterstützt bis zu 4 unterschiedliche serielle Schnittstellen.

Zudem meine ich auch irgendwo gelesen zu haben das man beliebige GPIO „umprogrammieren“ kann, damit diese als RXD und TXD genutzt werden können. Das läuft dann aber nicht so sehr stabil denke ich.

Falls du den 4er hast kannst du benötigten Schnittstellen freischalten indem du in der Konfig Datei
die einträge unter [all] wie folgt erweitern:

enable_uart=1
dtoverlay=uart2
dtoverlay=uart3
dtoverlay=uart5

Falls du da genauere Angaben brauchst wie und wo du was einträgst und welche GPIO´s du benutzen musst, kann ich dir die gerne zukommen lassen.

In meinem Fall habe ich mich dazu entschieden mir auf der Phoscon Seite das Raspberry Image herunterzuladen, da hier schon alles für Zigbee vorbereitet ist.
Somit hab ich dann auch den Zigbee HAT mit der Standart-Seriellen Schnittstelle UART 0 verbunden. Die Anderen Adapter entsprechend über UART 2,3 und 5.

Bei mir läuft Symcon jedoch auf dem zusätzlich auf dem Raspberry. Sollte aber keinen Unterschied machen.

Einfacher ist natürlich der USB-Stick :grinning:

1 „Gefällt mir“

super, vielen dank. Das eklärt natürlich warum das ganze nicht fuktioniert. Ich habe nun die USB-Sticks bestellt. Werde alles an ein RPi-4 anhängen, dort sind die GPIO mit 8 Relais belegt, es kommt also sowieso nur USB infrage. Ich melde mich wieder wenn ich nicht weiter komme!

hmm, komme nicht sehr viel weiter. Hab nun die USB sticks installiert, aber „connection actively refused“. Was muss in ser2net.conf genau rein? Hier ist die Liste der serial ports:

# dmesg | grep tty
[    0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=1 cma=64M snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_headphones=1 cma=256M  smsc95xx.macaddr=DC:A6:32:45:AA:93 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  console=ttyAMA0,115200 console=tty1 root=PARTUUID=ea7d04d6-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
[    0.000723] console [tty1] enabled
[    0.434399] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 34, base_baud = 0) is a PL011 rev2
[    1.579720] console [ttyAMA0] enabled
[    1.583871] fe201400.serial: ttyAMA1 at MMIO 0xfe201400 (irq = 34, base_baud = 0) is a PL011 rev2
[    1.593449] fe201600.serial: ttyAMA2 at MMIO 0xfe201600 (irq = 34, base_baud = 0) is a PL011 rev2
[    1.602858] fe201a00.serial: ttyAMA3 at MMIO 0xfe201a00 (irq = 34, base_baud = 0) is a PL011 rev2
[    3.509890] systemd[1]: Created slice system-getty.slice.
[    5.633511] cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device
[    5.654567] usb 1-1.2: FTDI USB Serial Device converter now attached to ttyUSB0
[    5.669734] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB1

alright, es läuft jetzt alles. Die Ser2net.conf sieht so aus:

7970:raw:0:/dev/ttyUSB0:38400 8DATABITS EVEN 1STOPBIT
7971:raw:0:/dev/ttyUSB1:57600 8DATABITS NONE 1STOPBIT
  • 7970 kontrolliert einen Projektor (Sony)
  • 7971 ist EnOcean
  • für Deconz über USB-Stick scheint es gar keine serielle Schnittstelle zu brauchen, im Gegensatz zur HAT-Version

besten Dank allseits für die guten Ratschläge!

@Thorsten79 Ich muss nochmal nachfragen wie Du das meinst, dass man zwei HATs wie Raspbee II Zigbee und Enocean Pi auf einem Raspberry zum Laufen bekommt?

Hi Sp00ky,

da es schon spät ist, fasse ich mich erst mal kurz.

Also es funktioniert leider nicht, dass du die Module einfach auf dien Raspberry steckst.

Man muss hingehen und die entsprechend benötigten Pins (Meistens 5V, GND, RX und TX) an die Module bringen. Also mit Kabeln oder anderen Lösungen.
5V und GND sollte kein Problem sein.

RX und TX gibt es von Haus aus in der Standard Konfiguration des Raspberry nur einmal auf der Leiste. Aber es werden bis zu vier (meine ich jedenfalls) unterstützt. Dafür gibt es eine sogenannte Overlay Konfiguration am Raspberry. Hier werden dann gewisse Anschlüsse umkonfiguriert.

Speziell beim PI 5 ist das so. Ich glaube beim 4er auch.
Der 3er hatte glaube ich sogar zwei oder drei RX/TX von Haus aus aktiviert.

Wenn du genauere Informationen dazu brauchst, kann ich gerne die Tage mal schauen. Aber das könnte etwas dauern, da ich aktuell sehr wenig Zeit habe.
Sag mir gerne Bescheid für weitere Hilfe.

Aber ich habe gerade mal ChatGPT gefragt und bin der Meinung dass es eigentlich soweit passen könnte:

  1. Serielle Schnittstellen per Device Tree aktivieren

Bearbeite die Datei /boot/firmware/config.txt (auf 64-Bit Raspberry Pi OS). Füge z. B. folgende Zeilen hinzu:

enable_uart=1
dtoverlay=uart2
dtoverlay=uart3
dtoverlay=uart4
dtoverlay=uart5

Diese Overlays aktivieren UART2–UART5. UART0 ist normalerweise bereits aktiviert und wird oft für die serielle Konsole verwendet (Pin 8 und 10).

  1. Serielle Ports zuordnen (tty-Geräte)

Nach dem Reboot findest du die Geräte:
• /dev/ttyAMA0 – Haupt-UART (vollständig, stabil)
• /dev/ttyS0–ttyS5 – MiniUARTs (von uart2 bis uart5)

Du kannst über dmesg | grep tty prüfen, welche Schnittstellen aktiviert wurden.

  1. Pinbelegung der seriellen Schnittstellen

Hier siehst du die Standard-GPIO-Pinbelegung der UARTs (Tx = Senden, Rx = Empfangen):

UART GPIO Tx GPIO Rx Pin Tx Pin Rx
UART0 GPIO14 GPIO15 Pin 8 Pin 10
UART2 GPIO0 GPIO1 Pin 27 Pin 28
UART3 GPIO4 GPIO5 Pin 7 Pin 29
UART4 GPIO8 GPIO9 Pin 24 Pin 21
UART5 GPIO12 GPIO13 Pin 32 Pin 33

Hinweis:
• GPIO0/1 (Pins 27/28) sind standardmäßig für I2C0 reserviert – nur verwenden, wenn du I2C0 nicht brauchst!
• Du kannst alternativ über das Overlay dtoverlay=uartX,txd_pin=YY,rxd_pin=ZZ die Pins anpassen.

2 „Gefällt mir“