NEWS
How to Rasbee oder Rasbee II via ser2net
-
Ich habe es geschafft den Rasbee via ser2net an den Zigbee Adapter weiterzuleiten. Leider findet man nicht viele informationen dazu im Netz.
unter https://www2.htw-dresden.de/~wiki_sn/index.php/ZigBee/RaspBee habe ich gefunden das der Rasbee mit 38400 bit/s arbeitet.
und kann somit problemlos mit ser2net netzwerkfähig gemacht werden.
Damit der Rasbee läuft muss die Seriele Konsole am Raspi deaktiviert werden.
Je nach Distro die verwendet wird mit:dietpi-config oder raspi-config
Konfigurieren. Anschliessend
muss auf dem Raspi ser2net installiert werden.sudo apt install ser2net
mit nano in die ser2net.conf folgendes eintragen:
nano /etc/ser2net.conf 2001:raw:0:/dev/ttyS0:38400
falls das nicht funktioniert kann man so wie bei mir am Raspberry 4 mit dietpi
auch mit:2001:raw:0:/dev/ttyAMA0:38400
versuchen.
die bestehenden Zeilen in der ser2net.conf löschen oder auskomentieren.
im Zigbee Adapter muss der Rasbee nun mit tcp eingebunden werden.tcp://ip_des_raspberry:2001
Ich konnte erfolgreich Geräte pairen und schalten. Für den USB Stick müsste es genauso funktionieren.
dieser kann mit folgendem eintrag in der ser2net.conf weiter geleitet werden.2001:raw:0:/dev/ttyACM0:38400
wenn man bereits weitere USB Sticks am Raspi hat kann man sich einen Statischen Symlink für den USB Stick anlegen da diese gerne nach einem Restart die Alias ändern.
dazu muss man in /etc/udev/rules.d eine datei anlegen und die regeln dafür anlegen.sudo touch /etc/udev/rules.d/99_usb-serial.rules ACTION=="add", ATTRS{idVendor}=="1cf1", ATTRS{idProduct}=="0030", SYMLINK+="ttydeconz"
mit dmesg könnt ihr die Vendorid und product id herausfinden. Anschliessend kann der Stick mit
2001:raw:0:/dev/ttydeconz:38400
in der ser2net.conf eingetragen werden.
mit
udevadm control --reload
kann man die regeln nachladen. Damit der Stick den Alias bekommt muss man in ab und wider an stecken.
-
ich würde hier
2001:raw:0:/dev/ttyACM0:38400
nicht auf den port gehen sondern auf den qualifizierten namen verknüpfen..
ls -l /dev/serial/by-id
ich habe zwave und zigbee sticks in meine ROCK64
20107:raw:0:/dev/serial/by-id/usb-0658_0200-if00:115200 8DATABITS NONE 1STOPBIT banner 20108:raw:0:/dev/serial/by-id/usb-Texas_Instruments_XDS110__02.03.00.18__Embed_with_CMSIS-DAP_L1100D6N-if00:115200 8DATABITS NONE 1STOPBIT banner
mein Rock64 wird mit 115200 angebunden
-
@arteck ja so geht das auch - mir ging es darum das grundsätzlich mal eine Anleitung im Netz steht.
-
@arteck mit dem Radino C1101 Stick hat das übrigens nur via alias funktioniert. Deshalb hatte ich mir dann einen Symlink angelegt. Warum das direkt nicht ging habe ich dann nicht länger nach geforscht.
so ging es nicht:
2000:raw:0:/dev/serial/by-id/usb-Unkonwn_radino_CC1101-if00:57600 NONE 1STOPBIT 8DATABITS HANGUP_WHEN_DONE
und so läuft es nun schon eine ganze weile
2000:raw:0:/dev/ttyradino:57600 NONE 1STOPBIT 8DATABITS HANGUP_WHEN_DONE
-
Hallo,
vielen Dank für das HowTo.
Habe sowas versucht und bin erst mal gescheitertErstinbetriebnahme:
- ioBroker auf Win Laptop, läut top, aber ungünstiger Funkstandort
- CC2538+CC2592 dort eingesteckt und über COM mit Adapter verbunden. Funktioniert
Migration CC2538+CC2592 zum OPI
- Orange Pi +2e an guten Funkstandort. Dort läuft schon piVCCU, zugehöriges Funkmodul + zusätzlicher CUL-Stick
- CC2538+CC2592 dort eingesteckt
Dazu
sudo apt-get install ser2net
scheint funktioniert zu haben
Nach dem Einstecken des Zigbee Moduls kann man das als ttyACM1 sehen
ls -l /dev/serial/by-id total 0 lrwxrwxrwx 1 root root 13 Jan 29 01:09 usb-busware.de_CUL868-if00 -> ../../ttyACM1 lrwxrwxrwx 1 root root 13 Jan 29 01:09 usb-Texas_Instruments_CC2538_USB_CDC-if00 -> ../../ttyACM0 root@opi2e_piVCCU3:~#
Daraus habe ich gebastelt
20108:raw:0:/dev/serial/by-id/ usb-Texas_Instruments_CC2538_USB_CDC-if00:115200 8DATABITS NONE 1STOPBIT banner
und mit WinSCP im Unixfilemode in /etc/ser2net.conf zugefügt
Reboot des OPIIm Adapter eingetragen
tcp://192.168.1.84:20108Und Fehlermeldungen geerntet:
2021-01-29 01:35:12.586 - info: zigbee.0 (11444) Starting Zigbee npm ... 2021-01-29 01:35:12.589 - info: zigbee.0 (11444) Installed Version: iobroker.zigbee@1.4.2 2021-01-29 01:35:33.593 - error: zigbee.0 (11444) Failed to start Zigbee 2021-01-29 01:35:33.593 - error: zigbee.0 (11444) Error: Error while opening socket at Socket. (C:\Program Files\iobroker\ioBrMain026\node_modules\zigbee-herdsman\dist\adapter\z-stack\znp\znp.js:185:28) at Socket.emit (events.js:203:15) at emitErrorNT (internal/streams/destroy.js:91:8) at emitErrorAndCloseNT (internal/streams/destroy.js:59:3) at process._tickCallback (internal/process/next_tick.js:63:19) 2021-01-29 01:35:43.596 - info: zigbee.0 (11444) Try to reconnect.
Irgendwas ist da schief gegangen. Hat jemand eine Idee? Wie kann ich das debuggen?
nach Rückbau des Zigbee Moduls zum Laptop wieder alles gut, Adapter wird grün, Geräte sind da.
Vielen Dank!
-
Möchte noch meine Erfahrungen ergänzen:
ser2net ist schon sehr seltsam.Bei mir hat nach vielen Experimenten auf meinem Orange Pi +2e unter armbian stretch funktioniert:
sudo apt install ser2net
installiert das Paket und macht auch was im systemd. Bei mir ist das dann auch bootfest.
ls -l /dev/serial/by-id
Antwort
lrwxrwxrwx 1 root root 13 Jan 29 01:09 usb-Texas_Instruments_CC2538_USB_CDC-if00 -> ../../ttyACM0
Jetzt wissen wir, wie das USB-Gerät eindeutig und bootfest anzusprechen ist: usb-Texas_Instruments_CC2538_USB_CDC-if00
Dann schauen wir noch ob der port belegt ist
netstat -tanp | grep 20108
Wenn er frei ist, nehmen wir den. Wird für TCP Server gerne genommen. Ansonsten weiter suchen
Daraus habe ich gebaut
192.168.178.55,20108:raw:0:/dev/serial/by-id/usb-Texas_Instruments_CC2538_USB_CDC-if00:115200 8DATABITS NONE 1STOPBIT banner
wobei 192.168.178.55 stellvertretend für die IP-Adresse des ser2net hosts steht, also des Geräts, auf dem ser2net läuft. Das Vorstellen der IP-Adresse mit Komma getrennt war bei mir erforderlich, weil ser2net immer eine tcp6, also wohl eine ipv6 generiert hat. Laut manpage sollte man
ipv4,tcp,
vorstellen. Hat aber bei mir nicht funktioniert. Im var/log/syslog steht in diesem Fehlerfall dann
localhost ser2net: port number was invalid on line 80
auch localhost als Text oder IP Nr hat nicht funktioniert.
Die Spur mit ipv6 habe ich im grünen Forum gefunden https://forum.fhem.de/index.php/topic,109861.msg1038987.html#msg1038987
Die so zusammengebaute Zeile trägt man in die Datei
/etc/ser2net.conf
ein. Am Besten über WinSCP mit einem ordentlichen Editor. Den nano oder gar vi muß man sich nicht mehr antun.
Die Zeile mit BANNER habe ich drin gelassen, die vier vordefinierten Ports mit # auskommentiert.
Abspeichern.
Mitser2net -c /etc/ser2net.conf
startet man das Programm, das in der Regel keine Ausgaben produziert und den User m Ungewissen läßt
Deshalb mitnetstat -tanp | grep 20108
und / oder
netstat -tanp | grep ser2net
nachschauen, ob der Port von Ser2net belegt wurde. Falls dort tcp6 davor steht, wird es nicht funktionieren. Es muß tcp davor stehen
Der Client (z.B. Zigbee Adapter) referenziert dann mit
tcp://192.168.178.55:20108
auf das USB-Gerät via ser2net
Mein Beispiel war der Anschluß von
CC2538+CC2592 PA Zigbee Stick/Platine
an ioBroker Zigbee Adapter über einen Orange Pi Plus 2E mit armbian buster. Auf dem OPi ist auch noch piVCCU und ein CUL-Stick drauf.Edit: Bei meinem Opi unter armbian stretch lief ser2net leider nicht stabil. Es lief immer nur ein paar Tage und dann brach die Vorbindung ab.
Das ist für mich unbrauchbar, ich brauche stabile Lösungen. Habe deshalb USB umgangen und ein kommerzielles TCP Servermodul von USRIOT eingesetzt. Diese Kombination läuft bei mir in verschiedenen Applikationen stabil.
Das heißt jetzt aber nicht, daß ser2net generell instabil wäre. Es gibt ja viele positive Berichte dazu. Aber in meiner speziellen Konstellation war es eben instabil. Erweiterte Ursachenforschung habe ich nicht betrieben, da ich die stabile Alternative über die TCP-Servermodule auch anderweitig im Einsatz habe. -
Hat das ganze schon mal jemand auf einem Pi Zero W versucht? Habe hier noch einen rumliegen und war am überlegen, ob es möglich ist den Zigbee Stick mit einem Pi Zero W und dem ser2net einzurichten.
-
@dragon Schau mal im anderen Thread. Eher nicht empfohlen.
-
@klassisch das habe ich gelesen. Danke für den Hinweis, ist aber leider nicht die Antwort auf meine Frage. Ich frage lediglich ob das ganze möglich ist. Weil ich im Netz leider keine Angabe zu Systemanforderungen für ser2net finde.
-
@dragon ist es.
Die Anforderungen an die Systemleistung sind minimal. Der Kommentar zum frequenzproblem bleibt aber - deswegen würde ich das nicht tun.
A.
-
ich probiere das auch gerade, ser2net läuft auf einem RPi, aber ich der Zigbee Adapter verbindet sich nicht mit dem RPi.
Wenn ich auf dem RPi Z2M benutze und in der Config die eigene IP:port eintrage, dann funktioniert Z2M. Das ser2net sollte also richtig konfiguriert sein. Was kann dann im Adapter noch falsch sein?
Und mit der Extended PanID habe ich noch ein Problem: was muss ich im Adapter eintragen um die gleiche wie in Z2M konfigurierte zu bekommen? In Z2M sind 16 Dezimalzahlen drin, wenn ich daraus ASCII mache und als String im Zigbee Adapter eintrage, dann mag der die nicht weil da Werte ausserhalb 0..f drin sind. -
@jojos sagte in How to Rasbee oder Rasbee II via ser2net:
Was kann dann im Adapter noch falsch sein?
Auf Basis der genannten Informationen ins Blaue geraten:- TCP groß geschrieben? Anleitung sagt: For example tcp://192.168.1.46:8880
- Irgendein Docker, Container, VM dazwischen, welches tcp nicht durchreicht?
-
@klassisch es war doch richtig, ich war nur zu ungeduldig. Es dauert etwas bis der Koordinator angezeigt wird.
Jetzt suche ich noch wie ich die vorherige Konfig aus Z2M im Zigbee Adapter verwenden kann.in der z2m/configuration.yaml:
homeassistant: false permit_join: true mqtt: base_topic: zigbee2mqtt server: mqtt://localhost keepalive: 60 reject_unauthorized: true version: 4 client_id: MY_CLIENT_ID serial: # port: /dev/ttyUSB0 port: 'tcp://192.168.100.28:20108' adapter: auto advanced: network_key: - 37 - 99 - 73 - 107
-
@jojos Prima, daß es so läuft, freut mich.
Zur anderen Frage kann ich leider gar nichts sagen. Denke die Experten werden hier mal wieder vorbeischauen. -
habe im z2m noch eine coordinator_backup.json gefunden, da stehen die IDs drin. Nutzt mir aber nicht viel, ich muss die Geräte neu anlernen weil der Adapter ja noch keine Geräteliste hat.
-
@jojos sagte in How to Rasbee oder Rasbee II via ser2net:
coordinator_backup.json
die mpsste aber passend zu unserer shepherd.db sein
-
@arteck mit der gleichen ID hat der Umzug von z2m auf den Zigbee Adapter hat das Funknetz nicht ordentlich funktioniert. Anlernen der Geräte hat sehr lange gedauert, mehrere Versuche gebraucht oder ging gar nicht.
Habe dann doch eine neue ID vergeben und vor allem eine LED Lampe, die Router spielt, als erstes neu konfiguriert. Danach klappte es ordentlich mit dem Anlernen der anderen Geräte. So ein bisschen Eigenleben hat dieses Zigbee ja... Habe aber auch noch nicht viel Erfahrung damit.
Die zigbee2mqtt/data/database.db scheint das Gleiche wie die shepherd.db zu sein, sind beides JSON mit den Zigbee Geräten. -
@klassisch Habe Ser2net mit Hilfe der Einträge hier zum laufen bekommen. Habe jetzt aber noch das Problem das ich nach einem Neustart manuell starten muss. Bekomme keinen Autostart hin. Habe "sudo crontab -e" aufgerufen und dort den Eintrag "@reboot /usr/sbin/ser2net -c /etc/ser2net.conf" gemacht. Aber nach einem Neustart läuft das Teil nicht. Auch der Eintrag "/usr/sbin/ser2net -c /etc/ser2net.conf" in /etc/rc.local bringt mir keinen Erfolg. Was mache ich falsch?
-
@massenbach Sorry, kann ich Dir leider nicht sagen, bin kein Linux SBC Experte.
Früher gab es für den Autostart bei Linux systemd. Das scheint aber aus der Mode gekommen zu sein. Dazu gibt es längere Grundsatzdiskussionen im Netz, die ich aber nicht verfolge.
Auf SBCs läuft bei mir nur noch Homematic, NUT und neuerdings auch noch Victron Venus OS. ioBroker läuft bei mir auf einem Notebook unter Win10. Stabil und gut zu warten.Vielleicht sollte ich meinen obigen Post noch mit dem Ergebnis ergänzen; Bei meinem Opi unter armbian stretch lief ser2net leider nicht stabil. Es lief ein paar Tage und dann brach die Vorbindung ab.
Das ist für mich unbrauchbar, ich brauche stabile Lösungen. Habe deshalb USB umgangen und ein kommerzielles TCP Servermodul von USRIOT eingesetzt. Diese Kombination läuft bei mir in verschiedenen Applikationen stabil. -
@massenbach der wird über init.d gestartet